news 2026/9/29 23:28:22

Qwen 通过 cc-connect 接入个人微信:TaoToken 统一 Key 配置与 ACP 链路验证

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
Qwen 通过 cc-connect 接入个人微信:TaoToken 统一 Key 配置与 ACP 链路验证

1. 为什么要在个人微信里跑 Qwen

Qwen 通过 cc-connect 接入个人微信,本质上是把「微信聊天窗口」当成一个远程终端,让跑在电脑上的 Qwen Code 通过 ACP 协议接收消息、执行任务、再把结果发回微信。适合谁?适合手头有一台常开的 Windows 机器、想在外面用手机微信给电脑上的 Qwen 派活的人,比如让它读项目文件、跑命令、整理日志。核心链路是:微信消息 → cc-connect 平台层 → ACP 引擎 → Qwen Code → 回传微信。

这条链路里有两个容易卡住的点:一是 Node.js 运行环境和 cc-connect 的 beta 版本要求,二是 Qwen Code 的 API Key 与 ACP 启动参数。我这次把模型通道统一走 TaoToken 的 Key,好处是 Qwen Code 和后面可能接的其他工具共用一套凭证,不用每个工具单独配一遍。下面按「环境 → 配置 → 启动 → 验证 → 排障」的顺序走,配置片段可以直接复制改路径。

2. TaoToken 前置:统一 Key 与 API 通道

TaoToken 在这里的角色是给 Qwen Code 提供模型调用通道。Qwen Code 走 ACP 模式时,底层还是要请求模型接口,所以需要 base_url 和 api_key。统一用 TaoToken 的 Key,意味着你后面换模型、加工具,凭证不用来回改。

先去控制台建一个 API Key:

  • 控制台入口:https://taotoken.net/console?utm_source=taotoken_aicg_blog_end&utm_medium=csdn&utm_campaign=rewrite
  • Key 管理页:https://taotoken.net/api-keys?utm_source=taotoken_aicg_blog_end&utm_medium=csdn&utm_campaign=rewrite

建好之后你会拿到一串sk-开头的 Key。API 基础地址用https://taotoken.net/api,注意这个地址不带任何查询参数,配置里直接写死即可。如果你不确定该用哪个模型名,可以先去模型对话页试一下:

  • 模型对话:https://taotoken.net/models?utm_source=taotoken_aicg_blog_end&utm_medium=csdn&utm_campaign=rewrite

注意:API Key 只显示一次,建完立刻复制到本地配置文件或环境变量里。不要写进会提交到 git 的仓库。

Qwen Code 读取凭证的方式通常是环境变量或它自己的 settings 文件。我建议用环境变量,因为 cc-connect 启动子进程时会继承当前 shell 的环境,配置最省事。Windows 下可以在系统环境变量里加,也可以在每个项目目录的.env里写。下面配置片段里我会同时给出两种写法。

3. 可复制配置:Node.js、cc-connect 与 config.toml

3.1 Node.js 与 cc-connect 安装

Node.js 建议 v20 以上,低版本在 cc-connect 的依赖解析上会报错。装完确认:

node -v npm -v

然后全局装 cc-connect。个人微信接入目前只有 beta 版支持,所以必须带@beta:

npm install -g cc-connect@beta cc-connect --version

如果cc-connect --version报「不是内部或外部命令」,说明 npm 全局 bin 目录没进 PATH。用npm config get prefix看路径,把它加到系统 PATH 再开新终端。

3.2 生成默认配置

首次直接运行cc-connect,它会在用户目录下生成默认配置:

cc-connect

Windows 路径是C:\Users\你的用户名\.cc-connect\config.toml。这个文件是后面所有配置的核心。

3.3 config.toml 项目配置

把下面这段贴进 config.toml,按注释改掉路径和项目名:

[[projects]] name = "my-qwen" [projects.agent] type = "acp" [projects.agent.options] work_dir = "D:\\code\\my-project" command = "qwen" args = ["--acp", "--approval-mode", "yolo"] display_name = "Qwen Code" [[projects.platforms]] type = "weixin" [projects.platforms.options] token = "" base_url = "" account_id = "" allow_from = "*"

几个关键参数对照:

参数作用建议值
work_dirQwen Code 的工作目录你的项目绝对路径,Windows 用双反斜杠
command启动的 AI 命令qwen
args启动参数--acp必带,--approval-mode yolo可选
allow_from允许访问的用户调试期*,稳定后改成自己的 ID

--approval-mode yolo是自动批准所有操作,省去交互确认。但微信里没法弹确认框,所以要么开 yolo,要么在 Qwen 的 settings 里配权限白名单。我一开始没开 yolo,结果 Qwen 每次写文件都卡在等待确认,微信端只看到「正在处理」不动。后来改成白名单方式,更可控。

3.4 Qwen Code 权限配置

在项目目录下建.qwen/settings.json:

{ "permissions": { "allow": [ "Read(D:\\code\\my-project/**)", "Write(D:\\code\\my-project/**)", "Bash(*)" ], "yoloMode": false }, "telemetry": { "enabled": false }, "$version": 4 }

这里yoloMode设 false,靠 allow 列表放行读写和 Bash。Bash(*)范围很大,如果你只让它跑特定命令,把*换成具体命令前缀,比如Bash(git *)、Bash(npm *)。

3.5 模型通道指向 TaoToken

Qwen Code 的模型凭证走环境变量最稳。在启动 cc-connect 的同一个终端里设置:

set TAOTOKEN_API_KEY=sk-你的key set OPENAI_BASE_URL=https://taotoken.net/api set OPENAI_API_KEY=%TAOTOKEN_API_KEY%

如果你用的是 PowerShell:

$env:TAOTOKEN_API_KEY="sk-你的key" $env:OPENAI_BASE_URL="https://taotoken.net/api" $env:OPENAI_API_KEY=$env:TAOTOKEN_API_KEY

Qwen Code 具体读哪个变量名,以它当前版本的文档为准。有的版本读OPENAI_API_KEY+OPENAI_BASE_URL,有的读自己的QWEN_API_KEY。你可以两个都设上,避免来回试。设完在同一个终端里echo %OPENAI_BASE_URL%确认生效,再启动 cc-connect,这样子进程才能继承到。

4. 启动与验证:扫码、日志与消息收发

4.1 微信连接

cc-connect weixin setup --project my-qwen

--project后面跟 config.toml 里的项目名。运行后会弹出一个二维码,用微信小号扫。扫完显示「已建立连接」,此时 config.toml 里的token、base_url、account_id会被自动回填。你可以打开文件确认这三个字段不再是空的。

4.2 前台启动看日志

cc-connect

正常日志长这样:

level=INFO msg="cc-connect is running" projects=1 level=INFO msg="platform ready" project=my-qwen platform=weixin level=INFO msg="engine started" project=my-qwen agent=acp platforms=1

看到engine started且agent=acp,说明 ACP 链路起来了。如果卡在platform ready之后没有engine started,多半是command = "qwen"找不到,或者 qwen 启动参数不对。

4.3 发消息验证

在微信里给这个 bot 发一句:

/list

如果返回会话列表,说明消息收发通了。再发一句让它读文件:

读一下 README.md 的前 20 行

电脑端 cc-connect 日志会打印 ACP 请求和 Qwen 的响应,微信端会收到结果。两边都对上,链路就算跑通了。

4.4 后台守护

调试没问题后转后台:

cc-connect daemon install cc-connect daemon start cc-connect daemon status cc-connect daemon logs -f

daemon logs -f是排障时最常用的,实时看日志比翻文件快。

5. 本篇常见错排查

5.1 会话切换卡住

现象是 cc-connect 自动建了新会话 s2,新会话 history 为空,Qwen 触发首次运行引导,微信端没法显示交互界面,于是卡死。处理办法是停掉服务,编辑C:\Users\你的用户名\.cc-connect\sessions\下对应的会话文件,把活跃会话指回有历史的那个:

"active_session": { "weixin:dm:user@im.wechat": "s1" }

然后把空的 s2 段删掉,重启 cc-connect。预防手段是在配置里加reset_on_idle_mins = 0禁用空闲自动建会话,另外少用/switch。

5.2 qwen 命令找不到

日志报exec: "qwen": executable file not found。原因是 cc-connect 启动子进程时的 PATH 和你手动开终端不一样。解决办法是用 qwen 的绝对路径,比如command = "C:\\Users\\你\\AppData\\Roaming\\npm\\qwen.cmd"。Windows 下 npm 全局装的命令是.cmd文件,写全路径最稳。

5.3 模型请求 401

微信端收到「认证失败」或日志里出现 401,先查环境变量有没有被 cc-connect 继承。如果你是在 A 终端设的变量,却在 B 终端启动 cc-connect,子进程读不到。统一在同一个终端里设变量再启动。另外确认OPENAI_BASE_URL写的是https://taotoken.net/api,结尾不要多加/v1或斜杠,具体以接入文档为准:

  • 接入文档:https://taotoken.net/doc?utm_source=taotoken_aicg_blog_end&utm_medium=csdn&utm_campaign=rewrite

5.4 微信端无响应但日志正常

日志显示 ACP 请求已发出,但微信收不到回复。这种情况多半是 Qwen 在等权限确认。检查.qwen/settings.json的 allow 列表是否覆盖了当前操作,或者临时把--approval-mode yolo加上试一次。确认是权限问题后再改回白名单方式。

5.5 进程残留

反复重启后端口或会话文件被占用,用下面命令清理:

tasklist /v | findstr /C:"node" /C:"qwen" taskkill /F /PID <进程ID>

taskkill /IM node.exe /F会杀掉所有 node 进程,慎用,别把别的服务一起带走。

6. 长期编码与 Agent 场景的 Key 规划

如果你不只是想在微信里偶尔派个活,而是打算把 Qwen 当长期编码助手、甚至接多个 Agent 工具,那 Key 的管理方式要提前想好。我现在的做法是:TaoToken 控制台里按用途建不同的 Key,一个给 Qwen Code 走 ACP,一个给其他编码工具,互不影响,哪个泄露了单独吊销。

长期跑编码任务的话,Coding Plan 比按量更划算,适合每天都有大量请求的场景:

  • Coding Plan:https://taotoken.net/coding-plan?utm_source=taotoken_aicg_blog_end&utm_medium=csdn&utm_campaign=rewrite

如果你用的是 Claude Code 那套 Anthropic 协议的工具,接入方式略有不同,参考这个页面:

  • ClaudeCodeAnthropic:https://taotoken.net/claudecode-anthropic?utm_source=taotoken_aicg_blog_end&utm_medium=csdn&utm_campaign=rewrite

回到微信这条链路,最后提醒一个实操细节:cc-connect 的会话文件会随使用不断增长,定期清理sessions目录下的空会话,能避免前面说的切换卡死。另外allow_from = "*"只适合调试,稳定后一定改成你自己的微信 ID,否则任何扫到二维码的人都能操作你电脑上的 Qwen。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/9/29 23:27:27

vscode如何下载cmake工程(不调试)

需要先安装好stm32 cube programmer. 在.vscode文件夹中新建tasks.json&#xff0c;输入以下内容&#xff1a; {"version": "2.0.0","tasks": [{"label": "Flash STM32 (CubeProg)","type": "shell",&q…

作者头像 李华
网站建设 2026/9/29 23:24:38

AI Agent 框架探秘:拆解 OpenHands(13)--- Memory 配置与验证实战

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

作者头像 李华
网站建设 2026/9/29 23:23:56

第四章 工具

一、工具与分类 一句话理解&#xff1a; 工具是Agent与外部环境交互的能力接口&#xff0c;使模型能够获取信息、执行动作、协同工作并响应事件。 模型负责判断“做什么”&#xff0c;工具负责把决策转化为真实世界中的观察或行动。 1.1、五类工具 类型核心作用典型能力设计…

作者头像 李华
网站建设 2026/9/29 23:23:33

五项第一!浪潮数据AI存储AS13000G7领跑MLPerf® Storage v3.0 核心场景

近日&#xff0c;国际权威AI基准评测组织MLCommons公布MLPerf Storage v3.0最新测试结果。浪潮数据AI存储AS13000G7在大模型训练Checkpointing、大模型推理KVCache、高性能计算UNet3D三大场景基准测试中表现亮眼&#xff0c;参选六项核心测试&#xff0c;斩获五项第一&#xff…

作者头像 李华