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

GEODE

Autonomous Agent Harness

从观测,到下一步行动。

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

2026.02.21 — present

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

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

Decision Offloading w. Jev

智能体在任务中途做出的中间判断,哪些可以交给只做判断的模型 Jev?这项研究检验交出这些判断后,经独立验证的任务质量能否保持,范围包括准备、反复判断、修复与最终交付。早期试点无法仅靠替换判断调用来解释,因此输入契约、判断契约、概率策略以及执行智能体对判断的使用被拆分为各自的实验。

Jev 结构图 · 运行时依据固定提交 9e2c041,研究依据 2026年9月的记录
Jev 判断路径:运行时集成与研究上半部分是当前 GEODE 运行时中的可选判断路径。只有 judgment_engine 设为 jev 时,最终验证与反思才会调用一次 TypeSafe SystemOne 上的 Jev,响应须通过类型、范围与概率和的准入检查才会被使用。最终验证只有 supported 算通过,结果交给“完成判定”一章的 PostVerify 与 Stop 策略。下半部分是运行时之外的 Jev v3 研究:固定状态面板(U3)比较 Astra 与 Jev 的判断;Harbor 0.22 的 E/I 运行只改变判断路径,并用独立的规则 oracle 分别检查结果与交付;公开包将来源哈希与公开哈希分开保存,并提供无模型重算。TypeSafe SystemOnejev-1.13.0 · 仅限判断Astra 评判 · actor 模型gpt-6-astra/xhigh · 订阅Jev 研究报告公开技术报告core/config/judgment.pyjudgment_engine · llm | jevauto → typesafe · openrouterloop/_lifecycle.pyPostVerify · Stop 策略core/agent/verify.py最终判定 · 一个 Choice 问题仅 supported 通过 · 仅限文本adapters/typesafe.pySystemOne · 一次调用 · 无回退准入检查 · 求和容差 1e-5loop/_reflection.py反思 · 依据分类memory · observabilitytimeline · ledger 判定行U3 · 固定状态面板120 对 · 27 个来源 · 无 actorAstra · Jev · 相同问题E/I · Harbor 0.22Astra actor · 工具 · 修复评判路径 · Astra · Jev · Jev-firstrule oracle正确性 · 交付分开统计jev-v3-20260927E2E-DATA · 来源 · 公开哈希REPRODUCE · model-freeGEODE 运行时 · 9e2c041可选判断 · 默认 llmJev v3 研究 · 2026年9月运行时之外 · 独立执行框架1选择路径2 请求 · 候选 · 观测 · 最终判定 · 一个 Choice 问题 → SystemOne · 一次调用 · 无回退23 一次 SystemOne 调用 · SystemOne · 一次调用 · 无回退 → TypeSafe SystemOne34 通过准入的 Choice · 准入检查 · 求和容差 1e-5 → 仅 supported 通过 · 仅限文本45passed · reflection6判定行1相同的选择2依据分类3 一次 SystemOne 调用 · SystemOne · 一次调用 · 无回退 → TypeSafe SystemOne34 分类 · 准入检查 · 求和容差 1e-5 → 反思 · 依据分类41Jev 判断2Astra 判断3面板结果 · 报告1生成 · 工具 · 修复2完成判定路径3 独立检查 · E/I · Harbor 0.22 → 正确性 · 交付分开统计34失败 · 修复谱系5无模型重算

运行时 · 最终判定

选用 Jev 时,最终验证以一个 Choice 问题调用 Jev 一次,只有通过准入的 supported 判定才算通过。

  1. judgment_engine · llm | jevcore/config/judgment.py执行 · 判定: 选择路径最终判定 · 一个 Choice 问题core/agent/verify.py

    只有 judgment_engine 设为 jev 时才使用 Jev 路径(默认 llm)。provider auto 按 TypeSafe、OpenRouter 的顺序选择有密钥的一方;没有密钥时保持 LLM judge 路径。这不是把失败请求转到别处重试的回退。

  2. 最终判定 · 一个 Choice 问题core/agent/verify.py数据: 请求 · 候选 · 观测SystemOne · 一次调用 · 无回退adapters/typesafe.py

    原始请求与候选经脱敏并限制长度后,与工具观测一起作为一个 Choice 问题(supported、contradicted、insufficient_evidence)发送。判断调用不提供工具(allow_tools=False)。需要图像的判断不会发送给 Jev,而是成为 verification_error。

  3. SystemOne · 一次调用 · 无回退adapters/typesafe.py数据: 一次 SystemOne 调用TypeSafe SystemOne

    直连 TypeSafe 或经 OpenRouter 调用一次,不会跳转到其他提供商。Jev 从不被用作根文本生成模型。

  4. 准入检查 · 求和容差 1e-5adapters/typesafe.py数据: 通过准入的 Choice仅 supported 通过 · 仅限文本core/agent/verify.py

    响应须通过类型、范围与概率和(容差 1e-5)的准入检查才会被使用。只有 supported 算通过;contradicted 与 insufficient_evidence 会连同固定的下一项检查成为重试信号。响应不是 end_turn 或未通过准入检查时,成为 verification_error,它不是重试信号(should_retry=False)。该分数是二值投影,不是经过校准的概率。

  5. 仅 supported 通过 · 仅限文本core/agent/verify.py数据: passed · reflectionPostVerify · Stop 策略loop/_lifecycle.py

    判定交给“完成判定”一章的 PostVerify 与 Stop 策略。判定是该策略的输入,而非权限;进入等待审查时,候选只保留为 pending_text,最终响应为空,因此不会交付任何内容。

  6. PostVerify · Stop 策略loop/_lifecycle.py记录 · 观测: 判定行timeline · ledger 判定行memory · observability

    判定决策记录在 timeline 与 evidence ledger 中:这是运行时记录,与研究产物分开。

运行时 · 反思

相同的选择也驱动反思的依据分类;下一项检查的语句由代码设定。

  1. judgment_engine · llm | jevcore/config/judgment.py执行 · 判定: 相同的选择反思 · 依据分类loop/_reflection.py

    相同的选择也适用于反思。

  2. 反思 · 依据分类loop/_reflection.py数据: 依据分类SystemOne · 一次调用 · 无回退adapters/typesafe.py

    反思用 Jev 对有限的依据进行分类,并追加由代码确定的下一项检查。它不改变信念假设或自我置信度。

  3. SystemOne · 一次调用 · 无回退adapters/typesafe.py数据: 一次 SystemOne 调用TypeSafe SystemOne

    直连 TypeSafe 或经 OpenRouter 调用一次,不会跳转到其他提供商。Jev 从不被用作根文本生成模型。

  4. 准入检查 · 求和容差 1e-5adapters/typesafe.py数据: 分类反思 · 依据分类loop/_reflection.py

    只有通过准入的分类才会更新反思状态;失败时,下一回合从相同的先前状态重试。

研究 · 固定面板 U3

在没有 actor 的情况下,按对比较 Jev 与 Astra 对同一状态和问题的判断。

  1. Astra · Jev · 相同问题U3 · 固定状态面板数据: Jev 判断TypeSafe SystemOne

    U3(原始实验提交 2f2b494):120 个固定状态 · 27 个来源簇 · 240 次调用。每个状态与问题作为一对同时交给 Jev 与 Astra;没有 actor、工具或 Harbor。

  2. Astra · Jev · 相同问题U3 · 固定状态面板数据: Astra 判断Astra 评判 · actor 模型

    同一样本上的正确数:Astra 90/120,Jev 84/120;每次调用的中位数 10.446 秒对 0.253 秒。这只是判断调用的延迟,不代表任务时间或成本的节省。

  3. U3 · 固定状态面板数据: 面板结果 · 报告Jev 研究报告

    U3 的准确率与延迟结果见于公开技术报告。此处不主张该面板属于 E2E 公开包。

研究 · E/I 运行

以 Astra 为 actor,只改变判断路径,并由独立的规则 oracle 分别检查结果与交付。

  1. Astra actor · 工具 · 修复E/I · Harbor 0.22数据: 生成 · 工具 · 修复Astra 评判 · actor 模型

    在 Harbor 0.22 上的 E/I 中,actor Astra 负责生成、工具调用与修复;只改变判断路径。

  2. 评判路径 · Astra · Jev · Jev-firstE/I · Harbor 0.22数据: 完成判定路径TypeSafe SystemOne

    E7(原始实验提交 1f65534):12 个自行编写的合成任务 × 3 种配置 × 2 次 = 72 次运行,每种配置 24/24。Jev-first 配置的实际回退为 0/24,因此其效果未被测量。

  3. E/I · Harbor 0.22记录 · 观测: 独立检查正确性 · 交付分开统计rule oracle

    独立的规则 oracle 检查最终结果,实际的最终交付另行统计。在中断的 U8n 的 11 对事后样本中,每个候选都通过了 oracle,但交付为 Astra 11/11、Jev Noul 0/11。

  4. E/I · Harbor 0.22数据: 失败 · 修复谱系E2E-DATA · 来源 · 公开哈希jev-v3-20260927

    E2E 公开包保留准备、失败与修复的谱系,来源哈希与公开副本哈希分开保存。脱敏后的公开副本不能代替对未改动来源的验证。

  5. REPRODUCE · model-freejev-v3-20260927数据: 无模型重算Jev 研究报告

    根据已保存的响应重新计算数值,与重新运行是不同的操作。该报告是公开技术报告,不是经同行评审的论文。

所有连接以相同粗细显示。选择一个流程,即只突出显示其路径,并标出步骤编号。

  • 实线 · 请求、候选与结果的流向
  • 虚线 · 执行、判定、授权、配置
  • 长点划线 · 记录与观测,与判定分离
  • 粗黑线 · 所选流程;数字表示顺序
  • 方框 · 代码或记录的边界,顶部标注路径
  • 内层小框 · 该边界内的组件
  • 虚线框 · 该边界之外
  • 循环 · 执行框架
  • 路径选择 · 判定 · oracle
  • 记录 · 公开包
  • 传输 · 判断面板

上下两部分是不同的系统。研究中的配置与结果并未全部在当前运行时路径中启用;两者唯一的联系是调用同一个 Jev 模型(jev-1.13.0)。

运行时准入检查
运行时将概率和容差严格保持在 1e-5。评测侧调用方传入各自记录的容差,而不是放宽运行时的解析器。
研究范围
U3 只测量判断调用;E/I 包含 actor 与修复。两者的分母从不混用,U8n 的 11 对是对一项中断研究的事后分析。

三种判断契约

Choice

返回
每个类别或选项的概率
判断
是否完成;请求的意图与对象

Noul

返回
每个条件的 P(true)
判断
矛盾;依据不足

Score

返回
固定有序量表上的期望值与分布
判断
生成候选的排序

期望值表示候选在量表上的位置,不作为置信度使用。

评测与接入

每种契约都在各自固定的输入面板上单独评测,其中一部分接入实验执行框架的执行路径,以观察执行智能体如何使用判断。上方结构图中,研究部分展示的就是这些运行;运行时部分是当前 GEODE 中的可选路径。

改变设计的观测

  1. I5 → I6 · 输入契约
    1. 追踪一次共同的交付失败发现,判断输入缺少任务契约,并把同一请求中的工具观测描述成过去的上下文
    2. 在使用修订后代码与新账号的另一次运行中,I6 交付 6/6
  2. U3 · 相同的 120 对状态
    1. 每次调用的中位数 Astra 10.446 秒 · Jev 0.253 秒;同一样本上的正确数 90/120 · 84/120
    2. 对每项判断同时权衡速度与准确度,以确定委托范围
  3. U2 · 概率
    1. Jev 的概率在大小上校准得更好,但 Astra 更可靠地把自己的错误判断排在前面
    2. 校准与错误筛选分开测量,阈值在 selection 划分上冻结
  4. U6a · 意图与对象
    1. 在 40 个由设计者编写的族上,Jev 216/220 · Astra 220/220,满足预注册的 −5 pp 界值
    2. 将固定的意图与对象分类收窄为下一个应用候选
  5. U8n · 交付
    1. 中断运行中的 11 对事后样本:修复后的候选在两个 arm 中均通过 oracle;交付 Astra 11/11 · Jev Noul 0/11
    2. 依据缺失的判定阻碍了正确交付;当前的 Noul 配置缺乏担任唯一交付评判的依据