← 返回学习中心 · Agent 工程OiOi Academy
AGENT 理论 · 27

仓库中心智能体栈

@yoheinakajima:持久化的基本单元是项目仓库,而非模型/对话/会话——模型只是可替换的执行组件。

原作者 @yoheinakajima 来源 X 发布 2026-08-07
📦

开篇:换一个持久化单元

以下来自 @yoheinakajima 提出的一种模块化智能体工作架构,核心主张只有一句:

记住:持久化的基本单元是项目,而非模型、对话、IDE 会话或单个智能体。项目表现为一个受管理的存储库,包含足够的运行状态信息,使得人类或智能体在几乎无需前置上下文的情况下进入后,能够确定当前状态、承担特定角色、执行任务、验证结果,并为下一个进入者留下清晰的状态变更记录。

传统交互模式是这样的:

human → prompt → agent → output → human

大部分工作上下文都保留在会话内部,人类在不同工具、模型和对话之间承担着连续性衔接的角色——你是人肉搬运工。

而作者的架构更接近:

human ↔ Chief of Staff ↔ project managers ↔ workers / reviewers ↔ shared project state

核心的分离在于持久化的项目状态与可替换的执行组件:模型、智能体、工具、界面和会话都可以变更,而仓库保留项目的状态、规则、证据、决策、历史记录以及验证机制。

原文配图:题图
原文配图:题图
高中生类比
传统模式像口头交接班:上一班的人走了,经验全在他脑子里,新人两眼一抹黑。仓库中心像交接班日志本:状态、决策、坑都写在纸上,谁来都能接着干,人只是换班的,不是背锅的。
🏛️

为什么仓库是持久化单元

在此设置中,GitHub 的功能远不止代码托管——仓库成为共享操作环境,人类与多个智能体通过它协作处理同一项目。仓库里可能包含:源代码、规范说明、架构图、议题、研究主张、源指针、实验运行记录、决策记录、验收标准、队列、测试用例、审批状态、工具策略、机器可读的元数据。

关键问题不在于是否保留了所有上下文信息,而在于:一个具备能力的新智能体,能否重建项目的运行状态?作者列了 10 项检查清单:

  1. 项目的目标与当前阶段;
  2. 已接受的状态及其证据基础;
  3. 源层级与规范记录;
  4. 此前的尝试与重大失败;
  5. 决策及其未解决的影响;
  6. 开放问题、阻塞与依赖;
  7. 不变量、权限与审批边界;
  8. 可用角色与工具;
  9. 下一个有界的工作单元;
  10. 评估拟议变更的机制。

作者明确说:不试图保留每个模型生成的每一个词元——大多数对话内容只是脚手架。持久化的信息集中在状态转换中,有 4 种标准记录格式:

decision → evidence → resulting state → unresolved implications
hypothesis → experiment → observation → result → confidence
task → implementation → verification → artifact
failure → diagnosis → newly discovered constraint

这些记录是结构化的线索:压缩了工作的物质轨迹,而无需未来的智能体重放整个对话。优化目标不是穷尽记忆,而是低成本、可靠的延续。

🪞

规范状态 vs 派生投影

仓库区分底层记录及其生成的视图:

规范层Git 历史记录、仅追加事件、已接受的记录、决策对象、源引用、不可变的运行产物、实验输出、已验证的声明——这是首要数据 投影层README 摘要、当前状态页面、仪表盘、队列、任务列表、为智能体准备的上下文包——可再生、可质疑

投影可能会过时或不完整,其价值在于能追溯到更持久的基底,从而得以再生、比较或质疑。

这是作者从 ActiveGraph 借来的架构模式:

event history → projection logic → current state

把底层历史视为首要数据,可提供重放、溯源、谱系、分支、轨迹对比,以及重构"特定状态为什么存在"的原因。这也使得当前解读与产生该解读的证据和事件得以分离。

较小的项目不用真的跑 ActiveGraph——Git、结构化文件、确定性脚本、测试和规范的提交历史就能实现相同的状态模型。在更丰富的项目中,仓库本身可以成为显式关系的 ActiveGraph:

people → agents → tasks → events →
claims → experiments → artifacts →
decisions → sources → results → open questions

一旦这些关系明确,系统就能回答实用的操作性问题:哪些结论依赖一个有争议的假设?哪些实验支持某个主张?哪个决策改变了发展轨迹?哪些结果已被独立复现?

高中生类比
规范层像银行的交易流水(只增不改,是真相),投影层像手机银行首页的余额(方便看,但可能没刷新)。余额错了可以重算,流水丢了就全完了。
📚

分层指令设计:别把所有规则塞进一个大提示

智能体行为由多个不同的指令层构成,而非编码在一个大型提示中。有效的指令堆栈大致为:

global operating rules + role skill + project contract + current task
原文配图:分层指令架构
原文配图:分层指令架构

在各项目间保持稳定的少量不变量:保留溯源、区分证据与推断、密钥不出提示词和仓库、显式表达不确定性、 consequential 动作需要适当授权、持久项目状态优先于隐藏的会话记忆。

可复用的操作规程:reviewer 有评审协议,researcher 有源处理/实验设计/主张形成的方法,PM 有状态对账与委派循环,verifier 有证伪或验收程序,Chief of Staff 有组合层面的注意力路由程序。

单个仓库特有的信息:使命、本体、源层级、不变量、审批策略、完成定义等。项目特有的真相留在项目本地,通用的操作方法保持可复用——同一个 reviewer skill 可以跨多个仓库工作,不用把仓库塞进同一套 schema。

最窄、最易变的一层:当前目标、相关文件、最近变更、依赖、约束、期望输出、截止或审批状态。

根指令文件保持精简,只做索引:

work type X → load contract A
state class Y → load policy B
generated artifact Z → apply validation procedure C

Codex、Claude、Cursor、ChatGPT 等工具的指令文件只放适配器信息和路由逻辑,而不是项目规则的独立副本——规范策略只在一处,避免语义漂移。重要规则的变更本身也是项目变更:可追溯、可评审、进历史,而不是通过更新提示词悄悄引入。

模型经由薄适配器进入

作者用 ChatGPT、Codex、Claude、Replit、本地 agent、GitHub 原生自动化等不同接口,但不把每个接口当独立的机构记忆。每个模型经由薄适配器(thin adapter)进入同一项目,适配器确立:智能体身份与角色、可用工具与凭证、读写权限、规范指令入口、相关项目/任务上下文、记录结果的机制。

记住:适配器不维护自己的项目真相——它的功能是把模型接到项目的现有状态和合同上。换模型不伤筋动骨:Claude 会话不需要保留 Codex 拿不到的知识,持久知识外化到了项目环境里。
💓

心跳控制环:有界的工作节拍

持久状态提供连续性,但不产生推进力。执行层用有界心跳(heartbeats):短控制循环,智能体醒来 → 对账状态 → 认领一个有界工作单元 → 执行/委派 → 验证并记录状态转换 → 退出。

一次典型心跳的结构:

identify role and authority
→ inspect assignments, approvals, and changed state
→ reconcile current state against project objectives
→ select or claim one bounded unit of work
→ execute or delegate
→ verify and record the resulting state transition
→ exit

有界的执行窗口减少对长寿上下文的依赖,也限制未记录假设的堆积——项目状态在心跳之间承载连续性。

不同角色在不同分辨率上运行,形成层级:

Chief of Staff heartbeat
→ determine which projects require attention

Project Manager heartbeat
→ determine the next useful project-level action

Worker / Researcher heartbeat
→ execute bounded work

Reviewer / Verifier
→ evaluate the resulting artifact or claim

Repository
→ record the accepted state transition
原文配图:心跳层级示意
原文配图:心跳层级示意

心跳可以定时、事件触发或手动调用,共同点是在有界的执行范围内反复做状态对账。

Chief of Staff 只做注意力路由:它看的是组合层面的小投影(活跃项目与目标、当前阶段与负责人、最新实质状态变更、阻塞与过期工作、待审批、未决决策、建议的下一步、健康度指标),不把每个项目的内部上下文吸进一个中央提示词——避免把顶层协调者变成第二套记录系统。

高中生类比
心跳像医院的查房:护士定时来一圈——看体温(对账状态)、处理一个医嘱(有界工作单元)、记录进病历(状态转换)、然后离开。病历本(仓库)在,换谁查房都不断档。
🔍

验证是独立的一层

多智能体执行在什么时候变得不可靠?当每个智能体不经独立检查就继承上一个智能体的结论时。

在这个架构里,验证是状态转换机制的一部分:

agent proposes change → verifier evaluates contract → accepted state changes

生成与接受是分离的操作。这一点在智能体能修改自己的工作流、指令、评估器或编排逻辑时尤其重要:自修改不因为"修改者报告成功"就被接受,结果状态要对照修改范围之外的不变量、或由独立授权的验证者来评估。

验证也适用于研究与推理产物。一个 claim 不是一句话,而是一个带溯源链的状态对象:

claim
← evidence
← source or experiment
← method and version
← run or artifact
← assumptions
← producing agent or action
← confidence and epistemic status
原文配图:验证层示意
原文配图:验证层示意

显性认知状态

仓库不把智能体产出的所有材料坍缩成单一的"已知",而是区分知识类别。记录可以携带以下状态:

proposed / observed / reproduced / accepted / disputed /
superseded / unresolved / inferred / source-backed / speculative

置信度、权限、敏感度、证据基础也可以保持显式。这很重要:进来的智能体需要区分已验证的不变量、临时解释、未解决的冲突、不受支持的假设,也防止 polished 的综合悄悄替换掉它所基于的较弱证据。

记住:人的角色退到目标、优先级、品味、歧义消解、 consequential 审批——人仍是控制架构的一部分,但不再是项目记忆的传输层。
✅

落地清单:角色是可执行合同

系统里的角色(builder、researcher、reviewer、verifier、auditor、PM、Chief of Staff)首先不是人设,而是可执行的操作合同。一份角色合同规定:

  1. 读哪个状态;
  2. 负责回答哪些问题;
  3. 能做哪些决策;
  4. 能调哪些工具;
  5. 能改哪些状态;
  6. 必须产出哪些制品;
  7. 必须记录哪些证据;
  8. 何时必须升级;
  9. 什么算完成。

例如:builder 可以实现有界变更,但无权改验收标准;reviewer 可以检查和挑战制品,但不能修改它;verifier 对照确定性合同评估拟议的状态转换。

每次会话产出"状态增量"

一次完成的智能体会话产出的不只是直接要的制品,还有可读的状态增量(state delta):实现、测试、实验证据、更新的主张、决策记录、新发现的约束、失败的尝试、源指针、未解决问题、置信度变化、有界的下一步。

复利循环:

execute → record clues → update state → verify → continue from the new state

这改变了重复使用智能体的经济学:上下文加载越来越便宜,因为此前的工作以环境的形式存在,而不是每次靠人工简报重建。

整个架构一句话总结(来自原文):

project substrate
=
canonical state
+ derived projections
+ layered instructions
+ role contracts
+ model adapters
+ bounded heartbeats
+ verification
+ provenance
+ human governance

模型提供可变的推理与执行能力;仓库提供连续性;技能与合同提供操作行为;心跳提供推进力;验证与溯源提供信任;PM 本地协调;Chief of Staff 跨项目分配注意力;人的判断改变其余部分运作的目标与约束。

词

术语翻卡:点卡片看解释

持久化单元
unit of persistence
在这个架构里是"项目仓库"而非模型/对话/会话;仓库保留状态、规则、证据、决策、历史与验证机制。
规范状态 / 派生投影
canonical state / projection
规范层是首要数据(Git 历史、仅追加事件);投影层是便捷视图(README、仪表盘),可再生、可质疑。
project contract
project contract
项目合同:单个仓库特有的使命、本体、源层级、不变量、审批策略、完成定义等。
thin adapter
thin adapter
薄适配器:模型进入项目的入口,只确立身份、工具、权限和记录机制,不维护自己的项目真相。
heartbeat
heartbeat
心跳:有界控制循环——醒来、对账、认领有界工作单元、执行/委派、验证记录、退出。
显性认知状态
epistemic state
记录携带的知识类别:proposed / observed / reproduced / accepted / disputed / superseded / unresolved / inferred / source-backed / speculative。
state delta
state delta
状态增量:每次会话除直接制品外,还产出实现、证据、决策记录、新约束、失败尝试等可读的状态变更。
测

自测一下:点问题展开参考答案

因为模型、智能体、工具、界面、会话都可替换;仓库保留状态、规则、证据、决策、历史与验证机制。新智能体零前置上下文进入后,能按 10 项清单重建运行状态,人不再当记忆传输层。

规范层是首要数据(Git 历史、仅追加事件、决策对象);投影层是便捷视图(README 摘要、仪表盘、任务列表),可再生、可质疑,价值在于能追溯回规范层。对应模式:event history → projection logic → current state。

global operating rules(全局不变量)+ role skill(角色操作规程)+ project contract(单个仓库的使命/边界/完成定义)+ current task(最窄最易变)。根指令文件只做索引:work type X → load contract A。

持久状态提供连续性但不产生推进力。心跳是短控制循环:醒来、对账、认领一个有界工作单元、执行/委派、验证并记录状态转换、退出。有界窗口减少对长寿上下文的依赖。

多智能体执行中,每个智能体不经独立检查就继承上一个结论时会变得不可靠;自修改更须由修改范围之外的不变量评估。claim 不是一句话,而是带溯源链的状态对象:claim ← evidence ← source ← method ← run ← assumptions ← agent ← confidence。