Agent核心架构
本目录聚焦 Agent 系统的工程架构,而不是单个提示词技巧。读者应能据此判断:什么时候使用单 Agent、什么时候拆成 Planner-Executor、Router、Supervisor-Worker、Workflow-Agent 混合、事件驱动或长任务架构。
核对日期:2026-05-09。
1. 架构选型总览
| 架构 | 解决的问题 | 适用场景 | 主要风险 |
|---|---|---|---|
| 单Agent架构 | 用一个 Agent 承接推理、工具选择和响应 | 工具少、任务边界清晰、失败成本低 | 上下文膨胀、循环失控、权限过大 |
| Planner-Executor架构 | 将计划生成与步骤执行解耦 | 长链路、多工具、需要可审计计划 | 计划过度静态、重规划成本高 |
| Router-Agent架构 | 把请求分流给不同模型、工具链或子 Agent | 多意图入口、成本分层、客服/工单/知识库 | 路由误判导致错误链路 |
| Supervisor-Worker架构 | 由监督者动态分派子任务并汇总 | 编码、研究、复杂搜索、多专家协作 | 协调成本高、责任边界不清 |
| Workflow-Agent混合架构 | 稳定流程用代码,开放步骤交给 Agent | 企业审批、数据处理、客户支持 | workflow 与 Agent 状态不一致 |
| Event-driven-Agent架构 | 用事件驱动异步 Agent 执行 | 自动化运营、告警处理、消息流任务 | 重复消费、乱序、审计困难 |
| 长任务Agent架构 | 支持暂停、恢复、重试和人工审批 | 小时/天级任务、代码修改、研究报告 | 非幂等副作用、恢复语义不清 |
2. 核心判断标准
优先从简单结构开始。Anthropic 在 “Building effective agents” 中明确区分 workflow 与 agent:workflow 是由预定义代码路径编排 LLM 和工具;agent 则由 LLM 动态决定流程和工具使用。这个区分比“是否用了多个模型”更重要。
工程上可以用以下问题判断复杂度是否值得:
| 判断问题 | 倾向简单架构 | 倾向复杂架构 |
|---|---|---|
| 任务路径是否稳定 | 单 Agent 或 workflow | Planner/Router/Supervisor |
| 是否需要动态拆分子任务 | 否 | Planner-Executor 或 Supervisor-Worker |
| 工具权限是否高风险 | 只读工具 | workflow gate + 人类在环 |
| 失败是否可回滚 | 可重试、低损失 | 长任务、状态机、补偿机制 |
| 是否需要跨小时/跨天执行 | 否 | durable execution / checkpoint |
| 是否需要多专家协作 | 否 | Router 或 Supervisor |
3. 共用工程组件
任何架构都应显式包含以下组件:
RunState:保存目标、输入、计划、步骤状态、工具结果、预算、权限、trace id。ToolRegistry:工具 schema、权限范围、超时、重试、审计字段。PolicyEngine:输入/输出护栏、工具调用审批、敏感字段脱敏。CheckpointStore:对长任务或人类在环任务保存可恢复状态。TraceCollector:记录模型调用、工具调用、handoff、guardrail、错误和重试。EvalHarness:离线任务集、工具调用准确率、端到端成功率、成本与时延。
4. 通用执行骨架
5. 统一验收清单
- 架构边界:是否说明哪些决策由代码做,哪些由模型做。
- 状态设计:是否能恢复、回放、定位每一步输入输出。
- 工具治理:是否有最小权限、超时、重试、幂等键和审计。
- 失败控制:是否限制最大轮数、最大成本、最大并发、最大上下文。
- 评测:是否同时评估最终结果、过程轨迹、工具调用和安全违规。
- 安全:是否覆盖 prompt injection、敏感信息泄漏、过度代理、工具投毒。
6. 权威资料
- Anthropic, Building effective agents: https://www.anthropic.com/engineering/building-effective-agents
- OpenAI Agents SDK docs: https://openai.github.io/openai-agents-python/
- OpenAI Agents SDK tracing: https://openai.github.io/openai-agents-python/tracing/
- OpenAI Agents SDK guardrails: https://openai.github.io/openai-agents-python/guardrails/
- LangGraph overview: https://docs.langchain.com/oss/python/langgraph/overview
- LangGraph graph API: https://docs.langchain.com/oss/python/langgraph/graph-api
- LangGraph persistence: https://docs.langchain.com/oss/python/langgraph/persistence
- MCP Authorization specification: https://modelcontextprotocol.io/specification/2025-11-25/basic/authorization
- OWASP Top 10 for LLM Applications: https://owasp.org/www-project-top-10-for-large-language-model-applications/
- NIST AI RMF 1.0: https://www.nist.gov/publications/artificial-intelligence-risk-management-framework-ai-rmf-10