注 : 以下 kfc70/AA指的是 组织名/仓库名 也就是仓库路径。 比如本仓库链接 https://cnb.cool/kfc50/cnb-ai-api中的kfc50/cnb-ai-api
以下api需要在打开该仓库的云原生开发时,才可以使用,(也能通过API打开,我还没试过)
ls /root/.local/share/code-server/logs/
输出:
20260420T101419
20260420T101423
...
20260422T155002 ← 最新的,选这个
目录名是时间戳
{YYYYMMDD}T{HHMMSS},每次重启 code-server 生成新目录。
ls /root/.local/share/code-server/logs/20260422T155002/exthost1/ | head -20
输出:
Tencent-Cloud.coding-copilot
output_logging_20260422T155013
remoteExtHostTelemetry.log
remoteexthost.log
vscode.git
vscode.github
...
看到
Tencent-Cloud.coding-copilot目录——这就是 CodeBuddy 插件的日志目录。
ls "/root/.local/share/code-server/logs/20260422T155002/exthost1/Tencent-Cloud.coding-copilot/"
输出:
Tencent Cloud CodeBuddy.log
ls -la "/root/.local/share/code-server/logs/20260422T155002/exthost1/Tencent-Cloud.coding-copilot/"
输出:
total 1120
-rw-r--r-- 1 root root 1143494 Apr 22 17:07 'Tencent Cloud CodeBuddy.log'
1MB 日志,包含全部运行时信息。
head -15 "/root/.local/share/code-server/logs/20260422T155002/exthost1/Tencent-Cloud.coding-copilot/Tencent Cloud CodeBuddy.log"
关键输出:
[ClientProductProvider] Reading product configuration from /root/.local/share/code-server/extensions/tencent-cloud.coding-copilot-4.3.20019762-universal/product.json
[ClientProductProvider] Product configuration loaded and cached successfully
[CloudProductManager] fetch cloud product start
...
[CloudProductManager] fetch cloud product finish, result empty 0
...
[CloudProductManager] [1938853994086588416@cnb] Saving product configuration to cache (LRU): {...完整JSON...}
关键发现: 插件先读本地
product.json,然后CloudProductManager从 CNB 云端拉取配置并缓存,缓存中包含了完整的模型列表。
grep -n 'endpoint\|api\.cnb\|/v2\|/v1' '/root/.local/share/code-server/logs/20260422T155002/exthost1/Tencent-Cloud.coding-copilot/Tencent Cloud CodeBuddy.log' | tail -20
关键输出:
5452:...[CraftInvokableAgent] endpoint: https://api.cnb.cool/kfc70/AA/-/ai-ide/v2 model: {"id":"glm-5.1",...}
5583:...[BaseAgent:craft] [CustomFetch] url: https://api.cnb.cool/kfc70/AA/-/ai-ide/v2/chat/completions
5724:...[BaseAgent:craft] [CustomFetch] url: https://api.cnb.cool/kfc70/AA/-/ai-ide/v2/chat/completions
找到了! endpoint 是
https://api.cnb.cool/kfc70/AA/-/ai-ide/v2,聊天路径是/chat/completions。
grep -n 'modelId\|"id":\|loadModels\|fetchModels\|models.*\[' '/root/.local/share/code-server/logs/20260422T155002/exthost1/Tencent-Cloud.coding-copilot/Tencent Cloud CodeBuddy.log' | tail -10
关键输出:
5187:...[BaseAgent:craft] DeepSeek ModelProvider initialized, modelId: glm-5.1, modelName: GLM-5.1
5452:...[CraftInvokableAgent] endpoint: https://api.cnb.cool/kfc70/AA/-/ai-ide/v2 model: {"descriptionEn":"Great for daily use","descriptionZh":"能力均衡,适合日常使用","id":"glm-5.1","maxInputTokens":200000,"maxOutputTokens":48000,"name":"GLM-5.1","supportsReasoning":true,"vendor":"e"}
当前使用
glm-5.1,Provider 类型是 DeepSeek(Vercel AI SDK)。
ls /root/.vscode-server/extensions/ | grep coding-copilot
输出:
tencent-cloud.coding-copilot-4.3.20019762-universal
ls /root/.vscode-server/extensions/tencent-cloud.coding-copilot-4.3.20019762-universal/
输出:
LICENSE.txt package.nls.json product.internal.json
cell.yml package.nls.zh-cn.json product.json
changelog.md package.nls.zh-tw.json product.external.json ← 国际版配置
integration-mcp readme.md
l10n resources
out tsconfig.tsbuildinfo
package.json
发现了 3 个 product 配置文件:
product.json(主配置)、product.external.json(国际版/SaaS)、product.internal.json(内部版)
cat /root/.vscode-server/extensions/tencent-cloud.coding-copilot-4.3.20019762-universal/product.json
关键字段:
{
"productName": "CodeBuddy",
"productConfigEnv": ["ACC_PRODUCT_CONFIG_V3", "ACC_PRODUCT_CONFIG_V2", "ACC_PRODUCT_CONFIG"],
"endpoint": "https://copilot.tencent.com",
"stagingEndpoint": "https://staging-copilot.tencent.com",
"officialEndpoints": [
"https://copilot.tencent.com",
"https://staging-copilot.tencent.com",
"https://www.codebuddy.ai",
"https://staging-codebuddy.tencent.com"
]
}
核心发现:
productConfigEnv指定了 3 个环境变量名,CNB 环境注入了ACC_PRODUCT_CONFIG_V2,覆盖了默认的endpoint和模型列表,所以请求从copilot.tencent.com变成了api.cnb.cool。
grep 'Saving product configuration to cache' '/root/.local/share/code-server/logs/20260422T155002/exthost1/Tencent-Cloud.coding-copilot/Tencent Cloud CodeBuddy.log'
输出中的关键 JSON(精简):
{
"agents": [
{
"name": "craft",
"models": ["auto","glm-5v-turbo","glm-5.1","glm-5.0-turbo","glm-4.6","kimi-k2.6","kimi-k2.5","deepseek-v3-2-volc","hunyuan-2.0-instruct"]
},
{
"name": "ask",
"models": ["glm-5v-turbo","glm-5.1","glm-5.0-turbo","glm-4.6","kimi-k2.6","kimi-k2.5","deepseek-v3-2-volc","deepseek-r1-0528-lkeap","hunyuan-2.0-instruct"]
}
]
}
模型列表直接从
CloudProductManager的缓存 JSON 中提取。
curl -X POST "https://api.cnb.cool/kfc70/AA/-/ai-ide/v2/chat/completions" \
-H "Authorization: Bearer $CNB_TOKEN" \
-H "Content-Type: application/json" \
-d '{"model":"glm-5.1","messages":[{"role":"user","content":"你的问题"}],"stream":true}'
必须
stream: true,非流式返回错误:{"code":11101,"msg":"Non-stream chat request is currently not supported"}
craft agent 可用模型:
auto glm-5v-turbo glm-5.1 glm-5.0-turbo glm-4.6 kimi-k2.6 kimi-k2.5 deepseek-v3-2-volc hunyuan-2.0-instruct
ask agent 可用模型:
glm-5v-turbo glm-5.1 glm-5.0-turbo glm-4.6 kimi-k2.6 kimi-k2.5 deepseek-v3-2-volc deepseek-r1-0528-lkeap hunyuan-2.0-instruct