GEODE runtime vocabulary
- reasoning
- action
- observation
- plan
- memory
- tools
- hook
- reflexion
- rollouts
- data curation
- data governance
- evaluation
- scaffold search
- promotion
Reasoning: SYSTEM PROMPT · CONVERSATION · RUNTIME HINTS · MODEL · ADAPTER CALL · NEXT ACTION · TOOL SCHEMA · TEXT-ONLY TURN · CURRENT STEP · PROJECT MEMORY · RUNTIME RULES · EFFORT · thinking_budget · reasoning_effort · adaptive_thinking · effort_values · default_effort · binds_thinking · none · minimal · low · medium · high · xhigh · max · MODEL ROUTEAction: ACT · TOOL_USE · TOOLCALLPROCESSOR · DISPATCH · RESEARCH · BASH · COMPUTER USE · FILE · GIT · PROCESS · EFFECT RECEIPT · TOOLEXECUTORObservation: NEXT ACTION · RESEARCH · OBSERVE · TOOL_RESULT · RESULT · ERROR · CODE · DOCUMENT · SOURCE · EVIDENCE · EXCERPTPlan: CURRENT STEP · OBJECTIVE · PLANSTEP · EXPECTED OUTCOME · REMAINING STEPS · COMPLETED · ABANDONED · REVISION · UPDATE_PLAN · /PLAN · REPLAN · VERIFY FAILED · LOW CONFIDENCEMemory: SYSTEM PROMPT · CONVERSATION · PROJECT MEMORY · RUNTIME RULES · TOOL_RESULT · CONVERSATIONCONTEXT · MESSAGES · CONTEXT WINDOW · COMPACTION · CHECKPOINT · SESSION · RECOVERY · SQLITE · STATE.JSON · PreCompact · PostCompact · SessionStart · SessionEndTools: TOOL SCHEMA · TOOL_USE · TOOLCALLPROCESSOR · DISPATCH · BASH · COMPUTER USE · EFFECT RECEIPT · TOOL_RESULT · BOUNDTOOLPLAN · GENERATION · HASH · TOOLEXECUTOR · SCOPE · POLICY · HOOK · APPROVAL · HITL · PreToolUse · PostToolUse · MCP CLIENT · PermissionRequestHook: DISPATCH · HOOK · PreToolUse · PostToolUse · UserPromptSubmit · PermissionRequest · PreCompact · PostCompact · SessionStart · SessionEnd · SubagentStart · SubagentStop · PreVerify · tool_request · tool_execution · llm_request · llm_execution · REQUEST TRANSFORM · next_call · WRAPPER · REGISTRY · PostVerify · StopReflexion: NEXT ACTION · EVIDENCE · REPLAN · VERIFY FAILED · LOW CONFIDENCE · HOOK · PreVerify · HYPOTHESES · CONFIDENCE · NEXT_ACTION_HINT · RECORD_REFLECTION · CONTRADICTION · REPAIR · VERIFY · PostVerify · Stop · COMPLETION · CONTINUE · TIME · TOKEN BUDGET · CANCELLATIONRollouts: SESSION · ROLLOUT · EXAMPLE · SEED · REPETITION · ATTEMPT · TRAJECTORY · REWARD · OUTCOME · TRACE · RUN IDData Curation: TASK SYNTHESIS · SEED GENERATION · PROXIMITY · RANKING · META-REVIEW · ELO TOURNAMENT · PILOT · DEDUPLICATION · SURVIVOR SELECTION · FROZEN POOLData Governance: PROVENANCE · LINEAGE · SCHEMA VERSION · SOURCE DIGEST · PRIVACY REVIEW · ALLOWLIST · IMMUTABLE RELEASE · SPLIT ISOLATION · SEALED HOLDOUTEvaluation: TRAJECTORY · OUTCOME · TRACE · EVALUATION HARNESS · TASK · RUBRIC · GRADER · VERIFIER · VALIDITY · FITNESS · REPLICATION · TASK COVERAGEScaffold Search: RECOVERY · FITNESS · CANDIDATE · HYPOTHESIS · MUTATION POLICY · BASELINE · FROZEN EVALUATOR · POLICY INJECTION · SEARCH SPACE · PROMOTION GATEPromotion: SEALED HOLDOUT · PROMOTION GATE · CRUCIBLE · PAIRED TRIALS · BOOTSTRAP BOUND · FROZEN CONTRACT · TASK-PACK HASH · TRAIN · SEALED TEST · SAFETY VETO · KEEP · REJECT · INVALID
Recorded evaluation · MCPMark PostgreSQL · 2026-07-04
动手修改之前,先找到了已有的东西。
任务:为一个由五张表组成的社交服务设置行级安全。
- 调研读取了五张表、已有的四个辅助函数、五张表全部关闭的 RLS,以及策略、权限和角色。
- 执行一个事务:设置 20 条策略并开启 RLS,复用 3 个现有辅助函数,新增 3 个函数。
- 验证18 项通过,0 项失败。9 轮中的 13 次工具响应全部无错误返回。
验证器输出 18 行(原文)
- RLS enabled on users
- RLS enabled on channels
- RLS enabled on channel_moderators
- RLS enabled on posts
- RLS enabled on comments
- Users can update their own profile
- Users blocked from updating other users' profiles
- Channel owners can update their channels
- Non-owners blocked from updating channels
- Post authors can update their posts
- Channel moderators can update posts in their channels
- Unauthorized users blocked from updating posts
- Comment authors can update their comments
- Post authors can moderate comments on their posts
- Channel owners can add moderators
- Non-owners blocked from adding moderators
- Content visibility varies correctly based on user context
- Anonymous users can see 3 public user profiles (correct)
这是在已配置的评测沙箱中的一次过往运行,不是线上数据库,也不是真实的安全事件。记录中没有设置策略之前的行数,因此不予显示。 公开运行记录(meta.json,提交 23e3428)
回顾结果并加以修复(受 Reflexion 启发、在同一任务内的修复)是当前 GEODE 运行时的能力。本记录中没有出现这类修复:所有工具响应都无错误返回。 运行时文档(hook-system.md)
下一步行动由模型选择,执行边界由主机守住。
从请求进入会话,经模型调用和对每个提议的工具调用所做的权限检查,到执行、结果与记录的运行时。选择一条流程后,只高亮该路径并标出步骤编号。
下一步行动由模型选择;运行时检查工具权限,并判定工作何时完成。
外部 Scaffold Search / SIL 实验始于 May 15, 2026
从 PyPI 安装 geode-agent 包,或从公开仓库安装,在自己的终端中运行。也可以作为 MCP 服务器接入。
请求 → 模型调用
终端请求经 IPC 到达并构成会话,循环以系统提示词、对话和工具 schema 调用模型。
终端用户数据流: prompt · cli.sockCLIPoller · IPC 套接字
core/serverthin CLI 将请求发送到 serve 守护进程的 IPC 套接字(~/.geode/cli.sock)。REPL 在进程内执行同样的会话构成。
CLIPoller · IPC 套接字
core/server权限 · 构成: create_session(IPC)SharedServices.create_sessionsupervised/services.py每个连接构成一个会话。模式决定 HITL 级别、时间预算和拒绝的工具,并按所选提供商投影 BoundToolPlan。
CLIPoller · IPC 套接字
core/server权限 · 构成: 每个请求一条 laneLaneQueue · session · globalsupervised/services.py执行请求前,同时占用会话 lane 与全局 lane,以限制并发执行。
SharedServices.create_session
supervised/services.py权限 · 构成: ToolExecutor · AgenticLoopAgenticLoop · 六个阶段core/agent/loop将执行器与循环构建为一对,二者共享 hook、MCP、技能与资源锁。
LaneQueue · session · global
supervised/services.py数据流: arun(prompt)AgenticLoop · 六个阶段core/agent/loop以六个阶段执行一个用户轮次:准备输入、准备调用、调用提供商、处理工具、观测与压缩、终止。
系统提示词 · 声明的来源
core/agent/loop数据流: 系统提示词adapter.acomplete · 错误分类core/llm/adapters每个轮次依据声明的来源构建,例如选定的 GEODE.md 小节与规则。ContextAssembler 的五层 facade 只在显式调用时使用,不是默认循环的输入。
对话消息 · ConversationContext
core/agent/loop数据流: 对话消息adapter.acomplete · 错误分类core/llm/adapters对话及先前的工具结果独立于系统提示词传递。
BoundToolPlan · 不可变
core/tools/plan.py权限 · 构成: 工具 schemaadapter.acomplete · 错误分类core/llm/adapters模型只能看到绑定到本步骤的 BoundToolPlan 中的工具。它是带有代次与内容哈希的不可变快照。
AgenticLoop · 六个阶段
core/agent/loop数据流: StepSnapshot · 请求adapter.acomplete · 错误分类core/llm/adaptersStepSnapshot 固定本次调用的模型、工具和关联 ID。LLM 中间件无法替换已绑定的适配器。
adapter.acomplete · 错误分类
core/llm/adapters数据流: HTTPSLLM 提供商由各提供商的适配器发起调用。失败经分类后,或在设定上限内重试,或以终止原因结束该轮次。
adapter.acomplete · 错误分类
core/llm/adapters数据流: 响应 · tool_useAgenticLoop · 六个阶段core/agent/loop只有文本时进入终止判定;含 tool_use 时进入工具处理。
工具权限 → 效果 → 结果
tool_use 提议须通过全部检查才执行;拒绝、结果和错误都从执行器返回,成为下一次模型输入。
AgenticLoop · 六个阶段
core/agent/loop数据流: 待执行批次 · 回合保存SQLite messages · state.jsonmemory/session_checkpoint.py在配置了检查点的会话中(存在检查点与 session id 时),任何工具执行前先保存提议的批次,无法保存则不执行该批次。执行完成的批次会再次保存。不带检查点的调用方不享有这一保证。
AgenticLoop · 六个阶段
core/agent/loop数据流: tool_use 块ToolCallProcessortool_executor/processor.py模型的提议并非权限。每次调用都会得到一个 ToolContext,其中携带循环的模型与适配器身份。
ToolCallProcessor
tool_executor/processor.py数据流: aexecute范围 · 策略 · schematool_executor/executor.py依次检查会话范围、请求中间件的改写、策略和 schema。改写若降低安全等级或个人数据类别,则予以拒绝。
BoundToolPlan · 不可变
core/tools/plan.py权限 · 构成: 允许 · 安全等级范围 · 策略 · schematool_executor/executor.py可执行的 handler 与安全等级来自为该会话投影的 BoundToolPlan。
PreToolUse · PostToolUse
tool_executor/executor.py权限 · 构成: PreToolUse · PostToolUseHookRegistry · 决策core/hooks公开 hook 决定拦截、改写参数或请求权限;改写之后会再次进行范围、策略和 schema 检查。执行之后,hook 可以补充上下文或扣留结果。
审批 · HITL
tool_executor/executor.py权限 · 构成: 审批请求终端用户IPC 会话中的审批请求会转给 thin CLI。无人值守的模式默认采用拒绝策略;唯一例外是运维人员单独开启 DAEMON 的 computer use(未开启则拦截)。
tool_executor/executor.py执行前拒绝: 执行前拒绝ToolCallProcessor
tool_executor/processor.py范围、策略或 schema 拒绝,PreToolUse 拦截,或审批被拒,都不经分派,作为错误结果返回。此时本次调用的任何效果都尚未开始。
effect receipt
tool_executor/executor.py数据流: 效果登记 · 确认EffectReceiptStorememory/effect_receipts.py文件变更、外发消息、管理操作等效果在执行前登记。结果不确定时不会再次执行,而是要求核对。
资源锁 · 分派
tool_executor/executor.py数据流: handler 调用工具 handler · bash · computercore/tools锁定资源键后分派给绑定的 handler。因到达截止时间而中止的调用,可能仍在外部运行。
资源锁 · 分派
tool_executor/executor.py数据流: MCP 调用MCPServerManagercore/mcp/manager.py只调用声明了资源策略的 MCP 工具。
MCPServerManager
core/mcp/manager.py数据流: tools/callMCP 服务器服务器目录来自全局设置,以及通过信任检查的项目设置;信任检查只适用于项目条目。MCP 管理器会应用其扩展与资源策略。
工具 handler · bash · computer
core/tools数据流: 文件 · git · 进程变更文件 · git · 进程已执行的变更作为外部状态保留。检查点只恢复对话,不会撤销这些变更。
tool_executor/executor.py数据流: 结果 · 分派后错误ToolCallProcessor
tool_executor/processor.py分派之后,正常结果与错误(包括超时和结果不确定)经 PostToolUse 返回。出错或超时并不意味着外部工作已停止或已撤销。
ToolCallProcessor
tool_executor/processor.py数据流: tool_result对话消息 · ConversationContextcore/agent/loop结果、拒绝和错误都序列化为 tool_result,成为下一次模型输入中的消息。
ToolCallProcessor
tool_executor/processor.py记录 · 观测: 调用 · 结果观测SessionTimeline · append-onlyobservability/session_timeline.py将调用及其结果(正常或错误)写入 timeline,执行前被拒绝的调用也会写入。该记录属于观测,不能证明外部效果已经开始或已经成功。
记录 · 恢复 · 完成
检查点、timeline 和证据行各自分别写入。没有共享事务,检查点只恢复对话。
AgenticLoop · 六个阶段
core/agent/loop数据流: 待执行批次 · 回合保存SQLite messages · state.jsonmemory/session_checkpoint.py在配置了检查点的会话中(存在检查点与 session id 时),任何工具执行前先保存提议的批次,无法保存则不执行该批次。执行完成的批次会再次保存。不带检查点的调用方不享有这一保证。
SQLite messages · state.json
memory/session_checkpoint.py数据流: 续接还原AgenticLoop · 六个阶段core/agent/loop一条还原路径恢复消息、认知状态和守卫计数器。仅存在于进程内的 TaskGraph 不在恢复范围内。
AgenticLoop · 六个阶段
core/agent/loop记录 · 观测: 轮次记录SessionTimeline · append-onlyobservability/session_timeline.py只追加的执行历史,从不作为状态重放。
AgenticLoop · 六个阶段
core/agent/loop权限 · 构成: 完成检查verify_turn_asynccore/agent/verify.py模型的停止提议只有经过 Verify 才成为完成。
verify_turn_async
core/agent/verify.py权限 · 构成: PostVerify · StopHookRegistry · 决策core/hooks由公开 hook 的决策确定是否继续修复;修复只在设定预算内进行(默认 2 次)。
AgenticLoop · 六个阶段
core/agent/loop记录 · 观测: 证据行 · 尽力而为EvidenceLedger · JSONLagent/evidence_ledger.py经脱敏的诊断行。哈希用于关联;存在某行并不能证明效果已发生,且它不与 timeline 或检查点在同一事务中写入。
AgenticLoop · 六个阶段
core/agent/loop记录 · 观测: 认知 · 生命周期事件HookSystem · 观测core/hooks观测 hook 接收并记录事件,不决定执行。
其他入口路径
即时通讯应用以 serve 守护进程的 DAEMON 会话进入;外部 MCP 主机的 run_agent 进入单独构建的无头单次循环。
即时通讯频道数据流: 频道消息即时通讯 poller
core/serverserve 守护进程的 poller 只处理已绑定频道的消息。
即时通讯 poller
core/server权限 · 构成: create_session(DAEMON)SharedServices.create_sessionsupervised/services.py无人审批的模式:采用默认拒绝策略并设时间预算。只有 computer use 可由运维人员单独开启;未开启则保持拦截。
即时通讯 poller
core/server数据流: arun(message)AgenticLoop · 六个阶段core/agent/loop同一消息串保持一个固定的 session id,延续同一条检查点链。
外部 MCP 主机数据流: run_agent(prompt)run_agent · 单次运行
core/mcp_server.py外部 MCP 主机将 GEODE 作为工具调用。
run_agent · 单次运行
core/mcp_server.py数据流: 无头单次循环AgenticLoop · 六个阶段core/agent/loop单独构建的无头执行器与循环,绕过 SharedServices。默认拒绝列表照常生效,因此 run_bash、delegate_task、computer 等工具被移除;这里没有 DAEMON 的 computer use 例外。
所有连接以相同粗细显示。选择一个流程,即只突出显示其路径,并标出步骤编号。
- 实线 · 请求、消息与工具结果的流向
- 虚线 · 会话构成、权限或判定,并非数据路径
- 长点划线 · 记录与观测,从不作为状态重放
- 短虚线 · 执行前拒绝,无效果
- 粗黑线 · 所选流程;数字表示顺序
- 方框 · 拥有代码的边界,顶部标注源码路径
- 内层小框 · 该边界内的组件
- 虚线框 · 运行时进程之外
- 橙色轮廓 · 模型作出判断之处
- 执行循环
- 权限 · 判定
- 记录存储
- 入口 · 连接 · 执行
只画出已确认存在调用的连接。ContextAssembler 的五层 facade、TaskGraph,以及 Jev、SIL、Crucible 等研究实验不在这条运行时路径上。异步取消不会停止已经开始的同步工作,也不会撤销已经发生的效果。
支持的模型 · 按提供商
这是代码中的可选目录与出厂默认设置,并非每个模型都经过真实 API 调用的清单。已配置的回退链默认为空,精确 ID 从不会被自动升级到更新版本。
Anthropic
API
- 主模型Claude Opus 5.5
claude-opus-5-5默认设置 - 辅助Claude Sonnet 5
claude-sonnet-5默认设置 - 低成本Claude Haiku 4.5
claude-haiku-4-5-20251001默认设置
显示全部 12 个目录 ID
API
claude-fable-5-1claude-opus-5-5默认claude-opus-5claude-sonnet-5默认claude-haiku-4-5-20251001默认claude-fable-5claude-opus-4-8claude-opus-4-7claude-opus-4-6claude-opus-4-5claude-sonnet-4-6claude-sonnet-4-5-20250929
代码拒绝订阅 OAuth 路径。
- 主模型Claude Opus 5.5
OpenAI
API · Codex 订阅
- API 与 Codex 默认GPT-6 Sol
gpt-6-sol默认设置
显示全部 11 个目录 ID
API · Codex 订阅
gpt-6-astragpt-6-sol默认gpt-6-lunagpt-5.6-solgpt-5.6-terragpt-5.6-luna
仅限 API
gpt-5.5gpt-5.3-codexgpt-5.4gpt-5.4-minigpt-5.4-nano
同一提供商的两条接入路径;每个模型允许哪些路径由目录决定。
- API 与 Codex 默认GPT-6 Sol
Z.ai / GLM
PAYG
- 默认GLM-5.3
glm-5.3默认设置
显示全部 9 个目录 ID
PAYG
glm-5.3默认glm-5.3-flashglm-5.3-flashxglm-5.2glm-5.1glm-5glm-4.7glm-4.7-flashxglm-4.7-flash
代码不接受 GLM Coding Plan 路径。
- 默认GLM-5.3
OpenRouter
路由服务
- 选择器Free (smoke)
openrouter/openrouter/free路由 - 选择器Auto (variable)
openrouter/openrouter/auto路由
是路由选择,而非一个固定模型。也可以保留显式配置的 ID。
- 选择器Free (smoke)
TypeSafe / Jev
仅限判断 · 与文本生成分离
- 直连
jev-1.13.0仅用于判断 - 经 OpenRouter
typesafe/jev-1.13仅用于判断
只做判断的可选适配器,不是根文本生成模型。默认判断引擎为 llm,Jev 需要另行选择。Jev 研究本身的配置以“Jev”一章的记录为准。
- 直连
来源GEODE main 373d420公开提交 2026年10月7日 · 核对于 2026年10月8日
实验
当时记录的模型与路径,并非当前默认设置或完整的兼容清单。
GEODE 基准测试报告
July 31, 2026
- GEODEGPT-5.6 Sol
gpt-5.6-solOpenAI 订阅 · high
- GEODEGPT-5.6 Sol
Terminal-Bench 2.1 · Harbor 0.22.0 配对执行规格
August 27, 2026
- GEODE · native CodexGPT-5.6 Sol
gpt-5.6-sol订阅 · max
冻结的规格;并非每次计划中的试验都产生了有效结果。
- GEODE · native CodexGPT-5.6 Sol
SIL 归档运行 run-2606-broken-tool-use
- 目标脚手架GPT-5.5
gpt-5.5openai-codex - 审计 · 评判Claude Opus 4.8
claude-opus-4-8PAYG
记录的是分工不同的角色,而非两个可互换的默认值。
- 目标脚手架GPT-5.5