核心要点

  • 澄清任务边界与自主度:辅助型还是自主执行?可接受的失败代价、延迟与成本预算

  • 内核三件套:规划任务分解)+ 工具调用Function Calling/MCP)+ 记忆(短期上下文 + 长期记忆

  • 生产化护城河:护栏与权限管控、可观测(trace/eval)、人在回路审批、失败重试与降级

  • 可靠性与可控是第一目标:固化评测集 + 在线监控,关注任务完成率而非单步成功

标准回答

需求与指标

先澄清自主度与失败代价:能误删数据的 Agent 必须强管控。核心指标:任务完成率(端到端)、人工干预率、单任务成本与延迟、安全违规率。可靠性与可控性优先于「看起来很智能」。

整体架构

输入 → 规划器 → 执行循环(推理 ↔ 工具调用 ↔ 观测)→ 护栏与权限校验 → 记忆读写 → 输出,全程 trace 落库并接评测。

内核:规划 + 工具 + 记忆

规划 做任务分解与子目标编排,复杂流程用状态机/图(LangGraph 类)固化关键路径而非全放任 LLM 自由发挥。工具调用经 Function Calling/MCP 接外部能力,工具描述清晰、参数校验严格。记忆 分短期(会话上下文)与长期(向量库/知识沉淀经验),按需检索注入。

护栏与权限

护栏 做输入输出审核、越权动作拦截;权限按最小授权,敏感操作(付款、删除、外发)需显式确认;工具调用在沙箱执行限制副作用与爆炸半径。

可观测与人在回路

全链路 trace(每步推理、工具入参出参、耗时、成本)可回放;接评测集对回归打分。高风险或低置信步骤触发 人在回路 审批,人类反馈回流改进。

可靠性工程

工具失败重试 + 退避,模型/工具不可用时降级到简化流程或人工;设最大步数与成本上限防失控循环;维护固定评测集 + 线上完成率/干预率监控驱动迭代。

常见误区

⚠️ 常见踩坑

把 Agent 做成「LLM + 无约束工具循环」:缺护栏、权限与步数上限会导致失控、越权和成本爆炸;只看单步工具调用成功率而不看端到端任务完成率,会高估系统可靠性。

追问

追问 1如何保证 Agent 可靠,避免无限循环与失控?

用状态机/图固化关键流程,限制 LLM 自由度;设最大步数、最大工具调用数与成本/时间预算,超限即终止或转人工;每步要求模型显式判断「是否完成」并校验工具结果;对重复或低收益动作去重提前终止;失败做有限重试 + 退避,不可恢复则降级。全程 trace 便于复盘失控原因。

追问 2工具/动作的权限与安全如何管控?

最小权限原则:每个工具按角色授权,Agent 只拿完成任务所需权限。敏感动作(写库、付款、删除、外发邮件)走显式人工确认或二次校验;工具在沙箱/受限环境执行,限制网络与文件副作用,控制爆炸半径。输入输出过护栏防 prompt 注入劫持工具调用;所有动作留审计日志,便于追责与回滚。

追问 3生产 Agent 如何做评测与持续迭代?

建固定评测集(含正常用例、长尾与对抗用例),用 LLM-as-judge + 人工抽检对端到端任务完成率、步骤效率、安全性打分,作为发版回归门槛。线上监控完成率、人工干预率、成本/延迟分位与失败模式分布;把失败 trace 归类(规划错、工具错、幻觉、越权)针对性优化 Prompt/工具/护栏,并把难例回流评测集防回归。

延伸学习

与本题相关的知识库文章、术语、工具与行业资讯。