资讯动态

AI Agent监控实战:从黑盒到可观测性的分层方案

发布时间:2026/10/20 23:53:33 来源:尧图企业网站定制
干过传统后端监控的同学第一次接触AI Agent项目时基本都会有个共同感受以前那套看请求量、看错误率、看响应时间的监控招数放到Agent身上突然不灵了。你明明部署了一堆指标采集和链路追踪可面对一个会自主规划、动态调用多个工具、还可能一本正经胡说八道的Agent你依然说不清楚它刚才为什么选了那条路、下一步打算干什么、Token又悄悄烧掉了多少。我参与过几个Agent项目的落地和线上运维这个“黑盒”问题几乎是每个团队绕不过去的坎。这篇实战总结就是围绕“从黑盒到透明”这个目标讲讲我在给Agent做运行监控时踩过的坑、沉淀下来的分层监控方案以及可以直接照抄的埋点方法和告警配置。不管你是后端出身还是AI应用工程师只要在做Agent类产品这篇内容应该都能帮你少走不少弯路。1. 为什么说Agent是个“新型黑盒”1.1 传统监控的底气在这里用不上传统服务的监控体系建立在“确定性”之上。请求进来经过几个固定的服务节点返回结果整个调用链是静态的、可枚举的。我们习惯用QPS、错误率、平均延迟、慢查询这类指标去刻画系统健康度因为同样的输入大概率产生同样的输出出了问题也能通过调用链快速定位。Agent彻底打破了这套假设。一个Agent的运行路径不是预先写死的而是模型根据用户输入现场生成的。上一秒它还在调用搜索工具下一秒可能就跳去写代码再下一秒又回头修订自己的计划。同一个问题不同时间问它走的路径完全不一样。这就意味着静态拓扑图失效了、预置的埋点位置失效了、以固定接口为粒度的监控模型也失效了。我刚开始做Agent监控时试图沿用传统网关日志直接拼接一个“请求-响应”日志结果发现根本拼不出Agent内部的完整行为。一个用户问题可能触发五轮模型推理、七八次工具调用它们散落在不同的日志片段里没有关联ID就完全串不起来。所以第一课就是必须为Agent单独设计一套以“会话-步骤-调用”为粒度的观测模型而不是试图硬套传统APM的框架。1.2 Agent运行的三重不确定性把Agent称为黑盒不是因为技术上无法观测而是因为它同时存在三重不确定性每一重都会让传统监控手段失效。第一重是模型输出的随机性。即使温度设置为0不同批次调用也可能给出风格不同但语义相近的结果这导致我们不能用“响应内容是否一致”来判断系统是否正常。第二重是规划路径的不可预测性。模型可能选择一次调用就解决问题也可能绕一大圈调用五个工具才回来这中间的路径每个用户每个会话都不一样你无法预设“正常流程”是什么。第三重是成本与质量的强耦合。Agent的Token消耗不像传统带宽那样稳定一次失败的规划可能白白烧掉上万Token而且这些Token往往花在了错误的方向上。这三重不确定性叠加起来给监控提出的核心要求就是不能只监控“系统有没有跑”还要监控“系统跑得值不值、跑得对不对”。前者是资源维度后者是质量维度两个维度缺一不可。1.3 监控要回答的五个核心问题我给多个Agent项目搭建监控时通常会把需求收敛成五个问题。清楚这些问题后面设计方案才不会跑偏。用户请求进来后Agent到底做了哪些事顺序是什么每一步调用了哪个大模型、哪个工具耗时多少花了多少Token工具调用有没有失败失败后Agent是怎么反应的有没有反复重试同一个错误操作最终回复质量如何是真解决了用户问题还是生成了一个看似合理但实际错误的答案这次会话的成本是多少如果成本异常高是哪个环节导致的把这五个问题映射到技术上分别对应链路追踪、结构化日志、指标统计、质量评估和成本核算。接下来我按这五个维度展开讲。2. 从黑盒到透明监控体系的分层设计2.1 链路追踪还原Agent的每一步决策链路追踪是整个Agent监控体系的地基。没有它后面所有数据都是孤岛。我给Agent设计的追踪模型分为三层会话Session、步骤Step、调用Call。会话对应一次完整的用户请求从用户输入开始到最终回复结束它是最大的追踪单元。步骤对应Agent在规划中执行的每一个行为单元比如“生成计划”“调用工具A”“根据工具结果生成回答”。调用则是最细粒度的资源操作包括每一次大模型API请求、每一次工具函数执行、每一次外部数据源访问。每一层都通过一个traceId关联步骤之间记录parentId来还原父子关系。这样回放时会话时就能看到完整的树形结构哪一步触发了哪些子步骤子步骤又分别调用了哪些资源。我在实际项目里见过最典型的收益场景用户反馈“Agent回答很慢”通过回放链路图一眼就能看出慢的根源是有一步工具调用超时后Agent重试了三次而不是模型本身慢。没有链路追踪这个结论靠日志猜一周都未必猜准。实现上我不建议自己造一套完整的分布式追踪系统直接用成熟的开源可观测标准加上一个收集服务即可。Agent应用通常部署在单机或少量容器上追踪数据通过统一协议上报后端用现成的可视化平台展示。我给团队落地时自己只写了一个轻量trace封装模块把Agent框架的调用点包一层数据格式遵循标准的span语义后面接什么展示平台都可以换。2.2 结构化日志把提示词、回复、工具结果全部落盘链路追踪解决的是“流程是什么”结构化日志解决的是“内容是什么”。这两者必须配合使用。Agent日志和传统日志最大的区别在于传统日志记录的是系统事件Agent日志记录的是模型交互内容。也就是说每一次发送给大模型的完整提示词、模型返回的完整回复、工具的入参和出参、中间状态变化都要落盘。这些数据不仅是排查问题的依据也是后续优化提示词、评估模型效果的原始素材。日志格式我强烈建议直接用JSON结构化输出不要用纯文本拼接。一个典型的Agent日志字段包括traceId、spanId、会话ID、事件类型、时间戳、模型名称、提示词摘要、完整回复、Token用量、工具名称、工具参数、工具返回摘要、耗时、错误码。注意两个细节一是提示词和回复必须区分存储避免混在一起没法检索二是涉及用户隐私和大段内容时可以拆分元数据走索引大文本走对象存储按traceId回查。我还建议给日志加一个“摘要”字段。比如模型回复全文可能几千字但排查时往往只需要知道大致内容所以埋点时会同时记录一个截取前200字的摘要和完整内容查询时先看摘要需要细节再拉全文。这个习惯能显著降低日志系统的存储和检索压力。2.3 指标体系算清楚Token、成本与时延日志和链路是定性的指标是定量的。Agent监控的指标体系建议从三个维度搭建。第一个维度是资源指标包括请求量、Token消耗量、Token输入输出比、大模型调用次数、工具调用次数、平均每次会话的大模型调用数。第二个维度是性能指标包括首Token延迟、单轮模型调用延迟、一次完整会话的总耗时、工具调用的P50/P95/P99延迟、超时次数和重试次数。第三个维度是稳定性指标包括工具调用失败率、模型返回错误率、会话异常终止率、解析失败次数。这些指标不要求全部从头计算很多可以直接从链路追踪数据里聚合出来。我的做法是链路数据实时上报到收集端后台以会话ID为粒度做聚合生成指标数据存入时序数据库然后接入看板展示和告警。Token数据单独从每次大模型调用的响应头里提取输入Token和输出Token要分开记录因为计费规则不同后面算成本会用到。一个容易被忽略的指标是“无效Token占比”。很多Agent项目跑了一段时间后模型会在规划时反复把大段历史内容重复塞进上下文导致输入Token持续膨胀。我靠这个指标抓出过好几个隐藏很深的成本黑洞。建议每个会话都统计输入Token里重复内容的大致占比超过阈值就告警。2.4 质量评估层让模型自己当质检员监控系统如果只管运行不管质量那只是做到了一半的透明。Agent最终输出到底是好是坏传统指标完全看不出来这时候需要引入质量评估层。质量评估层我的实践方案有三条线并行。第一条线是规则校验用正则或约束条件检查输出是否符合基本格式要求比如是否包含必要字段、是否超出长度限制这类问题最容易被用户感知但技术含量最低。第二条线是模型自评即用一个大模型作为评判者对Agent的最终回复从相关性、完整性、准确性、安全性几个维度打分。这个方案也被称为“模型即评判”成本可控且能批量化。第三条线是用户反馈闭环在界面里提供点赞、点踩和理由输入把真实用户评价回传给监控系统。这三条线中模型自评需要特别注意采样策略。每次会话都让评判模型跑一遍完整评估成本可能比Agent本身还高我一般按固定比例采样比如10%的会话走完整评估剩下的只做规则校验。同时评判模型要缓存结果看到相似度高的会话就直接复用上次评分能省不少Token。质量评估数据和链路数据一样也要带上traceId这样某个会话被用户点踩后你可以直接回放链路定位到是哪一步产生了有问题的中间结果。3. 监控系统搭建实操3.1 方案选型自研还是用开源追踪服务动手前先确定技术选型。Agent监控目前有两条路一条是完全自研收集端和展示端适合数据安全要求高、Agent类型比较复杂、需要深度定制的团队另一条是使用现成的开源可观测方案标准协议上报加上已有的可视化平台适合大多数快速迭代的团队。我个人推荐大部分团队走第二条路。Agent监控的难点从来不在收集和展示而在埋点设计、数据模型和告警策略这些换什么工具都省不掉。开源方案能让你把精力集中在真正有价值的地方。数据安全性也不用太担心标准协议支持本地存储数据不需要出内网敏感信息照样可控。我这次实战采用的架构是Agent服务内嵌一个自己封装的trace模块负责生成span、记录日志、采集指标数据通过标准协议发送到本地的收集服务收集服务完成索引和聚合后写入存储上层用开源可视化平台做看板和告警。整个链路都是内网闭环不依赖任何外部服务稳定性有保障。下面是简化版的封装接口设计核心就四个方法# trace模块核心接口简化示意 class Tracer: def start_span(self, session_id, name, span_type, **attrs): 开启一个追踪片段span_type可以是plan/llm/tool/answer def end_span(self, span_id, statusok, **attrs): 结束追踪片段记录状态、耗时、Token等 def log_event(self, span_id, event_type, payload): 在片段内记录一条结构化事件如模型回复、工具结果 def observe_metric(self, name, value, session_idNone, span_idNone): 上报一个自定义指标如成本、延迟、Token数这四组接口看起来简单但已经能覆盖Agent监控90%的需求。后面所有埋点代码都基于这套接口。3.2 给Agent主循环埋点Agent的核心是“规划-执行-观察-再规划”的循环埋点的关键就是把这个循环的每一次迭代都记录清楚。以目前主流Agent框架的典型流程为例主循环的埋点代码大致长这样def agent_run(user_query: str): tracer get_tracer() session_id generate_session_id() # 1. 开启会话级span记录用户输入 root_span tracer.start_span( session_idsid, nameagent_run, span_typesession, queryuser_query ) tracer.log_event(root_span.id, user_input, {query: user_query}) plan None step_index 0 while True: # 2. 每一步生成计划单独开span plan_span tracer.start_span( session_idsid, namefplan_step_{step_index}, span_typeplan, parentroot_span.id ) plan llm_plan(user_query, historyhistory) tracer.end_span(plan_span.id, statusok, modelplan_model, tokensplan.tokens) # 3. 循环执行计划里的动作 for action in plan.actions: action_span tracer.start_span( session_idsid, nametool_call, span_typetool, parentplan_span.id, tool_nameaction.tool, paramsaction.params ) result execute_tool(action) tracer.log_event(action_span.id, tool_result, {summary: result.summary}) tracer.end_span(action_span.id, statusfailed if result.error else ok, latencyresult.cost_ms) if result.error: break # 4. 判断是否结束记录回答 if finish: answer_span tracer.start_span(..., span_typeanswer) reply llm_answer(...) tracer.log_event(answer_span.id, model_reply, {content: reply}) tracer.end_span(answer_span.id, tokensreply.tokens) break step_index 1 # 5. 会话结束时上报聚合指标 tracer.observe_metric(session.total_cost, calc_cost(sid)) tracer.observe_metric(session.steps, step_index, session_idsid) tracer.end_span(root_span.id, statusok)埋点时有几个细节要特别注意。第一span的开启和结束必须成对出现哪怕异常也要在finally里确保end_span被调用否则追踪数据会大量丢失。第二计划span和动作span要有明确的父子关系这样回放时才能看出“这个动作是由哪一步计划触发的”。第三Token数据必须在每次模型调用后立刻记录不能等到会话结束再补因为中间过程一旦出错现场数据就不完整了。3.3 工具调用的追踪、超时与重试工具调用是Agent出错最多、也最值得监控的环节。一个Agent可能要调用搜索、计算、数据库、HTTP接口等各类工具每一类工具都有不同的失败模式。工具埋点建议比普通步骤多记录几类字段工具入参原文、工具返回的状态码、返回数据的规模和格式、是否触发重试、重试次数、最终是否放弃。入参和返回都要做大小限制比如过大的返回只记录截断摘要和原始存储地址避免监控本身拖慢Agent。超时和重试的逻辑要单独设计。我见过不少团队把超时时间设成和模型调用一样结果工具卡住后Agent整条链路都被拖死。我的建议是普通工具超时设置在3到5秒重试最多两次独立的外部接口可以放宽到10秒但重试次数降到一次每条会话的总工具调用次数设一个上限比如10次超过即强制终止。这些参数需要根据业务调整但原则是宁愿工具失败让Agent重新规划也不能让它在一个工具上反复消耗时间。重试时还要注意一个陷阱Agent在工具失败后重试常常不会换个参数而是原封不动再调一次。这种情况下重试多少次都是浪费Token。所以埋点时要记录工具参数哈希检测到连续多次相同参数调用时直接给Agent注入一条提示建议重新审视参数是否正确而不是继续重试。这个机制发布后我遇到的一个死循环问题当场就解决了。3.4 采样策略与数据存储全量记录Agent的提示词和回复存储成本会随用户量增长快速膨胀。这里需要一套务实的采样策略。我的经验是按“会话维度”采样三层第一层全量记录链路元数据和指标数据量小是监控和告警的基础第二层按一定比例记录结构化日志比如默认记录全部但只保留摘要完整正文异步写对象存储第三层只对特定流量做全量详细记录包括异常会话、用户反馈为负面的会话、随机抽样的1%会话以及后台主动标记的追踪会话。存储方面链路数据适合用支持分布式检索的时序方案结构化日志建议上全文检索方案给traceId、会话ID、工具名称建索引大字段单独拆出去指标数据进时序数据库保留90天原始大文本进对象存储保留30天配合生命周期规则自动清理。这里有一个经常被忽略的点不要把所有内容都塞进同一个存储系统。链路、日志、指标、大文本存储的特性完全不一样硬塞在一起要么性能差要么成本高。我早期把所有数据都写进日志系统一个星期后查询就慢得离谱后来拆开存储才恢复正常。3.5 告警规则怎么配告警是监控的出口配得不好要么天天被噪音轰炸要么关键故障一个都没发现。Agent告警我分成三层来配。第一层是基础设施类上传统系统已有能力包括链路不可用、大模型服务异常、Agent进程崩溃。第二层是运行指标类包括工具调用失败率超过20%、P95会话延迟超过30秒、单次会话Token消耗超过预设上限、连续N次会话出现相同工具重试。第三层是业务质量类包括模型自评分数低于阈值、用户负面反馈率短时飙升、无效Token占比超过40%。配告警时切记一个原则告警必须可行动。每条规则都要能回答“收到告警后我该干什么”。比如“工具调用失败率超过20%”这个告警发出后操作者能直接去看失败的工具类型和错误码。反过来如果一条告警规则没有任何对应操作手段那它只会变成被静音的噪音。阈值不要一次性拍脑袋定死。上线第一周先只记录不告警收集正常数据后按P95或者均值加三倍标准差来定初始值运行两周后再根据误报率调整。我见过最离谱的告警是“Token消耗超过1000就报警”结果正经用户一次会话就要烧好几千Token告警从早响到晚最后所有人直接无视了它。4. 关键指标的计算与阈值设定4.1 Token消耗的精确计算公式Token是Agent的货币成本监控必须精确到每次模型调用。对于支持结构化返回的大模型API每次响应的用法字段里会同时给出输入Token、输出Token和缓存命中情况。成本计算公式如下单次调用成本 输入Token数 / 1000 × 每千输入价格 输出Token数 / 1000 × 每千输出价格注意三个细节第一不同模型的输入和输出单价不同必须按模型分别计价再汇总全局用一个平均价会算得不准第二很多服务商对命中缓存的输入Token有折扣价计费字段要单独记录不能混在一起按原价算第三每次会话的成本不是简单累加每一次调用的账单而是要按实际计费规则重算因为批量接口、特殊参数都可能导致标称Token量和实际计费量不一致。我在实际项目中用了一个成本计算函数挂在会话结束时调用def calculate_session_cost(records: list[ModelCallRecord]) - float: total 0.0 for r in records: input_price PRICE_TABLE[r.model][input] # 每千Token价格 output_price PRICE_TABLE[r.model][output] # 缓存命中部分按折扣价计费 cached_tokens r.input_cached_tokens fresh_tokens r.input_tokens - cached_tokens total fresh_tokens / 1000 * input_price total cached_tokens / 1000 * input_price * CACHE_DISCOUNT total r.output_tokens / 1000 * output_price return round(total, 4)把价格表放进配置中心的实测经验当你换了新版模型或服务商调整价格时只需要改配置不用改代码。我还习惯在成本旁边同时记录“如果不用缓存需要多少钱”这样能直观看到缓存策略带来的节省效果方便给业务方做汇报。4.2 成本与预算管理成本监控的意义不只是算账而是预防失控。Agent的Token消耗具有非线性特征一次意外的死循环可能让单个会话成本飙到正常值的几十倍。我的做法是给成本设三道防线。第一道是单次会话成本上限阈值设为该业务平均会话成本的5倍例如平均成本0.5元上限就是2.5元超过立即终止当前会话并返回兜底回复。第二道是单用户每日成本上限防止某个用户高频触发高消耗场景阈值可以是平均用户日消耗的3倍加上一定绝对值。第三道是全局每日成本预算阈值按前7天同时间窗口消耗的1.5倍设定防止上线新功能或提示词改动后整体成本失控。三道防线全部在监控系统里配置每五分钟检查一次接近阈值时先发预警超过阈值直接执行熔断动作。熔断动作不是一刀切关停服务而是降级为简单模式比如不让Agent调用工具只用一个轻量模型直接回复保证用户基本可用。这套机制上线后我再没遇到过月初费用超标月底疯狂救火的局面。4.3 定位延迟瓶颈的两条路径用户感知到的“Agent慢”通常由三类原因构成大模型推理本身的耗时、多次模型调用串行累积的耗时、工具调用超时重试带来的额外耗时。定位时要分路径排查。第一条路径是直接看链路图上的耗时分布。打开一个慢会话的追踪视图每个span的耗时一眼可见。如果单次模型调用就花了八秒问题在模型侧需要换更快的模型或者精简提示词如果是模型只花了两秒但整个会话花了四十秒问题大概率在中间步骤过多需要让Agent减少规划轮次或者并发执行工具如果是某次工具调用反复超时问题在工具本身的稳定性或者网络链路。第二条路径是从指标看趋势。按小时维度聚合P95会话耗时如果趋势缓慢上升说明问题在渐变性恶化比如上下文越来越长导致模型推理变慢如果是突然跳升说明是一次性故障配合告警定位变更。这两条路径可以同时进行链路图管单点细节趋势图管整体演进。4.4 阈值经验值参考阈值没有放之四海皆准的标准但基于我跑过的多个项目可以给一组初始参考值。新项目可以先用这些值启动跑两周再根据实际分布调整。监控项建议初始阈值说明单次模型调用延迟P95小于5秒超过后先看模型规格和上下文长度单次会话总耗时P95小于30秒长任务可放宽短对话建议收紧工具调用失败率大于20%告警同类工具连续失败更要关注单次会话重试次数大于3次告警连续相同参数重试直接触发熔断单会话工具调用数大于10次告警多数正常会话不超过5次单会话成本超限均值5倍结合业务客单价调整无效Token占比大于40%告警高说明上下文管理有问题模型自评质量分低于3.5分(5分制)告警需要人工抽检确认这套阈值不是拍脑袋定的延迟参考了主要模型服务商的公开性能水平和用户耐心边界工具调用次数来自对正常Agent任务路径的经验统计成本倍数则结合了成本波动方差。跑起来之后一定要用真实数据反向校准否则阈值要么太灵敏要么太迟钝。5. 常见问题与排查实录5.1 高频问题速查表把我在多个Agent项目运维中遇到的高频问题整理成速查表排查时先对号入座。现象可能原因排查手段Token消耗突然翻倍上下文膨胀、历史消息重复注入查无效Token占比指标、看会话链路里输入Token趋势会话耗时飙升工具超时重试、规划轮次过多拉链路图看哪个span耗时长、哪个步骤重复工具调用反复失败工具参数格式错、外部服务不可用看工具入参和错误码检查重试参数哈希模型返回格式错乱提示词约束不足、模型版本变化看完整回复内容检查解析器容错逻辑生产环境表现差测试数据和真实用户差异大对比会话采样确认提示词对长尾输入是否鲁棒监控数据大量缺失埋点没成对、异步上报丢失检查end_span是否被异常路径跳过检查上报队列告警频繁误报阈值过紧、采样偏差用近一周P95重算阈值给告警加持续时间条件这个表是动态维护的每次处理完一个线上问题我都会把问题现象和排查结论补充进表里。坚持半年后团队排查问题的平均耗时从小时级降到了分钟级很多问题看一眼表就能直接定位。5.2 案例一Token费用莫名飙高某次上线后第三天成本看板显示每会话平均Token消耗从9000涨到了三万八涨幅超过四倍。第一反应是提示词改动是否有问题但回查代码发现当天并没有发版。后来我打开一个高消耗会话的链路图发现Agent的规划里出现了大量重复步骤同一个工具以几乎相同的参数被调用了七次。再看结构化日志原因浮出水面——某个外部接口在前一天改版后返回的数据结构变了Agent每次解析都失败但解析失败的提示没有被正确反馈给模型模型以为是自己没拿到数据就反复用同样策略再次获取。这是个典型的信息断层问题工具返回了但工具“没告诉模型”内容解析失败。修复方案有两步一是埋点增加工具解析失败的事件类型失败时直接返回结构化错误码给模型二是告警里加一条“同一工具连续调用超过5次”的规则当场拦截。后面这类问题再没造成过成本失控。5.3 案例二Agent陷入工具调用死循环另一个项目里Agent在处理“比较三个方案优劣”这类任务时会反复调用计算工具一个会话最多跑了二十多次工具调用耗时三分钟成本爆表。排查链路图后发现死循环的触发机制模型在计算工具返回数值后不是直接比较而是再次生成一段新的规划要求“再做一次精确计算”然后计算工具把同样的数值又返回一遍模型又不满意再生成规划。这本质上是模型对数值结果缺乏置信度陷入了自我怀疑。我在整体设计里加了一个“工具结果置信度”机制当工具返回的数据类型和格式完全符合预期时在提示词中明确标注“该结果为权威数据可直接引用”同时增加总调用次数上限达到上限后强制进入总结阶段。加上这个约束后单会话平均工具调用次数从八次降到了三点五次用户反馈反而更好了因为等待时间短了。5.4 案例三测试环境一切正常生产环境频频出错这是最打击团队信心的问题测试环境所有的Mock数据都正常一上生产各种乱象。用监控数据一对比差异立刻清楚——测试环境用户输入偏标准生产环境的问题五花八门包括错别字、缺词、口语化表达、插入图片链接、中英混杂等等。Agent在处理这些“脏输入”时规划经常跑偏。比如用户输入“帮我看看我上次说的那个东西现在啥价了”测试环境不会出现这种省略了核心名词的句子但生产环境到处都是。监控的价值在于把这些异常输入全部结构化记录下来我据此专门建了一个“脏数据输入库”定期用真实线上会话做回归测试提示词和模型选型都拿这批数据来验证。后来这条经验也沉淀下来Agent项目的测试集必须包含至少20%的线上真实脏输入否则测试通过率没有任何参考价值。5.5 几个值得长期坚持的避坑习惯最后分享几个我在实际操作中坚持下来的习惯篇幅不长但每一个都救过场。第一所有监控配置都要做成配置项不要硬编码在代码里。阈值、采样率、熔断开关、价格表全部放到配置中心关键时刻改配置比重启服务快得多。第二每次Agent框架升级或提示词改动先在监控里开一个独立标签追踪效果观察成本、质量、延迟三个维度的变化稳定后再全量放开。第三监控数据的备份和恢复流程要提前演练别等排查问题时才发现历史数据已经过期清掉了。第四定期拿真实线上会话做一次人工质量抽检把结果和模型自评分对照校准评估模型的打分标准不然评估模型也会漂移。我自己最深的体会是Agent监控本质上是在跟不确定性博弈。你无法预测Agent会走什么路但你能保证它走过的每一步都留下痕迹你无法让模型永远正确但你能让每一次错误都变得可复盘、可回溯。把这些痕迹利用好黑盒早晚会变成白盒。

读完文章,也想定制专属网站?

尧图设计师 24 小时内与您沟通定制方案

免费获取报价 →
↑