Skip to content

Agent Decision Record:Agent 决策记录怎么设计 ​

这篇文章解决什么问题 ​

Agent 经常会做决策:选择哪个工具、是否检索、是否需要审批、是否拒答、是否切换模型、是否重试。问题是很多系统只记录最终输出,不记录“为什么这么做”。一旦线上出错,就很难判断是策略错、模型判断错、权限错还是上下文错。

Agent Decision Record 的目标是为关键决策留下结构化证据,让系统可解释、可审计、可回放。

哪些决策需要记录 ​

决策类型示例
route_decision走 RAG、SQL、工具、人工接管还是拒答
tool_decision选择哪个工具、为什么不选其它工具
approval_decision是否需要人工审批
safety_decision是否触发安全策略、是否拒答
retry_decision是否重试、重试几次、是否降级
model_decision使用哪个模型、是否切换供应商
context_decision纳入哪些证据、裁剪哪些历史

推荐字段 ​

字段说明
decision_id决策唯一 ID
run_id / step_id所属执行步骤
decision_typeroute、tool、approval、safety、retry、model、context
options候选选项
selected最终选择
rationale决策理由摘要
evidence_refs支撑决策的上下文、规则、证据或工具结果
policy_version策略版本
confidence置信度或评分
risk_level风险等级
reviewer人审或自动策略
outcome决策后的结果

记录粒度 ​

不要记录所有 token 级推理,也不要只记录最终答案。建议记录“会影响外部行为”的关键节点:路由、工具、审批、安全、重试、降级、上下文裁剪。

与审计日志的区别 ​

类型关注点
Audit Log谁在什么时候对什么对象做了什么动作
Decision Record系统为什么选择这个动作而不是其它动作
Trace执行过程发生了哪些步骤和事件

三者可以共享 run_id,但用途不同。Audit 负责追责,Trace 负责排障,Decision Record 负责解释和复盘。

示例 ​

字段值
decision_typetool_decision
optionssearch_docs、create_ticket、ask_user
selectedsearch_docs
rationale用户问题需要先查制度,当前不满足创建工单条件
evidence_refscontext_pack_123、policy_tool_risk_v4
risk_levelR1
outcomeretrieved 5 chunks

面试表达 ​

可以这样讲:

> 我会把 Agent 的关键决策做成 Decision Record,比如为什么选择某个工具、为什么触发审批、为什么拒答或降级。它和普通日志不同,记录的是候选项、最终选择、依据、策略版本、风险等级和结果。这样线上问题可以解释,也可以把错误决策转成评测和策略迭代。

落地检查清单 ​

  • [ ] 路由、工具、审批、安全、重试是否都有决策记录?
  • [ ] 是否记录候选项而不是只记录最终选择?
  • [ ] 是否能关联 context_pack、policy_version 和 evidence_refs?
  • [ ] 是否能把错误决策转成 eval case?
  • [ ] 是否避免泄漏 chain-of-thought,只保留可审计理由摘要?