全链路审计留痕:Agent 的每次调用如何做到可追溯
智能体的行为由多次调用组成:读数据、调工具、生成结果,中间还可能触发别的智能体。出问题时只看到最终结果,无法定位是哪一步出的偏差。要做到可追溯,需要在设计阶段就把记录点布置好,而不是等出问题再去补日志。
一次完整调用包含哪些记录点
把一次智能体任务拆开,至少包含六个记录点。
触发信息。谁或什么事件发起了这次任务,触发时间与来源。这是链路的起点,缺少它就无法关联到具体的业务场景。
上下文快照。模型读取了哪些数据,包括检索命中的文档、查询到的记录。这里不需要保存全部原文,但需要保留标识与版本,以便回溯。
模型与参数。使用的模型名称与版本,以及关键参数如温度、上下文长度。同一个模型的不同版本可能给出不同结果,版本信息不可省略。
判断过程。如果涉及多轮推理或工具选择,记录每轮的输入与输出摘要,以及选择了哪个工具及理由。这一步记录量最大,需要控制颗粒度。
执行动作。调用了哪个工具、传入了什么参数、返回了什么结果。这是副作用发生的位置,记录要求最严。
最终输出与去向。生成了什么结果,输出到哪些系统或对象。影响范围由此确定。
六个记录点串起来,才能还原一次调用的完整过程。

记录要能串成链路
单点记录的价值有限,关键在于能串起来。做法是给每次任务分配唯一标识,所有记录点都带上这个标识,形成主键关联。如果任务触发了子任务或调用了其他智能体,子任务的标识要记录在父任务的链路里。
链路完整性的一个检验方法是:拿一个最终输出,能否反向找到它的全部输入与中间步骤。做不到就说明有断点,常见断点出现在跨系统调用与异步任务上。
另一个要求是记录本身的完整性。记录过程不能影响主流程的可靠性,写入失败不应该导致任务失败,但也不能静默丢弃。可行的做法是异步写入加本地缓冲,失败时重试并告警。
存储与查询的权衡
全链路记录的体量很大,不能无差别地长期保存。合理的做法是分级。
关键节点的记录长期保存:执行动作、最终输出、影响范围。这些是审计与追责的依据。
中间过程记录短期保存:上下文快照与逐轮判断,保留期按排查需要设定,通常以周计。
摘要长期保存:把完整记录压缩成摘要,保留可检索的索引。
查询能力同样重要。记录要能按任务标识、时间范围、调用方、工具名称等维度检索。缺乏检索能力的日志,实际使用时会退化成人工翻找。
