为什么 Attractor Guided Engineering 不能被降级为 AI Agent Skill
Agent Skill 已经是 AI Agent 工程中最容易被接受的实践之一把可重复任务封装成可发现、可调用、可注入上下文的能力包。这当然有价值。诊断 bug 可以有 skill审查代码可以有 skill生成 PPT 可以有 skill转换文件可以有 skill。skill 让 Agent 更快进入一种经过验证的工作方式也让团队把经验沉淀成可复用的工作说明书。但正如那句俗语所说“如果你手里只有一把锤子所有东西看起来都像钉子。”Skill 也是如此一发现某个有用实践很多人的第一反应就是“把它包装成一个可复用 skill”。吸引子引导工程理论Attractor Guided Engineering AGE指出如果把所有 AI 工程实践都 skill 化就会漏掉 AI 主导软件工程中最关键的问题系统如何在持续扰动下仍然受控收敛Skill 解决的是能力调用问题。AGE 解决的是领域结构在仓库长期演化中如何被保持并如何抑制轨迹漂移的问题。这也解释了为什么 AGE 不能被降级为一个 skill把 skill 作为 AGE 实践的主载体会把仓库级收敛机制降成一次性调用能力无法实现 AGE 的目标。一、Skill 的本质是语义级 hash map很多人理解 skill 时会先看到它的文件形式SKILL.md、description、trigger words、supporting files、scripts、templates。但这些只是外壳。skill 真正起作用的地方是 Agent runtime 会把它们组织成一个语义级的查找表task intent - matched skill - procedure bundle也就是说Agent 并不是因为某个文件叫SKILL.md才获得能力而是因为当前任务意图可以在 skill 描述空间中匹配到一个可加载的工作说明书。这里的 hash 不是字符串 hash。key 不是固定字符串而是任务意图、上下文线索、触发词和描述的组合value 也不是单个文件而是一组可以被注入上下文的说明、脚本、模板和示例。这种结构非常适合回答一个问题我现在要做这类事应该加载哪套做法所以 skill 很适合封装局部能力诊断 bug、审查 diff、调用工具、生成报告、执行 checklist。它的组织轴是调用意图把“要做什么”映射到“加载哪个能力包”。二、信息形式不是关键既然 skill 真正起作用的是语义匹配那么就不能反过来迷信 skill 这种文件形式。对智能体来说信息写成什么格式并不是本质。AI 可以读 Markdown也可以读 XML 等其他格式。数据库模型、API 模型等完全可以用 DSL领域特定语言来表达。AGENTS.md和docs/index.md完全可以承担信息路由甚至可以做得更好通过文件链接我们可以按领域结构提供分层路由。AI 可以先读紧凑入口再按任务需要逐层打开更具体的 owner doc、模型文件、测试和源码。因此问题不在于“这条知识有没有被写成 skill”。问题是信息换了形式之后原来的结构还在不在。智能的一个关键能力就是可以自由地跨形式转换信息。如果结构还在知识写成 Markdown、XML、测试、DSL/schema、源码锚点都可以被 AI 使用。如果结构丢了把它包装成再精致的 skill也只是让丢失结构后的片段更好调用。三、为什么动力系统关心保结构数学物理中的动力系统提供了一个很好的直觉描述系统的变量可以改变但支配系统演化的关键结构不能随便丢。想象一个摆钟。你可以用角度和角速度描述它也可以用位置和速度描述它还可以用能量和相位描述它。表达形式可以变但摆钟的关键结构不能丢位置和速度怎样耦合能量怎样变化阻尼怎样消耗能量外力从哪里进入。如果一个算法只追求“下一步位置看起来差不多”却不保持这些结构它可能每一步误差都不大长期却让摆钟无缘无故越摆越高或者突然停下来。局部输出像长期系统不再是原来的系统。再看一个电路。你可以用节点电压描述也可以用支路电流描述还可以把电容、电感里的能量作为状态变量。变量形式可以变但有些结构不能丢电荷守恒、电压电流的耦合关系、元件储能和耗散、外部电源从哪里注入能量。如果一个算法只追求某几个采样点的电压值看起来接近却不保持这些结构长期仿真可能会凭空产生能量或者把本来应该耗散的系统算成振荡不止。局部曲线像系统物理意义已经错了。这就是保结构表达形式可以变关键约束、耦合关系和守恒/耗散结构不能丢。一个受控系统要长期收敛不是靠每一步看起来合理而是靠这些结构在反复变换和扰动中被保持。四、状态空间不是源码空间如果借助于动力系统的视角来观察软件工程仓库就不再是一个静止的文件夹而是一个反复被扰动的系统。每一次需求澄清、计划生成、代码修改、测试补充、审查和日志更新都会把仓库推到一个新状态。传统软件工程里存在一个底层的隐含假定人脑可以长期充当系统真相的隐式整合器。源码、需求、架构取舍、历史 bug、未写下来的上下文最终都可以由少数核心工程师完整理解并决定演化方向。AI 深度参与之后这个底层的假定被动摇了。AI 可以高频生成、高幅修改、跨模块扩散而每个 session 又缺少持续方向感。AI 在状态空间中引入的扩张力远远超过了少数人类的信息处理能力。此时除非强行把 AI 降速到人类可以持续整合的节奏否则系统演化过程中的真相源就不可能再是人的脑内记忆。下一个 session 能重新读取的不是作者脑中的完整意图而是仓库里的代码、diff、日志、测试、文档、模型和审计证据。nop-chaos-flux的历史记录里已经多次出现这种漂移。docs/plans/436-deep-audit-2026-05-24-full-remediation-plan.md的 Workstream 8 修复过 active-doc drift文档把component:open/close/toggle、component:refresh、旧 package split、旧源码锚点和过期 component inventory 描述成当前事实但 live repo 已经不是这样。docs/logs/2026/05-26.md又记录过 proof driftE2E 仍断言 spreadsheet 的30个 row headers 同时挂载而 live spreadsheet shell 已经虚拟化正确证明只能断言可见行头挂载。代码、文档、测试各自都可能局部合理但它们之间的 owner/proof/precedence 关系已经漂移。因此AGE 的基本前提是仓库 真相源Source of Truth Chat 临时工作面在这个前提下核心问题不是这次 Agent 有没有调用对 skill而是仓库经过很多次 Agent 扰动后是否仍然沿着领域结构受控收敛AGE 的基本图像是状态空间 - 吸引子 - 轨迹 - 控制这里的状态空间不是“源码状态空间”。源码回答当前实现是什么但它不能单独回答系统应向哪里收敛、某个设计为什么成立、哪条行为已经被证明、某次偏离为什么被接受、下一次 AI 应该从哪里恢复上下文。AGE 关心的是整个仓库工程现实的状态源码、测试、owner docs、requirements、plans、logs、bug notes、schemas、XML 模型、数据库模型、XDSL、AGENTS.md、docs/index.md、CI 配置和审计证据共同组成一个状态。这些东西不是几套可分离材料而是同一组语义承诺在不同载体上的分布。代码对实现事实有权威owner doc 对收敛方向有权威测试对已证明行为有权威logs / bug notes 对演化轨迹有权威plans / audits 对本轮变化是否闭合有权威。AGE 要维护的是这些权威之间的关系而不是把某一种文件格式神圣化。Skill 的位置不同。AGE 要组织的是仓库自身skill 是作用于仓库的外部能力或控制输入。外部能力可以改变系统但不能替代系统内部结构。一个bug-diagnosisskill 可以用于很多仓库、很多领域、很多 bug 类型。它的组织逻辑是通用任务能力不是某一个仓库内部的领域概念拓扑。仓库内部真正需要保持的是源码、文档、测试、模型、计划、日志、审计证据之间的 owner、proof、precedence、freshness 等关系。Skill 可以帮助修改这些东西却不能替代这些关系本身。这时会发现skill 的语义 hash 不足以解决问题。Skill 保存的是任务意图 - 能力包AGE 要保持的是领域概念 - 语义承诺 - 实现位置 - 证明证据 - 审计/记忆 - 后续义务这两种结构不是一回事。Skill 可以告诉 Agent 如何 review但不能自动知道哪个 owner doc 拥有当前语义事实。Skill 可以告诉 Agent 如何写测试但不能自动知道这个测试保护哪条领域承诺。Skill 可以告诉 Agent 如何更新文档但不能自动判断某条信息应该进入 owner doc、bug note、log、lesson、reference 还是 skill。这些判断不是调用能力本身而是仓库的语义权威结构。五、为什么age-skill是错误抽象把 AGE 做成一个age-skill表面上很诱人把 AGE 的规则、流程、检查清单、文档模板都写进一个可调用能力包。Agent 需要 AGE 时就加载这个 skill。但这正好把 AGE 放错了层级。Skill 是任务发生后被匹配和加载的能力包AGE 应该是任务开始前就已经存在的仓库结构。它决定任务如何被理解、信息从哪里读、冲突听谁的、完成后如何证明闭合。AGE 不能等到某个 skill 被选中之后才出现。它应该已经体现在AGENTS.md的操作边界docs/index.md的路由结构owner docs 的事实归属source-of-truth precedence 的冲突规则plans 的义务声明tests 的 proof relationaudits 的 closure gatelogs、bug notes、lessons 的轨迹记忆freshness/autonomy 的行动限制如果这些关系只存在于age-skill里它们就不是仓库结构而只是一个 procedure bundle 的内容。只要 Agent 没有匹配到这个 skill或者 skill 与 live repo 冲突AGE 就失效了。把age-skill做成 always-on 或 global skill 也不能解决这个问题。它最多能规定“先读哪些 owner docs、如何检查 precedence、怎样做 closure audit”。但真正的 owner、proof、precedence、freshness 关系仍然必须存在于仓库文件、测试、日志、计划和审计证据之间。所以问题不在于age-skill是不是每次都会被加载而在于 skill 仍然是从外部施加到仓库上的能力包AGE 要成为仓库自身的底层拓扑。只要 owner、proof、precedence、freshness 没有内化为仓库状态AGE 就被降级成了外部操作方法而不是内在收敛结构。六、AGE 补上的缺失概念在受控收敛和保结构的图像下AGE 补上的不是一个新 checklist而是一组 Skill 化实践缺少的一等系统概念First Class Concept。1. 吸引子系统长期应该回到什么结构这不能由某个 skill 决定。它需要 owner docs、架构基线、领域设计和 source-of-truth precedence 来承载。没有吸引子skill 只能告诉 Agent 怎么做事不能告诉仓库应该向哪里收敛。2. 轨迹单次任务完成不等于系统方向正确。logs、bug notes、lessons、plans、audit records 记录的是仓库如何一步步走到现在。没有轨迹记忆AI 每次都像从局部截面重新开始很难判断系统是在收敛还是漂移。3. 语义权威当 skill、plan、代码、测试、文档说法不一致时听谁的AGE 需要 owner、routing、precedence而不是让当前被调用的 skill 临时裁决。语义权威不是执行步骤的一部分而是仓库状态空间内部的秩序。4. Proof relation测试不是“有覆盖”就够了。测试要说明保护哪条语义承诺。audit 也不是 checklist而是检查承诺是否消失、弱化或转移到非权威载体。proof relation 让验证不只是通过命令而是回到领域承诺。5. Freshness / autonomy文档不是写了就永远可信。文档是否 fresh会影响 AI 能不能基于它行动能自动走多远什么时候必须停下来问人。freshness / autonomy 把“能不能信、能不能自动做”变成仓库可见状态而不是一次会话里的临时判断。6. 保结构的文档路由AGENTS.md可以给 AI 一个紧凑的操作入口docs/index.md可以提供完整路由。二者不是为了把所有知识塞进同一个文件而是为了让 AI 按任务需要逐层打开正确的信息。信息披露可以分层但领域结构不能被打散。这些概念加在一起才构成 AGE 的语义权威拓扑。七、AGE 可以使用 skill但不能变成 skillAGE 不反对 skill。skill 是很好的执行支架。但 skill 在 AGE 中只能是方法节点不能是真理源也不能是 AGE 本身。正确顺序是先按 AGENTS.md / docs/index.md 找路由 再读领域或架构 owner doc 再读 active requirement / plan / audit evidence 最后选择合适的 skill 作为执行方法不是先选 skill再让 skill 决定事实归属例如 bug diagnosis skill 可以告诉 Agent 如何复现和定位问题。但根因属于哪个领域概念、哪个 owner doc 要更新、哪个测试证明修复、bug note 以后约束哪类回归这些必须回到 AGE 的语义拓扑中决定。好的 skill 加速执行。坏的 skill 化用执行方法替代领域结构。八、判断标准判断一套 AI 工程实践是不是过度 skill 化可以问它主要按操作动词组织知识还是按领域概念和架构 owner 组织知识它的链接主要是执行资源引用还是 owner / invariant / proof / precedence / freshness 关系信息在 skill、plan、code、test、doc、log 之间转换后领域结构是否仍可恢复删除所有 skills 后仓库是否仍知道什么是对的、谁拥有它、如何证明它如果答案是否定的skill 已经承担了不该承担的吸引子职责。最终区别可以压缩成一句话Skill packages capabilities by invocation. AGE preserves domain structure across transformations.Skill 让 Agent 更会做事。AGE 让仓库在 Agent 反复做事之后仍然沿着领域结构受控收敛。AGE 应用开发模板GitHub: https://github.com/entropy-cloud/attractor-guided-engineering-templateGitee: https://gitee.com/canonical-entropy/attractor-guided-engineering-template