跳到主要内容
AI教程

如何在 Codex 中使用 Astra-Ares 实现自适应推理

了解如何构建和配置 Astra-Ares、启动其修补版 Codex CLI,并使用 Jev 在不同生成之间调整 GPT-6 Astra 的推理力度。本教程还将介绍租约、有界评估器上下文、诊断信息、提供商行为以及该项目的实验性限制。

如何在 Codex 中使用 Astra-Ares 实现自适应推理

重要提示:Astra-Ares 是一个实验性参考实现。它运行一个独立的、经过补丁修改的 Codex CLI,主要用于实验,或供开发者将自适应推理力度引入自己的智能体系统。

Astra-Ares 的功能

Astra-Ares 为运行中的 Codex 任务中的 GPT-6 Astra 增加了自适应推理力度选择功能。它不会为整个任务指定一个固定的推理级别,而是使用名为 Jev 的评估器来选择 Astra 在下一步应采用的推理力度。

Jev 会检查受限的任务上下文,选择下一个推理力度,并决定该选择应持续 1、2、5 还是 10 次模型生成。随后,Codex 通过 Astra 的原生配置机制应用该选择,再继续执行任务。

Astra 可以更改推理力度,而不会使其缓存所使用的原始提示前缀失效。因此,Ares 会继续使用同一个模型、对话和直接的 OpenAI 连接,而不是插入 Astra 的网络路径。正常的提示缓存资格和保留规则仍然适用。

主要功能

  • 自适应推理:Jev 会为任务的下一部分选择所需的推理力度,而不是依赖一个固定设置。
  • 多代租约:一个决策可以持续 1、2、5 或 10 次生成,从而减少不必要的评估器请求。
  • 原生应用于 Codex:经过补丁修改的 CLI 会在每次生成之间应用 Astra 的设置,并确认应用成功。
  • 受限的评估器上下文:Jev 会接收任务、公开进度、推理摘要以及有限数量的近期工具结果。
  • 直接连接 Astra:Codex 仍会直接与 OpenAI 通信。Jev 使用单独配置的提供商。
  • 隔离安装:Astra-Ares 使用自己的 Codex 配置文件,不会替换现有的 codex 命令或 Codex 桌面应用程序。
  • 明确的失败处理:Ares 不会静默切换提供商、替换模型或擅自生成推理力度决策。

安装前须知

首次构建需要几分钟时间,并需要大约 10 GB 的可用空间。请安装以下前置依赖:

  • Node.js 22 或更高版本
  • npm
  • Git
  • curl
  • tar
  • 原生 C/C++ 构建工具链
  • 通过 rustup 安装的 Rust

安装过程还会安装上游 Codex 源代码所固定的 Rust 工具链。在 macOS 上,如果尚未安装 Xcode Command Line Tools,请执行:

xcode-select --install

Apple Silicon 版 macOS 已在本地完成构建和测试。Intel 版 macOS 和 Linux 存在构建路径,但尚未完成验收测试。不支持 Windows,因为此集成依赖 Unix 套接字。

步骤 1:构建并安装 Astra-Ares

克隆源代码仓库,安装其 Node.js 依赖,运行自动设置程序,并创建全局命令链接:

git clone https://github.com/miuuyy/Astra-Ares.git
cd Astra-Ares
npm ci
npm run setup
npm link

设置程序会下载固定版本的 Codex,应用随附的补丁,并自动完成构建。你无需手动编辑 Codex。

npm link 命令会在终端中提供两个命令:astra-ares 和 ares。当前预览版以源代码形式发布;目前没有已发布的 npm 软件包或预构建的 Ares 下载文件。有关更新、复用构建结果、移除安装以及不使用全局链接运行的说明,请参阅项目的安装文档。

步骤 2:配置 Jev 提供商

新安装默认使用 OpenRouter 作为 Jev 提供商。创建一个 OpenRouter API 密钥,确保其账户有可用余额,然后启动配置提示:

ares configure

在隐藏提示中粘贴密钥。Astra-Ares 会将其存储在克隆仓库之外的私有用户配置中。

Jev 凭据与用于访问 Astra 的 Codex 账户相互独立。如果经过补丁修改的 CLI 需要身份验证,请使用以下命令登录:

astra-ares login

有关其他 Jev 提供商和环境变量选项,请参阅项目的配置指南。

步骤 3:使用自适应推理启动 Codex

启动经过补丁修改的 Codex 终端:

astra-ares

打开原生的 /model 选择器,然后选择 Astra-Jev。新的 Ares 配置文件默认会选择此项。之后,你可以提交任务并使用常规的 Codex 工作流,包括工具、审批、取消和历史记录。

当 Jev 更改推理力度且 Codex 确认已应用时,记录中会显示类似以下的消息:

Jev  LOW → HIGH  ✓ APPLIED
     Step 3 · next 2 generation(s) · 321 ms

APPLIED 不仅仅是一条建议通知:它表示 Codex 已确认设置已应用于下一次生成。该通知会在原生应用完成后显示。

基本使用示例

打开特定仓库

使用 -C 在指定的项目目录中开始工作:

astra-ares -C /path/to/project

恢复上一次 Ares 会话

astra-ares resume --last

Ares 使用独立的 Codex 配置,因此此命令会从该配置恢复上一次会话,而不是恢复普通 Codex 安装中的会话。

替换 Jev 密钥

ares configure

为单个会话禁用 Jev

打开 /model,然后选择普通 Astra 或其他模型。Codex 将继续运行,但不会使用 Jev 路由。

自适应选择的工作方式

  1. Codex 在模型生成前到达符合条件的检查点。
  2. Ares 准备有限上下文,其中包含任务、公开进度和最近的工具活动。
  3. Jev 选择推理强度,以及持续 1、2、5 或 10 次生成的租约。
  4. Codex 使用 Astra 的原生配置机制应用所选设置。
  5. Astra 生成响应,并可能调用一个或多个工具。
  6. 当租约到期或某个事件使其失效时,Ares 会请求下一次决策。

一步表示一次模型生成,而不是一次工具调用。一次生成可以产生多次工具调用。可用的工具结果进入对话后,决策会在下一次生成前发生。

Jev 会结合用户目标评估接下来所需的推理。例如,读取文件并不会自动意味着应使用低强度推理,因为理解文件可能才是困难所在。

理解租约

如果 Jev 选择持续十次生成的租约,Ares 会在第 1 步请求一次决策,然后在第 11 步再次请求。第 2 步到第 10 步会复用已接受的选择,不会额外请求 Jev。

当有新的用户输入、工具失败、模型发生变化或手动更改推理强度时,租约会提前结束。随后,Jev 会在下一个符合条件的检查点接受咨询。工具失败会请求重新评估,而不会触发硬编码的升级策略。

Jev 接收的上下文

Jev 不会接收 Astra 完整且不受限制的内部上下文。其评估视图包括:

  • 原始或当前任务,以及保留的先前用户请求
  • 公开进度、计划和已发布的推理摘要
  • 最近六次工具调用及其对应结果
  • 每次工具调用最多 1,000 个本地令牌的合并结果文本,并使用明确的首尾截断
  • 受 28,000 个本地令牌上限保护的完整评估请求

私密或加密的推理会被排除。超大的评估请求会明确停止,而不会静默发送。本地分词器提供预算估算,但不一定与 Jev 的分词器完全相同。这些限制只影响 Jev 的视图;Astra 会保留其原生对话。

有限的任务上下文会发送给配置的 Jev 提供商。在使用敏感项目数据之前,请查看配置和日志记录文档。

诊断与故障排除

检查本地安装

ares doctor

此命令会在本地检查安装和配置,不会主动执行下文所述的提供商探测。

测试 Jev 提供商

ares doctor --probe

探测会发起一次小型且计费的 Jev 请求。当本地检查通过但评估决策失败时,可以使用此命令。

检查决策日志

默认情况下,运行日志存储在:

~/.local/share/astra-ares/runs/<run>/decisions.jsonl

这些记录有助于识别提供商请求失败、决策时机和已应用的设置。

正确理解 HTTP 429

HTTP 429 响应表示速率或容量被拒绝。它本身并不能证明评估上下文过大。对于瞬时 HTTP 错误,在 30 秒期限内,针对同一提供商的尝试次数不会超过三次。

如果所有尝试都失败,Ares 会明确停止当前轮次。它不会静默切换到其他提供商、选择其他模型或伪造推理强度。有关其他检查,请参阅仓库中的故障排除指南。

高级提示

平衡响应速度与评估成本

新的 Jev 决策会增加一次提供商往返请求和本地检查点处理。租约处于活动状态时,检查点会在本地处理,不会再次请求 Jev。因此,较长的租约可以降低请求频率,不过参考实现所述的持续时间由 Jev 而非用户选择。

验证集成时使用可见确认

测试自适应行为时,请查找 APPLIED 状态,不要仅凭假设认为 Jev 的建议已传递给 Astra。只有在 Codex 应用原生设置后,才会发出该确认。

牢记当前的测量限制

项目包含用于设置应用和提示前缀保留的原生固定装置测试。不过,工作负载缓存命中率以及与固定推理强度相比的节省幅度尚未测量。请将效率声明视为设计目标,并在自己的工作负载上进行验证。

运行开发测试套件

贡献者可以安装依赖并使用以下命令运行标准测试:

npm ci
npm test

原生集成固定装置还需要 Bun 和经过补丁处理的 Codex 二进制文件:

JEV_TEST_BINARY="$HOME/.local/share/astra-ares/bin/codex" npm run test:native

本地固定装置测试不需要 API 密钥。上游源代码校验和及补丁版本已固定在 patches/upstream.json 中。

结论

Astra-Ares 展示了代理如何在不同代际之间调整 GPT-6 Astra 的推理力度,同时保留现有对话、直接的 OpenAI 连接以及原始提示词前缀。其自动化设置让实验更易上手,但它仍是一个早期技术预览版,基于单独修补的 Codex CLI 构建。在将其视为日常开发工具之前,请使用其诊断功能、检查决策日志,并在自己的工作负载上验证性能。