返回课程目录
用权限、恢复和成本控制自动化按需:协作与持续状态 · 11 / 11

记录决定,而不是 Prompt:AI Agent 的 trace schema

一套 Agent 运行 trace:记录身份、工具效果、审批、状态变化和成本,但不默认保存秘密或完整 Prompt。

所属问题主题Agent 架构与协作
本课完成物 · 单次运行轨迹复核表更新于 · 2026年10月29日
本分支已读0 / 11
学习方式

先带着一个真实任务阅读,再完成页面中的工作台。能让另一位同事复核你的产物,才算完成本课。

多数 Agent 日志不是聊天记录,就是一堆模型耗时。两者都回答不了事故复盘真正要问的:谁批准了哪个动作、碰了哪份数据、结果是什么、结果未知时系统做了什么?

Trace 是决策记录。它把用户请求连到 Agent 执行的步骤、调用的工具、改变的状态和允许它的人。它不是 Prompt 的副本。

Prompt 日志不是 trace

Prompt 日志告诉你模型看到了什么,却不会告诉你:

  • 动作针对哪个租户或记录;
  • 工具调用是执行了、失败了,还是超时了;
  • 谁批准了有后果的步骤;
  • 外部系统里什么状态变了;
  • 重试是否造成了重复效果。

Prompt 原文还是默认不该长期保存的东西。它包含客户消息、检索文档、误粘贴的凭据和个人数据。为每次运行保存它,等于再造一份不受治理的数据副本。

Trace 可以存输入的哈希或脱敏摘要,但它的主要职责是重建决策路径。

决策记录

按 span 思考。一次运行有根 span;每个模型轮次、工具调用、审批和状态变化都是子 span。Schema 应回答五个问题:

问题Trace 字段
谁在行动?用户 ID、租户、服务身份、会话
任务是什么?任务 ID、运行 ID、任务类型、政策版本
Agent 做了什么?模型/版本、步骤、工具名、参数哈希、结果状态
谁允许的?审批 ID、审批人、范围、时间
改变了什么?外部效果状态、资源 ID、前后状态哈希
花了多少?输入/输出 token、工具费、延迟、重试次数

这些字段刻意围绕决定和效果,而不是文字。它们足够小,可以保留更久;也足够具体,能回答事故复盘。

记录什么,不记录什么

记录:

  • 运行与任务标识;
  • 用户与租户标识,或假名键;
  • 模型与 Agent 版本;
  • 工具名、参数哈希、结果状态、耗时;
  • 审批 ID、审批人、批准范围;
  • 状态变化与外部效果状态;
  • 重试次数与原因;
  • 成本与延迟;
  • 错误类别与恢复动作。

不记录:

  • 默认不存完整 Prompt 或完整检索文档;
  • 凭据、token、cookie、连接串;
  • 客户姓名、邮箱、电话或自由文本笔记,除非有具体且经过审查的需要;
  • 含个人数据的原始工具参数;
  • 模型思维链。

如果调试确实需要 Prompt 原文,用抽样、短期、受访问控制且脱敏的存储,不要让它成为默认 trace。

案例一:退款 Agent 的未知付款

退款 Agent 调用付款工具,调用超时。运行状态写“失败”,但付款可能已经成功。

有用的 trace 会显示:

  1. 工具调用 span,带幂等键和超时错误;
  2. 外部效果状态:未知,不是失败;
  3. 后续按幂等键查询支付方的 span;
  4. 结果:已确认、已拒绝,或仍未知;
  5. 仍未知时被通知的人类负责人。

没有外部效果状态,看板记一次失败,客户可能已经收到退款;没有幂等键,操作员无法查询;没有审批 ID,没人知道谁授权的。

Trace 不需要客户消息,它需要付款引用和状态。

反例:把完整 Prompt 存进 trace

一个团队为调试检索问题开启详细 trace,把完整 Prompt 存进第三方观测工具,其中包含客户邮箱和内部政策片段。

调试很成功。三个月后,团队说不清工具里有哪些客户数据、保留多久、谁能搜索。一个隐私请求变成工程项目。

修复不是“关掉 trace”,而是把调试上下文和决策记录分开:

  • 决策记录保留哈希、ID、状态和审批;
  • 调试上下文抽样、脱敏、受访问控制,只保留几天;
  • trace 通过 ID 链接调试记录,而不是复制内容。

这样既保留事故复盘能力,又不建一个影子数据仓库。

最小 schema

一次工具调用的 JSON 记录可以这样开始:

字段类型示例
run_idstringrun_01J...
task_idstringrefund-1042
tenant_idstringtenant_a
stepinteger7
toolstringpayments.refund
args_hashstringsha256:...
idempotency_keystringrefund-1042-v1
approval_idstringapr_88
statusenumok、error、timeout、denied
effect_statusenumconfirmed、rejected、unknown
resource_idstringre_123
duration_msinteger842
cost_usdnumber0.004

字段名不重要,区分才重要:超时不等于失败,审批不是一行日志,外部效果状态独立于运行状态。

重放与保留

Trace 支持两种重放:

  • 决策重放: 重建发生了什么、谁批准、改了什么。只看 trace 就应该能做到。
  • 执行重放: 在沙箱里重跑工作流。需要保存输入和安全环境,绝不能再次触发外部效果。

按用途设保留期。决策记录可能需要 90 天或更久;调试上下文应更短。访问按角色控制:客服能看客户案例,但不能看所有租户的 trace。在写入时脱敏,不要等到导出。

不适用边界

这套 schema 适合会读、写、通知或付款的工具型 Agent。它不是完整可观测平台、合规档案,也不能替代应用日志和审计系统。它不捕捉模型推理,也不应尝试。如果团队还分不开决策记录和 Prompt 原文,先从工具调用与审批 span 开始;这是事故复盘的最低要求。一个回答不了“谁批准了这个效果”的 trace,还不是 trace。

核验来源

这篇内容参考了哪些一手资料?

来源用于核对定义、风险边界或操作事实;判断框架和工作台由 AI Vista 独立编写。

  1. OpenTelemetry — Generative AI semantic conventions核验于 2026-10-29
  2. W3C — PROV Overview核验于 2026-10-29
  3. OpenAI Agents SDK — Tracing核验于 2026-10-29

AI 工具可能协助研究、提纲和语言编辑;事实、案例和最终措辞由编辑复核。发现错误请通过联系页提交更正。

可带走的工具

单次 Agent 轨迹复核表

把可见动作、实际调用、人工改判与权威结果逐行对齐。

agent / trace / review
什么时候用一次 Agent 运行出现有争议的结果、意外动作或证据缺口之后
填写后得到一份按事件关联的首个偏离点结论、证据等级与安全复测方案

此工作台会在当前浏览器保存草稿。只填合成运行编号、脱敏摘要和受控证据位置;不要粘贴用户原文、凭据、机密工具返回或内部推理。

使用顺序01—03
  1. 01
    写任务摘要用脱敏摘要写明要交付的结果。
  2. 02
    补齐判断字段写清输入类别、风险、证据位置和接手方式。
  3. 03
    交给同事复核对方能复述结论,工具才算完成。
完成信号字段齐全,边界明确,可被复核。
编辑内容会自动保存

本课已读

完成工作台,再标记已读。

已读状态会更新课程目录与学习进度。

  1. 01字段齐全
  2. 02案例走过
  3. 03可以复核

文章实践笔记

读到这里,留下一条可复核的判断。

下方虚构示例展示写法;你的笔记只保存在当前浏览器。记录哪一步有效、哪个边界不成立,或一个值得测试的问题。

↗
关联文章记录决定,而不是 Prompt:AI Agent 的 trace schema查看示例与本机笔记 →
0 条示例与本机笔记观点 · 问题 · 建议