GEODE 的官方像素角色 Geodi
返回展厅

GEODE

Autonomous Agent Harness

从观测,到下一步行动。

一个可以委托研究、文件处理与定时任务的本地自主智能体执行框架。

2026.02.21 — present

设计、判断、验证:Author · 实现:Claude · 审查:Codex

  • CLI公开发布 · PyPI
  • MCP 服务器已实现

被审查退回的实现,重新计算的研究数据

两起审查将实现退回的案例,以及一起在保留原始结果的同时重新计算研究数据的案例。各角色只写该案例记录中可见的内容。

完整图例

阅读方法 · 所有案例使用同一套规则

  • 列表示由谁执行,自上而下表示时间
  • 实线:记录在案的交接或下一步
  • 粗青金色线 ↩:把工作退回的审查意见
  • 虚线:不是记录在案的执行(规范、没有权限的假设、未确认的边界)
  • 矩形:行动
  • 圆角:观测到的状态或审查意见
  • 折角:产物或证据
  • 斜纹列:开发中产品的组成部分(不是用来构建它的智能体)

案例 1 / 3 · 通过了正常路径的实现,在错误路径上两次被审查退回

June 13, 2026

通过了正常路径的实现,在错误路径上两次被审查退回

  1. 人Author

    行动遥测缺失 · 将 silent fallback 列为检查对象

    • 交接必须可见的失败→ typed activity row · 标记 fallback (Claude Fable 5)
  2. 编程智能体Claude Fable 5

    行动typed activity row · 标记 fallback

    • 交接→ commit 64bd223 (公开提交)
    • 交接diff · 失败路径→ BLOCKER:generic fallback 以 details=data 保存原始内容 (Codex)
  3. 产物公开提交

    产物commit 64bd223

  4. 审查 · 验证Codex

    观测 · 审查意见BLOCKER:generic fallback 以 details=data 保存原始内容

  5. 编程智能体Claude Fable 5

    行动fallback 时同样移除敏感字段

    • 交接→ c808e78 · K4 复现检查 (公开提交)
    • 交接修复再次审查→ BLOCKER #2:ValidationError 文本再次暴露值 (Codex)
  6. 产物公开提交

    产物c808e78 · K4 复现检查

  7. 审查 · 验证Codex

    观测 · 审查意见BLOCKER #2:ValidationError 文本再次暴露值

  8. 编程智能体Claude Fable 5

    行动只保留错误类型 · 字段路径,删除 args_preview

    • 交接→ 8dcb386 · K5 复现检查 (公开提交)
  9. 产物公开提交

    产物8dcb386 · K5 复现检查

    • 不是记录在案的执行已检查的范围→ 当时的完整 CI 与最终审查 PASS 未重新查阅 (公开提交)
  10. 产物公开提交

    规范 · 未确认当时的完整 CI 与最终审查 PASS 未重新查阅

背景
这次变更把观测事件改为 typed activity row,并让 fallback 不再静默发生。Codex 审查留下两个 BLOCKER,每次修复都附带一项检查,复现审查发现的绕过路径。
结果
K4 用错误类型真正触发 fallback,检查没有原始字段残留;K5 检查错误描述只含字段名与错误类型,不含任何输入值。这些检查复现的是审查发现的绕过路径,而不是照搬实现中的常量。
局限
未打开原始的 MCP 审查对话;审查角色依据提交和当时撰写的 CHANGELOG 确认。本案例并不保证 GEODE 的任何日志都不会保留敏感数据。
依据与尚存的局限
  • 三个提交都署名 Claude Fable 5,c808e78 与 8dcb386 分别记录了 Codex 的 BLOCKER 与 BLOCKER #2。
  • 当前(2026年10月)的贡献者规范,没有被追溯为本案例的指令。

May 26, 2026

一个本要删除分数的变更,被收窄为限制分数用途的检查

  1. 编程智能体实现

    观测 · 审查意见需求:不把该值用作 fitness 轴

    • 交接最初的假设→ 初稿:在 baseline writer 中删除该值 (实现)
  2. 开发对象产品内的消费方

    观测 · 审查意见首次生成时,scenario_realism 的唯一来源是 baseline

    • 交接追踪实际消费方→ 审查意见:会破坏初始 critic 输入 (Codex)
  3. 编程智能体实现

    行动初稿:在 baseline writer 中删除该值

    • 交接变更经审查→ 审查意见:会破坏初始 critic 输入 (Codex)
  4. 审查 · 验证Codex

    观测 · 审查意见审查意见:会破坏初始 critic 输入

  5. 编程智能体实现

    行动撤回 writer 变更 · 保留数据

    • 交接完成标准转移→ 4 条不变式:只从 fitness 面中排除 (公开提交 · PR)
  6. 产物公开提交 · PR

    产物4 条不变式:只从 fitness 面中排除

    • 交接最终 diff→ 0792e81 → PR #1690 已合并 (公开提交 · PR)
  7. 产物公开提交 · PR

    产物0792e81 → PR #1690 已合并

背景
这次变更旨在让 scenario_realism 不在外部 Scaffold Search 中充当 fitness 轴。审查追踪到该值的第一个读取方后,变更没有扩大,反而缩小了。
结果
baseline 的值保持不变;四项检查确保这一维度不出现在外部搜索的 AXIS_TIERS、DIM_WEIGHTS 与 tier 列表中。
局限
未查看被撤回的 writer 变更背后的会话;依据提交和当时撰写的测试说明确认。这些检查不能作为搜索性能或 SIL 改进的证据。
依据与尚存的局限
  • critic 与 evolver 是开发中产品内部的数据消费方,而不是用于开发它的编程智能体或 Codex 审查者。
  • PR #1690 的标题仍写着“filter”;实际变更以最终 diff 和提交为准。

September 27, 2026 to September 28, 2026

修正边界值错误后,先复现原始结果,再重新计算

  1. 工作会话分析实现方

    观测 · 审查意见恰好位于容差边界的值被拒绝

    • 交接准入检查的错误,而非模型能力问题→ 以十进制比较 · 容差不变 (分析实现方)
  2. 工作会话分析实现方

    行动以十进制比较 · 容差不变

    • 交接→ 4be7a17 · 边界内 · 外检查 (产物)
  3. 产物产物

    产物4be7a17 · 边界内 · 外检查

  4. 人Author

    行动委托:仅离线更正全部已保存的 U4 · X2

    • 交接允许的范围→ contract.json:固定输入 · 规则,不调用模型 (产物)
  5. 产物产物

    产物contract.json:固定输入 · 规则,不调用模型

    • 交接固定条件→ 先复现原有结果 · 分母 · CI (分析实现方)
  6. 工作会话分析实现方

    行动先复现原有结果 · 分母 · CI

    • 交接确认复现之后→ 用相同输入另行计算更正版 (分析实现方)
  7. 工作会话分析实现方

    行动用相同输入另行计算更正版

    • 交接→ receipt:保留 24 份原件 · 模型调用 0 (产物)
    • 交接cell 向量,而非摘要→ 由 cell 向量重算 winner · CI · 核对哈希 (独立验证方)
  8. 产物产物

    产物receipt:保留 24 份原件 · 模型调用 0

  9. 审查 · 验证独立验证方

    行动由 cell 向量重算 winner · CI · 核对哈希

    • 交接→ independent-review:判定成立,写明局限 (产物)
  10. 产物产物

    产物independent-review:判定成立,写明局限

背景
在 Jev 研究工具中,恰好落在容差边界上的 typed 数值回答会被拒绝。修复后,在不新增模型运行的情况下重新计算了全部已保存结果,并将计算方与验证方分开。
结果
校正后判定保持不变(U4 not-supported,X2 mixed)。修正数值错误与研究假设得到支持,二者被区分开来。
局限
这是事后校正,而非新的模型实验。没有原始响应的 640 个 Astra listwise cell 保留已保存的 winner,独立审查也没有重新解析非公开的响应正文。
依据与尚存的局限
  • 分数容差 0.03 与分布总和容差 0.025 均未改动。校正后的数字为 U4 58/80 → 59/80,X2 194/240 → 196/240。
  • 公开的校正记录没有写明编写方或验证方的模型,4be7a17 也没有 Claude 或 Codex 的署名,因此两列都不标注模型名称。