通过 SSH 远程操控 CNB 云原生开发环境中的 CodeBuddy CLI(tcb ai),实现远程指挥 AI 编程。适用于需要在 CNB 云开发环境中执行代码开发、文件操作、项目构建等任务的场景。触发词:"远程 CodeBuddy"、"CNB 云原生开发"、"tcb ai 远程"、"CodeBuddy SSH"、"云原生 AI"。
CNB CodeBuddy 远程操控
功能概述
CNB CodeBuddy 远程操控是一项面向实际任务的技能,主要用于通过 SSH + PTY 远程控制 CNB 云原生环境中的 CodeBuddy CLI,实现非交互式任务下发和结果回收;CNB 云原生环境已创建 ,可通过 SSH 访问;
核心要点
- CodeBuddy 已登录 (OAuth 中国站扫码,token 持久化);
- 本地机器 有 SSH access 和 expect 工具;
- 环境信息模板;
使用与执行
每个 CNB 云原生环境。它将相关步骤、工具调用和结果整理方式集中到统一流程中,帮助使用者更快完成目标并减少重复操作。从功能定位来看,该技能强调把分散的操作要求整理成清晰、可复用的处理流程,使用户能够围绕既定目标快速准备输入、选择执行方式并获得结构化结果。实际使用前应先确认任务范围、数据来源、运行环境、必要权限和关键参数,再依据技能说明逐步执行;
结果检查与注意事项
若输入条件不完整,应先补齐信息或采用保守配置,避免因错误假设导致结果偏离需求。执行过程中需要关注工具调用是否成功、接口或依赖是否可用、输出格式是否符合预期,并对异常提示、缺失字段和边界情况进行处理;涉及批量任务时,还应保存进度,避免中断后重复操作。该技能适合用于一次性任务,也可以接入自动化工作流,与其他技能或上层代理配合完成更完整的业务链路;在组合使用时,应明确每一步的输入输出关系,并避免不同步骤之间出现参数冲突。
CNB CodeBuddy 远程操控
通过 SSH + PTY 远程控制 CNB 云原生环境中的 CodeBuddy CLI,实现非交互式任务下发和结果回收。
前置条件
- CNB 云原生环境已创建,可通过 SSH 访问
- CodeBuddy 已登录(OAuth 中国站扫码,token 持久化)
- 本地机器有 SSH access 和 expect 工具
环境信息模板
每个 CNB 云原生环境需要记录:
SSH_HOST=<环境ID>@cnb.space WORK_DIR=/workspace WEBIDE=https://cnb-.cnb.space
工作流程
阶段一:环境准备(首次)
1. SSH 连接验证
ssh -o ConnectTimeout=10 -o ServerAliveInterval=5 -o ServerAliveCountMax=12'echo OK'
2. 检查 CodeBuddy 状态
ssh'which codebuddy; codebuddy --version' ssh 'tcb ai --config'
3. CodeBuddy 登录(如未登录)
必须走中国站 OAuth,CLI 硬编码认证目标为 codebuddy.ai,API KEY 方案不可行(cn 站 key 全部 401)。
推荐方式:用户在 WebIDE 手动登录
- 打开 WebIDE,在终端运行
tcb ai -a codebuddy - 选「Log in via Chinese Site」
- 扫描
copilot.tencent.com/login?platform=CLI&state=二维码 - 登录成功后 token 自动持久化到
~/.codebuddy/
自动登录脚本(需用户配合扫码):
expect << 'EOF'
set timeout 180
spawn tcb ai -a codebuddy
expect -re {Do you trust}
send "r"
expect -re {Enter to confirm}
send "r"
expect -re {copilot.tencent.com/login}
# 提取 URL 通知用户扫码,等待回调
expect eof
EOF
4. 信任工作目录
首次启动 CodeBuddy 会询问是否信任目录,选「Trust folder and all subdirectories」。
阶段二:远程任务下发(日常使用)
方法 A:PTY 交互(推荐,实时可控)
步骤:
- 启动 CodeBuddy(PTY 模式保持连接):
ssh -o ConnectTimeout=10 -o ServerAliveInterval=5 -o ServerAliveCountMax=12 -t'cd && tcb ai'
等待启动完成(约 15-20 秒),确认看到
GLM-5.1和? for shortcuts用
process write发送指令文本(纯文本,不含回车):
process write sessionId="" data="read README.md and summarize it"
- 用
process send-keys发送回车(必须用 hex,不能用 write 发 r):
process send-keys sessionId="" hex=["0d"]
等待 CodeBuddy 处理(状态变化:
waiting for model→streaming→mixing→ 完成)- 简单文本回复:10-20 秒
- 需要执行命令的:20-60 秒
- 看到状态栏从
streaming · ↓ N tokens恢复到 idle 表示完成
如遇工具确认提示(
Do you want to proceed?),自动选 "Yes, and don't ask again":
process send-keys sessionId="" hex=["1b","5b","42"] # Down arrow # 等待 0.3 秒 process send-keys sessionId=" " hex=["0d"] # Enter
- 读取结果:从 session log 中提取,清除 ANSI 码后即为纯文本
关键交互对照表:
| 操作 | hex 值 | 说明 |
|---|---|---|
| 回车(Enter) | ["0d"] |
提交 prompt / 确认选项 |
| 下箭头(Down) | ["1b","5b","42"] |
切换选项 |
| 上箭头(Up) | ["1b","5b","41"] |
切换选项 |
| Tab | ["09"] |
切换模式/选项 |
| Escape | ["1b"] |
取消/退出 |
状态栏含义:
| 状态 | 含义 | 等待时间 |
|---|---|---|
waiting for model |
排队/冷启动 | 5-15 秒 |
Thinking on |
模型推理中 | 5-15 秒 |
streaming · ↓ N tokens |
正在输出 | 持续 |
mixing |
整合工具调用结果 | 5-20 秒 |
swiping |
生成回复 | 5-15 秒 |
| 空闲(无状态) | 完成,可发下一条 | - |
方法 B:expect 脚本(无人值守)
使用 scripts/cb-remote.sh:
scp scripts/cb-remote.sh:/tmp/cb-remote.sh ssh 'bash /tmp/cb-remote.sh "你的指令" [超时秒数]'
方法 C:nohup 后台(长时间任务)
ssh'cd && nohup expect /tmp/cb.exp "指令" > /tmp/cb-output.txt 2>&1 &' # 稍后读取 ssh 'cat /tmp/cb-output.txt | sed "s/x1b[[0-9;]*[a-zA-Z]//g" | tail -30'
阶段三:结果回收
- PTY 模式:从 session log 提取,token 计数(↓ N tokens)表示输出量
- expect/nohup:SSH 读取输出文件
- ANSI 清理:
sed "s/x1b[[0-9;]*[a-zA-Z]//g; s/]8;;[^]]*]//g"
故障排查
| 症状 | 原因 | 解决 |
|---|---|---|
| 401 认证错误 | token 过期 | WebIDE 重新登录 |
| SSH 2分钟断连 | keepalive 不足 | 加 -o ServerAliveInterval=5 -o ServerAliveCountMax=12 |
| 回车变成文字 | write 发送 r | 用 send-keys hex ["0d"] |
| Thinking 无响应 | prompt 没真正发送 | 确认用 hex 发回车 |
| 信任目录卡住 | expect 没处理 | 脚本加 exp_continue |
| API KEY 401 | CLI 硬编码 codebuddy.ai | 必须走 OAuth |
| waiting for model 久 | 排队/冷启动 | 等 10-15 秒 |
| 多个 tcb 进程 | WebIDE 残留 | pkill -f tcb 清理 |
| 首次 prompt 自动触发 | 历史残留 | 等 idle 后再发 |
注意事项
- 一次只能一个 CodeBuddy session,多实例会冲突
- SSH 有超时,keepalive 必须 5 秒一次
- CodeBuddy 基于 ink 框架,键盘事件必须用 hex 精确控制
- 必须走中国站(codebuddy.cn/copilot.tencent.com)
- CNB AI Chat API 不可替代:只做聊天补全,不能执行 shell
- Token 持久化:OAuth 登录后 token 存在
~/.codebuddy/,重启环境不丢失
热门AI工具
相关专题
PHP中文网为您精心整理了CodeBuddy腾讯AI智能编码工具使用教程合集。本合集涵盖CodeBuddy从安装配置到智能代码补全、错误检测及自然语言生成代码等核心功能的全方位实操指南。无论您是编程新手还是资深开发者,都能通过本教程快速掌握这款高效AI编程助手,提升开发效率,轻松驾驭智能编码新时代。
152
2026.07.09
PHP中文网精选CodeBuddy接口调试方法大全,涵盖从安装配置、API Key获取到IDE与CLI实战的全流程指南。本文集汇总了多模型对接、上下文管理及企业级集成等核心技巧,帮助开发者快速掌握高效调试方案,轻松解决开发难题,提升编程效率。
72
2026.07.08
本专题从实际API接口调试场景出发,讲解Postman身份认证的完整配置流程,包括常见认证协议介绍、授权参数设置、访问令牌填写、OAuth 2.0授权及认证失败排查,帮助用户正确完成接口授权与访问验证。
0
2026.11.06
围绕Postman HTTP请求头配置展开,讲解Headers选项的具体使用方式,包括Key和Value参数填写、请求头信息添加、常见Header字段设置及请求头修改方法,帮助用户解决接口调试过程中遇到的请求头配置问题。
0
2026.11.06
详细介绍Postman接口请求的创建与发送方法,涵盖GET和POST请求、URL配置、请求参数、Headers请求头、Body请求体设置以及响应结果查看,帮助用户掌握Postman接口请求的完整操作流程。
0
2026.11.06
DBeaver数据导入专题,整理Excel、CSV、SQL、TXT等常见文件的数据导入方法,涵盖目标数据库选择、数据表创建、字段映射、数据类型设置及导入参数配置等操作,帮助用户将本地文件中的数据写入数据库,并了解批量导入、重复数据处理和导入失败等常见问题的解决方法。
0
2026.11.05
DBeaver安全防护专题,围绕数据库连接安全、账号密码保护和访问权限管理展开,整理SSL/TLS加密连接、SSH隧道、数据库凭据保存及证书验证等配置方法,同时介绍敏感信息保护、远程连接风险和高权限账号使用等注意事项,帮助用户提高数据库日常管理的安全性。
0
2026.11.05
本专题聚焦DBeaver数据库连接配置与管理,覆盖从新建连接、选择数据库类型到填写连接参数和验证连接的完整流程。针对MySQL、PostgreSQL、SQL Server等常见数据库,整理相应的连接设置方法,并提供驱动缺失、认证失败和连接异常等问题的排查方向。
0
2026.11.04
本专题围绕XORM框架的结构体映射展开,说明表名与字段的命名策略、xorm标签常用属性、主键自增与时间字段自动填充,并演示Sync2自动建表、增量字段升级、索引声明与反向生成结构体的完整流程。
0
2026.11.04
热门下载
相关下载
精品课程
最新文章