设计哲学:文档即操作系统
不要试图让 AI 变得更聪明。要让环境变得更可预测。
当 AI 成为主要开发者,代码库需要的不再是"给人看的文档",而是一套可执行的约束体系——它既是 AI 的认知地图,也是它的行为边界,更是它的自我进化机制。
一、根本困境:无记忆系统的必然后果
传统软件工程假设开发者具有持久记忆和全局认知。一个人类工程师在项目中工作数月,积累对代码库的整体理解,做决策时调用这些隐性知识。
AI 不具备这两个能力。
每次对话,AI 从零开始。它看不到完整的代码库,只能在有限的上下文窗口中推断全局结构。它没有跨会话记忆——上一次对话中做的决策、踩的坑、悟出的模式,下一次全部遗忘。
这导致了一个普遍存在但很少被正式讨论的问题:
AI 每次都在重新发明轮子,而且每次发明的轮子都略有不同。
第一次让 AI 写数据获取 hook,它用 useState + useEffect。第二次用 RTK Query。第三次又回到 useState,但换了错误处理模式。三次的代码都能工作,但彼此不一致。积累到 60,000 行代码时,同一个概念有 5 种实现,每种都"合理",但没有一种是"正确的那个"。
这不是 AI 的 bug。这是无记忆系统的必然结果。
二、核心洞察:描述性文档 vs 规范性文档
解决这个问题的传统思路是"写更好的文档"。但这里有一个根本性的认知错误:
人类文档是描述性的(descriptive)——它告诉你"系统是什么样的"。
AI 需要的文档是规范性的(prescriptive)——它必须告诉 AI"你必须这样做,不能那样做"。
区别至关重要。一篇描述 Redux 架构的文档,人类读了会内化为判断力。AI 读了同样的文档,可能在当次对话中遵守,但没有任何机制保证它在下一次对话中还记得。
真正的解决方案不是更好的文档,而是一套自动注入、强制执行、自我维护的约束体系——在 AI 的每一次对话中都在场,像操作系统一样在后台运行,而不是像参考手册一样放在书架上积灰。
三、Archon Protocol = AI 代理的操作系统
我们把这个比喻做到了极致——Archon Protocol 中的每个文件都精确映射到一个 OS 概念:
| OS 概念 | Archon Protocol | 加载方式 |
|---|---|---|
| 内核 | AGENTS.md + archon.config.yaml | 始终驻留上下文,不可绕过 |
| 设备驱动 | 约束技能(skills: 预加载) | 每个命令启动时加载到内核空间 |
| 系统调用 | /archon-init, /archon-demand 等 | 用户主动触发 |
| 守护进程 | archon-self-auditor, archon-test-runner | 内部派生,用户不直接调用 |
| 文件系统 | docs/ 文档层级 | 持久化存储,按需读取 |
| IPC | archon-handoff 接口契约 | 跨边界通信的唯一合法通道 |
| 权限系统 | 约束技能中的 import 边界 | 层间单向依赖,禁止反向调用 |
| 包管理器 | proposed-rules.md → 约束技能 | 规则暂存、审核、然后安装为驱动 |
| 审计日志 | docs/refactor-reports/ | 免疫记忆——变更了什么、发现了什么 bug |
| 健康监控 | archon-audit + archon-verifier | 实时检测系统健康度 |
约束金字塔:四层同时作用
┌─────────────────────────────────────────────┐
│ 第 1 层:内核(始终驻留) │ AGENTS.md, archon.config.yaml
│ "你是谁,你遵守什么法则" │ ← 身份约束
├─────────────────────────────────────────────┤
│ 第 2 层:驱动(按命令预加载) │ 约束技能(❌ 禁令)
│ "你不能做什么" │ ← 负面约束
├─────────────────────────────────────────────┤
│ 第 3 层:系统调用(标准化工作流) │ archon-demand 7 阶段流水线
│ "你必须怎么做" │ ← 流程约束
├─────────────────────────────────────────────┤
│ 第 4 层:文件系统(按需查阅) │ 架构文档、ADR、重构报告
│ "为什么我们这样做" │ ← 认知约束
└─────────────────────────────────────────────┘这四层不是冗余的——它们是互补的:
- 第 1 层确保"不做错事"(身份约束)
- 第 2 层确保"不犯已知错误"(负面约束)
- 第 3 层确保"按标准流程做"(流程约束)
- 第 4 层确保"理解为什么这样做"(认知约束)
四、七条第一性原理
这些原则从 Archon Protocol 和 EvoMap(60,000+ 行生产项目)中独立推导得出。当两个不相关的系统收敛到相同结论时,这些结论很可能是 AI 驱动开发的必然真理。
1. 环境可预测性 > 代理智能
操作系统不会让 CPU 更快——它让 CPU 的算力被可靠调度。Archon Protocol 不会让 AI 更强大——它让 AI 的能力被可靠地用在正确的地方。
2. 无聊的一致性 > 局部的优秀
10 个一致但平庸的模块,比 5 个优秀但风格各异的模块更有价值。AI 是模式匹配机器——统一结构让它完美复制,多样结构让它随机选择。
3. 禁令 > 指令
"不要做 X"无论上下文如何都生效。"做 Y"每次都可能被不同理解。禁令是具体的、可 grep 验证的、不随上下文变化的。
为什么禁止列表比正面指令更有效? AI 面对问题时可能想到 10 种方案。正面指令说"用方案 A",AI 可能在不同上下文中把 A 理解成不同的东西。禁止列表说"不用 B、C、D",则无论 AI 如何理解 A,它至少不会退化到已知的错误模式。
4. 标杆模仿 > 抽象指导
一个标杆模块——真实的、可编译的、经过测试的——比任何文档教给 AI 的都多。AI 不擅长理解抽象规则,但极其擅长模仿已有模式。
标杆模块 = AI 可执行的设计模式。 它比任何 UML 图、架构文档、设计规范都更有效,因为它是真实的、可编译的、经过测试的代码。
5. 局部自足 > 全局文档
AI 应该只读取当前目录 + 直接依赖就能开始工作。如果理解一个模块需要跳转 20 个文件、阅读 3 篇文档,AI 大概率会在中途丢失上下文。
6. 消极自由 > 积极方向
AI 的创造力不需要约束——它天然会尝试各种方案。AI 的一致性需要约束——它天然倾向于每次做不同的尝试。约束 AI 不能做什么,留出它如何完成目标的创造空间。
7. 自维护 > 人工更新
系统遇到的每个问题都必须强化系统的防御。文档生命周期:
发现问题 → 固化为规则 → 扩展为流程 → 沉淀为参考
proposed-rules.md 约束技能 架构文档
"不要这样做" "应该这样做" "为什么这样做"详见 核心原则
五、时间三角
文档服务于三个时间维度。缺任何一个都会造成盲区:
架构文档(现在——系统如何工作)
╱ ╲
重构报告 ──────────────────────── ADR
(过去——发生了什么变化 (为什么——我们选择了什么
以及我们学到了什么) 以及我们拒绝了什么)- 创建新模块 → 读架构文档("account 模块的数据链路是怎样的?")
- 修复回归 → 读重构报告("account 模块拆分时做了哪些改动?")
- 评估方案 → 读 ADR("为什么选了 RTK Query 而不是 React Query?")
六、自维护反馈回路
最关键的不是四层约束本身,而是它们之间的自维护反馈回路:
测试发现 bug
→ 修复 bug
→ 在重构报告中记录
→ 如果是模式性问题 → 添加到约束技能的禁止清单
→ 如果涉及新流程 → 更新技能的决策树
→ 如果改变了架构理解 → 更新架构文档这就是自维护——系统在运行中发现问题,将问题固化为规则,防止同类问题再次出现。
每一条禁止项背后都有一个故事。但 AI 不需要知道故事,它只需要知道禁令。
七、与传统方案的对比
| ESLint / CI | Archon Protocol | |
|---|---|---|
| 覆盖 | 语法、格式、类型 | 架构、性能、i18n、边界、测试同步 |
| 时机 | 提交后检查 | 编写时实时约束 |
| 学习 | 静态规则,人工维护 | 自进化:每次任务可能产生新禁令 |
| 上下文 | 单文件 AST | 全项目架构意图 |
| 关系 | 不可替代 | 互补层:Stage 1.5 自动运行 linter |
ESLint 拦截语法。Archon 拦截架构。两层同时激活。
八、结语
我们正在经历软件工程的一次范式转移。当 AI 成为主要的代码生产者时,人类工程师的核心工作从"写代码"转变为"设计约束"。
写一个函数,AI 比人类更快。但设计一套让 AI 在 60,000 行代码中保持一致性的约束体系,这是纯粹的人类工程——至少目前是。
不要试图让 AI 变得更聪明。要让环境变得更可预测。
就像操作系统不会让硬件变得更强大,但它让硬件的能力被可靠地、一致地、高效地利用。Archon Protocol 不会让 AI 变得更强大,但它让 AI 的能力被可靠地、一致地、高效地用在正确的地方。
这就是为什么我们称它为"操作系统"而非"最佳实践"。最佳实践是建议,操作系统是基础设施。你可以忽略建议,但你无法绕过基础设施。