标签归档:AIAgent

AI Agent 进阶架构:渐进式披露和动态上下文管理

当 Agent 做到一定复杂度,问题往往不在模型能力本身,而在上下文怎么给、工具怎么给、流程怎么控。同一套模型,有的团队能把它用成「能稳定交付的执行系统」,有的团队只能得到「偶尔灵光一现的聊天机器人」,差距就在架构。

早期提示词工程里,上下文基本是静态的:一次性把提示词写好,然后让 LLM 自己发挥。随着架构的演化,,上下文变成动态的,它会「收」和「放」:

收(Contract):渐进式披露。屏蔽无关信息,减少 Token 消耗,聚焦注意力。(解决“准确性”)
放(Expand):动态注入。根据交互状态,主动引入外部话题、记忆片段或世界观设定。(解决“丰富性”与“持续性”)

这是一种系统架构策略:用有限 Token 去管理无限信息,用非确定性模型去执行标准化流程

1. 三个典型瓶颈:Context、工具、SOP

复杂 Agent 基本都会遇到三个主要的问题:

  1. 上下文爆炸(Context Explosion)
    文档、代码、历史对话、用户画像、任务状态……你不可能全塞进 Prompt。硬塞进去也会出现“Lost in the Middle”,关键信息被淹没。

  2. 工具过载(Tool Overload)
    工具越多,定义越长,Token 越贵;更严重的问题是:工具选项越多,模型选择正确工具的概率越低,尤其是多个工具功能相近时。

  3. 执行不可控
    当我们希望它按 SOP 做事(先检查、再验证、最后提交),它却容易跳步、漏步,或者为了“把话说圆”而瞎编执行结果。

「渐进式披露 + 动态上下文管理」就是对这三件事的统一解法:不要一次把世界交给模型,而是让模型在每一步只看到它此刻需要看到的东西。

2. 渐进式披露

渐进式披露不是少给信息,是分阶段给信息

有人把渐进式披露理解成省 Token。省 Token 是结果,不是核心。

核心是:把一次性的大上下文,拆成多轮的决策—反馈—再决策。每一步只给与当前决策相关的最小信息面,减少噪音,让模型的注意力更集中,也让系统更可控。

一个直观的工程化表述:

  • 不是构建一个「全量 Context」
  • 而是维护一个「可增长的 Context」,并且增长受控

你会看到两个动作交替出现:

  • Contract(收缩):隐藏、裁剪、摘要、替换为索引
  • Expand(扩张):按需加载片段、工具子集、记忆、世界观、流程状态

3. 数据层

传统做法,使用 RAG 很容易走向粗暴:检索到的内容直接拼进 Prompt,能拼多少拼多少(可以配置)。结果通常是两种:

  • Token 变贵,延迟变长
  • 模型注意力被稀释,反而更不准

渐进式披露在数据层的落地方式,是把「获取信息」做成连续的动作序列,而不是一次性拉满。

参考 AI Conding 很贴近工程实际的步骤:

  • 初始 Prompt 只有任务描述
  • AI 发现信息不足,发起 lsgrep 请求
  • 系统只返回 ls 的结果(文件名列表),而不是文件内容
  • AI 选中目标,发起 read_file
  • 系统这时才披露文件内容

这里关键点不是 ls/grep/read_file 这些名字,而是信息披露粒度

  • 先给目录/索引(低成本,低噪音)
  • 再给片段(命中后才扩大)
  • 最后给全文(只在确认需要时才给)

3.1 披露层级建议:L0 到 L3

可以把上下文分成几层,这里定义的层级不是标准答案,但思路是这么个思路:

  • L0:任务和约束
    用户需求、输出格式、禁止事项、成功标准。L0 必须稳定,尽量短,长期驻留。

  • L1:证据索引
    文件列表、章节目录、数据库表名、日志摘要、搜索结果标题。只给“在哪里”。

  • L2:证据片段
    命中的段落、代码片段、表结构、关键日志区间。只给“相关部分”。

  • L3:证据全量
    全文档、完整文件、长对话历史。尽量少用,只在确实需要通读时开放。

系统要做的事是:让模型先用 L1 做定位,再用 L2 做判断,最后才允许 L3 进场。这样不仅省 Token,还可以减少模型在噪音里自我发挥的空间

3.2 动态注入

动态注入常见误区:用户问 A,你检索 A;用户又问 B,你把 A+B 都塞进去;几轮后上下文就乱了,且不可控了。

比较常用的做法是引入「上下文预算」和「淘汰策略」:

  • 每轮允许注入的 Token 上限(硬预算)
  • 驻留区(长期有效,例如用户身份、偏好、当前任务)
  • 工作区(当前步骤的证据片段)
  • 冷存区(旧证据移出,保留索引或摘要)

淘汰的对象通常是“旧证据全文”,不是“任务状态”。任务状态丢了,模型就会重复问、重复做;证据全文丢了,大不了重新检索。

4. 工具层

工具越多越强这件事,在 Agent 里是反的:工具越多,模型越容易犹豫、选错,甚至编造「我已经调用了某某 工具」。

渐进式披露在工具层的做法是:分层路由,按需可见

参考一个很实用的层级披露思路:

  • Root 层只披露 5 个大类工具:代码类文档类部署类数据库类通知类
  • 模型先选大类,例如“我要查数据”-> 数据库类
  • 下一轮 Prompt 才披露数据库相关的具体工具,例如 sql_query, get_table_schema

我们可以把它当成「工具菜单」:

  • 第一屏:只显示一级菜单
  • 点进去:才显示二级菜单
  • 系统控制可见性,而不是让模型在 100 个工具里裸选

4.1 工具披露带来的三个工程收益

  1. Token 控制更直接
    大量工具的 schema 描述会花费大量的 Token。层级分发能把「工具定义成本」分摊到多轮,而且只在需要时支付。

  2. 工具选择准确率提升
    选项少,模型更容易做对;更重要的是,减少「近义工具」同时出现。

  3. 安全策略更好落地
    不该给的能力,默认不可见。你不需要在 Prompt 里反复警告“不要调用某某工具”,直接让它看不见。

4.2 「工具可见性」本质是一种权限系统

很多团队权限做在网关、做在后端鉴权,但 Agent 的权限还应该做在“可见性”上:

  • 看不见:降低误用概率
  • 看得见但不可用:模型会反复尝试,浪费回合
  • 可用但有条件:需要把条件变成流程状态的一部分(下一节讲 SOP)

5. SOP 层

SOP 层就是当前很火热的 Skills,且不仅仅是 Skills,它是把流程写进披露逻辑,而不是写在提示词里

企业场景里,最怕的是「看似完成、实际没做」,而这在大模型的输出中很常见。让模型「请遵循 SO」”意义不大,它会漏步骤,而且它很擅长把漏掉的步骤用语言补上。

渐进式披露在 SOP 上的落地方式,是在我们的系统里做“流程锁”:上一步没通过,下一步的工具就不出现

参考一段很清晰的流程控制(关键点直接引用):

  1. 阶段一(Lint):系统只披露 Lint 工具和当前 Diff,隐藏 Commit 工具
  2. 阶段二(Test):Lint 返回 Success 后,系统才披露 Test 工具
  3. 阶段三(Commit):只有测试通过,系统才披露 git_commit

这套逻辑解决的是“话术不可信”的问题:模型可以说“我已经测试通过”,但系统的状态机不会因为它一句话就放行。放行只能来自可验证的工具回执

5.1 SOP 控制要点

把「检查点」设计成机器可判定

SOP 最容易失败的地方是检查点含糊,比如“确保无问题”“确认完成”。Agent 体系里要改成:

  • 有工具回执的:以回执为准
  • 没有工具回执的:以人工确认或外部系统状态为准
  • 不能验证的:不要当作放行条件

能自动化判定,就不要让模型自评。

6. 为什么要引入 Agent Skill

这里本质是一种是工程分层,当然也是概念包装。

很多人会问:这些用代码控制不就行了,为什么还要提 Agent Skill?

把 Skill 当成一个架构抽象,会更容易把系统做稳:它解决的是解耦、复用、状态感知

这里把关键逻辑说透:

6.1 Skill 是「上下文的容器」,用完即走

没有 Skill 时,你往往会得到一个越来越大的系统提示词:把所有话题、所有工具、所有规则都塞进去。结果就是注意力迷失、指令冲突、Token 爆炸。

有 Skill 后,你把「某一类任务需要的提示词 + 可用工具 + 知识入口」封装到一起:

  • 需要时加载
  • 不需要时卸载
  • 上下文保持干净

这和「渐进式披露」是同一件事:Skill 是披露的载体

6.2 Skill 是「动态注入」的边界

动态注入真正难的是边界:注入多少、注入什么、何时撤回。

Skill 让边界清晰:

  • 注入不是“往 Prompt 拼字符串”
  • 注入是“激活某个 Skill”,让它把需要的最小信息面带进来

系统因此更容易做预算、做审计、做回放。

6.3 Skill 让路由变成可维护的系统,而不是靠直觉写 prompt

复杂 Agent 一定会路由:用户一句话可能触发“查资料 / 写代码 / 安抚情绪 / 改流程 / 发通知”。

Skill 体系下,路由的输出是“激活哪些 Skill”,而不是“写一段更长的提示词”。这会直接改善维护体验:

  • 你能统计每个 Skill 的触发率、成功率、平均 Token
  • 你能对某个 Skill 单独迭代,而不牵一发动全身
  • 你能为不同用户、不同权限加载不同 Skill 组合

7. 动态上下文管理

动态上下文管理要管理「状态 + 证据 + 权限」。

把上下文当成一段文本来拼接,迟早失控。更合理的视角是:上下文是系统状态在模型侧的投影。

建议把上下文拆成四类对象,每一类有不同的生命周期:

  1. 任务状态
    当前处于哪个阶段、已完成哪些检查点、下一步允许做什么。它要短、稳定、结构化,尽量每轮都带。

  2. 证据
    检索片段、工具输出、外部信息。它要可引用、可追溯、可淘汰。

  3. 偏好与长期记忆
    能影响输出风格或长期策略的东西。它不该频繁变化,变化要可控,最好有写入门槛。

  4. 能力与权限
    工具可见性、工具可用性、流程放行条件。它是约束,不是参考建议。

8. 可执行的架构清单

按“先做什么更值”排:

  1. 先做工具可见性控制
    工具分层,默认只给 Root 类目;按分支披露具体工具。

  2. 把 SOP 变成状态机放行
    上一步成功回执出现,下一步工具才可见。失败就停在当前阶段,不要让模型口头放行。

  3. 把上下文分区:驻留区 / 工作区 / 冷存区
    驻留区短且稳定;工作区有预算;冷存区只保留索引/摘要。

  4. 先索引后片段的披露策略
    任何大文本资源都先给目录、标题、命中位置,再给片段,不要一上来就全文。

  5. Skill 化你的上下文与工具组合
    让“动态注入”从拼 Prompt 变成“加载/卸载 Skill”。一开始不需要 100 个 Skill,把高频的 5–10 个先做稳。

  6. 把观测补齐
    记录每轮:披露了哪些证据、开放了哪些工具、触发了哪些 Skill、用了多少 Token、是否命中检查点。没有这些数据,后面很难迭代。

9. 小结

一个成熟的 Agent 系统,外观上像在聊天,内部其实在跑一套受控的执行架构:

  • 信息不是一次塞满,而是按步骤披露
  • 工具不是全量开放,而是按层级开放
  • 流程不是靠自觉,而是靠状态机约束
  • 记忆不是越多越好,而是可写入、可淘汰、可追溯

把这四件事做好,Agent 会越来越像一个靠谱的执行系统:该问的问清楚,该查的查到证据,该做的按流程做完,做不到就停下来,不会硬编。

这就是「渐进式披露 + 动态上下文管理」的价值:不是让 Agent 说得更像,而是让它做得更稳。

以上。

关于行业 AI Agent 评测的 9 个方面

做 AI Agent,跑起来很容易,简单点函数调用+几个最好的大模型,复杂一点,整合或「学习」一些开源的多 Agent 项目,也能跑起来。

但是如何真正要做到一个行业中去,把一个行业 Agent 做好就没那么容易了,特别是让这个 Agent 能稳定的迭代,稳定的跑对了,也就难了。

在这些迭代过程中,我们会不停的换模型、改提示词、加工具、加缓存、改路由、做多智能体……

这样我们就会收获如下的一堆问题:

  • 线上用户说「变笨了」,却没证据;
  • 反馈说生成效果不行,却不知道该如何描述其所说的效果;
  • 修一个 bug,引入三个新 bug;
  • 团队讨论靠口感,最后靠拍板;
  • 研发不敢升级模型,因为测试周期太长;
  • 业务要结果,技术要可控,双方都焦虑。

面对这些问题,我们聊聊如何对行业 Agent 做评测。

0. 说在前面

我们评测的是「系统」,不是「模型」

很多团队说在做评测,实际上只是在测「模型回复像不像」。对 Agent 来说不够,因为 Agent 的能力来自两部分:

  • 模型
  • 工程:提示词、工具编排、状态管理、记忆、重试策略、检索、权限、路由、超时、并发、回退等

所以评测对象应该是:模型 + 工程 的整体行为。

1. 标准

团队里面一定要有领域专家,没有领域专家的测评只能算自娱自乐。

Agent 的「好」不是抽象的。没有领域专家,评测标准会变成两类坏结果:

  • 写得很漂亮,但不对应业务结果(比如客服很礼貌,但票据没关单)
  • 标准含糊,评分不可重复(今天判通过,明天同样输出判不通过)

「领域专家」不一定是外部大咖,很多时候就是我们身边的同事:

  • 客服主管(知道什么叫“解决”)
  • 财务/风控(知道哪些动作不能做)
  • 资深运营(知道用户会怎么钻空子)
  • 负责交付的实施/售后(知道线上真实约束)
  • 售前负责人(知道用户要的是什么)

要求只有一个:两位领域专家独立评审同一个任务,应该能得到一致的 pass/fail。做不到就说明任务或标准还不够清晰。

2. 数据集

输入与输出要成对,从 20 条 good case 和 bad case 开始吧。

很多团队拖着不做评测,理由是「没有足够的数据」。

2.1 数据集怎么来

  1. 线上事故 / 客诉 / 工单:最值钱,但也是压力最大的
  2. 发布前人工回归里会反复点的那些检查项
  3. 运营同学最常复述的“用户就爱这么问”
  4. 灰度期间的失败轨迹(尤其是工具调用失败、超时、权限不足、状态不一致)

2.2 一个测试任务里应该包含什么

  • 输入(用户消息 + 初始状态 + 可用工具 + 环境约束)
  • 明确的成功条件
  • 参考解(可能是图、视频和文本)

当遇到测试不通过或者通过率很低时,一般不是模型不行,可能是设计的测试任务有问题。

2.3 数据集要有正反两派

测试人都知道的,做测试更多的是测异常。在做数据集时,这个逻辑一样的成立。

  • 该搜 vs 不该搜
  • 该下单 vs 不该下单
  • 该升级人工 vs 应该继续处理
  • 该改文件 vs 不该动文件
  • 该生成图 vs 应该拒绝(合规/版权/不当内容)

3. 系统

让过程系统化,小系统也是系统

评测不系统化,最后一定会回到「手工点点点 + 群里吵架」。一个可用的评测系统,最少包括:

3.1 评测运行系统

  • 并发跑任务
  • 每个环境隔离(干净的文件系统、数据库、缓存、账户)
  • 固定随机种子/版本(尽量可复现)
  • 记录完整过程
  • 输出结构化结果

请注意:共享状态会污染结果。

这个系统可以大,也可以小,甚至小到只是一个 python 脚本。

3.2 评测资产管理

  • 任务版本化(任务也要像代码一样走 PR)
  • rubric/断言版本化
  • 基线版本固定可回放
  • 失败样本池:每次线上新失败,能快速进入评测集
  • 评测数据集管理
  • 评测结果管理,特别是图片类 Agent,所有的结果图都需要保存,并且能随时查阅,给到领域专家来审查。

3.3 结果可读性

最终的结果重要,但这个结果不仅仅是分数,还必须能「点开看」:

  • 失败的结果
  • 判定理由
  • 最终的证据(输入的 prompt,图片结果,过程中的数据库/文件/页面状态等等)

4. 成本

和过往的测试工作不同,AI 的评测需要更多些的考虑成本,特别是多模态或视频,生图类 Agent。

这里的基本逻辑是:每个 AI 算力资源都是有限的,也是贵的。

如果在一个死循环中写了调用外部视频生成的接口逻辑,那等待的就是账号里面的钱被用光,如果有加了使用限制,大概率就是达到限制。

以第三方大模型账号为例,有几个小点:

  1. 测试账号要和生产账号隔离,防止异常突出导致资源受限,在每个平台请求并发数,或者分钟请求数,或者 token 速度都是有限的,不同环境的资源需要隔离开来。
  2. 账号需要做好限制,防止账号的钱被用完;
  3. 安全考虑,定期更换。

5. 传统测试方式

静态分析、工具验证、记录分析这些传统的测试方法别丢了。

5.1 静态分析

适合:

  • 代码类:lint、type check、安全扫描(ruff/mypy/bandit 这类)
  • 配置类:schema 校验
  • 文本结构:JSON schema、正则、字段完整性 优势:快、便宜、可复现、可 debug。

5.2 工具验证

Agent 出问题很常见的一类是:工具用错、参数错、顺序不合理、该用不用。

你可以验证:

  • 是否调用了某工具
  • 参数是否在范围(例如退款金额 <=100)
  • 是否访问了不该访问的资源

但要注意:不要把“必须按某条路径走”写死。太死会惩罚合理的创造性解法。更推荐「看产出」,必要时只加一些底线约束(比如必须做身份验证)。

5.3 记录分析

不一定评价“对错”,而是监控质量与成本:

  • turn 数、toolcall 数、tokens
  • 延迟:TTFT、总耗时、吞吐
  • 重试次数、错误码分布

6. 新的基于大模型的测试

该用用,但要用得克制

对于评测,我们通过可以分为三类:代码型、模型型、人工。实际落地里,模型型的价值主要在两件事:

  1. 开放式输出:没有唯一正确答案(客服话术、研究总结、写作、规划)
  2. 细粒度质量维度:礼貌、同理心、覆盖度、论证质量、是否胡编

常用方式:

  • 打分(按维度给分)
  • 自然语言断言(是否满足某条要求)
  • A/B 谁更好
  • 对照参考答案
  • 多裁判投票/取中位数

但需要注意:

  • 非确定性:同样输入可能不同评分
  • 更贵:相当于每条任务再跑一遍模型
  • 需要校准:必须和人评对齐,否则就是“模型自嗨”

一个实用的建议:给 LLM 评测一个「退路」,例如信息不足就输出 Unknown,避免它为了「必须回答」而脑补。

另外:把评分标准结构化,并拆维度单独评,不要一次判所有维度,噪声会很大,因为随着上下文更长,大模型的注意力会出现一些问题。

7. 人工评分

领域专家门禁:效果不好就不能上,灰度可选

人工评分并不是用来「天天打分」的,人工的职责更多是:

  • 定义标准(什么叫好)
  • 校准 LLM grader(对齐、抽检、纠偏)
  • 做门禁(关键版本上线前必须过)

7.1 门禁怎么做

  • 定一个小的「关键任务集」(比如 30 条最关键、最敏感、最影响收入/合规的),或者称为黄金链路
  • 每次大改/换模型/换工具链,必须过这个集
  • 过不了:不讨论「用户可能不在意」,直接回滚或修

7.2 灰度

没有足够流量,灰度很难有显著的效果,也没有啥意义:

  • 用离线评测 + 小范围内测
  • 线上用强监控兜底(错误、成本、关键转化、人工接管率等)

等流量与组织能力到位,再做严格 A/B。

8. 流程

从 0 到 1,再到可持续

这套流程的目标很简单:让每次改动都有依据,上线前知道会不会退步,退步了能快速定位原因。

第 0 步:尽早开工,小样本就能跑起来

别等“数据够多”。先做一个能工作的最小闭环。

    • 先收 20–50 条真实案例(成功和失败都要)
      • 来源:线上工单、客服反馈、bug 记录、内部手工测试步骤

 

  • 每条案例都写清楚:什么算成功,什么算失败
  • 先把基础能力跑通:
    能批量跑 → 每次互不干扰 → 全程有记录 → 能出汇总表

这一阶段不追求完美,只追求“评测能运转”。

第 1 步:把“手工回归”变成固定任务清单

你们发布前人工必做的检查,本质上就是任务列表,只是没系统化。

  • 发布前“必须点”的那些流程,全部写成任务,进评测库
  • 线上出现的 bug / 客诉,能复现的尽量都写成任务
  • 按影响排序:
    影响钱 / 合规 / 大客户 / 高频场景优先

做久了会发现:评测库就是你们产品真实使用方式的地图。

第 2 步:任务要写得清楚,评分要能落地

一条任务写不清楚,后面全是噪音。

至少要满足三条:

  1. 两位领域同学看完任务描述,能给出一致的“过/不过”
  2. 给每条任务准备一个“标准答案/参考做法”(证明这题能做对)
  3. 评分标准不能靠“默认常识”
  • 评测要检查什么,任务里就要写清楚
  • 别出现“任务没说路径,但测试默认某个路径”这种坑

任务写得越清楚,后面迭代越省时间。

第 3 步:任务要成对出现

很多系统越改越怪,可能是评测只给了单边信号。

每类行为都尽量做成一对:

  • 该查资料 / 不该查资料
  • 该下单 / 不该下单
  • 该继续处理 / 该转人工
  • 该修改文件 / 不该动文件
  • 该生成 / 该拒绝(合规类尤其重要)

第 4 步:把评测环境做稳定,确保结果可信

评测不可信,比没有评测更糟糕。

关键点:

  • 每次运行从干净环境开始(文件、数据库、缓存都重置)
  • 尽量减少共享状态(否则会互相污染)
  • 资源要有上限(CPU/内存/网络),避免“机器不够导致一片失败”
  • 失败要能区分:
    • 是系统真不行
    • 还是环境抖动、配额限制、工具不稳定

要保证:同一版本跑两次,结果大体一致。

第 5 步:评分规则按「能自动就自动」来设计

评分不要一上来就全靠大模型判。

推荐顺序:

  1. 能用确定规则判断的,先用确定规则
  • 结果是否写进数据库、订单是否存在、文件是否生成、测试是否通过
  1. 能用简单规则校验的,用规则
  • 字段完整、格式正确、调用工具参数在范围内
  1. 只有在确实需要“主观判断”时,才用大模型评分
  • 语气、解释是否清楚、内容是否覆盖关键点

还有一条很重要:
尽量评「最终交付」,少评「必须怎么做」。
路径卡太死,会误伤很多正确解。

第 6 步:固定做「看过程记录」,不然不知道问题在哪

很多团队评测做不下去,就是因为只看分数,不看过程。

至少要做到三件事:

  • 分数下降时:优先看失败最多、影响最大的那几条任务的过程记录
  • 每周抽查一批「通过」的过程记录(防止钻规则漏洞)
  • 发现「明明做对了却被判错」,立刻修任务描述或评分规则

一句话:评测系统也要像产品一样调试。

第 7 步:分数到顶了就补题,不然评测会失效

分数 100% 不代表系统没问题,只代表这套题已经测不出差异。

做两件事:

  • 持续把新的线上失败变成新任务
  • 专门补「更难、更真实」的场景(长流程、多约束、容易出错的边界条件)

评测库要一直增长,否则它会变成摆设。

第 8 步:让评测「有人管、有人用、有人能加题」

长期最有效的分工通常是:

  • 有一个小组负责评测系统本身(跑得稳、记录全、报表清楚)
  • 各业务团队负责写任务(最懂用户的人写,写出来才贴近真实)
  • 写任务像写代码一样走评审流程(谁提的、为什么提、怎么验证)

让离用户最近的人能把问题变成任务,是评测能持续的关键。

9. 非确定性

别再只盯「通过率」,用 pass@k 和 pass^k 讲清楚“稳定性”

Agent 的输出有随机性,同一任务可能今天过、明天不过。以下两个指标可以有:

    • pass@k:k 次尝试里至少成功一次的概率
      • 适合“允许多试一次”的场景(比如离线生成候选方案)

 

  • pass^k:k 次尝试全部成功的概率
    • 适合“线上必须稳定”的场景(客服、交易、流程自动化)

它们会随着 k 分化:

  • k 越大,pass@k 越接近 100%
  • k 越大,pass^k 越接近 0(对稳定性要求更苛刻)

这能解决很多争论:

  • 研发说「抽卡,多跑几次能过」
  • 业务说「用户只给一次机会」
    用 pass@k 和 pass^k 直接对齐产品要求。

10. 安例:生图 AI Agent 如何评估

生图 Agent 的评测,比「文生图模型评测」更难,因为 Agent 往往还会:

  • 和用户多轮确认需求
  • 调风格/比例/seed/参考图
  • 调用安全审核、版权过滤、提示词改写
  • 产出多张候选并做挑选/排序
  • 写交付说明(可商用/不可商用、使用建议)

评测要覆盖的不是「画得好不好」一句话,而是「是否按业务标准交付」。

下面给一套实用的评测维度:

10.1 标准

先定“交付合格”是什么

建议产品/设计/合规一起定 3–5 条硬标准,例如:

  • 不违规:敏感内容、未成年、色情、仇恨、暴力、政治等必须拦截或降级
  • 不侵权:明显模仿特定 IP / 特定艺人脸 / 商标露出等按策略处理
  • 满足需求:主体、场景、风格、比例、文字有无(比如“不要文字”)
  • 质量底线:严重畸形、手指崩坏、文本乱码(如果要求有字则反过来)
  • 可用性:分辨率、格式、背景透明/不透明、交付数量

标准不要写成「更美观」「更高级」,要写成可判定的条目。

10.2 数据集

最有效的来源通常是:

  • 用户最常下单的品类(电商主图、海报、头像、插画、UI 素材)
  • 客诉:不像、漏元素、风格跑偏、文字错、侵权被投诉、审核误杀
  • 运营活动:固定模板需求(这类最适合做回归)

每条任务里建议固定:

  • 用户输入(含约束:尺寸、风格、禁忌、用途)
  • 允许的工具(生成、放大、背景去除、OCR 检查、合规审查)
  • 成功条件(至少满足哪些项)
  • 参考交付(如果你们已有人工优秀样例,可以作为对照,但不强制唯一答案)

10.3 评测流程

评测建议按「确定性 → 半确定性 → 开放判断」的顺序叠起来,减少噪音、降低成本。

A. 结果校验(尽量全自动、最优先)

这层解决「交付物是否合格」的硬指标:

  • 格式、尺寸、分辨率、通道(如 PNG 透明背景)
  • 交付数量(例如必须 4 张)
  • 文件可打开、无损坏
  • 禁止内容检测(审核模型/规则引擎给出通过/拦截/分级)

B. 内容对齐(半自动,能做多少做多少)

这层解决“有没有按需求做”的关键事实核对:

  • 关键元素是否出现:用图像理解/检测器做覆盖检查(比如“猫 + 红围巾 + 雪地”)
  • 不该出现的是否出现:
    • “不要文字”→ 用 OCR 检测是否有字
    • “不要 logo/商标”→ logo/商标检测(覆盖不了的留到抽检)

C. 开放项判断(用于难以规则化的部分)

这层才用多模态判断去评估更开放的维度,例如:

  • 主体/场景/风格是否整体匹配需求
  • 是否存在明显瑕疵(手部畸形、脸崩、透视严重错误等)
  • 交付说明是否写清:能否商用、限制条件、使用建议

注意:开放项的判定要校准,不要一开始就“全自动放行”。

D. 过程约束(管体验、管成本)

对 Agent 的“过程”也要设上限,不然容易出现“靠烧钱刷分”:

  • 最大对话轮次(例如 ≤ 6 轮)
  • 工具调用次数上限(避免无限重试)
  • 总耗时 / 总成本阈值

10.4 成本控制

生图评测很贵,建议分三层跑,不同层用不同频率:

  1. 回归层(少量高价值,天天/每次发布必跑)
    高频品类 + 高风险合规项 + 线上常见故障
  2. 能力层(持续加难题,定期跑)
    风格混合、复杂构图、多约束冲突、长对话澄清等
  3. 抽检层(人工校准,每周固定抽样)
    抽查“通过样本”和“失败样本”,用来校准开放项判断与审核策略

10.5 典型坑

提前避开

  • 只看审美分,不看合规/侵权/交付规格 → 上线风险最大
  • 只测“能生成”,不测“该拒绝/该降级” → 合规体系形同虚设
  • 不看过程记录 → 不知道是 Agent 真错了,还是评分/审核错了;也抓不到“用昂贵链路刷通过”
  • 评分规则写死 → 把某一种构图当唯一正确,误杀大量合理解(导致迭代方向跑偏)

11. 最后

评测的目标是:知道变好还是变差、知道差在哪、知道怎么改。

真正成熟的状态通常是这样:

  • 每次改动都有反馈:离线分数怎么变、失败清单有哪些,一眼可见
  • 分数下降能追到根因:能定位到具体哪条任务、哪段过程记录出了问题
  • 关键回归集就是门禁:过不了就不发布(不讨论「感觉应该没事」)
  • 换模型/换策略能算账:能快速判断「收益是否值得成本与风险” 」
  • 线上与离线形成闭环:
    • 线上出现的新失败,能快速回流成任务进评测库
    • 离线提前发现的风险,能在上线前就挡住

最后一句:一定要看过程记录。

以上。

行业 Agent 实战总结:行业 Know How 如何在 AI Agent 中落地

2025 年就要过去了,今年算是 「 AI Agent 元年」。各种 AI Agent 层出不穷,我们能看到的做得比较好的还是编程用的 Agent。

做垂直行业 Agent 最常见的问题是「行业 Know How 没有变成系统的一部分」。

很多团队一开始就把一堆文档丢进知识库,做个 RAG,就开始卖方案。这种产品上线后很快就会遇到三类问题:

  • 答得像懂,但不符合行业规则:说法对,流程错;建议对,边界条件错。
  • 能聊但不能办事:无法稳定调用工具、填表、校验、留痕。
  • 越迭代越乱:知识变更没人负责,指标不清,线上问题复现不了。

Know How 真正落地,不仅仅是「让模型看过资料」,还要把行业经验拆成可维护的资产,进入 Agent 的检索、对话策略、工具链、评测与治理

下面是我对于这个事情的一些思考:

1. 行业 Know How 是什么

首先它不是什么。它不等于行业知识。

大家口头说的 Know How,落到产品和工程,至少包含五类东西:

  1. 概念与术语体系
    行业里的实体是什么、字段是什么意思、同义词怎么对齐、缩写怎么展开。
    以室内设计为例,意式低奢风格包括哪些元素,颜色,走线是怎样的,沙发应该是怎样的沙发,摆件应该是要用什么摆件等等。

  2. 规则与约束
    哪些能做、哪些不能做;阈值、条件、合规要求、审批链。
    这部分经常是 Agent 出错的根源,因为它不像百科知识那样「常识化」。或者换句话说这些在大模型的数据集中没有。

  3. 标准流程与例外流程
    正常路径怎么走,遇到异常如何处理,什么时候需要人工介入。
    垂直行业的「例外」通常比「主流程」更重要。

  4. 可交付的结果格式
    最终输出不是一段话,而是:一张符合要求的图、一份报表、一段可执行的操作、一张表单、一条工单、一段对外话术、一次系统配置变更。
    Know How 里要明确「交付物长什么样」。

  5. 判断标准(质量定义)
    什么叫「答对/办对」,什么叫「可用/不可用」,什么叫「风险可控」。
    这决定了你的评测体系怎么做,也决定能不能规模化。

很多人只停留在把 1 做好,,但 2/3/4/5 没有结构化,导致 Agent 看起来在输出,实际上没法稳定交付。

2. 行业 Know How 落地过程中的指标

把 Know How 落进 Agent 需要实现四个更实际的指标:

  1. 更低的错误率(尤其是规则类错误)
    垂直行业里,最致命的不是“答得不够全面”,而是“违规、越权、走错流程、漏掉关键校验”。

  2. 更稳定的工具执行
    Agent 需要把自然语言转换成结构化参数、步骤、校验,再调用系统。
    Know How 决定:填哪些字段、字段怎么校验、失败如何重试、何时升级人工。

  3. 更可控的交付质量
    有的行业输出必须“可审计、可追溯、可复核”。
    Know How 需要提供引用依据、版本号、规则来源、操作日志策略。

  4. 更强的组织协作效率
    Know How 一旦工程化,你就能把原来靠“资深同事口口相传”的经验,变成可复用资产。
    这在创业团队里很关键:人员变动不会让能力断层。

3. 按四层做落地实施

我个人倾向于把落地过程拆成四层,每层都有明确产物,方便推进、验收和迭代,并且每一层可能会对应不同的工种或团队,如果团队比较大的话:

  1. 知识层(Knowledge):知识库、术语体系、规则库、流程库
  2. 数据层(Data):训练数据集、测试数据集、线上回流数据
  3. 行为层(Behavior):提示词、对话策略、工具规范、风控策略
  4. 模型层(Model):基座模型选择、RAG 策略、LoRA/微调、路由与降级

3.1 行业 Know How 的定义与知识库的搭建

既然要做行业 Know How,那么需要清晰的知道什么是行业 Know How,以及谁可以做好行业 Know How 这件事情。

典型的负责人是业务 Owner 或资深的运营专家,如果是设计相关的行业,至少是设计总监级别的人才行。

我们做这个事情的目标是让让模型/Agent 说得准、做得对,并且可维护。

其核心产物如下:

  1. 术语体系:术语表(中英/别名/缩写)、字段含义、口径说明
  2. 规则库:可枚举的判断规则、禁区、例外条件(最好结构化)
  3. 流程库:关键业务流程(输入→判断→输出),含边界条件
  4. 知识源清单:哪些文档可信?更新频率?责任人是谁?(否则 RAG 永远不稳定)

这里建议做最小集合。

在做定义时,并不要直接全面畏开,小步快跑,灰度上线在这里也是一个好用的策略。

特别是小团队,可以让 业务Owner 主导,配一个「知识整理员」(运营/产品),快速迭代进行。

如果团队比较大,可以以「行业知识委员会」之类的组织形式(包括业务、法务/合规、客服/运营、产品等),每周进行,也是需要做增量逻辑 。

当做完了后,这些所有的内容都是需要验收的,大概需要有如下的一些标准,不同的行业不同,大家可以根据自己的情况延展开来:

  • 覆盖 Top N 高频问题/场景(比如 50/100 个)
  • 每条规则/流程有:来源、责任人、更新时间
  • 知识库能支撑检索:有统一 ID、可追溯引用
  • 隔离策略,权限控制
  • 切分粒度,过期策略

这些标准可以可直接写进项目的里程碑中。

3.2 数据集:训练数据集、测试数据集、回流数据

AI 教母李飞飞在视频里说过:数据不能说比算法重要,但至少同等重要。在垂直 Agent 场景,这句话更接近现实:用同一个基座模型,最后差距往往来自数据与评测体系。

数据一般是算法负责人或算法工程师来负责,但业务同学也需要参考其中,因为数据的好坏并不是算法同学可以解决的,以室内设计为例,一张图是否符合某个风格,算法的同学其实是不懂的,这需要业务同学的深度参与,并一起构建。

算法侧同学提供平台和数据,业务同学提供判断的能力和过程。

其核心产物如下:

  1. 训练/指令数据集(若需要):问题-答案、对话、工具调用轨迹,让模型学会行业表达方式、结构化输出、工具调用格式、常见任务路径
  2. 测试集(强烈建议先做):覆盖关键业务场景 + 对抗样本 + 边界条件,以可以稳定衡量上线质量
  3. 线上回流数据:用户输入、模型输出、工具结果、人工标注、失败原因标签,需要考虑用户隐私或者用户不允许使用其数据作为训练用等情况。这些数据可以让我们看到真实用户问题、失败案例、人工修正记录,用来驱动迭代
  4. 标注规范:什么算“正确/合规/有帮助/可执行”,标签定义要可复用

在小团队中,可以先做轻量的测试集,用于做版本回归;大一些的团队,可以直接先建议数据流水线:采集→脱敏→抽样→标注→入库→评测→报表。一把到位,不过也可以先人工,再脚本,再系统,再平台的逐步演化。

在做数据过程中,数据标注是一个很重要,但是又很重复的活儿。

建议在训练/测试数据中同时包含:

  • 正确输出(结构化字段或执行计划)
  • 关键引用依据(规则/流程/定义来自哪一条知识)
  • 失败示例(常见错误输出长什么样)
  • 评判标准(哪些字段错了就算失败)

对于一个创业团队来说,很难一开始就有大量行业的高质量数据,建议把精力放在:

  • 覆盖核心任务前 20% 的高频路径
  • 覆盖最致命的规则错误
  • 覆盖工具调用最常失败的参数组合
  • 每次迭代只扩一小块范围,但把这块做“闭环”

3.3 提示词

提示词是我们和 Agent 交互的核心路径,在落地时,我们需要把 Know How 变成对话策略执行约束

在垂直 Agent 中,我一般只保留这些内容:

  • 角色与权限边界:能做什么、不能做什么
  • 任务范围:支持哪些任务,不支持哪些任务
  • 关键术语与字段定义(只放必须的,其他走检索)
  • 输出规范:必须给结构化结果、必须给引用、必须留痕字段
  • 追问策略:缺哪些字段必须追问;遇到冲突必须确认
  • 风控策略:触发哪些条件必须拒绝/升级人工
  • 工具调用原则:什么时候必须调用工具验证,什么时候允许只基于知识回答

不要在系统提示词里塞大量「知识正文」,那是 RAG 的工作。

垂直行业用户会追问「你凭什么这么做」。如果引用做不好,Agent 很难进入生产流程。

建议把引用设计成两层:

  • 面向业务用户:引用规则标题 + 生效时间 + 一句话解释
  • 面向审计/排障:引用片段 ID、版本号、检索得分、调用工具日志

这部分一旦做成标准件,后面迭代会轻松很多。

另外,需要考虑提示词的版本问题,需要像代码一样做版本管理(有变更记录、可回滚)。

并且,对于对话策略,需要能澄清问题、确认关键信息、分步执行、失败重试与兜底;对于工具,每个工具的输入输出 schema、超时、幂等、重试、权限等等都需要考虑。还有一些风控策略。

在小团队中,可以用一套主提示词 + 若干场景子提示词,先保证可控,工具尽量少但稳定。

业务复杂一些后,可以做策略路由,做一个策略系统,不同意图走不同策略/模型/工具链,并且可以引入灰度发布等逻辑以减少版本迭代时对用户的影响,以及做 A/B 策略。

3.4 在 LoRA 中如何体现这些 Know How

LoRA 适合学“表达方式与结构化习惯”,不适合塞“会变的事实与规则全文”。

以室内设计为例,LoRA 真正解决的是两件事:

  1. 让模型更像专业的设计师(表达方式、偏好、组合习惯、审美取向更稳定)
  2. 让模型在特定任务上更「听话」且更一致(同样的输入,输出结构、风格强度、方案套路更可控)

LoRA 是把隐性经验固化

设计的很多 know-how 不是“能查到的一条条规则”,而是:

  • 这个风格到底应该选哪些材质更对味
  • 什么比例的木色/灰度/金属更像“中古”
  • 软装怎么搭不显廉价
  • 同一个户型在预算约束下,先动哪里收益最大
  • 同样叫“奶油风”,专业设计师认可的“奶油风”边界在哪里

这些东西虽然也可以写成原则,但很难写成完整可枚举的规则库。这类「难以规则化但能被大量样例体现」的东西,才是 LoRA 更擅长的。

以风格为例,风格可以拆成两部分:

A. 可描述、可枚举的部分(更像知识)
比如:

  • 风格定义与边界:什么是侘寂、什么不是
  • 常用元素清单:材料、色系、线条、灯型、家具轮廓
  • 禁忌与冲突:哪些组合容易翻车
  • 预算/空间约束下的硬规则:动线、安全、尺度、收纳基本原则

这部分适合放在 知识层(术语/规则/流程)+ RAG:因为它会更新、可追溯、要引用来源,改起来也方便。

B. 难以枚举、靠“整体观感”判断的部分(更像模型能力)
比如:

  • “像不像某个风格”的整体一致性
  • 元素比例、轻重、层次、留白的拿捏
  • “高级/廉价”“松弛/用力过猛”这种审美判断
  • 团队偏好的方案套路(同户型常用的解决方式)

这部分更适合用 LoRA:用高质量样例把“认可的风格分布”压到模型里,让它输出更稳定。

在以 LoRA 落地的过程中, 风格一致性更稳,输出更贴近可交付物,方案「更会落地」

3.5 那大模型呢?

Know How 在大模型中如何体现?企业不炼模型,怎么选、选完能做什么?

大多数企业不可能自己训练大模型,现实做法是:选一个合适的基座 + 做好工程层的增强

大模型的选择需要在成本、稳定性、延迟之间达到可用平衡,并可持续可迭代。 这里的迭代不仅仅是大模型本身的迭代,还可能是切换到其它的大模型。

在当前的 AI 场景,没有所谓的客户忠诚可言,哪个好用用哪个,而且切换成本不高(API + 提示词场景)。

创业小团队需要以 RAG + 行为策略,把 80% 问题做稳,暂缓微调;把钱花在评测与回流上。 只有这些成熟一些后,可以再考虑上 LoRA/微调,收益才可控。

对于大模型,我们会关心这些维度:

  • 工具调用能力:函数调用是否稳定、参数是否可控
  • 长上下文与检索融合:能不能在引用材料下保持一致
  • 结构化输出稳定性:格式错一次,生产系统就要兜底
  • 安全与合规:越权回答、敏感信息处理、拒答策略
  • 成本与延迟:是否能在预算内跑到规模
  • 部署形态:公有云/私有化/混合;日志与数据是否可控

我们不会只选一个模型就定终身。哪个好用用哪个,并且在工程层面实现「模型路由」:不同任务用不同模型,失败自动降级

4. 聊下组织

在整个落地的过程中,组织是对落地结果的非常重要的保障,需要事事有人跟,件件有人负责,一般的分工如下:

  • 业务负责人:定义任务边界与验收标准,批准规则变更
  • 行业专家:产出规则/例外/口径,参与标注与复核
  • 产品/运营:维护任务地图、模板、知识版本,推动回流闭环
  • 算法/工程:RAG、工具链、评测、监控、部署与回滚

5. 小结

Know How 落地的目标不是「更像专家」,而是「更像系统」

垂直行业的 AI Agent,最终要进入的是流程、合规和交付,而不是聊天。

以上。