编码 Agent 能读代码、改文件,却未必知道团队为何采用某种架构、改动前要检查什么,以及故障发生时该查哪份手册。Ajay Prakash 分享的 LinkedIn 实践,核心是通过基于 Model Context Protocol(MCP)的 Contextual Agent Playbooks and Tools,把这些组织上下文直接提供给 Agent,而不是指望它从庞大代码库中自行猜测。
代码之外,还有执行步骤
大型代码库的难点不只是定位函数。一次看似局部的修改,可能需要遵循团队约定、查找相关实现,并执行特定的验证或回滚步骤。摘要提到的能力可以分成三类:记录做事顺序的程序性记忆、帮助定位实现的代码搜索,以及处理运行问题的 runbook。
MCP 在这里承担工具接口的角色:Agent 按任务调用上下文工具,再把返回的信息用于制定或修正行动计划。它并不保证检索结果正确,更不能替代测试和人工审批。上下文是否新鲜、是否属于当前服务,仍然需要工程治理。
一个可改造的最小 MCP 工具
下面是示意实现,不是 LinkedIn 的内部代码或接口。它用 Python MCP SDK 暴露一份受控的团队操作指引;接入真实项目时,把示例文字替换成经过维护的文档,并按权限增加代码搜索和 runbook 工具。
mkdir -p team-context && cd team-context
python -m venv .venv
. .venv/bin/activate
pip install mcp
cat > server.py <<'PY'
from mcp.server.fastmcp import FastMCP
mcp = FastMCP("team-context")
PLAYBOOKS = {
"change-api": (
"修改 API 前:确认调用方和兼容性要求;"
"修改后:运行相关测试,记录回滚方式;"
"发布前:请负责人审阅。"
),
"incident": (
"处理故障时:先确认影响范围;"
"保留关键日志与时间线;按团队流程升级。"
),
}
@mcp.tool()
def get_playbook(topic: str) -> str:
"""按主题获取团队操作指引;可用主题:change-api、incident。"""
return PLAYBOOKS.get(topic, "未找到指引;不要推测,请向负责人确认。")
if __name__ == "__main__":
mcp.run()
PY
python server.py
最后一条命令会启动使用标准输入输出通信的 MCP 服务,等待客户端连接;它不是网页服务。接入支持 MCP 的编码 Agent 时,按该客户端的配置格式,将启动命令指向虚拟环境中的 python 和 server.py。部署前还应固定依赖版本,并用客户端实际调用 get_playbook 验证返回内容。
把生产力收益和可靠性放在一起看
分享中报告了约 20% 的生产力提升,同时没有可靠性损失。这是该实践的报告结果,不应直接当作其他团队的收益预测。更稳妥的试点是选一个服务、一类重复任务,对比完成时间、返工、测试结果和事故情况。
上线检查也要具体:文档由谁维护?代码搜索是否遵守仓库权限?runbook 是否标注适用范围和更新时间?工具找不到答案时,Agent 是否会停下来询问,而不是编造步骤?把这些边界设好,组织上下文才会成为 Agent 的可靠辅助,而不是新的错误来源。