控制层与方向层对比:OpenProse、NL Agent与AGE评测

2026-06-06阅读 0热度 0
Pro

起点

AI代理的输出始终不可靠,如何应对?OpenProse、Natural-Language Agent Harnesses(NLAHs)与Attractor-Guided Engineering(AGE)各自从不同角度切入这一难题。

控制层和方向层的分野:OpenProse、Natural-Language Agent Harnesses 与 AGE的比对分析

前两者的答案落在控制层:OpenProse通过确定性runtime精准维护目标;NLAHs借助自然语言文档使harness策略可审计。而AGE则追问一个更根本的问题——在控制之前,我们应当维护什么样的结构?

若方向层缺失,即便runtime再优秀、harness再清晰,也只会让整个结构漂移得更顺畅。

OpenProse从运行时抽象入手——设计合约语言与运行引擎,使AI代理能够长期维持“持续为真”的目标。

NLAHs从表示媒介切入——将agent harness策略从混乱的controller code中剥离,外化为可编辑的自然语言文档,由共享运行时IHR解释执行。

AGE从工程过程出发——设计文档-流程体系,让人类与AI协作时,系统持续向稳定结构收敛。

几个问题便能看出差异:OpenProse追问——如何让一个目标保持不变;NLAHs追问——如何让一次agent run按可审查策略执行;AGE追问——系统被推偏后,为何还能回到正确方向?

Fixed Point ≠ Attractor

OpenProse与AGE的核心抽象对应不同的数学对象,需稍作拆解。

不动点(Fixed Point)f(x) = x。系统置于该点即静止。判定条件是严格的等式。不动点可以是稳定的(邻近点向它收敛),也可以是不稳定的(邻近点远离它)。不动点不蕴含吸引域(basin of attraction)的概念。

吸引子(Attractor):一个集合(点、极限环、奇怪吸引子),使周围区域(吸引域,basin of attraction)内的所有初始状态随时间演化向其收敛。关键性质不是“搁置不动”,而是“从附近出发会被拉回”。吸引子不必是一个点,可以是流形。系统无需精确到达——只要在basin内,轨迹便正向收敛。

OpenProse的指纹比对 fingerprint == fingerprint 是典型的不动点检测:输出与之前一致即认为不动。

AGE所言“系统向稳定结构收敛”,应理解为吸引子判据:系统无需精确达到理想状态,只要控制机制持续将其拉回稳定结构附近即可。

一是状态判定——“到了没有”;二是过程判定——“方向对不对”。

Control Target ≠ Attractor:本体论区别

除收敛机制(不动点 vs 吸引子)外,还存在更深的本体论差异:控制目标 vs 吸引子。

控制目标(Control Target)

控制框架建立后,定义“控制应朝向哪里”。它假设控制框架已存在,执行者按指令行动,偏离时通过重新执行指令来纠正。控制目标是外部强加的specification,驱动执行者符合它。

数学吸引子(Attractor)

吸引子由系统自身动力学产生——周围区域内所有初始状态随时间演化向其收敛。关键性质:它是涌现的——由系统动力学定义,非外部强加指令;扰动-恢复——推离后动力学会拉回;系统无需“知晓”它——水无需知道洛伦兹吸引子,自然按它运动;它是方程定义的流形——不枚举每个正确状态,只定义约束关系。吸引子为控制提供最终因(final cause)。它在控制之前,不在控制之内。

打个比方

操作手册告诉工人如何组装零件。工人按手册操作,偏离时对照手册纠正。手册是控制目标——需要工人“知晓”并主动执行。

重力井是吸引子——无论怎样推物体,物体的动力学自然将其拉回。物体无需“知晓”重力井的存在。

OpenProse 和 NLAHs 的不变量都是控制目标

OpenProse的Responsibility(Goal/Maintains/Continuity)是外部定义的specification。运行时通过指纹比对检测偏离,偏离即重新render。这是控制目标 + 确定性执行。收敛靠runtime强制重新执行specification。

NLAHs的harness pattern(contract + stages + state / validation / recovery / stopping rules)告诉IHR应如何组织一次task run。IHR非硬编码控制器,而是用runtime policy解释NLAH,将条款落实为child-agent calls、state updates、validation gates和artifact contracts。若agent偏离,起作用的是validation / recovery / stopping rules等控制目标,而非系统动力学自然收敛。“behavior is flexible but still policy-guided”非吸引子语义,而是运行时语义约束下的弹性执行。

AGE 的 owner-doc 体系在类比意义上具备吸引子性质

  1. 扰动-恢复动态:AI改代码(扰动)→ test/audit发现偏离 → 修正 → 系统回到结构附近。跨会话的扰动-检测-纠正循环构成收敛动力学。
  2. 隐式定义的流形:docs/architecture/ 非枚举每个正确状态,而是定义约束方程。满足约束的状态构成流形,局部实现多样,整体被拉向同一类结构。
  3. 跨会话涌现:上百次commit、几十个plan、多次审计叠加后的长期收敛——这是“系统行为”,非“某次执行”。

AGE的恢复同样依赖文档作为真值源。区别不只在粒度和时间尺度,而是约束对象不同:控制层指令约束一次执行如何完成;方向层约束未来所有执行结果允许落入的结构区域。

机制层的结构性平行

三个体系的机制层存在结构性平行:

OpenProseNLAHsAGE
真值源Responsibility (Goal/Maintains)NLAH (contract + run rules)Owner docs (docs/architecture/)
解释者OpenProse reactorIHR runtimeAI agent 读文档
执行单元rendertask runplan(重大变更时)
检测指纹比对validation gatesCI + audit
关闭条件postcondition + receiptcompletion gates + artifactsClosure Gates + 独立 closure audit
纠正重新 renderretry / recovery / honest stop修正代码,重读文档

机制槽位相似,但语义不同。此表仅说明三者均为控制系统,不说明它们控制同一类对象。OpenProse和NLAHs使一次执行更可控;AGE判断这些执行累积后是否仍指向同一长期结构。

差异不在机制层,而在机制层之上是否存在方向层。OpenProse的Responsibility和NLAHs的NLAH均为自包含的specification——它们定义了自己的完成条件(指纹相等 / contract满足),无需外部引用“系统应向什么结构收敛”。AGE也有完成条件(CI gates、audit通过),但owner docs的不可替代作用是:当局部完成条件与长期结构方向冲突时,提供裁决依据。CI可判定某次import是否通过;owner-doc决定为何flux-react不能反向依赖renderer包。前者是控制门,后者是方向层。

这就是方向层 vs 控制层的区别:非机制不同,而是控制之上是否有独立、持久的目标结构为所有控制提供最终因。

三者的本体论位置

三者的关系非层次关系(project-level attractor ⊃ run-level attractor),而是本体论差异:

方向层(Attractor)——AGE: owner-doc 定义的长期收敛结构
↑ 为控制提供最终因
│
控制层(Control Target)——NLAHs/OpenProse: specification + runtime 执行
↑ 控制机制的实现
│
机制层(Mechanism)——IHR/reactor/CI: 具体的检测、执行、恢复

AGE文章的核心论点正是:方向层先于控制层。 未定义“朝哪里收敛”,控制机制便无统一意义。NLAHs和OpenProse均在控制层创新——NLAHs用NL提高策略可审计性和可移植性,OpenProse用确定性runtime提高执行精确性和成本效率。但它们均无法回答方向层问题:系统应向什么结构长期收敛? 一个可证伪的表述是:若移除AGE的owner-doc优先级链、日志和bug蒸馏后,系统仍能在长期重构中保持同等架构方向,则AGE的方向层主张多余。

三个体系的前提假设

OpenProse:会话终将结束,责任不应随之消失

OpenProse的核心隐喻源自React。它将AI代理的每次执行建模为一次render。

三个关键假设:

  1. AI的价值在于bounded render——有限、可审计的单次推理
  2. 持续性的来源非会话,而是world-model的持久状态和receipt链
  3. 成本与“意外”成正比,与时间无关——若无变化,render不执行

这是runtime-first的世界观:先定义“什么在运行时保持为真”,再考虑工程过程。

NLAHs:策略不应埋在代码里

NLAHs(Natural-Language Agent Harnesses)的核心隐喻来自可编辑的策略文档。NLAH+IHR体系将agent harness拆成四层栈。

三个关键假设:

  1. Harness策略可从tangled controller code中分离,用可编辑的自然语言表达
  2. NL携带策略,code携带机制——精确操作留在代码里,可检查的策略留在NL里
  3. 共享runtime(IHR)可为不同NLAH提供统一执行基底

这是representation-first的世界观:策略的表示媒介决定了可审查性、可移植性和可分析性。

AGE:先定义系统要回到哪里,再讨论怎么回去

AGE的核心隐喻来自动力系统理论。

三个关键假设:

  1. AI是结构上不同于人类的扰动源——高频、高振幅、无持续方向感
  2. Attractor必须先于harness存在——“朝哪里纠正”先于“如何纠正”
  3. 文档是attractor的载体,代码是attractor的瞬时投影——两者均非attractor本身

这是process-first的世界观:先定义“系统应向什么结构收敛”,再设计运行时行为。

分歧一览

维度OpenProseNLAHsAGE
核心问题如何让AI持续维护一个为真的目标?如何将harness策略外化为可审查的NL?如何让系统在AI高频扰动下持续向稳定结构收敛?
问题域单个responsibility的生命周期单次task run的harness策略整个仓库的演化轨迹
时间尺度单次render(分钟)到持续serve(天)单次task run(分钟到小时)单次commit(分钟)到项目演化(月/年)
不变量性质控制目标(specification + fixed point)控制目标(specification + 软约束)工程化方向场(engineered attractor-like structure)
稳定性概念Fixed point——指纹相等即不动Policy conformance——符合策略即正确Attractor——在basin内即收敛
“对了”的含义输出与期望精确匹配(二值)执行路径符合NLAH规定的策略系统在收敛方向上(方向性)
控制机制确定性指纹比对(零LLM)IHR解释NL policy(依赖LLM)扰动-恢复动力学(test→audit→fix)
策略执行Runtime强制Runtime + NL指导制度化流程诱导,而非runtime强制

核心抽象对比

最小原语

OpenProse的Responsibility是一个自包含的计算单元,有明确的输入边界(Requires)、输出边界(Maintains)、目标(Goal)和连续性约束(Continuity)。执行产生一个receipt——内容寻址、链式可验证的决策证明。

NLAHs的NLAH文档是一个可编辑的策略描述,定义了task run的lifecycle policy:contract、stages、roles、state rules、verification rules、recovery rules和stopping conditions。NLAH并非“告诉模型怎么回答”,而是“告诉runtime如何组织一次多步执行”。

IHR的执行语义不是将NLAH编译成代码,也不是让agent读完文档后自由发挥。它用固定runtime-policy prompt将base agent变成parent orchestrator:parent读取NLAH,将contract、stages、state rules、validation rules、recovery rules和stopping conditions落实为child-agent task packets、handoff、状态文件、artifact gates和completion checks。阶段内部仍由child agent智能执行;测试、parser、validator、benchmark adapter等精确操作由scripts/adapters承担。

AGE的Attractor不是一个对象,而是一个结构性质,由三层组成:

  • 结构层:少量高层不变量(如包依赖方向 flux-core → … → flux-renderers、七种原语闭集、编译优先管道)
  • 载体层:承载这些不变量的可审计文档(docs/architecture/
  • 实现层:当前代码中体现这些不变量的部分

Responsibility和NLAH都是实例——你可以数出“这个项目有23个responsibility”或“这个benchmark有1个NLAH”。Attractor是一个性质——你不能数出“这个项目有5个attractor”,它更像“这个系统的吸引子是一个低维流形”。

三个体系都有将AI行动收束成可关闭单元的机制:OpenProse的render、NLAHs的task run、AGE的plan。Render的闭包由输入指纹、postcondition和receipt决定;task run的闭包由NLAH的task contract、validation rules、artifact contracts和stopping conditions决定;plan的闭包由Plan StatusCurrent BaselineGoalsNon-Goals、execution/proof checklist、Closure Gates和独立closure audit决定。

Plan并非待办列表,而是一次重大变更能否关闭的证据结构:先核对当前基线,限定目标与非目标,执行中逐项证明,最后由独立审计确认scope内事项已完成或被诚实移出。它与owner-doc的关系也非每次修改文档,而是用owner-doc判断当前变更的边界和关闭条件;只有当变更改变live baseline、public contract或owner behavior时,closure才要求同步文档。

NLAH和AGE plan在机制形态上接近:都用自然语言定义contract、阶段、证据和停止条件,都反对仅靠agent自述完成。但两者关闭的对象不同:NLAH关闭的是一次run,证明执行轨迹满足harness policy;plan关闭的是一次变更,证明当前scope的结果、证据和文本状态都足以被独立审计接受。

NLAHAGE plan
对象一次agent run的harness policy一次重大变更的closure contract
执行结构IHR parent orchestrator + child agents实现agent / 人类按plan执行,独立reviewer或fresh subagent关闭审计
证据载体STATE_ROOT、artifacts、run logsplan checklist、proof、verification output、daily log
停止条件task contract、artifact contract、stopping conditionsClosure Gates、scope内checklist、deferred adjudication、closure audit
失败后处理run内retry / recovery / honest stop不关闭、补proof、改状态、拆出non-blocking follow-up或新plan

状态模型

OpenProseNLAHsAGE
状态表示内容寻址的world-model(形式化)文件系统状态(STATE_ROOT + artifacts)代码 + 文档 + 日志(非形式化)
判定机制确定性指纹函数(canonicalizer)validation gates + artifact contractsCI命令 + 人工审查
历史记录Receipt ledger(链式可验证)Artifact文件 + 日志(单次run内)日志 + Bug Notes + Git history
稳定性语义Fixed point检测(hash == hashPolicy conformance(符合策略)Attractor收敛(在basin内且方向正确)
跨会话记忆Receipt chain(链式可验证)无(单次run内的文件状态)有(logs、bugs、discussions、plans)

技术实现对比

OpenProse是严格的两阶段架构:编译期用LLM产生确定性工件(Forme DAG、canonicalizer、postcondition validators),运行期从不调用LLM,所有决策均为确定性。AGE没有“编译一次然后运行”的分离,验证持续嵌入在每次变更中——typecheck → build → lint → test → 审计 → 日志,永远在验证方向。NLAHs处于两者之间:NL policy与确定性hooks分离,但IHR运行时依赖LLM解释策略。

AGE明确识别了自验证陷阱:AI从同一上下文生成代码和所有评判材料(类型、测试、文档、完成总结),若理解偏差,所有“验证证据”会朝同一方向偏离。对策是强制生成和评判分离——闭包审计必须由新上下文执行。OpenProse通过编译期冻结确定性函数绕过同一问题。NLAHs在论文评估场景中靠benchmark autograder规避,但在生产部署中同样需要外部验证机制避免自验证陷阱。

对“一致性”的理解——三种语义

这是三个体系最深层的分歧点。

OpenProse的fixed-point一致性:每个responsibility的render产出world-model,通过canonicalizer得到指纹。指纹与上次一致,系统“一致”。判定是二值的:相等或不相等,无“差不多一致”。组合层面,每个responsibility均在其不动点上,DAG拓扑正确,则整个系统一致。自底向上,每个局部不动点组合成全局不动点。

NLAHs的policy-conformance一致性:agent的执行路径是否遵循NLAH规定的策略。Paper定义了pattern-preservation、stage-coverage、artifact-contract compliance等指标度量。非二值——NLAH允许灵活执行,但要求策略结构(阶段、角色、验证门、状态规则)被保留。Paper的RQ2发现NLAH保留了可识别的工作流结构(workflow preservation 0.63-0.67, stage coverage 0.57-0.82),但信息传递是主要弱点(handoff recall低至0.32)。

AGE的attractor一致性:非二值。一个系统可以“大部分在attractor附近,但某个子系统偏离”——这并非“不一致”,而是“在basin内但偏离中心”。判定标准是方向性的:系统是在向attractor收敛,还是远离?一次commit可通过所有测试(在basin内),但若引入架构偏移(如逆转包依赖方向),系统轨迹便不再向attractor收敛。自顶向下——即使每个模块的测试都通过(每个局部在不动点),整体仍可偏离attractor。

AGE的原始论断:“所有state-level checks都能通过,但系统整体在漂移”。nop-chaos-flux的Plan 76是一个实例:尝试移除array-editor局部状态镜像,产生11个测试失败——非因单个bug,而是因测试本身已漂移至与旧实现的时序耦合状态。每个累积的变更都通过了review和CI,但从attractor视角看,测试套件已漂离能支持结构性演化的位置。这恰是attractor概念存在的原因。

这个区分并非术语偏好:

  1. Fixed point方法只能检测“是否精确到达”——对“在收敛方向上但未到达”和“已偏离”的区分能力弱
  2. Attractor方法天然关注轨迹方向——无需系统精确到达,只需系统在收敛,而收敛本身就是可持续的
  3. Fixed point在离散状态空间(如world-model的指纹)中工作良好;Attractor在连续状态空间(如架构演化)中更有表达力
  4. 这直接解释了为何OpenProse用hash == hash(离散等式),AGE用“CI通过 + 文档一致 + 架构边界完整”(多维收敛信号)

三个维度

对AI的定位。 OpenProse将AI建模为有界的render函数,角色是执行器。NLAHs将AI建模为被harness policy组织的执行系统:parent orchestrator按runtime policy解释NLAH,child agents执行具体任务,角色分化为编排者 + 执行者。AGE将AI建模为高频、高振幅、无持续方向感的扰动,角色是扰动源 + 执行器——同时被约束和被使用。

对文档的理解。 OpenProse:*.prose.md就是程序,若任何内容与Markdown不一致,Markdown正确。NLAHs:NLAH文档是策略——规定“怎么做”但不直接“执行”,最可审查的部分从实现细节中分离。AGE:文档是attractor的载体层,代码是attractor的瞬时投影,载体层定义它应回到哪里。

失败处理。 OpenProse:失败产生failed receipt,即时的、个体的,每个render独立记录。NLAHs:NLAH定义Recovery Rules(重试、回退、证据),失败的artifact保留供分析,但不跨run蒸馏。AGE:失败产生结构化Bug Note,反复出现的失败模式蒸馏为guardrails,按渐进自动化阶梯升级(笔记 → 检查清单 → 启发式脚本 → lint规则 → CI门控)。

渐进式自动化的实证:nop-chaos-flux 的工具链

AGE方法论有一个核心论断:能落实为确定性检查的,会逐步从轨迹数据中抽取为确定性脚本

nop-chaos-flux的工具链为此论断提供了完整实证。实际发生的5级渐进自动化阶梯:

Tier 1: 轨迹捕获(Bug Notes + Logs)——62+ bug fix notes, 72 daily dev logs
Tier 2: 模式蒸馏(Architecture Guardrails + Audit Rules)——8 guardrails distilled from bugs, 19 dedicated audit rules
Tier 3: 编码化的审查模式(Skills/Prompts)——24 reusable audit/review prompt templates
Tier 4: 启发性嫌疑扫描器(Heuristic Scanners, exit 0)——12 focused audit scanners, informational output
Tier 5: 硬门控自动化(Hard Gates, CI-blocking, exit 1 on failure)——14 hard gate scripts, 30+ ESLint rules, dependency-cruiser, Semgrep, Husky pre-commit

实例 A:构建产物污染源码目录

Tier 1 — Bug #23:packages/*/src/中残留的.js文件在Vitest运行时暗中覆盖.ts源码,导致测试失败但根因不在测试代码。共发现102个过期文件。

Tier 2 — Guardrail #6 “No Build Artifacts In Source Directories”被蒸馏进docs/references/architecture-guardrails-from-bugs.md,附有bug证据链接。

Tier 5 — scripts/verify-no-src-artifacts.mjs成为硬门控(CI-blocking),同时scripts/clean-src-artifacts.mjs提供清理能力。pnpm lint链在ESLint之前先跑clean + verify。

从bug到CI门控,完整走完了5级。

一个思想实验:如果用 OpenProse 或 NLAHs 管理 nop-chaos-flux

若将nop-chaos-flux的架构不变量建模为OpenProse responsibilities,会得到运行时精确的变化检测,但无法回答为何这些不变量应如此组织、如何演化。若将plan执行建模为NLAHs,会得到结构化的执行流程,但无法回答100次plan后系统是否仍在收敛。两者均为控制层工具;均不覆盖方向层。

AGE的owner-doc系统处理这些问题。OpenProse的responsibility合约不覆盖方向层。NLAHs的策略文档不覆盖跨会话的轨迹演化。两者均为优秀的控制层工具,但吸引子(方向层)不在它们的问题域内。

结论

OpenProse回答的是:“给定一个需要持续为真的目标,如何用AI高效、安全、可审计地维护它?”——微观运行时问题。

NLAHs回答的是:“给定一个tangled的controller code,如何把可复用的harness策略外化为可审查、可移植、可消融分析的NL文档?”——表示媒介问题。

AGE回答的是:“给定一个在AI扰动下持续演化的系统,如何保证它不会偏离稳定结构?”——宏观过程问题。

三者守护的是不同形式化/工程化稳定性语义,甚至不同本体论层次。OpenProse信任算法(确定性函数、内容寻址、链式验证)维持不动点;NLAHs信任可审查的NL策略(IHR解释执行、模块可消融)维持策略遵循;AGE信任的不是泛泛流程,而是可审计、可累积、可对抗复核、能将失败沉淀为未来约束的过程。OpenProse和NLAHs在控制层创新;AGE在方向层贡献。

真正的分歧在于失败会在哪里累积:OpenProse将失败局部化到responsibility,NLAHs将失败局部化到task run,AGE将失败视作跨会话轨迹的信号。

在nop-chaos-flux的实践中,AGE的渐进自动化阶梯已经跑通:62+ bug notes → 8 guardrails → 14硬门控 + 12启发性扫描器 + 30+ ESLint规则。Bug #23(构建产物污染)完整走完了从bug note到CI-blocking硬门控的5级蒸馏。72个日志文件记录了系统轨迹,46个执行计划是局部收敛机制,58个架构文档的优先级链是attractor的载体层。

OpenProse可将AGE已明确的局部不变量变成精确的变化检测。NLAHs可将harness变成可消融对象。两者均为优秀的控制层工具;但吸引子(方向层)不在它们的问题域内。它们可以作为控制层执行器,但不能替代方向层裁判。

可以这样说:若一个项目连续通过CI、review和harness contract,却在50次AI-assisted change后出现包边界逆转、测试语义耦合和owner-doc冲突,那么OpenProse/NLAHs的控制层成功了,而AGE要处理的问题才刚刚显现。这就是三者的分界线:非谁更全面,而是谁能看见长期漂移。

控制层能告诉AI如何纠错;方向层决定了什么才叫错。

免责声明

本网站新闻资讯均来自公开渠道,力求准确但不保证绝对无误,内容观点仅代表作者本人,与本站无关。若涉及侵权,请联系我们处理。本站保留对声明的修改权,最终解释权归本站所有。

相关阅读

更多
欢迎回来 登录或注册后,可保存提示词和历史记录
登录后可同步收藏、历史记录和常用模板
注册即表示同意服务条款与隐私政策