如何调用codebuddy或者其他ai编辑软件的api流量 给 atomcode 等用
:CodeBuddy 原生 API 不是 OpenAI 格式,需要先通过桥接服务转成 OpenAI 兼容接口,AtomCode 等工具才能接入。
最成熟的方案是用CodeBuddy2api做中转。
一、部署 CodeBuddy2api(桥接服务)
CodeBuddy2api 是一个开源项目,能把 CodeBuddy 官方 API 包装成标准的 OpenAI API 格式。
1. 克隆并安装
gitclone https://github.com/Sliverkiss/CodeBuddy2api.gitcdCodeBuddy2api python3-mvenv venvsourcevenv/bin/activate# Windows 用 venv\Scripts\activatepipinstall-rrequirements.txt2. 配置环境变量
cat > .env << ‘EOF’
CODEBUDDY_PASSWORD=your_secret_password
CODEBUDDY_AUTH_MODE=api_key
CODEBUDDY_API_KEY=your_codebuddy_api_key
CODEBUDDY_INTERNET_ENVIRONMENT=internal
CODEBUDDY_HOST=0.0.0.0
CODEBUDDY_PORT=8001
EOF.env关键字段(国内版 CodeBuddy 推荐这样配):
# 访问此 API 服务的密码(AtomCode 连接时用的 API Key) CODEBUDDY_PASSWORD=your_secret_password # 认证模式:直接用 CodeBuddy API Key CODEBUDDY_AUTH_MODE=api_key # 你的 CodeBuddy API Key CODEBUDDY_API_KEY=your_codebuddy_api_key # 国内环境必填 CODEBUDDY_INTERNET_ENVIRONMENT=internal # 服务监听地址 CODEBUDDY_HOST=127.0.0.1 CODEBUDDY_PORT=8001
CODEBUDDY_INTERNET_ENVIRONMENT=internal表示走腾讯内网/国内节点,自动指向https://copilot.tencent.com。
3. 启动服务
python web.py服务启动后,OpenAI 兼容端点为:
http://127.0.0.1:8001/codebuddy/v1二、AtomCode 接入配置
AtomCode 原生支持任意 OpenAI 兼容 API,只需改~/.atomcode/config.toml。
配置文件示例
default_provider = "codebuddy" [providers.codebuddy] type = "openai" api_key = "your_secret_password" # 即 CODEBUDDY_PASSWORD model = "auto-chat" # CodeBuddy 默认模型 base_url = "http://127.0.0.1:8001/codebuddy/v1" context_window = 64000验证连通
启动 AtomCode 后,直接对话测试:
atomcode--providercodebuddy-p"你好,测试连接"或在 TUI 内用/provider切换后聊天。
三、其他工具同样适用
任何支持自定义base_url+api_key的 OpenAI 兼容客户端,都可以指向http://127.0.0.1:8001/codebuddy/v1,例如:
| 工具 | 配置位置 |
|---|---|
| OpenCode | ~/.config/opencode/opencode.json里改baseURL |
| Cursor | Settings → Models → OpenAI API → Override URL |
| Claude Code | 通过 MCP 或环境变量指向兼容端点 |
| VS Code Copilot / Cline | 自定义 OpenAI 兼容 endpoint |
四、常见问题
| 问题 | 排查方向 |
|---|---|
401 Invalid password | AtomCode 的api_key必须等于CODEBUDDY_PASSWORD |
403/401来自 CodeBuddy | CODEBUDDY_API_KEY过期或无效,去官网重新获取 |
| 找不到凭证 | 确保.env里CODEBUDDY_AUTH_MODE=api_key,且CODEBUDDY_API_KEY已填 |
| 网络不通 | 检查CODEBUDDY_INTERNET_ENVIRONMENT是否为internal(国内) |
五、替代方案(如果你已有 proxy-mcp)
你之前关注过proxy-mcp(OpenClaw Proxy),它的定位是聚合多模型免费算力并转为 OpenAI 兼容接口。如果 proxy-mcp 已经支持或后续支持 CodeBuddy 作为上游源,你可以直接把 AtomCode 的base_url指向 proxy-mcp 的地址,省去单独部署 CodeBuddy2api 这一步。不过目前看来,CodeBuddy2api 是最直接、文档最完整的桥接方案。
方法二
对,如果没有 API Key,确实需要先登录获取认证凭证。CodeBuddy 的认证不是简单的静态 Key,而是基于 OAuth 登录后的 Bearer Token。
三种获取凭证的方式
| 方式 | 适用场景 | 操作 |
|---|---|---|
API Key(cb-sk-xxx) | 有官方 API Key | 直接填.env的CODEBUDDY_API_KEY |
| CLI 登录 | 个人用户,无 API Key | codebuddy命令扫码登录,token 自动存本地 |
| Web UI 自动认证 | 不想装 CLI | 启动 CodeBuddy2api 后,浏览器里点「开始认证」 |
方案一:用 CodeBuddy CLI 登录(推荐,最省事)
1. 安装 CLI
npminstall-g@tencent-ai/codebuddy-code2. 执行登录
codebuddy首次运行会弹出选择界面:
Select login method: › Log in via Chinese Site ← 国内用户选这个(微信扫码) Log in via International Site ← 海外用户 Log in via Enterprise Domain ← 企业版 Log in via iOA ← 腾讯内部选Chinese Site,浏览器会打开微信扫码页面,扫码完成即登录成功。
3. CLI 登录后 token 存哪
登录成功后,CLI 会把凭证存到本地(通常是~/.codebuddy/或类似路径)。此时你有两个选择:
A) 让 CodeBuddy2api 自动读取 CLI 凭证
有个更简单的项目codebuddy2openai专门做这个——它直接读取本机 CLI 登录后的 token,自动刷新,无需手动配置。
gitclone https://github.com/HanHan666666/codebuddy2openai.gitcdcodebuddy2openai pipinstallfastapi"uvicorn[standard]"httpx# 此时不再有root警告,再安装依赖# pip install fastapi httpx loguru matplotlib msguard numpy openpyxl opentelemetry-exporter-otlp-proto-grpc==1.33.1 opentelemetry-exporter-otlp-proto-http==1.33.1 packaging pandas~=2.2 cannsim==0.1.0 psutil pyyaml scipy tzdata uvicornpython converter.py默认跑在127.0.0.1:8787,AtomCode 配base_url = "http://127.0.0.1:8787/v1"即可。
AtomCode 调用 codebuddy2openai
当前服务已经启动:
✅ 本地地址:
http://127.0.0.1:8787
提供兼容 OpenAI 的接口:
/v1/models/v1/chat/completions
⚠️注意:
127.0.0.1仅容器内部可访问。
- 如果你在容器内运行 converter.py,宿主机不能直接访问,需要改成监听
0.0.0.0:8787
第一步:修改 converter.py 监听地址
找到启动 uvicorn 那一行,把127.0.0.1→0.0.0.0
# 修改前uvicorn.run(app,host="127.0.0.1",port=8787)# 修改后uvicorn.run(app,host="0.0.0.0",port=8787)重启python converter.py。
容器启动时记得暴露端口:-p 8787:8787
AtomCode(VSCode 插件)配置
打开 AtomCode 设置 → OpenAI‑兼容模型(自定义 OpenAI endpoint)
配置项
- API Endpoint
http://宿主机IP:8787/v1如果是容器内IDE访问,写
http://127.0.0.1:8787/v1
- API Key
随便填字符串,例如dummy(codebuddy2openai 不校验这个key)
dummy- Model 名称
调用/v1/models获取可用模型,填入返回的模型ID,示例:
codebuddyAtomCode 多 Provider 配置(json)
{"atomcode.llm.providers":[{"id":"codebuddy-proxy","type":"openai","apiBase":"http://127.0.0.1:8787/v1","apiKey":"dummy","model":"codebuddy"}],"atomcode.llm.default.providerId":"codebuddy-proxy"}保存配置,切换模型为codebuddy-proxy,即可走 codebuddy token。
排错清单
- 连接失败 Connection refused
- converter.py 必须监听
0.0.0.0,不能是127.0.0.1 - docker run 需要
-p 8787:8787端口映射 - 防火墙放行8787端口
token状态正常,代理层不需要填真实key,随便填dummy。
- Function‑call / tool_calls 异常
你的启动日志标注:原生 function calling,该版本已经原生支持tools,AtomCode的Agent/工具调用可直接启用。
快速自测代理接口是否通(curl)
curlhttp://127.0.0.1:8787/v1/models能返回模型列表代表代理正常。
curl-XPOST http://127.0.0.1:8787/v1/chat/completions\-H"Authorization: Bearer dummy"\-H"Content-Type: application/json"\-d'{ "model":"codebuddy", "messages":[{"role":"user","content":"hello"}] }'修改配置文件 提示词、
atomcode 配置文件 ~/.atomcode/config.toml 增加 提供者 codebuddy 模型 glm-5.2 glm-5.3 http://127.0.0.1:8787/v1/