← 返回上一页
KEQI.SITE · AI 实践作品 01← 返回作品列表
AGENT DESIGN · 方法论

Agent 设计指南
环境决定它稳不稳

2026-10-22阅读约 12 分钟源:七层配置 + F1–F14 + 四个本地 Agent 迭代账本
问题|每封装一个 Agent 都从 0 开始,规则靠回忆,质量看当天状态。
改变|提炼成七层通用配置 + F1–F14 失效清单:后续封装直接复用,持续迭代,不从零起步,质量有底。
角色|参考最佳实践 + 四个本地 Agent 迭代账本;2026-10-22。

01 · 价值为什么值得花力气搭这层

同一个模型,有人用起来每天稳定出稿,有人每次结果都不一样——差别不在模型,在它外面那层环境。搭这层的目的只有三个,都能对应到具体的麻烦:

VALUE 01
把「靠它想起来」
换成「流程必经」
规则写在提示词里,能不能执行全靠模型当次心情;写进必经步骤或机制里,才会真的发生。这是稳定性的来源,不是更长的提示词。
VALUE 02
把「我觉得好了」
换成「外部信号说好了」
自评能通过任何改动,包括让它变得更差的那次改动。验收必须放在 Agent 之外:测试、盲读、复述、真实交付。
VALUE 03
把经验从人脑
搬进文件
换会话、换模型、换人接手,都能接着跑。这是「一个人能用」和「一个团队能用」之间的那道门。

落到业务上,判断标准很朴素:这东西能不能被别人接手。能接手,说明它的判断依据、验收方式、出错记录都在文件里,而不在你脑子里——这恰好也是增长体系里「可复制」和「靠个人」的分界线。

环境不生产内容,它只决定内容能不能被稳定地产出来。 ——整套七层配置的唯一目的

02 · 七层按顺序配,每层都有「默认 / 反模式」

七层不是七个可选项,是七个漏点。一个 Agent 出问题,先问「七块里缺哪块」,而不是先加一段 prompt。

LAYER 1指令
默认:目标写成「谁 + 哪个时刻 + 什么动作 + 什么可验证结果」;生成规则 3–5 条,每条是「动作 + 判据 + 产物」;安全规则单独列。
反模式:把判断标准写成形容词(要深刻、有价值);把规则写成可打勾的字段。规则一形容词化,执行里就消失了。
LAYER 2上下文
默认:分层索引 + 渐进披露——常驻只放元数据和索引,正文按需加载,重资料进 references。指令主文件控制在 200 行内。
反模式:把所有规则塞进一个几千行文件(越长越稀释);把 skill 当「一定会被读」。
LAYER 3工具
默认:工具少而专,接口按「模型好不好用」设计,参数设计让错误难以发生。分工:查/算/固定输出走 code,要判断走 skill,连外部系统走 MCP。
反模式:40+ 工具塞满上下文;每个 REST 接口包一个工具;MCP 过度接入。
LAYER 4状态
默认:长任务必须外置状态——初始化建环境与清单,每次开工先读进度 + 跑冒烟测试,收尾写进度并提交。状态写在文件里,不写在对话里。
反模式:把 chat 历史当文档;靠压缩代替外置状态。换个会话就接不上,是这一层没做。
LAYER 5验证
默认:验证放在 Agent 之外。四层参考:语法/编译 → 逻辑/单测 → 规范/合规 → 架构/人工审查。Agent 自评只能算「它认为」。
反模式:用打分表卡关;用「六维全 pass」代替「人读得下去」。
LAYER 6约束
默认:硬约束走机制——hooks、权限、沙箱、审批;提示词只做提醒。最小配置:只读默认 + 写操作需确认 + 高风险动作白名单。
反模式:把「不要删库」写在提示词里就以为安全了。
LAYER 7编排
默认:能单 Agent 解决就不拆多 Agent;阶段化(计划 → 执行 → 审查 → 归档),每阶段有验收物。审查者与生成者必须不同源。
反模式:为「看起来专业」拆多 Agent,增加交接损耗;自己审自己。

配之前先定三件事,不定就别往下走:这是判断型还是程序型任务(决定工具面该少而深还是多而全)、成功长什么样、谁来判断(决定验证层)、错了代价多大、可不可逆(决定要不要沙箱和审批)。三件事没答案时,配出来的七层全是猜的。

03 · 我的实践四个 Agent 的翻车账本

下面这些不是案例故事,是我自己四个 Agent 的版本记录——每个都标了自己对应的失效编号。它们共同说明一件事:改好的那几次,改的都是装置;改坏的那几次,加的都是规则。

深锥 · 写作 Agent(v1.0 → v1.4.1)F2 / F3 / F11
v1.3.5:6 条规则互相矛盾(叙事重心、人称、开篇三处打架),模型每次随机选一条执行——不是它不听话,是规则本身没判据。修法是逐条重写、统一叙事主体。
v1.3.6:清出 4 条模型根本无法执行的规则(比如「3 秒内让人感知」),改成它能自己检查的动作。v1.4:方向跑偏成说教口吻,改的是立场与谓语方向,不是加一条禁令。v1.4.1 又矫枉过正,把判断句收得太干净——最后补的是边界:「有支撑=金句,无支撑=空话」。
账本里最诚实的一行:所有改动只证明了「不随机崩坏」,没有证明「产出更好」。下限和上限是两件事。
内容专家 · 内容加工 Agent(v0.1 → v0.5.1 + 两轮补丁)F1 / F7 / F10
最刺眼的一条:判据写在 skill 里,写作窗口内读取 0 次——规则存在,但从没被加载过。靠「模型会想起来读」的方案,等于没写。
第二刺眼:六维评分 6/6 pass、方向门 4/4,我读完的原话是「看不下去」。评分表全过而人读不下去,说明验收装置本身是坏的。
第三:它自编了「一百个来问价的,成交五个」写进正文,因为要求「要具体」而手里没有素材。之后加的是数字清单 + 来源准入:指不出出处就删或降级。
鲁班6号 · 方法论 Agent(0.1 → 0.4.3-r6)F1 / F9 / F12 / F13
20 小时 8 个版本,一路「发现即修」——变好了也说不清是哪一处起的作用。后来立的规矩是一轮只改一类 + 白名单 + 账本。
首份评估里 4 处数字错(67→65、3 次→35 次、52KB→43.7KB、6 条→7 条),全是它自评时报的——事实自评约等于没有评估。
最隐蔽的一条:账本写在当时的工作区,新会话 cwd 一变,实测 0 个文件。状态没跟着走,跨会话就断了。
盐焗 · 长任务 Agent(salt-thinker)F1 / F4
一次长任务复盘:28 条纠正、8 遍通读、漏检率 93%,逻辑错 0 条。问题不在判断力,在长上下文里越写越散——修法是分段 + 进度文件 + 子 Agent 隔离,不是「让它更认真」。

四个 Agent 加起来,真正被修好的都是同一个动作:换装置。加规则只治「知道但没做」,治不了「不知道怎么做」,更治不了「规则互相打架」。

04 · 自查F1–F14:现象对得上,才谈修

按现象找,不按感觉找。左列是你会看到的样子,右列要换的东西——注意右列几乎全是机制,不是更严的措辞。

编号现象换什么装置
F1检查表全过,人读不下去;编的数字被当成证据记下来外部盲读 + 来源准入 + 数字清单(无来源不许以事实口吻出现)
F2规则写了,执行里看不到改写成「动作 + 判据 + 产物」,绑在产出时点
F3同一类错反复出现,改一次好一次规则审计:去重、删冲突、生成规则压到 ≤5 条
F4长文越写越散、前后矛盾分段 + 进度文件 + 子 Agent 隔离
F6工具越多越慢越乱收窄到高频 + 兜底,CLI 优先
F7skill / 规则该触发没触发前置到流程必经步,或 hook 注入;跳过必须自报
F9换个会话就接不上初始化 + progress 文件 + git 提交
F10编具体数字/案例来满足「要具体」取消「纯逻辑」单独通行;数字必须带来源
F11方向跑偏:正确但说教、自嗨立场检查 + 读者位置 + 谓语方向
F12一轮改五处,变好也不知道为什么一轮一类 + 白名单 + 账本
F13交付词写「完成」,但没有真实任务证据交付词必须带真实任务信号与失败判据
F14越权、误删、越界触达权限 / 沙箱 / 白名单 / 审批

05 · 修复顺序错了会越改越坏

固定六步:停血 → 定位 → 换装置 → 加规则 → 验收 → 记录。先关掉会造成伤害的动作(自动发布、写权限、批量删除),再对现象认一个根因、做最小复现,然后优先换机制;规则放在第四步,且一次只加一条动作型规则。

归因铁律只有一句:一次只改一处。同时改五处,即使变好也不知道是哪一处起的作用——下次换个场景,它照样崩。

停止条件同样要写死,否则会陷入无限打磨:连续两轮改动都没有外部信号改善 → 停,回目标层(很可能是目标写错了);改动开始互相抵消 → 停,做规则审计;只剩近义词替换、没有结构变化 → 停;说不出「这版比上版多了什么事实」→ 交付上一版。

最小启动 · 三步

反过来也成立:单轮问答、纯生成不落地的场景,加这层只增开销。

// 来源:本文由三份自建文档压缩而成——工程总纲(七块组件与七条共识)、设计手册(七层默认/反模式/最小配置、两套最小配置)、失效手册(F1–F14 与本地案例库)。理论侧交叉核对了 Anthropic 工程博客(2024-12 / 2025Q4)、Claude Code 文档(2026-10 抓取)、腾讯技术工程《Harness Engineering》(2026-07-17);本地案例库四条全部来自我自己的 Agent 版本记录,数字照原账本,未做美化。时效:本页共识截至 2026-10-22,平台换代后先复核上下文层与约束层。