获取 AX Code · 免费文档

本页译自英文文档。命令、标识符和示例保持原样。运行时 7.24.4 · SDK 2.6.7。 英文原文

性能配置与诊断

状态:生效

范围:当前状态

最近审阅:2026-09-13

负责人:ax-code 运行时

选择工具配置档

对于不需要基础设施操作、计划、图像生成或专门分析的编程会话, 在你的 AX Code 配置中,把已连接提供商的 toolProfile 设为 coding:

{
  "provider": {
    "your-provider-id": {
      "options": {
        "toolProfile": "coding"
      }
    }
  }
}

把 your-provider-id 替换为已连接的提供商 ID。这会保留文件检查和编辑、shell 和后台 工作、委托、笔记本、目标、技能、记忆和审阅验证。网页工具和可选工具仍然遵循 它们现有的启用和权限规则。自定义工具和 MCP 工具保留现有的准入规则,并且可能增加 请求大小。

当你需要 council/arena、操作、计划、图像生成或专门分析工具时,使用 full。云 提供商默认使用 full;AX Engine 保持其更小的 core 默认。coding 不会改变推理努力程度、 权限、快照捕获或验证要求。它对速度和任务成功的影响取决于模型和 工作负载。显式的推理控件见 模型努力程度。

把本地准备与提供商响应时间分开

为一次运行启用本地剖析:

AX_CODE_PROFILE_NATIVE=1 ax-code run --model your-provider-id/your-model "Your task"
ax-code session replay YOUR_SESSION_ID --mode export

stderr 上的退出剖析包括 session.insertReminders、session.preparePromptRequest、session.preflight、 session.resolveTools,以及快照 track/patch 区间。这些是聚合测量;嵌套或重叠的区间 不得加总成任务墙钟时间。剖析本身会增加测量开销。

已记录的 llm.response 事件会获得一个可选的 timing 对象:

字段 含义
boundary provider-adapter:在模型适配器处观察到,位于 SDK 工具结果处理之前
attempt 这次 LLM.stream 调用内的适配器尝试次数;其他字段描述这次尝试
setupMs 从进入 LLM.stream 到这次适配器分发的时间;重试时包括先前尝试和退避
firstContentMs 从分发到第一个非空文本、推理或工具输入增量,或完整工具调用
firstTextMs 从分发到第一个非空文本增量;仅工具或仅推理的响应则没有
streamMs 从分发到适配器的完成帧;没有观察到完成帧时则没有

元数据和流开始帧不算内容。时间使用单调时钟,并反映块被 观察到的时刻,包括任何流背压。它们不是原始网络计时、服务器推理计时或 TUI 渲染 计时。CLI 适配器可以包括子 CLI 自己的工作。现有的 latencyMs 保留其较旧的混合步骤计时, 并且可以包括工具执行和快照工作。新的计时字段只包含时长和尝试身份。

没有 AX_CODE_PROFILE_NATIVE=1 时,会省略额外的计时对象。剖析使用本地诊断和 现有的会话事件日志;它不会启用外部遥测导出器。

若要做有用的比较,请保持任务、仓库修订、提供商端点、确切模型、推理努力程度、工具 权限和缓存条件不变。记录首次可见响应时间,以及到达已验证结果的时间,包括 测试和修复尝试。仅有更小的请求或更快的本地快照,并不能确定云端任务完成得更快。

使用 控制框架与已验证评估 来尝试上下文恢复、MCP 发现、只读 配方,以及带独立验证的配对夹具比较。

理解请求大小

当请求出处可用时,新的 llm.request 事件(位于 ax-code session replay YOUR_SESSION_ID --mode export 中)会包含 requestBytes:

字段 含义
encoding canonical-json-utf8:现有规范指纹表示的字节长度
system 单独组装的系统消息数组
messages 完整组装的消息数组,包括系统消息
toolDefinitions 活动工具名称、描述和已解析的输入模式

system 已经表示在 messages 之内;不要把它们加在一起。数组框架已包括在内。二进制值使用现有的摘要表示,因此这些大小既不是网络载荷大小,也不是常驻内存测量。它们不是 token 计数:提供商的 token 用量和缓存计数器仍然是模型输入核算的来源。上下文包摘要覆盖的是更窄的阶段,并不是全部模型输入。遗留事件省略此字段;失败的出处会明确保持不可用。

这项诊断只记录大小以及现有的哈希/元数据。不会额外保存提示正文或凭据。它复用每个哈希所需的规范序列化,而不是对请求做分词。在决定系统指令、工具定义或不断增长的历史是否需要留意时,请在匹配的回合上比较大小。上方的编程配置档可以减少工具定义,而不改变推理努力程度;完整配置档对其所增加的能力仍然可用。

避免重复探索

对于已知文件查找或简单计数,使用聚焦搜索或一条聚合命令。对照当前工作区目录解析路径;在某个包内部启动的会话已经把该包作为搜索根。内置 grep 使用 ripgrep 的默认正则语法,没有环视或反向引用。

一条调用路径使用一个调查者。并行的只读任务应当有不同的交付物,以及各自拥有的路径或子系统,并在简报中提供现有证据。独立审阅可以为另一个验证问题重新查看证据。在多个全新上下文中重复发现会消耗模型回合,即使证据缓存命中;缓存命中不会绕过当前内容验证或权限。

语言服务器现在默认按需启动。推测性预热的选择加入,以及与首次语义查询延迟的权衡,见 内存用量。提示指引和本地测试并不能确定实时模型调用或物理内存会减少多少。