单 Agent 的天花板很低:上下文有限、工具混乱、无法复用经验。要构建生产级系统,需要四个正交能力:编排(DeepAgents)、工具接入(MCP)、跨体协作(A2A)、能力沉淀(Skills)。它们各司其职,组合起来才形成完整的智能体基础设施。
层 | 技术 | 解决的问题 |
|---|---|---|
编排 | DeepAgents | 规划、子智能体、文件系统、上下文管理 |
工具 | MCP | 标准化接入外部数据与系统 |
协作 | A2A | 跨进程、跨组织的智能体通信 |
能力 | Skills | 把领域经验固化为可复用单元 |
关键洞察:MCP 管"能做什么",Skills 管"怎么做",A2A 管"和谁做",DeepAgents 管"怎么串"。四者不重叠,缺一不可。
DeepAgents 的核心是"深度"——它不是单次 ReAct,而是带规划、子智能体委派和虚拟文件系统的持久循环。
from deepagents import create_deep_agent
from langchain.chat_models import init_chat_model
model = init_chat_model("anthropic:claude-sonnet-4-20250514")
agent = create_deep_agent(
model=model,
tools=[], # 工具通过 MCP 注入,见下节
system_prompt=(
"你是技术负责人。先规划,再委派子智能体,最后汇总。"
"关键中间产物写入文件,避免上下文溢出。"
),
subagents=[
{"name": "researcher", "description": "检索资料,输出事实要点",
"prompt": "只输出可验证事实,附来源。"},
{"name": "coder", "description": "实现代码并通过测试",
"prompt": "先写测试,再实现,运行 pytest 直到通过。"},
],
)DeepAgents 内置 write_file、read_file、ls 等虚拟文件工具,让 Agent 把长产物外置,主上下文只保留摘要——这是长任务不崩的关键。
Skill 是 Markdown 定义的程序性知识,告诉 Agent"遇到这类任务该怎么走"。它不执行代码,而是注入流程。
.claude/skills/security-review/
└── SKILL.md---
name: security-review
description: 审查代码的安全问题,覆盖注入、鉴权、密钥泄露
---
# 安全审查 Skill
## 触发条件
当任务涉及鉴权、支付、外部输入处理时激活。
## 执行步骤
1. 用 Grep 搜索危险模式:eval、exec、innerHTML、SQL 拼接
2. 检查所有外部输入是否校验
3. 检查密钥是否硬编码
4. 输出问题清单,按 CVSS 分级
## 输出格式
| 严重度 | 文件:行 | 问题 | 修复建议 |在 DeepAgents 中挂载 Skills 只需注入提示词:
import pathlib
def load_skills(skill_dir=".claude/skills") -> str:
parts = []
for p in pathlib.Path(skill_dir).glob("*/SKILL.md"):
parts.append(p.read_text(encoding="utf-8"))
return "\n\n---\n\n".join(parts)
agent = create_deep_agent(
model=model,
system_prompt="你是技术负责人。\n\n可用技能:\n" + load_skills(),
)Skill 的价值在于把口头规范变成可执行流程,团队经验不再散落在文档里。
MCP 用统一协议把数据库、文件系统、内部平台暴露给 Agent,无需为每个工具写适配代码。
from langchain_mcp_adapters.client import MultiServerMCPClient
mcp = MultiServerMCPClient({
"postgres": {
"command": "npx",
"args": ["-y", "@modelcontextprotocol/server-postgres",
"postgresql://readonly@localhost/app"],
},
"github": {
"command": "npx",
"args": ["-y", "@modelcontextprotocol/server-github"],
"env": {"GITHUB_TOKEN": "${GITHUB_TOKEN}"},
},
})
tools = await mcp.get_tools() # 自动发现所有工具
agent = create_deep_agent(model=model, tools=tools)只读优先:生产环境接入的 MCP Server 应默认只读,写操作走人工审批。MCP 的标准化让"换一个数据源"从改代码变成改配置。
当任务需要跨进程、跨团队协作时,A2A 提供标准协议:Agent 发布 Agent Card 描述能力,其他 Agent 通过任务(Task)交互。
from a2a.server import A2AServer, AgentCard, Task
import httpx
card = AgentCard(
name="security-auditor",
description="对代码仓库做安全审计",
url="http://auditor.internal:8080",
capabilities={"streaming": False},
)
server = A2AServer(card)
@server.on_task
async def handle(task: Task) -> dict:
repo = task.input["repo"]
# 调用本地 DeepAgent 执行审计
result = await agent.ainvoke({"messages":
[{"role": "user", "content": f"审计仓库 {repo} 的安全问题"}]})
return {"report": result["messages"][-1].content}
# 调用方:从 Agent Card 发现并委派
async def delegate(repo: str):
card = (await httpx.get(
"http://auditor.internal/.well-known/agent.json")).json()
r = await httpx.post(f"{card['url']}/tasks", json={
"input": {"repo": repo}
}, timeout=300)
return r.json()A2A 与 MCP 的分工:MCP 接工具,A2A 接智能体。前者是"我的手",后者是"我的同事"。
async def audit_pipeline(repo: str):
# 1. 通过 A2A 委派给安全审计 Agent
report = await delegate(repo)
# 2. 本地 DeepAgent 结合 Skill 做修复规划
plan = await agent.ainvoke({"messages": [{"role": "user",
"content": f"基于审计报告制定修复计划:\n{report['report']}"}]})
# 3. 用 MCP 工具创建 GitHub Issue
gh = next(t for t in tools if t.name == "create_issue")
await gh.ainvoke({"title": "安全修复计划",
"body": plan["messages"][-1].content})
return plan四层各司其职:A2A 找到专家,DeepAgents 编排流程,Skills 提供方法论,MCP 落地动作。
DeepAgents + MCP + A2A + Skills 的组合,本质是把智能体系统分层解耦:编排归编排,工具归工具,协作归协作,经验归经验。每层可独立演进、独立替换,系统才不会随复杂度失控。这才是构建生产级智能体的正确姿势。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。