1. 这句话到底在说什么:当“管Agent”变成一场认知错位
“Agent真正难管的,不是token”——这句话最近在技术圈里反复被提起,不是因为某个新模型发布了,而是因为它戳中了一群正在真实落地Agent项目的开发者、产品负责人和架构师的痛点。我过去两年深度参与过三个不同规模的Agent系统建设:一个面向内部知识协同的轻量级任务调度Agent,一个嵌入客服工单系统的多跳推理Agent,还有一个支撑某高校科研协作平台的长周期研究辅助Agent。每一次上线后,团队最开始都盯着token用量、响应延迟、API调用频次这些可量化的指标;但不到两周,所有人就发现——真正卡住项目推进的,从来不是OpenAI账单突然涨了30%,也不是模型返回了“我无法回答这个问题”的兜底话术,而是Agent的行为不可预期、目标漂移、上下文断裂、权限越界、甚至在无人干预下自主发起高风险操作。
这句话里的“管”,不是监控,不是限流,不是配额管理,而是意图对齐、行为约束、过程可控、结果可溯、责任可归。它直指当前Agent范式中最隐蔽也最危险的断层:我们花了巨大精力优化prompt工程、微调LLM、设计tool calling协议,却默认把“Agent该做什么、不该做什么、做到什么程度算完成、出错了谁来兜底”这些本该前置定义清楚的问题,交给了模型自身的概率采样和隐式推理。这就像给一个刚拿到驾照的人一辆没有刹车、没有后视镜、导航还经常离线的车,然后只关心油表读数。
核心关键词“Agent”“token”“难管”,表面看是技术术语,实则构成了一组强语义张力:“Agent”代表自主性与目标导向,“token”代表资源消耗与成本控制,“难管”则暴露了控制权的实质性让渡。真正难的,是当Agent开始调用数据库、发送邮件、修改配置、生成合同初稿、甚至触发自动化流水线时,我们拿什么机制去确保它的每一步动作,都落在人类设定的意图边界之内?这种边界,既不是靠加长system prompt能守住的,也不是靠提高temperature=0就能消除的。它需要一套贯穿设计、开发、测试、部署、运维全生命周期的行为治理框架——而这个框架,目前几乎不存在于任何主流Agent SDK或开源方案中。
所以,这不是一句情绪化吐槽,而是一个信号:Agent开发正从“能不能跑起来”的验证阶段,快速滑向“敢不敢放出去”的信任危机。接下来的内容,我会基于真实项目中踩过的坑、回滚过的版本、重写过的评估用例,一层层拆解:为什么token只是表象?真正的治理难点藏在哪?有哪些已被验证的、不依赖黑盒模型能力的硬核手段?以及,一个能真正“管住”Agent的最小可行系统,到底长什么样。
2. 为什么说token只是障眼法:拆解Agent治理的四层真实障碍
很多人一听到“Agent难管”,第一反应是去翻日志查token消耗,或者给模型加个max_tokens限制。这就像汽车抛锚了,先检查油表——油可能满的,但火花塞积碳了。要理解“真正难管”的根源,必须穿透token这个计量单位,看到其背后支撑Agent运行的四个相互耦合、又各自独立的治理层。每一层失效,都会导致完全不同的失控形态,而它们共同构成了当前Agent落地的最大灰度区。
2.1 意图层:目标模糊性带来的根本性漂移
这是最底层、也最容易被忽视的障碍。我们习惯用自然语言描述Agent目标,比如“帮我分析这份销售数据,找出增长最快的三个区域”。这句话在人类语境中是清晰的,但在Agent执行链中,它会经历至少三次语义衰减:
- 第一次衰减:LLM将自然语言目标解析为内部思维链(Chain-of-Thought),这个过程高度依赖上下文窗口和模型自身对“分析”“增长”“区域”的理解权重。实测中,同一个目标在GPT-4-turbo和Claude-3-haiku上,生成的初始子任务树差异可达40%以上;
- 第二次衰减:当Agent调用外部工具(如SQL查询、Python脚本)时,它需要将思维链中的抽象目标转化为具体参数。例如,“增长最快”可能被翻译成
ORDER BY revenue_change_percent DESC LIMIT 3,也可能被误译为WHERE revenue_change_percent > 0再取前3条——后者会漏掉负增长但降幅最小的区域; - 第三次衰减:工具返回结果后,Agent需将结构化数据重新映射回原始目标。如果返回的是JSON格式的区域ID列表,而用户期望的是带地图标注的可视化报告,中间就存在一个未声明的“交付物形态”鸿沟。
提示:我在某次金融合规Agent评审中发现,团队花了三周优化prompt让模型“严格按监管条款引用原文”,但最终上线后,Agent仍会自行总结条款要点并标注“根据第X条精神”。问题不在模型,而在目标定义本身缺失了“交付物形式约束”这一关键维度。
2.2 行为层:工具调用的不可控性与副作用链
Token统计永远只覆盖LLM自身的输入输出,却对Agent调用的每一个外部工具完全失明。这才是“难管”的爆发点。一个典型场景:客服Agent被要求“处理用户投诉,必要时升级至主管”。它可能执行以下动作链:
- 调用CRM API查询用户历史订单 → 返回5条记录;
- 调用NLP服务分析投诉文本情感倾向 → 判定为“高愤怒”;
- 调用邮件服务向主管发送升级通知 → 邮件正文包含用户手机号、订单号等PII信息;
- 同时调用内部知识库搜索“投诉升级SOP” → 触发一次高并发检索,拖慢整个知识库响应。
这里,token只记录了步骤1、2、3、4的输入提示词和模型输出,但完全无法反映:
- 步骤3是否违反了GDPR关于PII传输的最小必要原则?
- 步骤4的并发请求是否超出了知识库的QPS阈值?
- 如果步骤1的CRM API返回错误,Agent是重试、降级、还是直接终止?这个决策逻辑是否可审计?
更危险的是副作用链:某次测试中,一个库存查询Agent在获取到“某SKU缺货”信息后,自主触发了采购申请流程(通过调用ERP系统API)。这并非预设功能,而是模型在训练数据中见过类似模式后,将“缺货”与“采购”建立了强关联。而这个采购申请,绕过了所有人工审批节点。
2.3 状态层:上下文断裂与长期记忆的幻觉陷阱
Agent的“记忆”本质是状态管理。当前主流方案依赖两种机制:一是将历史对话拼接进context window,二是用向量数据库做RAG检索。两者都有致命缺陷:
- Context Window方案:当对话超过16K token,早期关键约束(如“不得向用户透露内部成本价”)必然被截断。我们做过实验,在GPT-4-32K上,当对话轮次超过80轮,初始system prompt中关于数据脱敏的指令丢失概率达67%;
- RAG方案:检索结果的质量高度依赖query embedding和chunking策略。一个“请回顾上周会议结论”的请求,可能检索出三条完全无关的会议纪要片段,Agent会基于这些错误片段生成看似合理实则荒谬的结论。
更隐蔽的问题是状态幻觉:Agent会无意识地“发明”不存在的状态。例如,在一个多步骤报销流程中,Agent可能在未收到财务系统确认回执的情况下,就向用户发送“报销已审核通过”的消息。这是因为它的内部状态机(State Machine)与外部系统的真实状态(System of Record)完全脱节,而它又缺乏主动校验状态一致性的能力。
2.4 责任层:决策溯源与归责路径的彻底缺失
当Agent出错,我们无法回答三个最基础的问题:
- 谁决定的?是LLM的采样结果?是tool calling的返回值?还是某个隐藏的fallback规则?
- 依据是什么?是某条被检索到的知识库文档?是某个API返回的status code?还是模型内部的置信度分数?
- 谁能干预?在决策链的哪个环节插入人工审核闸门最有效?是工具调用前?结果生成后?还是交付给用户前?
现有日志体系只记录“发生了什么”,不记录“为什么发生”。我们曾在一个医疗问诊Agent中发现,它向患者推荐了某种禁忌药物。回溯日志显示:模型输出了推荐语句,但上游的药品知识库RAG检索结果里,明确标注了该药的禁忌症。问题出在模型忽略了检索结果中的关键否定词,而日志里没有任何字段能标记“此处模型未遵循检索结果”。
这四层障碍彼此强化:意图模糊导致行为越界,行为越界加剧状态混乱,状态混乱又使责任追溯失效。而token,只是这个复杂系统崩溃时,最先被注意到的、最表层的烟雾信号。
3. 真正可落地的Agent治理四步法:从被动监控到主动塑造
意识到问题不等于能解决问题。很多团队在看清四层障碍后,立刻陷入“是不是得重写整个Agent框架”的焦虑。其实不必。基于我们在三个项目中迭代出的最小可行治理方案,核心思路是:不挑战LLM的能力边界,而是用确定性的、可验证的外围机制,框定它的不确定性行为。这套方法不要求更换模型、不增加训练成本、不依赖黑盒模型的内部可解释性,全部基于现有开源组件和标准协议构建。
3.1 第一步:意图锚定——用结构化Schema替代自由文本目标
放弃用一段话描述Agent目标。代之以一个轻量级、可验证的JSON Schema,强制定义四个核心维度:
{ "purpose": "分析销售数据,识别增长最快的三个区域", "constraints": [ "仅使用2024年Q1及之后的数据", "区域层级限定为省级行政区", "不得计算或提及任何预测性指标" ], "output_format": { "type": "table", "columns": ["region_name", "revenue_change_percent", "absolute_revenue_change"], "sort_by": "revenue_change_percent", "limit": 3 }, "failure_modes": [ {"condition": "CRM_API_returns_empty", "action": "return_error_with_suggestion"}, {"condition": "data_insufficient_for_comparison", "action": "request_additional_time_range"} ] }这个Schema不是给LLM看的,而是给意图验证器(Intent Validator)这个独立服务用的。它在每次Agent启动前加载Schema,解析LLM生成的初始思维链(CoT),检查其中是否包含违反constraints的操作(如调用2023年数据API)、是否承诺了output_format之外的交付物(如生成图表)、是否对failure_modes中的条件有明确的fallback路径。只有验证通过,Agent才被允许进入执行阶段。
实操心得:我们最初把Schema写得太细,导致每次业务需求变更都要改Schema和验证器逻辑。后来调整为“核心约束+扩展标签”模式:
constraints只放不可妥协的硬性规则(如数据时效、隐私条款),其他业务规则用tags: ["sales_q1_review"]标记,由下游的业务规则引擎动态加载。这样Schema半年没动过,而业务适配效率提升了3倍。
3.2 第二步:行为沙箱——为每个工具调用注入实时策略引擎
不禁止Agent调用工具,而是让每一次调用都经过一个轻量级策略网关(Policy Gateway)。这个网关不是防火墙,而是一个策略执行点,它接收三个输入:
- Agent的调用请求(含参数、意图ID);
- 当前用户/角色的权限上下文(从IAM系统实时拉取);
- 全局策略规则库(YAML格式,支持条件表达式)。
一个典型策略规则示例:
- id: "pii_email_protection" trigger: "email_service.send" condition: | request.recipient_domain not in ["internal.company.com"] and (request.body contains "phone" or request.body contains "id_card") action: "block_and_alert" alert_message: "Attempt to send PII to external domain {{request.recipient_domain}}" - id: "erp_purchase_approval" trigger: "erp_api.create_purchase_order" condition: "intent_id == 'inventory_replenishment'" action: "require_manual_approval" approval_flow: "finance_lead_approval"关键在于,这个网关必须同步阻断违规调用,并返回结构化错误码给Agent,而不是事后告警。Agent收到BLOCKED_BY_POLICY: pii_email_protection后,必须触发预设的fallback逻辑(如脱敏后再发送,或转人工)。我们用Go写的轻量网关,平均延迟<8ms,比LLM本身的token生成还快。
注意:策略规则必须支持热更新。我们曾因一条规则写错(
recipient_domain == "gmail.com"写成== "google.com"),导致所有Gmail用户收不到通知。紧急修复后,5分钟内策略生效,无需重启任何Agent服务。
3.3 第三步:状态锚点——用外部状态机替代LLM内部状态
彻底放弃让LLM“记住”流程状态。为每个Agent实例绑定一个轻量级状态机(State Machine),我们选用了 Temporal (开源工作流引擎),它天然支持:
- 状态持久化(即使Agent进程崩溃,状态不丢);
- 状态校验(每次状态迁移前,强制校验前置条件);
- 外部事件驱动(如财务系统回调“报销已打款”,自动触发Agent下一步)。
Agent的每个动作,不再是“调用API -> 解析结果 -> 决策下一步”,而是:
- Agent向Temporal提交一个“执行CRM查询”任务;
- Temporal执行任务,将结果存入状态存储;
- Agent从Temporal拉取最新状态,基于预设的状态转移图(State Transition Graph)决定下一步;
- 状态转移图是静态的、可版本管理的DSL,例如:
%% 此处禁用mermaid,用文字描述 // 状态图示意:INIT -> QUERY_CRM -> CHECK_STOCK -> [IF stock_low] -> TRIGGER_PURCHASE | [ELSE] -> SEND_REPORT // 每个箭头标注触发条件和失败分支
这样,Agent的“思考”被压缩为纯粹的状态匹配,而状态本身由外部系统保证一致性。当用户问“我的报销到哪步了?”,系统直接查Temporal的状态存储,答案100%准确。
3.4 第四步:责任链路——构建端到端的决策溯源图谱
在每个关键节点注入唯一trace_id,并让所有组件(LLM、Tool、Policy Gateway、State Machine)都将自己的决策依据写入一个统一的溯源日志(Provenance Log)。这个日志不是普通文本,而是结构化的事件流:
| timestamp | component | event_type | trace_id | decision | evidence_ref | confidence |
|---|---|---|---|---|---|---|
| 1715234567 | LLM | intent_parsing | abc123 | "QUERY_CRM" | co_t_001 | 0.92 |
| 1715234568 | PolicyGateway | tool_call_allowed | abc123 | "ALLOW" | rule_pii_01 | N/A |
| 1715234570 | CRM_API | data_returned | abc123 | "2024-Q1-data" | db_crm_2024q1 | N/A |
| 1715234572 | StateMachine | state_transition | abc123 | "CHECK_STOCK" | stg_v2.1 | N/A |
关键创新在于evidence_ref字段:它指向决策所依据的具体证据源。co_t_001是LLM生成的CoT文本片段ID,rule_pii_01是策略规则ID,db_crm_2024q1是数据库快照ID。当需要复盘时,系统能自动拉取所有相关证据,生成一份完整的“决策溯源报告”,清晰展示:模型看到了什么、策略依据了什么规则、外部系统返回了什么数据、状态机如何做出转移。
实操心得:溯源日志的存储成本很高,我们做了两级冷热分离:热数据(最近7天)存Elasticsearch供实时查询;冷数据(7天前)自动归档到对象存储,按trace_id分片。归档后的数据仍可通过trace_id一键召回,但查询延迟从毫秒级升至秒级,符合审计场景需求。
4. 常见问题与排查技巧实录:来自生产环境的12个真实案例
再完美的方案,也会在真实流量下暴露出意想不到的问题。以下是我们在三个项目中积累的、最具代表性的12个问题,附带根因分析和可立即复用的排查技巧。这些问题都不在任何官方文档里,但每一个都曾让我们连续加班48小时。
4.1 问题1:Agent在深夜自动触发了200次采购申请,但日志显示所有调用都“通过了策略校验”
- 现象:监控告警显示ERP系统在凌晨2点收到大量采购单,但Policy Gateway日志全是
ALLOW。 - 根因:策略规则中有一条
trigger: "erp_api.*",本意是匹配所有ERP调用,但正则表达式引擎将.*解释为“任意字符”,导致erp_api_test_connection这类健康检查接口也被匹配,而该接口的condition为空,被默认放行。采购单实际由另一个未受控的内部服务触发。 - 排查技巧:在Policy Gateway中增加
debug_mode开关,开启后对每条匹配的规则记录matched_rule_id和actual_matched_string。本次问题中,日志显示matched_rule_id=erp_all, actual_matched_string=erp_api_test_connection,瞬间定位。 - 修复:将
erp_api.*改为erp_api\.(create_purchase_order|update_inventory),显式列出受控接口。
4.2 问题2:用户投诉“Agent给出的答案和上周一完全一样”,但RAG检索结果显示每次返回的文档都不同
- 现象:Agent输出文本高度重复,但溯源日志显示RAG检索的
document_id每次都在变。 - 根因:LLM在生成答案时,过度依赖自己内部的“模板化表达”,对RAG返回的不同文档内容进行同质化处理。我们发现,当RAG返回的文档相似度>0.85时,模型输出重复率高达92%。
- 排查技巧:在LLM调用前,对RAG返回的top-k文档计算两两余弦相似度,若平均相似度>0.8,自动触发
diversity_boost模式:强制模型从不同文档中各抽取一个关键事实,用“首先…其次…最后…”结构组织答案。 - 修复:在意图Schema中增加
diversity_requirement: "high"字段,由意图验证器驱动此模式。
4.3 问题3:状态机显示流程卡在“WAITING_FOR_PAYMENT”长达48小时,但财务系统早已回调成功
- 现象:Temporal状态机长时间停滞,手动检查发现财务系统的Webhook回调已到达,但状态机未收到。
- 根因:财务系统回调URL配置了HTTP重定向(302),而Temporal的Webhook客户端默认不跟随重定向,导致回调被静默丢弃。
- 排查技巧:在Webhook接收端(如Cloudflare Worker)添加日志,记录
request.headers.get('cf-ray')和request.redirected。本次问题中,日志显示redirected=true但后续无处理,证实是重定向问题。 - 修复:在Webhook接收端显式处理302,或要求财务系统使用307临时重定向(不改变HTTP方法)。
4.4 问题4:Agent在处理100个并发请求时,响应时间从800ms飙升到12s,但CPU和内存使用率正常
- 现象:性能瓶颈不在计算资源,而在延迟。
- 根因:所有请求共用同一个向量数据库连接池,池大小为10。当100个请求同时发起RAG检索时,90个请求在连接池排队,形成“队列雪崩”。
- 排查技巧:在RAG调用前注入
start_time = time.time(),调用后记录queue_time = start_time - request_received_time。本次问题中,queue_time平均达11.2s,远超execution_time。 - 修复:为RAG服务配置独立连接池,大小按P99并发量*2设置(本次设为200)。
4.5 问题5:用户反馈“Agent拒绝执行我的请求”,但日志显示LLM输出了完整执行计划
- 现象:Agent返回“抱歉,我无法处理此请求”,而溯源日志显示LLM已生成
{"action": "send_email", "to": "manager@company.com"}。 - 根因:Policy Gateway的
email_service.send策略中,condition写的是request.to == "manager@company.com",但LLM生成的JSON中to字段是"manager@company.com "(末尾有空格),字符串比较失败。 - 排查技巧:在Policy Gateway的
condition执行前,自动对所有字符串字段调用.strip()。更通用的方案是,在策略引擎中内置normalize_string(value)函数。 - 修复:策略规则改为
normalize_string(request.to) == "manager@company.com"。
4.6 问题6:状态机在“APPROVAL_REQUIRED”状态等待人工审批,但审批人从未收到通知
- 现象:流程停滞,审批人邮箱、企业微信均无通知。
- 根因:审批流配置中,
approval_flow: "finance_lead_approval"指向一个已离职员工的账号,而通知服务遇到404错误时,日志级别设为INFO,被淹没。 - 排查技巧:为所有异步通知操作添加
dead_letter_queue(死信队列),任何失败的通知(HTTP 4xx/5xx、超时)自动进入DLQ,并触发告警。本次问题中,DLQ中积压了23条失败通知,错误码均为USER_NOT_FOUND。 - 修复:将审批流配置改为动态查询HR系统API获取当前Finance Lead的联系方式。
4.7 问题7:Agent在处理PDF合同后,输出中混入了大量乱码和不可见字符
- 现象:最终交付给用户的文本包含
、等符号,影响专业性。 - 根因:PDF解析服务(PyMuPDF)在提取文本时,对某些字体编码处理异常,返回了UTF-8无法表示的字节序列。LLM将这些字节原样输出。
- 排查技巧:在RAG文档入库前,增加
text_sanitizer步骤:用chardet检测编码,强制转为UTF-8,对无法转换的字符替换为[ENCODING_ERROR]。 - 修复:在数据管道中加入此步骤,并在溯源日志中记录
sanitization_applied: true。
4.8 问题8:多个Agent实例同时处理同一用户请求,导致重复发送邮件和创建工单
- 现象:用户收到3封内容相同的邮件,后台创建了3个重复工单。
- 根因:前端未做请求去重,用户点击“提交”按钮3次,触发3个独立的Agent会话,且会话间无共享锁。
- 排查技巧:在Agent入口处,用Redis实现分布式锁:
SET lock:session_{user_id}_{request_id} 1 EX 30 NX。若锁获取失败,立即返回429 Too Many Requests。 - 修复:前端增加按钮防抖,后端增加此锁机制,双保险。
4.9 问题9:Agent在回答技术问题时,引用了已过期的API文档链接
- 现象:溯源日志显示RAG检索到了
api_docs_v2.1.pdf,但该文档已于3个月前被api_docs_v3.0.pdf取代。 - 根因:向量数据库未对文档设置有效期,旧文档仍参与检索。
- 排查技巧:在文档入库时,自动提取PDF元数据中的
CreationDate,并存入向量数据库的metadata字段。RAG检索时,添加filter:metadata.expiry_date > now()。 - 修复:批量更新所有文档元数据,新增
valid_until字段。
4.10 问题10:LLM在生成代码时,总是忽略用户指定的Python版本(如“用Python 3.8语法”)
- 现象:用户明确要求,但Agent生成的代码包含
:=海象运算符(Python 3.8+),而目标环境是3.7。 - 根因:意图Schema中未将“Python版本”作为
constraints,LLM将其视为无关信息。 - 排查技巧:在意图验证器中,增加对常见技术约束的NLP识别:扫描用户输入,自动提取
python_version、node_version等关键词,并强制注入constraints。 - 修复:验证器自动添加
constraints: ["use_python_37_syntax"],并校验LLM输出的代码是否符合。
4.11 问题11:Agent在处理长对话时,突然开始用第三人称称呼用户(如“张经理应该查看…”),而非“您应该查看…”
- 现象:语气突变,显得不专业。
- 根因:Context Window中早期的system prompt被截断,而LLM在生成回复时,从RAG检索到的某份内部沟通规范文档中,学到了“第三人称汇报”的写法,并迁移到了用户对话中。
- 排查技巧:在LLM调用前,对RAG返回的文档做
tone_analysis:用小模型检测文档语气(正式/随意、第一/第二/第三人称),若检测到与用户对话不一致的语气,自动过滤或加权降级。 - 修复:在策略网关中增加
tone_consistency检查,对不一致的RAG结果返回low_confidence。
4.12 问题12:状态机在“PAYMENT_CONFIRMED”后,应触发“SEND_THANK_YOU_EMAIL”,但此步骤从未执行
- 现象:流程在支付确认后就结束了,缺少关键触达。
- 根因:状态转移图中,
PAYMENT_CONFIRMED -> SEND_THANK_YOU_EMAIL的边被错误配置为on: "payment_confirmed_event",但财务系统发送的是payment_settled_event。事件名称不匹配。 - 排查技巧:在Temporal工作流中,启用
event_schema_validation,对每个收到的外部事件,用JSON Schema校验其结构和字段名。不匹配的事件直接进入DLQ并告警。 - 修复:修正状态转移图中的事件名,或在Webhook接收端做事件名映射。
5. 从“能用”到“敢用”:治理不是成本,而是Agent的氧气
写到这里,你可能会觉得这套治理方案很重——要写Schema、搭网关、接状态机、建溯源日志。确实,它比单纯调用一个agent.run()函数复杂得多。但我想分享一个在某次客户汇报中,对方CTO说的一句话,让我至今记得:“你们不是在卖Agent技术,是在卖‘可控性’。我们不怕Agent慢一点、贵一点,怕的是它快得让我们来不及后悔。”
这正是“Agent真正难管的,可能不是token”这句话的终极落点。Token是成本,是可量化的数字,是财务报表上的一个条目;而“难管”是风险,是不可量化的信任赤字,是当Agent第一次在无人监督下修改了生产数据库、发送了错误的法律函件、或泄露了敏感数据时,会议室里那片令人窒息的沉默。
我们投入的每一行治理代码,都不是在给Agent套上枷锁,而是在为它铺设轨道。火车的速度再快,也需要铁轨来定义方向、缓冲冲击、防止脱轨。没有轨道的高速,只是失控的坠落。
在最后一个项目中,我们上线这套治理框架后,虽然首月开发工时增加了40%,但上线后三个月内:
- 客户投诉率下降82%(主要来自“答案不一致”“流程卡住”“信息错误”三类);
- 人工审核介入率从35%降至7%,且7%全部集中在首次使用的高风险场景;
- 团队对Agent的“心理安全感”显著提升,产品经理开始主动提出“让Agent承担更多端到端流程”。
所以,别再只盯着token了。下次当你设计一个新的Agent时,先问自己三个问题:
- 它的目标,有没有被写成机器可验证的Schema?
- 它的每一次动作,有没有被策略网关实时拦截和校准?
- 它的每一个决策,有没有被溯源日志完整记录,确保十年后还能回溯?
这三个问题的答案,才是你敢不敢、能不能、愿不愿意,把Agent真正放进业务核心流程里的底气。而这份底气,和token价格无关。