Agent Self-Improving 工程指南
本指南只讲一件事:怎么真的把 Agent 自改进搭出来——采集什么证据、怎么反思成经验、如何安全地让它生效。偏工程落地,不是论文综述。
自改进就是一个闭环:让 Agent 把「这次是怎么做成 / 做砸的」变成下次的先验。运行 → 留痕 → 反思 → 归纳 → 激活 → 注入 → 再运行。
学术上这个闭环被抽象为四要素:System Inputs / Agent System / Environment / Optimiser(综述 arXiv:2508.07407)。你要优化的是前两者,信号来自环境,而「反思器」就是那个 Optimiser。
先划边界:是什么,不是什么
| 这是自改进 | 这不是自改进 |
|---|---|
| 沉淀「这类任务该先查再答」这样的方法论 | 记住「用户叫张三、住北京」这样的用户事实 |
| 经验归 Agent,可跨用户复用 | 用户画像、个性化人设 |
| 提炼可复用、带适用条件的规则 | 把原始日志或历史对话整段堆进 prompt |
经验归 Agent,不归用户。用户标识只应出现在原始证据里,唯一用途是把轨迹读回来;经验层不带用户维度。这条一旦破防,隐私合规与跨用户复用会一起崩。
改什么:四层选型(决定项目难度)
自改进不是一个动作,而是四个不同层级的动作。选错层级,项目基本就废了。
这不是保守,有实证支撑:GEPA(arXiv:2507.19457,ICLR 2026 Oral)用纯 L1 的反思式提示词进化,平均比 GRPO 这类 L4 方法高约 10%(最高 20%),而 rollout 少到 1/35。
L1 还有个隐性优势:可解释。规则是人类可读的自然语言,学错了你能直接看到并删掉;L4 权重学错了只能重训。
Darwin Gödel Machine 让 Agent 改写自己的代码库,学术上极漂亮。但自动改代码不该出现在你的第一版生产系统里。一套企业级实现在「非目标」里明确写了:不自动改写子 Agent 描述、不自动改代码。
何时改:任务内 vs 任务间
| 时机 | 做法 | 代价 |
|---|---|---|
| 任务内(test-time) | Reflexion 式:失败 → 口头反思 → 立刻重试 | 直接推高当前请求时延 |
| 任务间(offline / sleep-time) | 运行结束后离线反思,下次生效 | 对话时延零影响 |
生产系统几乎都选第二种。学界称之为 sleep-time compute(arXiv:2504.13171)——让模型在「睡觉」时预先思考。这与人类睡眠巩固记忆的隐喻一致:白天经历,夜里整理。
架构总览:三段职责
在线路径只做三件轻活:读已激活经验 + 写证据 + 入队。重加工全部离线。
由此得到两条必须写进设计文档的降级语义:
- 没有已激活经验时,prompt 里经验块为空——这是预期降级,不是采集失败。
- 存储层故障时,整条自改进链路降级,主对话照常可用。
CAPTURE① 数据分层与归属
先定数据分层。只需两段,别搞三层四层。
| 段 | 内容 | 带用户标识? | 用途 |
|---|---|---|---|
| 证据段 | 消息、生命周期事件 | 带 | 唯一用途:把轨迹读回来 |
| 经验段 | 候选经验、规范规则、证据边 | 不带 | 按 Agent + 作用域归属 |
标识与粒度
| 标识 | 粒度 | 用途 |
|---|---|---|
tenant_id(隔离域) | 租户 / 域 | 第一隔离边界,聚合与消费不得跨越 |
user_id | 源用户 | 只在证据段与队列,用来把轨迹读回来 |
conversation_id + run_id | 一次完整运行 | 反思的处理单元与幂等单元 |
target_agent_id | 责任 Agent | 这条经验约束谁 |
作用域枚举:只要两个值
agent—— 只约束某一个target_agent_idglobal—— 隔离域内全局生效,target_agent_id为空
想跨用户共享,只能通过 global 或 Agent 级规则实现。绝不能把用户标识写进经验层,再靠放宽查询条件来实现共享。
白名单与克制采集
新手最容易犯的错:把所有事件都写库。流式输出一个 token 一条 INSERT,数据库直接被打爆。正确做法是白名单,只持久化重建轨迹必需的那几类。
| 落库(白名单) | 为什么必需 |
|---|---|
| 运行成功终态 | 完整终态 + 最终回答 |
| 运行失败终态 | 失败信号,反思的高价值输入 |
| 子 Agent 调用开始 | 证明调过子 Agent |
| 子 Agent 调用结束 | 携带子会话标识 |
| 子轨迹快照 | 子 Agent 内部过程,首次归一后重放复用 |
| 不落库(仅进文件日志):流式文本分片、推理过程、工具调用明细、心跳、运行开始 | |
相比「每条事件都 INSERT」的旧行为,典型长请求的写入量只剩原来的 0.5%–2%。
过滤要放在两处:写库函数入口直接返回,以及异步派发前就跳过(避免白建一堆任务对象)。
可观测性靠文件日志,不靠数据库。文件日志仍记全量,数据库只存重建轨迹必需的最小集。
提交时机(顺序错了反思会全跳过)
- 请求开始:加载
status=active的规则,拼进各节点的 system prompt。 - 运行中:只把白名单事件交给采集函数;流式输出只进文件日志。
- 请求结束:同步写入消息(用户输入 + 最终回答)。终态事件必须在入队前落库。
- 入队反思:入队失败不阻断主回答。
终态事件若晚于入队落库,轻反思会把轨迹判为 trajectory_incomplete 并直接跳过——表现为「队列都完成了,但一条经验都没产出」。
REFLECT② 分层反思:浅层与深层必须分开
| 轻反思 | 深反思 | |
|---|---|---|
| 输入 | 一次完整运行 | 轻反思积累的候选 |
| 动作 | 原子提取,不做归纳 | 聚类 + 归纳 |
| 产出 | 候选经验 | 规范规则(带适用条件 / 例外) |
| 关系 | 1 : 1 | N : 1 |
| 默认 | 开启 | 关闭 |
理由非常实际:没有轻反思的稳定产出,开深反思几乎无产出。先让浅层跑稳、有量,再开归纳。这个顺序反了会浪费大量调试时间。
门控:先问「值不值得反思」
不是每条轨迹都有信息量。反思一条「你好 / 你好,有什么可以帮您」纯属浪费 token 并污染经验库。
| skip_reason | 条件 |
|---|---|
trajectory_incomplete | 没有终态事件,或轨迹被截断 |
no_messages | 轨迹没有任何消息 |
trivial_interaction | 消息数 ≤ 2,且无子 Agent、无重试、无错误、无反馈 |
有反馈、有重试、有错误、有子 Agent 链路的轨迹才值得反思——因为那里才有「哪里做对了、哪里踩坑了」的信号。这一步直接决定整个经验库的信噪比,别省。
轻反思:单轨迹原子提取
- 重建轨迹:按
隔离域 + 用户 + 会话 + 运行四元组还原完整轨迹。 - 补全子轨迹:若调过子 Agent,拉取子会话历史;首次归一结果落快照,重放复用,不再回源。注意尊重上游限流(如最小请求间隔 3 秒)。
- 通读提炼:提炼 3–5 条关键要点。不臆造——原文没有的不写,不确定就标低置信度。
- 幂等写入:写候选表,归属到目标 Agent 或
global。
补全失败必须在调用记录上可见,且不得把内容类经验归到该子 Agent——只能保留入口编排层面的经验。否则你会把「没看到的东西」当成结论写进库里。
幂等与置信度
幂等键必须足够完整,建议包含五段:
idempotency_key = (
tenant_id, # 隔离域
source_run_id, # 来源运行,保证同一轨迹重放不重复
target_agent_id, # 归属
fingerprint, # 内容指纹,区分同一轨迹的多条经验
reflector_version # 反思器版本,升级 prompt 后可重新反思而不冲突
)
低于阈值(如 0.6)的候选进 review 而不是直接可用。这是在深反思之前的第一道质量筛。
经验分类与信号:固定枚举,别让模型自由发挥
标签一旦漂移就无法分组,深反思会直接失效。建议固定九类:
未知标签一律归一为空串,避免污染后续分组。信号只需三值:helpful / harmful / neutral。
深反思:跨轨迹归纳
pending · 跳过已锁行
作用域 · Agent · 类型
Jaccard ≥ 0.4
簇大小 ≥ 2
status=candidate
之后还有两步收尾:写证据边(规则 ↔ 来源候选,保证可回溯)与留痕(记录本次运行状态与摘要)。
- 一次运行不得跨隔离域聚合,且应在单一域 + 单目标 Agent 的处理块内加锁串行(归还连接前显式释放锁)。
- 簇大小 ≥ 2 才归纳——孤例不成规则。只出现过一次的现象,可能只是噪声。
产出格式:要带适用条件和例外
# Agent Experience Context
## Deep Experiences
- {规则标题}: {规范化表述}
- applicability: 什么场景下适用
- exceptions: 什么情况下不适用
一句干瘪的结论(「要先查再答」)几乎无法指导行为;带上适用条件与例外,才是可执行的规则。
失败语义:三条
| 规则 | 含义 |
|---|---|
| 主对话不依赖反思成功 | 入队或反思失败不得阻断当前回答 |
| 失败可查 | 失败任务把错误写入 payload,方便 grep;但不自动重跑 |
| 证据永不因反思受损 | 反思只读证据,失败不回改证据,任务可重放 |
ACTIVATE③ 激活是独立生命周期
机器唯一能自动写入的终态是 candidate。从 candidate 到 active 必须经过一次显式决策。没有自动晋升。
为什么值得如此保守
- 反思是 LLM 生成的,会有幻觉。一条错误规则被自动激活,会污染此后所有请求,且很难归因。
- 经验注入是全局影响,不像单次回答错了那么容易被发现。
- 激活前需要人确认一件事:规则里不含用户事实或可识别个人信息。
| 状态 | 含义 | 是否注入 |
|---|---|---|
candidate | 机器产出的默认状态 | 否 |
active | 唯一被注入的状态 | 是 |
conflicted | 与已有规则矛盾,人工待裁 | 否(也不归档) |
superseded | 被新版本取代而降级 | 否 |
archived / rejected | 退出运行时,保留为资产 | 否 |
与已有规则矛盾的规则,既不注入也不归档,挂起等人裁决。不要让机器自己选边——矛盾往往意味着规则缺少适用条件,而不是其中一条错了。
那套企业级实现甚至主动放弃了早期版本设计的自动质量门禁与灰度晋升链,改回人工激活。在没有可靠自动评估之前,这是更诚实的选择。
运行时注入
| 环节 | 做法 |
|---|---|
| 加载 | 按隔离域取 status=active,作用域为 global 或匹配当前 Agent |
| 限量 | 如最多 50 条,按 置信度 → 证据数 → 更新时间 排序 |
| 渲染 | Markdown 经验块进 system prompt,按文本预算截断(如 2000) |
| 稳定性 | 单次运行内这份上下文必须不变 |
| 空结果 | 省略经验块,降级为无经验模式,不阻断对话 |
如果同一次运行的不同节点(比如分类、规划、反思三个节点)加载到了不同版本的经验,行为会漂移,问题也将无法复现。新激活的规则应从下一次运行才可见。
CASEWarp:另一条路线,把经验写进文件
前面讲的是「经验存数据库」路线:候选表、规则表、改状态激活。但还有一条同样成立、而且更轻的路线——把经验写成文件,让改进走标准代码评审流程。Warp(AI 终端 / agentic 开发环境)的公开实践是个很好的样本。
一次性写好的 prompt 只能把任务做对约 80%,剩下 20% 产生大量噪音,体验反而很差。内部的代码评审 Agent 被工程师抱怨「评论无用」。靠人工不断重写 prompt 来补那 20%,根本无法规模化。
反馈是无状态的(stateless)。会话结束后,人给 Agent 的反馈就消失了,那些最关键的上下文被直接踢出了 agentic loop。
双层 Skill 循环
合并后,下一次内层运行即继承该改进。
| 本指南的说法 | Warp 的对应物 |
|---|---|
| 轻反思(单轨迹提取) | 内层 Skill 的单次产出 + 就地反馈 |
| 深反思(跨轨迹归纳) | 外层 Improver Skill 的定时归纳 |
| 候选经验 → 规则 | Improver 提出的最小 diff |
| 激活是显式决策 | 开 PR → 人工 review → merge |
| 证据可回溯 | Git 历史天然可 diff |
机器在这里只提建议(开 PR),从不直接改生效内容。这与不变量 I-4「未激活不注入」完全同构——只是把「改数据库状态」换成了「合并 PR」。
「框架其实非常简单:一个领域特定的 base skill,加一个用来打磨它的 improver skill。这种简单性就是这个方案的美感所在。」
Skills 与 Memory 不是一回事
这个区分很锋利,也是很多人混淆的地方:
| Skills | Memory | |
|---|---|---|
| 性质 | 程序性——「如何做 X」 | 事实性上下文 |
| 稳定性 | 稳定,与单次运行无关 | 永不停止变化 |
| 谁来改 | 刻意变更(走审核) | Agent 推理时自动写入 |
本指南采集/反思/生效那三段构建的本质是 Skills,不是 Memory。程序性知识一旦出错,影响是全局且持续的——所以必须有人把关。
编写自改进 Skill 的 6 条准则
| # | 准则 | 要点 |
|---|---|---|
| 1 | 写原则,而非规则 | 「像在指导一个聪明的人,而不是在给计算机编程」。写「寻找重复代码」优于穷举命名规则 |
| 2 | 解释「为什么」 | 给出规则背后的理由,Agent 才能推理,泛化更好 |
| 3 | 让反馈毫不费力 | 在人已有的工作流中采集(直接在 PR/Issue 下评论)。「低摩擦才能保持信号流动」 |
| 4 | Skill 要小 + 渐进披露 | 好的 Skill 文件不大,它引用资源文件与脚本,而不是一次性塞满上下文 |
| 5 | 质量 > 数量,但数量有帮助 | 资深工程师的少量详细反馈胜过大量草率反馈——二元 👍/👎 说不出「为什么」 |
| 6 | 在 Improver 上多投入 | 它跨用例高度可复用:除领域知识部分,各 Agent 的 improver 差别不大 |
我们讲了「有反馈的轨迹才值得反思」,但没讲反馈从哪来。答案是:不要新建一个反馈系统,去人已经在做事的地方(PR 评论、Issue 回复)把信号捡起来。让人为了喂 Agent 而多做一步操作,信号就会枯竭。
落地案例:Issue Triage Agent 全链路
Warp 开源了完整示例(warpdotdev/warp-agents-demo-github-issue-triage),链路值得抄:
- 触发:有人提新 Issue → CI 启动 Agent → 分析复杂度与可行性 → 打标签、建议修复方向。内层 Skill 文件里写明每个标签的语义定义、行动前如何研究代码库。
- 发现缺口:首轮表现不错,但漏掉了
ready to spec标签(表示贡献者可以开始撰写规格)。 - 就地反馈:维护者直接在该 Issue 下留言,并同时说明「期望什么 + 为什么期望」。
- 外层运行:定时 Agent 认证 → 运行 Skill 内捆绑的脚本拉取近期带反馈的 Issue → 汇总为结构化文件 → 读回上下文。
- 最小修改:开 PR 改内层 Skill——当 Issue 描述了真实问题时即应用该标签,即使 UI 形态尚未确定;PR 描述里写明哪些信号触发了改动。
- 闭环:人 review → merge → 下次运行继承。这一步人工环节闭合了循环,并保证人始终掌控改了什么。
Skill 引用脚本,避免每次运行都让模型重新写一遍取数代码——既省 token,又消除了随机性。
Warp 现在把这套模式跑在整个开源仓库上,拥有独立的 spec 撰写 Agent、评审 Agent、triage Agent,每个都带自己的自改进循环。
两条路线怎么选
| 存数据库(前三段) | 存文件走 PR(本节) | |
|---|---|---|
| 适合 | 面向终端用户的在线业务 Agent | 研发流程内的 Agent(评审 / triage / spec) |
| 经验载体 | 候选表 / 规则表 | Skill 文件 |
| 激活方式 | 改状态为 active | merge PR |
| 审核工具 | 需自建审核台 | 直接复用代码评审 |
| 可回滚性 | 需自己实现 | Git 原生 |
| 轨迹重建 | 需自建证据表 | 大多已在 PR / Issue 里 |
如果你的 Agent 本来就工作在代码仓库里,优先选文件路线——你能白捡 diff、review、回滚、历史四件套。如果是面向用户的在线对话 Agent(轨迹在数据库里、没有天然的 PR 载体),那就用前三段那套。
八条不变量(破坏即事故)
这是评审任何改动的第一标尺。
记 I-6(自改进永远不能拖垮主业务)和 I-4(未验证的东西永远不上线)。
测试与监控
三条测试原则
- 真实数据库验证:常规单测用替身连接;真库用例读环境变量,未配置时自动跳过而非失败。
- 端到端覆盖:采集 → 入队 → 真实类型序列化 → 写入候选,并断言流式事件不落库。
- 测行为,不测实现:断言「未激活不注入」「跨域读不到」「白名单外不落库」这些意图,不锁定 SQL 文本,避免测试固化实现、阻碍演进。
日常巡检:先看三张表的状态分布
SELECT status, count(*) FROM 任务队列 GROUP BY 1 ORDER BY 1;
SELECT status, count(*) FROM 候选经验表 GROUP BY 1 ORDER BY 1;
SELECT status, count(*) FROM 规则表 GROUP BY 1 ORDER BY 1;
跳过反思时任务照样标记 completed。所以监控必须同时看产物表。队列全绿而候选表为空,就是下面那个故障的特征信号。
真实故障复盘:一个静默失败
测试环境轻反思全部失败,任务队列进 failed,候选表始终为空。
序列化轨迹时没处理数据库游标读出的时间类型:
Object of type datetime is not JSON serializable
本地单测用 None 和 ISO 字符串手搓轨迹对象,从没覆盖真实游标读出的数据形状。
修复本身很简单——序列化时统一把时间类型转 ISO 字符串。但教训的价值远超这个 bug:
- 任务完成 ≠ 有产出。监控必须同时看产物表,不能只看任务表。
- 测试要用真实数据形状。整条链路最容易碎的地方,恰恰是跨系统边界的数据形状转换。
- 测行为,不测实现。断言意图而非 SQL 文本。
历史 failed 任务通常不会自动重跑。部署修复后要手动把它们打回 queued,再观察候选表是否开始增长。在此之前开启深反思没有意义。
战略级教训:别一次性设计太多层
那套企业级实现的 1.0 版本,设计了一份相当宏大的蓝图。结果几乎全部未落地,2.0 果断砍掉,收敛为单一产品线:只做 Agent 经验。
| 1.0 设计 | 2.0 现状 |
|---|---|
| 用户记忆(原子 / 人设 / 场景) | 未实现,不按用户召回 |
| 策略手册 + 版本化发布链 + 回滚 | 未实现 |
| 多组件存储(关系库 + 缓存 + 对象存储 + Git) | 收敛为单库 |
| 自动晋升 + 质量门禁 | 人工激活 |
| 软遗忘、硬上限、向量检索 | 不做 |
自改进系统最常见的死法,是一次性设计太多层。先把「一条轨迹 → 一条经验 → 注入生效」这条最小闭环打通并跑稳,再考虑加东西。
从零复现的最小清单
不需要向量库,不需要多组件存储。一个关系库 + 两个 worker 就能起步。
数据骨架
实施顺序
- 采集 建证据段 + 采集:白名单过滤,终态事件先于入队落库。
- 反思 建队列 + 轻反思 worker:门控 → 重建 → 提炼 → 幂等写候选。
- 生效 建注入:加载 active。一开始手工插一条测试规则验证链路。
- 生效 验证最小闭环:手工规则能进 prompt,且断开存储时主对话仍可用。
- 反思 跑量:让轻反思稳定产出一段时间,观察候选表增长与质量。
- 反思 再开深反思:分组 → 聚类 → 归纳 → 写 candidate。
- 生效 建激活流程:人工审核台(哪怕先是一条 SQL + 一个 checklist)。
先打通注入链路再做深反思。这样你能尽早验证「经验真的能影响行为」这件最核心的事,而不是等归纳跑完才发现注入是坏的。
避坑对照表
| 陷阱 | 正确做法 |
|---|---|
| 每条流式事件都写库 | 白名单,只留重建轨迹必需的几类 |
| 反思失败阻断主回答 | 入队与 worker 失败一律不阻断 |
| 把用户标识写进经验层 | 经验按 Agent + 作用域归属 |
| 机器自动激活规则 | 只写 candidate,激活是显式决策 |
| 幂等键只用运行 ID | 加内容指纹与反思器版本 |
| 孤例直接升级成规则 | 成簇 ≥ 2 才归纳 |
| 只监控任务队列状态 | 必须同时看候选表与规则表 |
| 单测手搓理想数据对象 | 用真库真实游标形状跑端到端 |
| 一次运行内热加载新规则 | 单次运行内注入集保持不变 |
| 让人为了喂 Agent 而多做一步操作 | 在人已有的工作流里就地采集反馈 |
| 无条件相信人类反馈 | 假定反馈会出错,做合理性校验并筛选来源 |
| 把 Skill 写成穷举规则清单 | 写原则 + 解释为什么,让 Agent 能推理 |
| 让 Agent 直接改证据 | 反思只读证据,永不回改 |
| 一上来就做自改代码(L3) | 先把 L1 做透 |
怎么验证它真的有效
这是最容易被忽略的一环。两条腿都要有。
在你有可靠自动评估之前,别开自动激活。人工审核慢,但错误规则污染全局的代价更高。
五个治理问题(来自 Warp 的实践问答)
这几条把「怎么评估」从原则推进到了可操作层面。
| 问题 | 答案 |
|---|---|
| 反馈本身是错的怎么办? | 假定它一定会出错。不要让 Agent 盲目接受反馈——给它上下文做合理性校验、筛选谁的意见算数,并在筛选阶段或最终评审阶段保留人在环 |
| 你的领域可验证吗? | 可验证就先建验证 harness,再让 Agent 对着它调优:生成参考语料 → 对比输出与参考 → 修正 → 重复 |
| 不可验证怎么办? | 尽量依赖针对 golden outputs 的确定性 evals;必须用人类反馈时,限定为领域专家——不要开闸放水 |
| 一个 Improver 还是每个 Agent 一个? | 折中:用模板化的 base loop 捕捉共性,再叠加领域特定权重。少数几个 → 各自独立;上百个 → 共享 |
| 怎么知道整个系统在变好? | 追踪人本就在看的全局指标(合并耗时、贡献者数量、成本),并把这些指标回灌给 Improver Agent |
把业务指标回灌给改进器,让它知道自己的修改到底有没有让整体变好,而不是只盯着单条反馈优化。
爬 → 走 → 跑:先小范围只读观察,再半自动,最后才扩大自动化范围。
参考资料与脱敏说明
综述与课程
- A Comprehensive Survey of Self-Evolving AI Agents — arXiv:2508.07407(System Inputs / Agent System / Environment / Optimiser 统一反馈环)
- A Survey of Self-Evolving Agents: On the Path to ASI — arXiv:2507.21046
- Stanford CS329A《Self-Improving AI Agents》(2025 秋) — cs329a.stanford.edu
L1 上下文 / 经验层
- Reflexion(NeurIPS 2023)— arXiv:2303.11366
- ExpeL(AAAI 2024)— arXiv:2308.10144
- ACE: Agentic Context Engineering — arXiv:2510.04618(Generator–Reflector–Curator)
- GEPA(ICLR 2026 Oral)— arXiv:2507.19457
L3 架构层 / L4 权重层 / 离线范式
- ADAS: Automated Design of Agentic Systems(ICLR 2025)— arXiv:2408.08435
- Darwin Gödel Machine — arXiv:2505.22954
- SEAL: Self-Adapting Language Models — arXiv:2506.10943
- Sleep-time Compute — arXiv:2504.13171
工业界实践
- How Warp builds self-improving agents on Claude(Anthropic 官方博客,Michael Segner,2026-08-26)— claude.com/blog(双层 Skill 循环、6 条准则、治理问答)
- Warp 开源示例:GitHub Issue Triage Agent — warpdotdev/warp-agents-demo-github-issue-triage
上述 arXiv 编号与会议归属均经公开来源检索核对。GEPA 的性能数字来自其论文摘要自述结果,适用于其评测设置,不应外推为普适结论。
Warp 案例(双层 Skill 架构、6 条准则、Issue Triage 链路、治理问答、规模数据、CEO 引语)均来自上述 Anthropic 官方博客,属公开可引用信息;规模数据为该文发布时(2026-08)口径。「两条路线怎么选」的对比表是本页归纳,用于串联两个来源不同的案例,不出自任何单一原始资料。
本页其余工程细节(白名单五类事件、写入量降至 0.5%–2%、置信度阈值 0.6、聚类 Jaccard 0.4、成簇 ≥ 2、最多 50 条 active、渲染预算 2000、时间类型序列化故障等)来自某企业级实现的内部架构文档,已做匿名化与通用化处理,去除了全部内部平台名、仓库标识、环境变量名与表名,不指向任何具体系统。这些数值是该系统的经验取值,不是通用最优值,请结合自身场景调参。
→ 阅读博客版《如何做 Agent 的 Self-Improving:一条可落地的工程路径》(含 6 张 SVG 图解)