2026-08-01T01:58:06.923Z

蜜蜂 LLM可观察性:审计代理时间线合同

在信任Honeycomb代理时间表之前,测试对话组,代理属性,工具相关性和错误传播.

蜂可以显示一个精细的代理时间表, 在使用这种视图来诊断多代理事件之前,请验证发射范围内的六件事情:一个对话身份,不同的代理名称,调用者侧调用属性,识别的操作名称,稳定的工具调用ID和传播错误. 实际测试不是: 电力测量是否到来? 问题是: 这些领域是否可以将工作投射到正确的对话,代理路线,操作和故障状态中? 下面的审计通过八个无内容的设置来回答这个更狭窄的问题. 它确实是 没有 收集提示或声称一个清洁的时间表证明所需的外部结果. 蜜蜂代理时间线实际上预测什么 蜜蜂记录了代理时间线作为一个视图, 整个对话可以跨越多个痕迹. 谈话密钥是 gen ai.conversation.id . 在对话中,GenAI跨度由 gen ai.agent.name 组合,然后呈现为代理调用,LLM操作和工具调用根据 gen ai.operation.name . 这使得视图有用,但它也使了一些应用提供的领域成为诊断界限的一部分: 它们的位置是 gen ai.conversation.id 决定哪些跨度属于一起. gen ai.agent.name 决定哪个代理拥有车道. gen ai.operation.name 决定一个跨度是否被视为聊天,代理调用或工具执行. gen ai.tool.call.id 允许操作员将工具请求与其结果相关联. 错误状态和例外字段决定是否在受影响的跨度和其母系中可见故障. 蜂蜜的仪器指南标记了对话ID,代理名和操作名字, 它还说,一个缺失的代理名字显示为 Unknown , 同样的指南明确了一个容易错过的归因规则: calling 代理发射 invoke agent 跨度. 调用的代理在自己的独特名称下发射了自己的 chat , execute tool 和其他跨度. 如果一个收藏器转换将呼唤分配给调用者,时间线可能包含每个跨度,但讲错误的因果故事. 在它成为仪表板问题之前,这是一个方案一致性问题. 严格查询不能恢复一个未发出的身份,或者纠正两个工人的代理名字. 在事件发生之前审核投影合同 附带装置包含八个小跨度组件. 没有提示,答案,工具参数,客户标识或秘密. 只有合成对话ID,代理实例,代理名称,操作名称,母链接,工具调用ID和状态字段. 运行从文物文物目录中进行审计: 归类器按照因果顺序进行检查: 1. 建议对话的所有跨度都必须共享一个不空的对话身份证. 2. 每个跨度都必须有一个不空的代理名字. 3. 一个显示的代理名称不能属于多个代理实例. 4. 电话号召者必须拥有 invoke agent 跨度. 5. 操作必须属于投影所使用的记录的GenAI操作组. 6. 一个 execute tool 跨度必须保留工具调用标识符. 7. 一个孩子的错误不能低于一个仍然报告成功的父母. 秩序是重要的. 如果一个对话已经分为 conv 201 和 conv 202 , 同样,如果两个过程都称自己为 worker ,工具调用相关性不能恢复缺失的代理身份. 规则是故意更严格的. 蜜蜂呈现了一些东西. 一个符合规范范围的包裹是证明观察根据声明的合同进行了组合并归类的证据. 八个灯具显示了七种不同的假绿色 简单的比较规则只会检查每个跨度都有对话ID. 它接受了所有八种设置,包括两个不同不空身份证分开一个逻辑对话的情况. 符合性审计接受了以下一个: 固定物 简单的身份验证 合规判决 需要修复 有效对话 通过 CONFORMANT 没有 分片式对话 通过 FRAGMENTED CONVERSATION 传播一个对话ID跨越痕迹边界 不知名代理 通过 UNKNOWN AGENT 发出稳定,不空的代理名称 代理名称碰撞 通过 AGENT NAME COLLISION 给每个代理实例一个不同的操作名称 错误调用归因 通过 INVOKE ATTRIBUTION INVALID 从调用者发射 invoke agent 无认可操作 通过 OPERATION UNRECOGNIZED 重新映射到已记录的GenAI行动 缺失工具呼叫身份证 通过 TOOL CALL UNCORRELATED 在请求和结果中保存呼叫 ID 儿童错误隐藏 通过 ERROR PROPAGATION BROKEN 将故障状态传递给父母 每个判决都保护着不同的运营商决定. 一个零碎的对话隐藏着工作. 一个不知名或相互冲突的名称破坏了所有权. 错误的呼唤归因会逆转谁向谁委托. 不识别的操作将事件放入错误的视觉类别. 一个失踪的呼叫身份证使时间休息不安全. 一个隐藏的孩子的错误会使一个失败的工具成为一个看起来成功的父母. 最后一个案例值得特别关注. 蜂建议始终记录错误,并将工具调用失败传播到母 span. 这种传播并不能证明是否发生了外部副作用;它确实阻止了父母默默保持绿色,而孩子已知失败了. 对于有效的工具,在此远程测量后添加一个单独的目的地收据. 一个暂停加上没有反应是不确定性的效果,而不是再次尝试的许可. 代理时间线可以帮助找到模糊的呼叫;权威的目的地必须决定是否存在效果. 将审计转化为部署鱼 在本地运行设备,然后将一个无害的鱼对话调整到您的仪器路径. 保持加拿大鱼的内容免费,并使其拓形象显而易见: 一个路由器代理调用一个工人; 工人执行一个无害的工具调用; 每个跨度都获得相同的合成对话ID; 路由器和工作者有不同的名称; 呼叫属于路由器; 工具调用保留一个合成调用ID; 一种测试变体故意失败工具,并检查了母体不再成功. 在出口前和任何OpenTelemetry收藏器转换后,比较发放的包裹. 这会发现一个常见的边界故障:源仪器是正确的,但转换名称跨度,丢弃属性,或分配一个静态代理名称每个过程. 住这个转换. 这篇文章检查的OpenTelemetry GenAI代理语义公约标记为 Development ,因此SDK或收藏器升级不是日常的视觉变化. 这是一个方案的改变,应该重新运行鱼. 使用每次发行的小型接受记录: 不要将提示,答案,工具论证或工具结果放入此记录中. 蜜蜂指出,消息内容可以包含PII,并建议将此类内容放在一个收集器可以过的跨度事件中. 符合性鱼需要身份和地位,而不是对话内容. 在此测试停止的地方 通过审计意味着供应的跨度包裹可以一致地投射到蜂蜜代理时间表中. 它不证实: 每一个跨度都达到蜜蜂; 采样保持了关键故障; 一个代理人正在取得有用的进展; 合法的人类等待有所有者和截止日期; 一次确切发生的工具副作用; 承诺的文件,门票,部署或报告存在; 答案是事实上或语义上正确的. 这些是单独的健康问题. 作为诊断的入门票,而不是最终的健康判决. 通过后,根据工作流的风险添加新鲜度,等待状态,效果和结果收据. 这也是该文章的实验不与其他供应商进行比较的原因. 读者决定更早,更具体: 我可以信任我即将调查的对话和代理属性吗? Sidewisp 目前处于私密预览阶段。 它旨在在在现有的代理运行时间中添加一个健康层,但生产代理健康收集,蜜蜂适配器和自动恢复并没有在当前的网站存储库中运送. 如果您正在为您的代理人定义证据的边界, 来源 蜂蜜:AI仪器代理 时间表 在检查的承诺中,OpenTelemetry GenAI代理语义公约