
Agent 线上挂了,最怕的不是报错本身,而是五分钟后仍然说不清:卡在哪一步、调了什么工具、花了多少钱、是被策略拦住还是模型自己绕圈。普通应用日志回答不了这些问题,因为 Agent 的关键路径分散在模型调用、工具执行、审批暂停和子 Agent 之间。
Harness 的可观测性,目标只有一句话:任意一次失败,都能用同一条 Trace 把故事讲完。
错误分类比堆栈更重要。没有分类,评测里的「失败」无法归因,优化只能靠猜。
一次用户任务一个 trace。其下至少有:
所有事件共享 trace_id、session_id。没有共享 ID,瀑布图再好看也拼不出因果。
原样导出 Prompt、客户资料、凭据,会让 tracing 成为新的泄露通道。导出前先脱敏:参数做摘要,密钥打码,按角色控制可见范围。
用户看操作记录,运维看错误与成本,评估看可复现轨迹。底层可连通,展示与保留期限不应完全相同。
步数、token、美元、墙钟、工具调用、子 Agent 深度,都应在模型外部计数。超限不是只发告警,而是安全暂停:先写 budget.warn,再在 pull point 停住,把半截状态收干净。
父任务给子 Agent 划拨预算,子超限只杀子,尽量不直接烧穿父。否则并行探索会变成账单事故。
可观测的终点不是看板,而是闭环:一次真实失败被定位后,导出为评测样本,进入回归集,挡住下一版发布。
如果你的 CI 只包含事先想得到的用例,它永远落后于生产。Trace 完整,失败才能沉淀成门禁;Trace 残缺,复盘就只能靠回忆。
Harness 可观测性不是「多打几行日志」,而是给每次运行一张可回放的收据。能回答卡点、动作、成本、停因四件事,排障才从玄学变成工程;再把失败送进评测,系统才会越跑越稳,而不是越跑越盲。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。