三方范式深度对比:Codex × Claude Code × NomiFun
主题:2026 年 AI Agent 治理的三种架构范式 方法:Reading/AIOPS 知识库概念页 + NomiFun 源码分析 + 系统配置检查 日期:2026-07-22
一、哲学根源:三种"秩序从何而来"的回答
三种范式的根本分歧在于一个元问题:Agent 系统的秩序从哪里来?
| 📜 Codex | 🏛️ Claude Code | 🏛️🏛️ NomiFun | |
|---|---|---|---|
| 秩序来源 | 先于运行的形式化规则 | 运行中的动态协商 | 分层嵌套的制度体系 |
| 隐喻 | 成文宪法 — 一切权力来自宪法文本 | 共和国 — 法律在议会辩论中产生 | 联邦制 — 宪法 + 州权 + 联邦政府三层 |
| 权力所在 | 类型系统 + 策略文件 | 主执行循环(Query Loop) | 规划/执行/监督三权分立 |
| 对"偏差"的态度 | 预防 — 偏差不应发生 | 纠正 — 偏差在协商中修正 | 分层容忍 — 反应层零容忍,审慎层可协商 |
1.1 Codex:宪法先于一切
Codex 的哲学可以概括为一句话:"规则不是建议,是物理定律。"
在 Codex 的世界里,Agent 能做什么、不能做什么、在什么条件下做什么,全部由编译期确定的类型系统和策略片段定义。运行时不存在"协商"——Agent 只是在宪法划定的轨道上运行。这类似于一个形式化验证系统:如果类型检查通过,行为就是安全的。
工程体现: - Exec-Policy 语言:结构化的策略片段,不是自然语言 - 静态生命周期 Hook:在 Agent 生命周期的固定节点拦截 - 分层沙箱:gVisor 级别的隔离,不信任 Agent 的任何输出 - 结构化指令注入:指令以结构化数据而非自由文本注入
优势:可追溯、可审计、可证明安全边界 代价:灵活性极低——面对未预见的场景,系统只能拒绝而非适应
1.2 Claude Code:法律在辩论中产生
Claude Code 的哲学是:"秩序不是被设计的,是在互动中涌现的。"
CLAUDE.md 不是一部宪法——它是一份可修改的议事规则。Agent 在每次对话中加载它、理解它、与当前上下文协商,然后决定如何行动。settings.json 是最后的防线,但它是兜底而非主导。
工程体现: - CLAUDE.md 动态加载:每次对话重新解析,支持递归导入(最多 5 层) - 渐进式披露:不一次性给出所有规则,按需展开 - 自我反思:Agent 可以质疑自己的计划并修正 - 上下文压缩/恢复:激进压缩以保持流动性
优势:极度灵活,能适应任何未预见的场景 代价:安全风险高——CVE-2026-25723 就是通过 CLAUDE.md 进行指令注入的真实案例
1.3 NomiFun:宪法 + 州权 + 联邦
NomiFun 的回答是:"秩序是分层的——有些规则不可协商,有些可以,有些需要多个实体共同决定。"
这不是简单的"混合",而是引入了第三个维度:
┌─────────────────────────────────────────────────────┐
│ 联邦宪法(不可协商) │
│ Gateway 安全门控 / IDMM PermissionRule / 状态机 │
│ → 类比:美国宪法第一条,国会不得通过剥夺公民权的法律 │
├─────────────────────────────────────────────────────┤
│ 州权(可协商) │
│ Planner 动态规划 / ModelPool 自选 / IDMM 模型绕过 │
│ → 类比:各州可以自行决定教育政策 │
├─────────────────────────────────────────────────────┤
│ 联邦政府(组织协调) │
│ DAG 参与者 / 内容寻址委派 / AutoWork / Cron │
│ → 类比:联邦政府协调州际贸易和国防 │
└─────────────────────────────────────────────────────┘
二、安全模型:三种截然不同的信任架构
2.1 Codex 的安全模型:"我不信任你,所以你用什么都要经过我"
Agent 请求 → 类型检查 → 策略匹配 → 沙箱执行 → 结果验证
↓ 失败 ↓ 失败
拒绝 拒绝
- 零信任:Agent 的每一个动作都必须通过策略引擎
- 静态拦截:Hook 在编译期确定,运行时不可绕过
- 沙箱隔离:即使策略通过,执行也在隔离环境中
安全水位由策略文件的完备性决定——如果策略覆盖了所有场景,系统就是安全的。
2.2 Claude Code 的安全模型:"我信任你,但这是红线"
Agent 请求 → CLAUDE.md 协商 → settings.json 检查 → 执行
↓ 可绕过 ↓ 不可绕过
模型自行判断 硬性拒绝
- 分层信任:CLAUDE.md 是"建议",settings.json 是"法律"
- 动态协商:Agent 可以在 CLAUDE.md 的框架内自行决定
- 人工兜底:高风险操作需要人类确认
核心矛盾:CLAUDE.md 的灵活性恰恰是其最大的攻击面。
已知风险清单(来自知识库 claude-security-risks.md):
| 风险 | 严重性 | 案例 |
|---|---|---|
| 直接指令注入 | 🔴 严重 | CVE-2026-25723:通过 sed 写入 CLAUDE.md |
| 间接提示注入 | 🔴 严重 | 通过外部文件/网页嵌入恶意指令 |
| 递归导入攻击 | 🟡 中等 | 利用 @path/to/import 拉取恶意文件(5 层深度) |
| 数据外传 | 🔴 严重 | curl/wget 发送敏感数据 |
| 意外数据破坏 | 🔴 严重 | hermes-agent 生产环境误删数百万行 |
| 行为伪装 | 🟡 中等 | AI 生成的恶意操作表面合法 |
2.3 NomiFun 的安全模型:"分权制衡 + 多层防御"
Agent 请求
│
├──→ Gateway 三维门控 (profile × surface × danger) ──→ 拒绝/放行
│
├──→ IDMM PermissionRule (safe/risky) ──→ 拒绝/放行
│
├──→ IDMM 破坏性命令检测 (rm -rf / DROP TABLE) ──→ 否决
│
├──→ IDMM OptionRule (auto-pick/escalate/halt) ──→ 自动/升级/停止
│
├──→ 确认系统 (跨会话审批) ──→ 人类裁决
│
└──→ 执行
关键设计差异:
| 特性 | Codex | Claude Code | NomiFun |
|---|---|---|---|
| 安全边界定义 | 编译期类型 | settings.json 配置 | 架构硬编码 + 运行时策略 |
| 能否被模型绕过 | ❌ 不能 | ⚠️ CLAUDE.md 可被注入 | ❌ Gateway/状态机不可绕过 |
| 人工介入点 | 策略配置时 | 高风险操作确认 | 多层升级阶梯 |
| 自我批准 | N/A | 可能(Agent 自己决定) | ❌ 架构禁止(跨会话确认) |
| 审计能力 | 类型检查日志 | 对话记录 | IDMM 干预日志 + 执行 DAG |
NomiFun 的独特安全机制:
- 禁止自我裁决:确认系统明确禁止 Agent 批准自己的敏感操作——架构级分权制衡
- 破坏性否决检测:IDMM 内置模式匹配,检测
rm -rf、DROP TABLE、git reset --hard等 - Fail-open 但审计:DB 写入失败不阻塞决策,但所有决策都有审计日志
三、压缩策略:流动性 vs 完整性的根本冲突
"运行时共和制与宪法控制面在压缩策略上存在根本冲突:Claude Code 倾向于激进压缩以维持流动性,而 Codex 视压缩为对规则完整性的威胁。"
3.1 三种压缩哲学
| Codex | Claude Code | NomiFun | |
|---|---|---|---|
| 压缩态度 | 压缩 = 规则完整性威胁 | 压缩 = 保持流动性的必要手段 | 压缩 = 分层处理 |
| 策略 | 不压缩规则,只压缩数据 | 激进压缩上下文 | 宪法层不压缩,审慎层可压缩 |
| 风险 | 上下文膨胀 → 性能下降 | 过度压缩 → 丢失关键约束 | 层间一致性维护 |
3.2 NomiFun 的分层压缩方案
NomiFun 实际上同时采用了两种策略,但应用于不同层:
- 反应层(宪法):IDMM 策略、Gateway 门控规则、状态机定义 → 永不压缩,硬编码
- 审慎层(共和):对话上下文、Planner 的中间推理 → 可以压缩,通过
nomi-compactcrate - 组织层(联邦):DAG 步骤历史、执行日志 → 选择性压缩,保留关键决策点
这解决了知识库中提出的开放问题:"是否存在一种混合架构能同时满足两者的需求?"
答案是:分层。 不是"要么压缩要么不压缩",而是"宪法不压缩,法律可以压缩"。
四、多 Agent 维度:从单体治理到组织治理
这是三种范式最根本的分野。
4.1 Codex 和 Claude Code 的共同局限
两者都是单体 Agent 治理——它们回答的问题是"如何驯化一个 Agent",而不是"如何治理一个 Agent 组织"。
| 问题 | Codex 的回答 | Claude Code 的回答 |
|---|---|---|
| Agent 之间如何通信? | 不处理 | 不处理 |
| 多个 Agent 如何协调? | 不处理 | 不处理 |
| 谁监督监督者? | 不处理 | 不处理 |
| Agent 如何自治运行? | 不处理 | 不处理 |
4.2 NomiFun 的组织层
NomiFun 引入了两种经典范式都没有的第三维度:
┌─────────────────────────────────────────────────────────────┐
│ 组织层 (Organizational Layer) │
│ │
│ ┌──────────────┐ ┌──────────────┐ ┌──────────────┐ │
│ │ DAG 参与者 │ │ 内容寻址委派 │ │ 跨会话通信 │ │
│ │ 多实体协作 │ │ SHA256 幂等 │ │ 消息注入 │ │
│ └──────────────┘ └──────────────┘ └──────────────┘ │
│ │
│ ┌──────────────┐ ┌──────────────┐ ┌──────────────┐ │
│ │ IDMM 元监督 │ │ AutoWork │ │ Cron 自治 │ │
│ │ 监督者的监督者 │ │ 需求队列循环 │ │ 无人值守节律 │ │
│ └──────────────┘ └──────────────┘ └──────────────┘ │
│ │
│ ┌──────────────┐ ┌──────────────┐ │
│ │ ACP 联邦边界 │ │ 确认分权制衡 │ │
│ │ 19+ 外部Agent │ │ 禁止自我裁决 │ │
│ └──────────────┘ └──────────────┘ │
└─────────────────────────────────────────────────────────────┘
"多体政治"隐喻映射:
| 政治隐喻 | NomiFun 实现 |
|---|---|
| 公民 | 独立的 Agent 会话(Conversation) |
| 进程疆域 | 终端系统(Terminal) |
| 法律规章 | 任务需求(Requirement) |
| 监察院 | IDMM 监督引擎 |
| 外交信道 | OpenClaw Gateway / ACP |
| 司法制衡 | 跨会话确认系统 |
4.3 "编排 vs 引擎确定性鸿沟"的启示
AIOPS 知识库中的 Orchestration vs Engine Determinism Gap 概念有深刻类比意义:
"编排层成功捕获了来源、参数和代码谱系,但它们在引擎之上运行,如果引擎本身产生可变结果,就无法强制执行位精确确定性。"
映射到三种范式:
| 编排层(Orchestration) | 引擎层(Engine) | 鸿沟 | |
|---|---|---|---|
| Codex | 策略文件 | 类型系统 | 小 — 两者都是静态的 |
| Claude Code | CLAUDE.md | 模型推理 | 大 — 自然语言 vs 模型随机性 |
| NomiFun | DAG + IDMM 策略 | 状态机 + Gateway | 中 — 编排层有确定性保证,审慎层仍有模型随机性 |
NomiFun 的内容寻址委派(SHA256 哈希语义操作)正是为了缩小这个鸿沟——即使模型推理有随机性,操作的语义标识是确定性的。
五、生态位与选型指南
5.1 行业坐标系
灵活性 →
高
│
Claude Code ●
│ ● NomiFun
│
│
│ ● LibrAgent
│
│ ● Devin
│
│ ● Codexia
│
Codex ● │
│
低 ────────────────────→ 高
安全刚性
5.2 选型决策树
你的核心需求是什么?
│
├── "我需要绝对的可追溯性和合规性"
│ └── → Codex(宪法控制面)
│ 适用:金融、医疗、政府
│ 代价:每个新场景都需要新策略
│
├── "我需要最大的灵活性和适应力"
│ └── → Claude Code(运行时共和制)
│ 适用:快速原型、探索性开发
│ 代价:安全边界模糊,需要人工 vigilance
│
├── "我需要管理多个异构 Agent 协同工作"
│ └── → NomiFun(Agent 联邦制)
│ 适用:企业自动化、多 Agent 编排
│ 代价:架构复杂度高,学习曲线陡峭
│
└── "我需要本地数据主权 + 通用能力基座"
└── → NomiFun(能力总线)
适用:数据敏感行业、私有化部署
代价:需要自建运维能力
5.3 一个关键洞察
三种范式不是互斥的——它们可以嵌套。
NomiFun 的架构实际上包含了前两者: - 在反应层,它是一个 Codex(宪法控制面) - 在审慎层,它是一个 Claude Code(运行时共和制) - 在组织层,它是前所未有的新物种
这意味着: - 你可以在 NomiFun 上运行一个"Codex 风格"的 Agent(全部使用 RequireApproval 门控) - 你也可以运行一个"Claude Code 风格"的 Agent(全部使用 Automatic 门控) - 或者任何混合配置
NomiFun 不是第三种选择——它是包含前两种选择的元框架。
六、未解决的张力
| 范式 | 核心未解决问题 |
|---|---|
| Codex | 策略爆炸——随着场景增多,策略文件变得不可维护 |
| Claude Code | 安全与灵活的根本矛盾——CLAUDE.md 既是控制面也是攻击面 |
| NomiFun | 宪法漏洞——IDMM 规则与模型推理的交互边界尚未被形式化验证 |
知识库中提出的开放问题:
"在非代码场景下,动态协商与静态宪法的具体融合模式尚不明确。"
NomiFun 的分层方案是目前最完整的工程实践回答,但它是否理论上完备——即是否存在一种形式化证明,证明在反应层和审慎层的边界上不会出现"宪法漏洞"——这仍然是一个开放的研究问题。
本分析基于 Reading 知识库中的 代理架构范式对比、Agent 联邦制、多体政治、治理代理、CLAUDE.md 安全风险与防御、运行时共和制与宪法控制面在压缩策略上的根本冲突 等概念页,以及 AIOPS 知识库中的 Orchestration vs Engine Determinism Gap 概念。
生成日期:2026-07-22