1. 为什么要在 Cline 里接一个二维码生成 Skill二维码生成这件事本身不复杂Python 里qrcode库几行代码就能出图。但真正麻烦的是把它塞进 AI 编码工具的工作流里你在 Cline 里让模型帮你生成一个下载链接的二维码模型得知道去调哪个脚本、脚本依赖装没装、生成的文件落在哪、Key 走哪条通道。这几个环节任何一个断了体验都会退化成“我自己开个终端跑脚本”。我这次要解决的就是这条链路。目标很明确在 Cline 和 CC Switch 这类工具里把二维码生成封装成一个可被模型识别的 Skill同时让所有模型请求统一走 TaoToken 的 Key 通道不再每个工具单独配一份 Key、单独记一个 base_url。做完之后的效果是你在 Cline 对话框里说“把 https://taotoken.net 生成二维码”模型自己调脚本、自己返回图片路径整个过程你只维护一份配置。适合谁看已经在用 Cline 或 CC Switch 做日常编码、手里有多个模型供应商 Key、想收敛成一条通道的开发者。如果你还没装 Python先装一个 3.9 以上的版本后面脚本要用。整篇的节奏是先把 TaoToken 通道配好再写 Skill 骨架最后跑一次真实生成验证。2. TaoToken 前置把 Key 通道统一起来TaoToken 在这里扮演的角色是“统一入口”。你原本可能在 Cline 里填一个 Key、在 CC Switch 里填另一个、写脚本时又读环境变量里的第三个时间一长自己都记不清哪个 Key 对应哪个模型。TaoToken 的做法是给你一个 API 地址和一把 Key所有工具都指向它模型路由和额度在后台统一管。先拿 Key。打开 https://taotoken.net/api-keys 登录后创建一个 API Key复制出来存好。这个 Key 后面会同时出现在 Cline 的配置、CC Switch 的配置以及 Skill 脚本读取的环境变量里。注意别把它硬编码进要提交到 Git 的脚本用环境变量或者工具自带的密钥管理。TaoToken 的 API 基地址是https://taotoken.net/api这个地址在配置里会反复用到。它的接口形态兼容 OpenAI 的 chat completions 格式所以 Cline、CC Switch 这类支持自定义 OpenAI 兼容端点的工具直接填这个 base_url 就能通。如果你用的是 Claude Code 或者 Anthropic 风格的客户端TaoToken 也提供了对应的接入方式文档在 https://taotoken.net/doc 。Cline 本身走的是 OpenAI 兼容协议所以本篇以 OpenAI 兼容配置为主。这里有个容易踩的点base_url 到底填https://taotoken.net/api还是https://taotoken.net/api/v1。不同工具对路径拼接的处理不一样Cline 的 OpenAI Compatible 模式通常需要你填到/v1这一层而有些工具会自动补。我的建议是先按工具文档填报 404 就调整路径层级下面排障章节会具体说。3. 可复制配置settings.json 与 config.toml 骨架Cline 的配置存在 VS Code 的 settings.json 里CC Switch 用的是 config.toml。两个文件我都给出可直接改的骨架你把自己的 Key 替换进去即可。3.1 Cline 的 settings.json 片段Cline 作为 VS Code 插件它的模型配置会写进用户或工作区的 settings.json。下面这段是 OpenAI Compatible 模式下的关键字段{ cline.apiProvider: openai, cline.openAiBaseUrl: https://taotoken.net/api/v1, cline.openAiApiKey: sk-你的TaoToken密钥, cline.openAiModelId: gpt-4o-mini, cline.customInstructions: 当用户要求生成二维码时调用 qrcode-gen Skill脚本路径为 ./skills/qrcode-gen/scripts/qrcode_gen.py }openAiBaseUrl指向 TaoToken 的 API 地址openAiApiKey填刚才创建的 KeyopenAiModelId按你实际要用的模型填。customInstructions这一行是给模型的行为提示让它知道有二维码 Skill 可用这样你不用每次手动提醒。如果你不想把 Key 明文写在 settings.json可以改成读环境变量。Cline 支持在配置里引用${env:TAOTOKEN_API_KEY}这种形式具体语法看你的 Cline 版本较新的版本是支持的。3.2 CC Switch 的 config.toml 骨架CC Switch 用 TOML 管理多个供应商配置把 TaoToken 作为一个 provider 加进去[[providers]] name taotoken base_url https://taotoken.net/api/v1 api_key sk-你的TaoToken密钥 model gpt-4o-mini provider_type openai [settings] default_provider taotoken这样 CC Switch 里所有走默认 provider 的请求都会经过 TaoToken。你可以在 providers 数组里继续加别的供应商做备份但日常用 default_provider 指向 taotoken 就行。3.3 Skill 目录结构Skill 本身是一个文件夹结构如下skills/ └── qrcode-gen/ ├── SKILL.md └── scripts/ └── qrcode_gen.pySKILL.md是给模型看的说明书scripts/qrcode_gen.py是实际干活的脚本。Cline 读取 Skill 的方式是扫描工作区里的 skills 目录或者你通过 customInstructions 明确告诉它路径。4. 写 SkillSKILL.md 与 qrcode_gen.py4.1 SKILL.md 骨架SKILL.md 的头部用 YAML front matter 声明 name 和 description这两个字段是模型识别 Skill 的依据必须写清楚--- name: qrcode-gen description: 将文本、网址、密码等内容转换为二维码 PNG 图片。当用户要求生成二维码、把链接转成二维码时使用此 Skill。 --- # qrcode-gen ## 依赖安装 首次使用前安装依赖 bash pip install qrcode[pil]使用方式python scripts/qrcode_gen.py 要编码的内容生成的二维码保存在脚本同级的 output 目录下文件名带随机后缀避免覆盖。description 写得越具体模型判断“什么时候该调这个 Skill”就越准。别只写“生成二维码”把触发场景也写进去。 ### 4.2 qrcode_gen.py 完整脚本 脚本要处理三件事检查依赖、生成二维码、把文件路径打印出来让模型能读到。下面是可运行的版本 python import os import sys import uuid from pathlib import Path try: import qrcode except ModuleNotFoundError: print(未找到 qrcode 库请先运行: pip install \qrcode[pil]\) sys.exit(1) def generate_qrcode(content: str) - Path: base_dir Path(__file__).resolve().parent.parent output_dir base_dir / output output_dir.mkdir(parentsTrue, exist_okTrue) filename fqrcode_{uuid.uuid4().hex[:8]}.png output_path output_dir / filename try: qr qrcode.QRCode( versionNone, error_correctionqrcode.constants.ERROR_CORRECT_H, box_size10, border4, ) qr.add_data(content) qr.make(fitTrue) qr.make_image().save(str(output_path)) print(f二维码已生成: {output_path}) except Exception as error: print(f生成二维码失败: {error}) sys.exit(1) return output_path def main() - None: if len(sys.argv) 2: print(用法: python qrcode_gen.py \要编码的内容\) sys.exit(1) generate_qrcode(sys.argv[1]) if __name__ __main__: main()几个参数说明一下。error_correctionERROR_CORRECT_H是最高纠错等级允许二维码被遮挡 30% 仍能识别适合以后想在中间加 logo 的场景。box_size10控制每个小方块像素值越大图越大。border4是四周留白扫码要求必须保留别改成 0。路径处理用Path(__file__).resolve().parent.parent是为了让脚本无论从哪个目录被调用输出都落在 Skill 文件夹下的 output 里不会污染工作区根目录。4.3 本地先跑通脚本在接进 Cline 之前先在终端验证脚本本身没问题pip install qrcode[pil] python skills/qrcode-gen/scripts/qrcode_gen.py https://taotoken.net正常输出类似二维码已生成: /your/path/skills/qrcode-gen/output/qrcode_a1b2c3d4.png用手机扫一下这个 PNG能打开对应网址就说明脚本没问题。这一步别跳过脚本本身跑不通的话接进 Cline 只会更难排查。5. 验证请求让 Cline 调 Skill 生成二维码配置和脚本都就位后打开 Cline 对话框输入帮我把 https://taotoken.net 生成二维码生成后告诉我文件路径Cline 会先判断这是不是需要调 Skill 的任务然后按 SKILL.md 里的说明执行脚本。你观察它的执行过程应该能看到类似这样的命令调用python skills/qrcode-gen/scripts/qrcode_gen.py https://taotoken.net执行完返回文件路径模型把路径贴给你。你打开那个 PNG 扫码验证能跳转到 TaoToken 官网就说明整条链路通了。这里验证的其实是两件事一是 Skill 被正确识别和调用二是这次对话的模型请求确实走了 TaoToken 通道。第二点怎么确认去 TaoToken 后台的用量页面看刚才那次对话应该产生了一条调用记录。如果后台没记录说明 Cline 还在走别的 provider回去检查 settings.json 里的 base_url 和 Key。如果你用的是 CC Switch验证方式类似在它的界面里发起一次对话然后看 TaoToken 后台有没有对应记录。6. 本篇常见错排查6.1 报 404 或 model not found最常见的原因是 base_url 路径层级不对。Cline 的 OpenAI Compatible 模式有的版本要求填https://taotoken.net/api/v1有的只填https://taotoken.net/api然后自己补/v1。如果报 404先把/v1去掉试试反过来也一样。model not found 则是模型 ID 写错了去 TaoToken 文档确认当前可用的模型名。6.2 脚本报 ModuleNotFoundError: No module named qrcode依赖没装或者装到了另一个 Python 环境。Cline 调脚本时用的 Python 解释器可能和你终端里的不是同一个。解决办法是在脚本里显式指定解释器路径或者在 Cline 的 customInstructions 里写明用哪个 Python。更稳妥的做法是用虚拟环境把依赖装在项目级的 venv 里然后让 Cline 调 venv 里的 python。6.3 中文内容生成二维码后扫码乱码qrcode库本身对中文支持没问题乱码通常出在终端编码。Windows 下执行前先chcp 65001切到 UTF-8。如果是在脚本里读参数确保sys.argv拿到的字符串编码正确。Linux 和 macOS 一般不会有这个问题。6.4 Cline 不调用 Skill直接自己写代码说明模型没意识到有 Skill 可用。检查两点SKILL.md 的 description 是否写清楚了触发场景customInstructions 里有没有告诉模型 Skill 的路径。description 太笼统比如只写“生成二维码”会导致模型判断不准把具体场景写进去比如“当用户要求把网址转成二维码时使用”。6.5 生成的图片找不到脚本里的 output 路径是相对__file__算的如果你手动改了脚本位置或者用了软链接路径可能算错。直接在脚本里打印output_path的绝对值看它到底落在哪。另外确认 output 目录有写权限。7. 把通道和 Skill 固化下来跑通一次之后建议把配置固化。Cline 的 settings.json 可以提交到工作区的.vscode目录团队里其他人拉下来改一下 Key 就能用。Skill 文件夹直接进 Git 仓库SKILL.md和脚本一起版本管理。TaoToken 的 Key 不要进 Git用环境变量或者各工具自带的密钥存储。如果你后面要接更多 Skill比如天气查询、文件转换思路是一样的SKILL.md 写清楚触发条件和调用方式脚本处理实际逻辑所有模型请求统一走 TaoToken 的 base_url。这样你的工具链里只有一份 Key、一个入口换模型或者加模型都不用改每个工具的配置。长期做编码和 Agent 任务的话可以了解一下 TaoToken 的 Coding Plan它在额度管理上对高频调用更友好地址是 https://taotoken.net/coding-plan 。日常调试和验证模型连通性用模型对话页面就够了https://taotoken.net/models 。接入文档在 https://taotoken.net/doc 配置过程中遇到路径或参数问题可以对照查。