首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >DeepAgents + MCP + A2A + Skills:构建可组合的智能体系统

DeepAgents + MCP + A2A + Skills:构建可组合的智能体系统

原创
作者头像
用户12687280
发布于 2026-09-28 18:28:38
发布于 2026-09-28 18:28:38
970
举报

单 Agent 的天花板很低:上下文有限、工具混乱、无法复用经验。要构建生产级系统,需要四个正交能力:编排(DeepAgents)、工具接入(MCP)、跨体协作(A2A)、能力沉淀(Skills)。它们各司其职,组合起来才形成完整的智能体基础设施。

一、四层职责划分

层

技术

解决的问题

编排

DeepAgents

规划、子智能体、文件系统、上下文管理

工具

MCP

标准化接入外部数据与系统

协作

A2A

跨进程、跨组织的智能体通信

能力

Skills

把领域经验固化为可复用单元

关键洞察:MCP 管"能做什么",Skills 管"怎么做",A2A 管"和谁做",DeepAgents 管"怎么串"。四者不重叠,缺一不可。

二、DeepAgents:编排骨架

DeepAgents 的核心是"深度"——它不是单次 ReAct,而是带规划、子智能体委派和虚拟文件系统的持久循环。

代码语言:javascript
复制
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 把长产物外置,主上下文只保留摘要——这是长任务不崩的关键。

三、Skills:把经验固化为能力

Skill 是 Markdown 定义的程序性知识,告诉 Agent"遇到这类任务该怎么走"。它不执行代码,而是注入流程。

代码语言:javascript
复制
.claude/skills/security-review/
└── SKILL.md

代码语言:javascript
复制
---
name: security-review
description: 审查代码的安全问题,覆盖注入、鉴权、密钥泄露
---

# 安全审查 Skill

## 触发条件
当任务涉及鉴权、支付、外部输入处理时激活。

## 执行步骤
1. 用 Grep 搜索危险模式:eval、exec、innerHTML、SQL 拼接
2. 检查所有外部输入是否校验
3. 检查密钥是否硬编码
4. 输出问题清单,按 CVSS 分级

## 输出格式
| 严重度 | 文件:行 | 问题 | 修复建议 |

在 DeepAgents 中挂载 Skills 只需注入提示词:

代码语言:javascript
复制
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:标准化工具接入

MCP 用统一协议把数据库、文件系统、内部平台暴露给 Agent,无需为每个工具写适配代码。

代码语言:javascript
复制
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:跨智能体协作

当任务需要跨进程、跨团队协作时,A2A 提供标准协议:Agent 发布 Agent Card 描述能力,其他 Agent 通过任务(Task)交互。

代码语言:javascript
复制
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 接智能体。前者是"我的手",后者是"我的同事"。

六、组合:一条完整链路

代码语言:javascript
复制
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 落地动作。

七、工程护栏

  1. 权限最小化:MCP 工具默认只读,写操作走审批。
  2. 上下文管理:中间产物写文件,主上下文只留摘要。
  3. 成本上限:限制子智能体数量与总步数。
  4. 可追溯:A2A 任务带 trace_id,全链路可回放。
  5. 版本锁定:Skill、MCP Server、模型版本全部纳入 git。
  6. 降级策略:A2A 对端不可用时,回退到本地能力。

结语

DeepAgents + MCP + A2A + Skills 的组合,本质是把智能体系统分层解耦:编排归编排,工具归工具,协作归协作,经验归经验。每层可独立演进、独立替换,系统才不会随复杂度失控。这才是构建生产级智能体的正确姿势。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

目录
  • 一、四层职责划分
  • 二、DeepAgents:编排骨架
  • 三、Skills:把经验固化为能力
  • 四、MCP:标准化工具接入
  • 五、A2A:跨智能体协作
  • 六、组合:一条完整链路
  • 七、工程护栏
  • 结语
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档