Agent 不是“让模型自由发挥”,而是一个由模型负责决策、由程序负责执行和约束的循环系统。可靠的 Agent 必须有明确目标、可控工具和可追踪状态。
一、基本执行循环
text
用户目标 → 任务拆解 → 模型决策 → 调用工具 → 观察结果 → 继续或结束一次循环通常包含:
context:目标、历史消息、约束和当前状态。tool:模型可以调用的函数,输入输出必须有明确结构。observation:工具执行结果,包括成功、失败和权限信息。stop condition:完成、超时、达到步数上限或需要人工确认。
二、常见架构
| 架构 | 适用场景 | 主要风险 |
|---|---|---|
| 单 Agent + 工具 | 查询、总结、简单自动化 | 循环失控、工具误用 |
| Planner-Executor | 多步骤任务 | 计划与现实状态脱节 |
| 多 Agent 协作 | 角色分工、并行研究 | 通信成本和责任边界模糊 |
| 工作流 + Agent 节点 | 流程稳定、局部需要推理 | 灵活性与维护成本的平衡 |
优先从“工作流 + 少量 Agent 节点”开始。能用确定性代码表达的步骤,不必交给模型。
三、工具设计原则
- 工具只做一件事,参数使用结构化模式校验。
- 工具执行前检查权限、范围和用户确认要求。
- 工具执行后返回可供模型理解的结果,同时记录原始日志。
- 失败结果要说明原因和下一步,而不是只返回空字符串。
- 设置超时、重试、预算和最大循环次数。
四、状态与评测
把短期消息、任务状态、长期记忆和外部业务数据分开管理。不要把所有内容无限追加到上下文中;应通过摘要、检索和状态快照控制成本。
评测至少覆盖任务成功率、工具调用准确率、事实正确性、延迟、成本和安全拒答。保留一组固定样例做回归测试,任何提示词或工具变更都重新运行。
Agent 的工程核心是边界:让模型负责选择,让代码负责约束,让日志负责解释。