Agent如何完成任务
本节目标
你将理解 Agent 不是“更长的提示词”,而是一个围绕目标运行的受控系统。学完后,你能画出 Agent 循环,区分工作流与 Agent,并指出工具权限、状态和停止条件。
最小 Agent 模型
工程语境中,可以先用下面的拆解工作,不必争论唯一术语定义:
Agent = 目标 + 当前状态 + 决策机制 + 可用工具 + 控制策略 + 反馈- 目标:成功是什么,例如“形成一份可供人工发送的会议行动项草稿”。
- 状态:任务已知信息、已完成步骤、工具结果与错误。
- 决策机制:根据目标和当前状态选择下一步;现代应用常使用 LLM,但不是唯一选择。
- 工具:搜索、数据库查询、文件读取、发送消息等外部能力。
- 控制策略:权限、预算、重试、审批和停止条件。
- 反馈:工具返回值、环境变化、用户澄清或评测结果。
观察—决定—行动循环
一个受控循环可以写成:
接收目标
↓
观察当前状态与可用信息
↓
选择下一步 ──信息不足──→ 请求澄清
↓
生成结构化工具参数
↓ 权限与参数校验
执行工具
↓
读取结果并更新状态
↓
达到目标 / 需要审批 / 触发停止条件ReAct 论文展示了让语言模型交替产生推理与行动、再读取环境反馈的一种研究方法。稳定事实是这种“模型输出行动—环境返回观察”的交替范式具有代表性;工程建议是生产系统不应暴露或依赖未经约束的自由文本推理,而应把关键决策、工具参数、证据与结果记录成可审计结构。
工作流还是 Agent
| 情况 | 固定工作流更合适 | Agent 更可能有价值 |
|---|---|---|
| 步骤 | 顺序已知、分支有限 | 下一步依赖开放环境反馈 |
| 输入 | 格式稳定 | 信息不完整、表达多样 |
| 风险 | 可用规则穷举 | 需要模型判断,但能设边界与审批 |
| 测试 | 每条路径可枚举 | 需用任务集统计成功率并检查轨迹 |
| 成本 | 要求低延迟、低波动 | 复杂任务收益足以覆盖多次调用 |
实际系统常是混合体:固定工作流负责大框架,Agent 只在某个低风险节点选择动作。这通常比“所有步骤都自主决定”更易验证。
工具不是一句描述,而是契约
假设 Agent 有 create_ticket(title, severity, evidence) 工具。至少要定义:
- 字段类型、长度、必填项和允许值;
- 调用者身份与最小权限;
- 哪些参数来自可信数据,哪些来自模型;
- 超时、失败、重复调用和部分成功如何处理;
- 调用是否可撤销,是否需要人工确认;
- 返回值如何验证,何时禁止继续。
模型生成了合法 JSON,只说明“格式通过”,不说明业务上有权创建工单。授权必须由系统执行层判断,不能由模型自我声明。
模型不是授权主体
对会产生外部副作用的工具,执行层应从可信身份与授权系统绑定、校验并记录:谁发起请求、使用哪个服务身份、若代表用户则代表谁/哪个租户、允许什么动作和对象、授权或审批何时到期。模型可以提议动作和业务参数,不能生成、扩大或替代这些授权事实;共享后台凭据也不能跳过对象级授权。
状态、记忆与上下文不是同一个词
- 上下文:本次模型调用能看到的输入。
- 任务状态:系统保存的结构化事实,例如
ticket_id、步骤状态和审批结果。 - 短期记忆:当前任务的历史摘要或工作草稿。
- 长期记忆:跨任务保留的信息,例如用户偏好;它需要来源、更新、删除和访问控制。
把所有历史对话直接塞进上下文,不等于可靠记忆。结构化状态应由应用维护,关键字段通过工具或规则验证。
三道安全边界
- 读写分离:先允许只读查询;写入、发送、删除、支付等工具单独授权。
- 批准点:高影响动作执行前展示动作、对象、依据和可见后果,由人确认。
- 停止条件:最大步骤数、最大重试、时间或成本预算、重复状态、风险规则命中时停止并转人工。
停止不是失败。对不确定情况安全退出,往往是 Agent 的重要能力。
当前工程讨论中的工具分类
NIST 在 2025 年 AISIC 研讨总结中提出可从功能、访问方式、风险、可靠性、模态、可监控性与自主程度等多个维度描述 Agent 工具,并特别区分只读/写入和可信/不可信环境。它是公开研讨总结而非正式标准,但可作为权限评审清单。NIST 2026 年关于软件 Agent 身份与授权的材料仍是概念项目文件,也不应写成已定标准。
练习:设计一个只读排障 Agent
场景:用户报告网站打不开。Agent 可以读取服务状态、最近告警和公开运行手册,但不能重启服务。
请写出:
- 目标与明确的非目标;
- 三个只读工具的输入、输出与错误;
- 哪些信息不足时必须询问用户;
- 最大步骤数与停止条件;
- 输出中如何区分已观察事实与推断;
- 若建议重启,怎样转交有权限的人审批。
合格答案不需要框架代码,但必须能让另一位工程师据此实现和测试。
自测
- 为什么“能调用工具”不等于“可以执行任意动作”?
- Agent 状态为什么不应只存在于对话文本中?
- 固定步骤的发票处理为什么通常先选工作流?
- 举出两个正常停止和两个异常停止条件。
参考答案要点:工具能力还受身份、参数、业务规则与审批约束;结构化状态更易验证、恢复和审计;固定路径用工作流更稳定;正常停止如目标完成、用户取消,异常停止如重复循环、超预算、工具持续失败或命中风险规则。
相关概念
- Tool Calling负责模型到工具参数的受控接口,MCP提供客户端与服务器之间的开放协议边界。
- Agent 核心深入状态、循环、终止、记忆和检查点;Agentic Design Patterns比较可复用控制模式。
- 当步骤可提前枚举时优先进入 工作流自动化,不要用自主性代替明确流程。
小结与下一步
Agent 的核心不是“自主性越高越好”,而是用可控循环在信息不确定时完成任务。下一节进入 能力边界与失败模式,把常见问题转成可执行测试。
参考资料
获取日期:2026-07-22。