Skip to content

支持的智能体

Codeg 驱动十五个编程智能体,一旦其中一个开始运行,它们的使用感受都是一样的——同一个 composer、同样的 diff、同样的 git 和终端——因为 Codeg 通过 Agent Client Protocol(ACP)与每一个通信。不同之处在底层:智能体由谁构建、它在你的机器上需要什么运行时,以及它把自己的历史保存在哪里。本页就是这张地图。

启用一个智能体、它的预检健康检查,以及开启一个会话,都在使用智能体中介绍;登录和选择模型则在认证与模型中。这里我们只专注于名单本身——以及在页面末尾,如何为它添加新成员

名单

Codeg 会为你安装、固定版本并更新其中的每一个——你从不需要手动去获取。你确实需要在机器上准备的,是每个智能体所运行的运行时:

智能体是什么运行环境
Claude CodeAnthropic 的 Claude 编程智能体Node.js
CodexOpenAI 的编程助手 CLINode.js
GeminiGoogle 官方的 Gemini CLINode.js
OpenClaw可自托管的个人 AI 助手Node.js
OpenCode一个开源编程智能体捆绑二进制文件
Cline一个自主编程智能体 CLINode.js
HermesNous Research 的自我改进智能体Node.js
CodeBuddy腾讯云的 AI 编程助手Node.js
Kimi CodeMoonshot AI 的 CLI 编程助手Node.js
Pi一个可自我扩展的编程智能体Node.js
GrokxAI 的编程智能体与 CLINode.js
CursorAnysphere 的 Cursor 编程智能体捆绑二进制文件
DeepSeek HarnessDeepSeek 自家的编程 harnessNode.js 22+
Qoder阿里巴巴的 Qoder 编程智能体 CLINode.js
Google AntigravityGoogle 的智能体优先编程工具捆绑二进制文件

最后一列背后有两条交付路径:

  • Node.js(npm)。 十五个中有十二个以 npm 包的形式交付,Codeg 用 npx 运行它们,因此它们需要安装 Node.js。Codeg 会为每一个固定一个已知可用的版本,并为你升级它。每一个都声明了自己的最低 Node 版本,预检会拿你的版本去比对——有几个要求 Node 22,DeepSeek Harness 是其中之一。
  • 捆绑二进制文件。 OpenCodeCursorGoogle Antigravity 是原生二进制文件,Codeg 会为你确切的平台下载它们——无需安装其他任何东西。Cursor 的下载体积更大,因为它自带 Node 运行时和工具,所以它同样不需要你的机器上有 Node.js。

Antigravity 没有 Intel Mac 版本

Google 只为 Apple Silicon、Linux 和 Windows 发布 Antigravity。在 Intel Mac 上,Codeg 会在一开始就以平台不受支持拒绝安装,而不是让下载走到一半再 404。名单上的其他每一个智能体,只要运行时能跑,它就能跑。

Hermes 在 0.24 改用 npm

Hermes 原本是这里唯一的 Python 条目,通过 uv 安装。上游停用了那条渠道——PyPI 停在 0.19.0——因此 Codeg 的托管安装改成了一个固定在确切版本上的 npm 包:它的安装步骤会检出官方的 Hermes 发布版,并在包内部引导出一套隔离的 Python 3.11 环境。你依然不需要管理任何 Python 环境,只是这套环境不再位于你机器上的 uv 里了。配置与凭据仍然原样留在 ~/.hermes

有两个实际影响:托管安装在下载时会遵循 HTTP_PROXY / HTTPS_PROXY;而如果你的 PATH 上已经有官方安装程序装的 Hermes,那一份依然优先——它会自我更新,所以 Codeg 让位给它,而不是用托管的那份把它盖住。

Kimi Code 是刻意停在最新版之前的

「Codeg 固定一个已知可用的版本」偶尔意味着不是最新的那一个Kimi Code 停留在 0.36.1:从 0.37 起,通过 ACP 连接递交过去的 MCP 服务器不再能启动起来——这会把 Codeg 自己的伴生服务器一起拖下水,随之倒下的还有多智能体委派以及你添加的每一个 MCP 服务器。在这里,更新反而是倒退,所以这个版本固定会一直保持到上游修复为止。

上面的顺序是设置 → 智能体中默认的智能体列表顺序。它是一种偏好设置,而非排名——拖动智能体即可重新排序,而当没有其他方式为一段对话选定智能体时,第一个已启用的智能体就成为 Codeg 的后备选择。→ 使用智能体

ACP 适配器

Codeg 与智能体之间只说一种语言:ACP。十五个里有十二个不需要为此付出什么,因为 Codeg 安装的东西运行的就是厂商自己的 CLI——Gemini、OpenClaw、OpenCode、Cline、Hermes、CodeBuddy、Kimi Code、Pi、Grok、Cursor、Qoder 和 Google Antigravity 都自带这个协议,所以你手动装过的那一份,Codeg 一般会直接认出来。这里有两条脚注:Hermes 是那个差一点的例外——自从上游不再发布到 PyPI,托管的那个包就成了一层固定版本的薄壳,它的 hermes 命令会 exec 它装下来的那个真正的上游程序,所以 hermes acp 仍然是厂商自己的适配器;而 Antigravity 则是 Codeg 根本没法从你机器上认出来的那一个——它的 ACP 服务器以一整棵下载下来的目录树的形式交付,没有独立的命令名,因此你的 PATH 上没有任何东西可供查找。

Claude Code 和 Codex 是仅有的两个例外。 Anthropic 的 claude CLI 和 OpenAI 的 codex CLI 并不会说 ACP。所以 Codeg 为这两个条目装的根本不是厂商 CLI,而是一个独立的 ACP 适配器:一个由 Agent Client Protocol 官方组织(该项目最初由 Zed 团队发起)维护的 npm 包,它把厂商的智能体包裹起来,翻译成这个协议。

Codeg 里的条目实际安装的包可执行命令上游仓库
Claude Code@agentclientprotocol/claude-agent-acpclaude-agent-acpagentclientprotocol/claude-agent-acp
Codex@agentclientprotocol/codex-acpcodex-acpagentclientprotocol/codex-acp

这张表回答的,正是本页最常见的那句困惑:"我终端里明明有 claude,Codeg 却说没装。" 这句话的两半其实都没错。Codeg 找的是 claude-agent-acp 而不是 claude,是 codex-acp 而不是 codex。它们不是同一个东西的两种叫法,而是两个不同的包、两个不同的可执行命令——有没有其中一个,说明不了另一个的情况。

0.23 起,应用会在你真正撞上这件事的地方把它讲清楚,而不再全靠本页:这两个智能体在设置 → 智能体中的名称旁带有一个 ACP adapter 徽章,其预检的第一行会解释这个区别——包括它是否找到了你自己的 CLI、在哪里找到的——并带有一个直接跳到这里的了解更多链接。

装适配器不会动你已有的 CLI。它是一个用着自己名字的独立包,不会覆盖、升级或卸载你的 claudecodex。它也并不需要它们:每个适配器都自带运行时,claude-agent-acp 依赖 @anthropic-ai/claude-agent-sdkcodex-acp 依赖 @openai/codex,安装时一并带下来。所以在一台从没装过厂商 CLI 的机器上,这两个智能体照样能跑。

适配器真正与 CLI 共用的是配置——登录状态也在其中。Claude Code 读的是 ~/.claude(用 CLAUDE_CONFIG_DIR 可以改),Codex 读的是 ~/.codex(用 CODEX_HOME 可以改):正是两个 CLI 各自使用的目录,也正是 Codeg 的设置面板所写入的那两个文件——~/.claude/settings.json~/.codex/config.toml。你在终端里登录过一次,适配器就沿用那个账号,不必再登录一遍。历史记录也遵循同样的规则,仍留在厂商自己的目录里,见下方的表格

让 Codex 适配器改用你指定的可执行文件

在 Codex 智能体的环境变量中设置 CODEX_PATHcodex-acp 就会运行你指定的那个可执行文件,而不是它自带的那一份——如果你手头留着某个特定的 codex 构建版本,这会很有用。→ 使用智能体

DeepSeek Harness 走的是第三条路

0.26 新加入的 DeepSeek Harness 不属于上面两种情况。DeepSeek 自己也发布了一个 ACP 传输层——@deepseek-ai/dsh-acp——但它是为自动化场景设计的:不支持流式输出、不呈现工具调用,而且干脆拒绝 MCP 服务器,因此通过它跑起来的会话只会给你一整块写完的文本,工作区的一切都不在。Codeg 转而驱动社区维护的 deepseek-acp 桥接,并像其他每一个托管安装那样固定在确切版本上。

它没有适配器角标,也没有「厂商 CLI 认错了」的问题需要解释,因为你的机器上根本没有一个叫 deepseek 的命令会被它混淆。多出这一跳换来的是一个完整保真的会话:流式回复、工具卡片,还有 MCP。

什么在哪里
登录该智能体自己的设置面板:API 端点API 密钥。端点留空即使用适配器的默认值 https://api.deepseek.com
模型与思考强度composer 里,而不是设置里——适配器把它们作为普通的会话选项通告出来,因此它们是按对话生效的
技能上游的技能链,包括 $DSH_HOME/skills技能
MCP 服务器通过协议本身投送 → MCP 服务器

密钥以 DEEPSEEK_API_KEY 传入,而环境变量的优先级高于凭据文件——所以如果你更愿意在终端里登录,把这个字段留空就好。启动时的默认模型仍留在老手们预期的位置,即原始环境变量编辑器里的 DEEPSEEK_ACP_MODEL,正是为了让设置面板永远不会覆盖掉你正在那边编辑的那一行模型配置。

每个智能体把会话保存在何处

早在 Codeg 出现之前,每个智能体就以自己的位置和格式存储着自己的对话历史。这正是对话聚合在导入你过往工作时所读取的内容:Codeg 会在每个智能体的原生存储中查找你在所导入文件夹里运行过的会话,并列出它找到的内容。

以下就是"每个智能体的原生存储"实际所在的位置:

智能体默认位置格式重定位变量
Claude Code~/.claude/projects/JSONLCLAUDE_CONFIG_DIR
Codex~/.codex/sessions/JSONLCODEX_HOME
Gemini~/.gemini/JSON 文件GEMINI_CLI_HOME
OpenClaw~/.openclaw/agents/JSONL
OpenCode~/.local/share/opencode/opencode.dbSQLiteXDG_DATA_HOME
Cline~/.cline/data/JSON 文件CLINE_DIR
Hermes~/.hermes/state.dbSQLiteHERMES_HOME
CodeBuddy~/.codebuddy/projects/JSONLCODEBUDDY_CONFIG_DIR
Kimi Code~/.kimi-code/sessions/JSONLKIMI_CODE_HOME
Pi~/.pi/agent/sessions/JSONLPI_CODING_AGENT_SESSION_DIR
Grok~/.grok/sessions/JSONLGROK_HOME
Cursor~/.cursor/chats/SQLite(blob 存储)CURSOR_CONFIG_DIR
DeepSeek Harness~/.dsh/sessions/压缩的 JSONLDSH_HOME
Qoder~/.qoder/projects/JSONLQODER_CONFIG_DIR
Google Antigravity~/.gemini/antigravity-acp/conversations/SQLite(每个会话一个文件)GEMINI_HOME

大多数智能体写入一份 JSONL 对话记录——一种纯文本日志,每行一个事件——而 OpenCode 和 Hermes 把一切保存在单个 SQLite 数据库中,Cursor 和 Antigravity 把每段对话存为各自的 SQLite 文件,Gemini 和 Cline 则使用它们自己的 JSON 文件。Codeg 会原生读取每一种格式;你从不需要转换任何东西。

GEMINI_HOMEGEMINI_CLI_HOME 不是同一个变量

它们在那张表里只隔着两行,含义却不同。GEMINI_CLI_HOME(Gemini CLI)指的是目录,.gemini 会被拼接到它后面;GEMINI_HOME(Antigravity)指的就是 .gemini 目录本身。把想设的那一个按另一个的规则去设,会把存储挪到两个工具都不会去找的地方。

被压缩的是 DeepSeek 那一份:它的 session.jsonl.zstd 并不是单个 Zstandard 归档,而是一批一批追加上去的一串帧,正是这一点让 harness 能一直往里写。Codeg 会按顺序解码这些帧,并保留到最后一个完整帧为止的全部内容——因此一个还在被写入的会话照样能列出、能打开,而不是读成一个损坏的文件。

移动过存储位置?Codeg 会跟随同一个变量。

用上面某个环境变量把智能体指向一个非默认位置,Codeg 也会遵从它——因此重定位后的历史仍能导入——只要 Codeg 在它自己的环境中能看到那个变量。OpenClaw 是例外:它的存储无法重定位。

自定义智能体在这张表里没有对应的行,因为它通常不会留下 Codeg 能读取的存储。对于这类智能体,Codeg 会自己写下历史——在 acp-transcripts/<registry-id>/(默认位于 ~/.codeg/)下为每个会话保存一份只追加的 JSONL 对话记录——并像读取原生存储一样把它读回来。由于它属于 Codeg 自己的数据,它跟随 CODEG_HOME(或 CODEG_DATA_DIR)迁移,而不是跟随任何智能体的变量。

智能体之间有何不同

界面是完全一样的,但有几处会因智能体而异——值得了解,以免有什么让你措手不及:

  • 模型和模式来自智能体,而非 Codeg。 模型下拉菜单和模式下拉菜单(计划优先、接受编辑等)列出的是所连接智能体通过 ACP 报告的任何内容。两个智能体会提供不同的模型和不同的模式——那是智能体在说话,而不是 Codeg 的某项设置。→ 认证与模型
  • 登录方式也不同。 有些智能体用它们自己的订阅或 OAuth 登录,另一些则接受提供商 API 密钥或自定义端点。每个智能体的详情面板只显示适用于它的选项。→ 认证与模型
  • OpenClaw 不参与 MCP。 它是唯一一个不接受 Model Context Protocol 服务器的智能体,因此你添加的 MCP 服务器不会到达 OpenClaw 会话——Codeg 不会向它转发任何一个。大多数其他智能体会正常接收你的 MCP 服务器。→ MCP 服务器

内置名单之外

上面的名单是 Codeg 手工适配的那一批——其中每个智能体都获得了针对其会话文件的解析器、自己的设置面板,以及应对其种种怪癖所需的各种小改动。正是这些工作才换来表中的一席之地。

不过,这并不是 Codeg 能驱动的边界。ACP 是一项开放标准,所以从 0.22 起,你可以注册任何其他会说这门语言的智能体:从该协议的公开注册表中挑一个,或粘贴它的 distribution JSON。Codeg 会安装它、运行同样的预检、替它记录历史,并在其余各处都把它当作内置智能体对待——选择器、状态栏、搜索和委派。→ 自定义智能体

后续步骤

  • 使用智能体——启用其中一个,运行它的预检,然后开启一个会话。
  • 自定义智能体——添加一个不在这份名单上的兼容 ACP 的智能体。
  • 认证与模型——为你所选的智能体登录并挑选一个模型。
  • 对话聚合——从上面列出的存储中导入会话。

基于 Apache-2.0 许可证发布。