Continue 评测:用 TaoToken 让 Qwen3.7 Flash 跑一个 Python CLI 重构任务
2026/9/18 12:57:22 网站建设 项目流程

🚀 告别海外账号与网络限制!稳定直连全球优质大模型,限时半价接入中。 👉 点击领取海量免费额度

1. 为什么拿 Continue 做这次 Python CLI 重构评测

Continue 是 VS Code 和 JetBrains 里都能装的 AI 编程插件,它的定位不是「一键生成整个项目」,而是把补全、对话、编辑、Agent 几种模式拆开,让开发者按需调用。这次我选它做评测,原因很直接:它支持自定义 OpenAI 兼容供应商,能填 Base URL 和模型 ID,这意味着可以用 TaoToken 作为默认供应商,把 Qwen3.7 Flash 接进来,然后在一个真实的重构任务上记录完成轮次、人工介入次数和 Token 消耗。

任务本身不复杂,但足够暴露工具的真实能力边界:把一个 Python CLI 的 argparse 解析从「一个文件里堆十几个 add_argument」重构成子命令结构,同时保留原有测试全部通过。这个任务有几个特点——它需要理解现有代码结构、需要做跨文件的编辑、需要保证重构后行为不变、还需要跑测试验证。Continue 的 Agent 模式和 Edit 模式在这种任务上表现差异很大,正好可以对比。

评测环境如下:VS Code 1.96,Continue 扩展版本以插件市场当前版本为准,Python 3.12,pytest 8.x。模型用 Qwen3.7 Flash,模型 ID 以 TaoToken 模型广场 展示为准。API Key 在同一个页面创建,Base URL 填https://taotoken.net/api。整篇文章不含任何公榜排行分数,所有数字都来自我这一次本地运行的记录,一次运行不代表公榜。

1.1 被重构的 CLI 长什么样

原始代码是一个单文件cli.py,大约 180 行,用 argparse 定义了这些参数:

# 重构前:cli.py 片段 parser = argparse.ArgumentParser(description="Task runner") parser.add_argument("--list", action="store_true", help="列出所有任务") parser.add_argument("--add", type=str, help="添加任务") parser.add_argument("--done", type=int, help="标记任务完成") parser.add_argument("--remove", type=int, help="删除任务") parser.add_argument("--priority", type=str, choices=["low", "mid", "high"]) parser.add_argument("--tag", type=str, action="append") parser.add_argument("--json", action="store_true", help="JSON 输出")

测试文件test_cli.py有 12 个用例,覆盖了 list、add、done、remove、priority、tag、json 输出这些路径。重构目标是把上面这种扁平参数改成子命令:

python cli.py list --json python cli.py add "写周报" --priority high --tag work python cli.py done 3 python cli.py remove 5

要求是:原有 12 个测试全部通过,不能改测试断言,只能改被测代码和必要的测试导入路径。

1.2 为什么用 TaoToken 做默认供应商

Continue 默认走 OpenAI 或 Anthropic 的官方端点,但模型选择受限于它内置的 provider 列表。要接 Qwen3.7 Flash,最干净的方式是走 OpenAI 兼容通道。TaoToken 在这里的角色是统一 API 基线:一把 Key、一个 Base URL,模型 ID 从广场选。Continue 的 config 里把 provider 设为openai,apiBase 填https://taotoken.net/api,apiKey 填YOUR_API_KEY,model 填广场上的 Qwen3.7 Flash ID。

这样配的好处是,后面如果想把模型换成别的 Flash 系列,只改 model 字段,Base URL 和 Key 不动。评测的可复现性也来自这里——读者拿同一把 Key、同一个 Base URL、同一个模型 ID,就能跑同一套任务。

2. Continue 接入 TaoToken 的完整配置

Continue 的配置文件在 VS Code 里是~/.continue/config.json(新版可能拆成config.yaml,以插件当前文档为准)。下面这份配置可以直接复制,把YOUR_API_KEY换成你在 TaoToken 控制台 创建的 Key。

{ "models": [ { "title": "Qwen3.7 Flash via TaoToken", "provider": "openai", "model": "以模型广场为准", "apiKey": "YOUR_API_KEY", "apiBase": "https://taotoken.net/api" } ], "tabAutocompleteModel": { "title": "Qwen3.7 Flash Autocomplete", "provider": "openai", "model": "以模型广场为准", "apiKey": "YOUR_API_KEY", "apiBase": "https://taotoken.net/api" }, "allowAnonymousTelemetry": false }

几个容易踩的点:

第一,apiBase末尾不要加/v1。Continue 的 openai provider 会自己拼/v1/chat/completions,如果你填了https://taotoken.net/api/v1,实际请求会变成/api/v1/v1/chat/completions,直接 404。这一点和很多其他工具不一样,配的时候注意。

第二,model字段必须和模型广场上的 ID 完全一致,大小写、连字符都不能差。填错的表现是 400 或 404,Continue 的报错面板里会显示model not found

第三,如果你同时用 tab 补全和对话,建议把tabAutocompleteModel单独配一份,补全用同一个 Flash 模型即可。补全请求频率高,Token 消耗要单独看。

第四,Continue 的 Agent 模式需要模型支持 function calling。Qwen3.7 Flash 在 TaoToken 通道上是支持的,但如果你在 Continue 里发现 Agent 模式不触发工具调用,先检查 config 里有没有开"contextProviders""systemMessage"覆盖了默认行为。

配好之后重启 VS Code,在 Continue 侧边栏的模型下拉里应该能看到「Qwen3.7 Flash via TaoToken」。选中它,发一条ping,能正常回复就说明通道通了。

2.1 验证通道是否真的走 TaoToken

一个简单的验证方法:在 Continue 对话框里问「你是什么模型」,Flash 的回答不一定准确,所以更可靠的方式是看 TaoToken 控制台的用量页面。发一条消息后刷新 控制台用量,如果看到对应时间点的调用记录和 Token 数,说明请求确实走了 TaoToken 通道。

这一步很重要,因为 Continue 的配置如果 provider 写错,它可能静默 fallback 到别的模型。用量页面是唯一可靠的确认方式。

2.2 重构任务清单

在开始之前,我把任务拆成 6 个可检查的步骤,每步都记录 Continue 的完成轮次和人工介入:

步骤任务内容检查标准
1读取 cli.py 和 test_cli.py,输出当前参数结构能列出全部 7 个参数及其类型
2设计子命令映射方案给出 list/add/done/remove 四个子命令的参数表
3改写 cli.py 为子命令结构文件能 import,无语法错误
4调整测试导入路径(不改断言)pytest 能收集到 12 个用例
5跑 pytest,修复失败用例12 passed
6检查 --json 和 --tag 的边界行为与原行为一致

这个清单的作用是让「完成轮次」和「人工介入次数」有明确的计数点。每完成一步算一轮,每次我手动改代码或手动跑命令算一次介入。

3. 实测过程:Qwen3.7 Flash 在 Continue 里的表现

3.1 第一步到第三步:理解与改写

第一步我直接把两个文件的内容贴进 Continue 对话框,让它输出参数结构。Flash 用了大约 8 秒返回,列出了 7 个参数,但把--tagaction="append"漏了,只写了type=str。这是一次人工介入:我手动补了一句「--tag 是 append 行为,可以多次传入」。

第二步设计子命令映射,Flash 给出的方案基本合理:list 保留--json,add 接收位置参数title--priority--tag,done 和 remove 接收位置参数id。这里没有介入。

第三步改写 cli.py,这是消耗最大的一步。Flash 在 Agent 模式下尝试直接编辑文件,但第一次编辑只改了 parser 定义部分,没有改后面的args.list判断逻辑,导致代码引用了不存在的属性。我手动指出「args.list 现在应该是 args.command == 'list'」,Flash 在第二轮修正了。这一步用了 2 轮,1 次介入。

3.2 第四步到第五步:测试与修复

第四步调整测试导入路径。原测试是from cli import main,重构后 main 函数签名没变,所以理论上不用改。但 Flash 主动建议把测试里的main(["--list"])改成main(["list"]),这是对的,因为子命令结构下参数列表变了。这一步 Flash 一次做对,0 次介入。

第五步跑 pytest。第一次跑挂了 3 个用例,都是--json相关的。原因是 Flash 在改写时把--json只加到了 list 子命令,但原测试里 add 也支持--json。我手动把--json加到 add 子命令,再跑,12 passed。这一步 2 轮,1 次介入。

3.3 第六步:边界检查

最后检查--tag的 append 行为和--json的输出格式。Flash 在这里表现不错,主动指出--tag在子命令里应该用action="append"并且default=[],避免 None 导致的迭代错误。这一步 1 轮,0 次介入。

3.4 实测记录表

下面是这次运行的完整记录。所有数字来自我这一次本地运行,环境是同一把 Key、同一个 Prompt、2025 年 1 月某次运行,一次运行不代表公榜。

步骤完成轮次人工介入次数输入 Token(估)输出 Token(估)是否完成
1 读取结构21~1200~400
2 设计映射10~800~500
3 改写 cli.py21~2500~1800
4 调整测试10~600~300
5 跑 pytest 修复21~1500~900
6 边界检查10~700~400
合计93~7300~430012 passed

Token 数是估算,因为 Continue 的用量面板显示的是请求次数,精确 Token 数要看 TaoToken 控制台的用量记录。建议读者在复现时直接以控制台数字为准,把上表的「估」换成实际值。

3.5 这次评测暴露的三个问题

第一个问题是 Agent 模式的编辑范围控制。Flash 在第三步只改了 parser 定义,没改下游的args.xxx引用,说明它在做跨段落编辑时容易「改一半」。这不是模型能力问题,而是 Continue 的 Agent 模式在文件编辑时给的上下文窗口有限,模型看不到完整文件的下游依赖。解决办法是在 Prompt 里明确说「改完后检查所有 args. 引用」。

第二个问题是测试路径的隐式依赖。原测试用main(["--list"])这种列表传参,重构后必须改成main(["list"])。Flash 主动发现了这一点,但如果测试文件更大,这种隐式依赖容易漏。建议在任务清单里单独列一步「检查所有测试的调用方式」。

第三个问题是--json的作用域。原代码里--json是全局参数,重构后 Flash 把它只放到了 list 子命令。这其实是一个设计决策——子命令结构下,全局参数和子命令参数的边界需要明确。我在介入时选择了「每个子命令各自支持 --json」,但也可以做成全局参数。这个决策点值得在评测时记录,因为它影响后续的测试改动量。

4. 可复现的 Token 消耗记录模板

上面那张表是这次运行的结果,但读者复现时数字会不同。下面给一个空白模板,按这个格式记录,方便横向对比不同模型或不同工具。

## 复现记录 - 日期: - 工具:Continue(版本:) - 模型:Qwen3.7 Flash(模型 ID:) - Base URL:https://taotoken.net/api - 任务:argparse 重构为子命令 | 步骤 | 完成轮次 | 人工介入 | 输入 Token | 输出 Token | 完成 | |------|----------|----------|------------|------------|------| | 1 读取结构 | | | | | | | 2 设计映射 | | | | | | | 3 改写主文件 | | | | | | | 4 调整测试 | | | | | | | 5 跑测试修复 | | | | | | | 6 边界检查 | | | | | | | 合计 | | | | | | - 最终测试结果:__ passed - 备注:

Token 数从 TaoToken 控制台 的用量页面读取,按请求时间对应到步骤。如果一次对话跨多个步骤,按消息条数分摊。

这个模板的价值在于:它把「完成轮次」「人工介入」「Token 消耗」三个字段固定下来,换模型或换工具时只改表头,数字直接对比。比如你想对比 Qwen3.7 Flash 和另一个 Flash 模型在同一个任务上的表现,用同一份模板跑两遍,差异一目了然。

4.1 怎么读这三个字段

完成轮次反映的是模型一次做对的概率。轮次越少,说明模型对任务的理解越完整。但轮次少不一定代表好——如果模型一次改太多导致测试挂掉,轮次少反而意味着返工成本高。

人工介入次数反映的是模型输出与预期之间的偏差。介入多说明 Prompt 需要更明确,或者模型对这类任务不熟。介入少但轮次多,说明模型在自我修正,这也是可接受的。

Token 消耗反映的是成本。输入 Token 高说明上下文长,输出 Token 高说明模型在生成大量代码。重构任务里输出 Token 通常比输入高,因为要写新代码。

三个字段要一起看。比如这次运行 9 轮 3 介入,Token 合计约 11600,属于中等水平。如果换个模型跑出 6 轮 1 介入但 Token 翻倍,那就要权衡时间成本和费用。

4.2 复现时的注意事项

第一,Prompt 要固定。我这次用的 Prompt 是分步发的,每步一条消息。如果你一次性把整个任务贴进去,轮次和 Token 会完全不同。建议按任务清单分步发,这样记录才有可比性。

第二,测试文件不要改断言。这是任务约束,改了断言就失去对比意义。如果模型建议改断言,要拒绝并让它改被测代码。

第三,Token 数从控制台读,不要用 Continue 面板的估算。Continue 面板显示的是请求次数和粗略 Token,精确值以 TaoToken 控制台为准。

第四,记录环境。Python 版本、pytest 版本、Continue 版本都会影响结果。特别是 pytest 版本,不同版本的收集行为可能不同。

5. 排障:这次配置里踩过的坑

5.1 404:apiBase 多写了 /v1

最常见的错误。Continue 的 openai provider 会自动拼/v1/chat/completions,所以 apiBase 只能填到https://taotoken.net/api。如果你填了https://taotoken.net/api/v1,实际请求路径变成/api/v1/v1/chat/completions,返回 404。改回不带/v1即可。

5.2 401:Key 没填对或没生效

401 通常是 Key 问题。检查三件事:Key 是否从 TaoToken 控制台 创建、是否复制完整、config.json 里有没有多余空格。如果 Key 没问题,检查 Continue 是否重启过——改 config 后不重启,插件可能还在用旧配置。

5.3 模型 ID 不匹配

400 或model not found通常是模型 ID 写错。Qwen3.7 Flash 的 ID 以模型广场为准,不要凭记忆写。广场上的 ID 可能带版本号或前缀,复制粘贴最稳妥。

5.4 Agent 模式不触发工具调用

如果 Continue 的 Agent 模式只聊天不编辑文件,检查 config 里有没有覆盖systemMessage。有些用户会自定义 system message,把工具调用指令覆盖掉了。删掉自定义 system message,用默认的即可。

5.5 补全和对话抢配额

如果同时开了 tab 补全和对话,补全请求会消耗大量 Token。建议在评测期间关掉 tab 补全,只留对话,这样 Token 记录更干净。补全的 Token 消耗单独测。

6. 这次评测的结论和下一步

Qwen3.7 Flash 在 Continue 里跑这个 Python CLI 重构任务,9 轮完成,3 次人工介入,12 个测试全过。这个结果说明 Flash 级别的模型在结构化重构任务上是可用的,但需要把任务拆细,并且在 Prompt 里明确检查点。Continue 的 Agent 模式在跨段落编辑时容易「改一半」,这是工具层面的限制,不是模型问题。

如果你要复现这个评测,建议按第 4 节的模板记录,把 Token 数从控制台读出来填进去。跑完之后可以打开 模型对话 确认 Qwen3.7 Flash 的模型 ID 和广场一致,长期做这类重构可以看 Coding Plan。Key 在 控制台 创建,Claude Code 或 CC Switch 的接入方式对照 接入文档。

下一步我打算用同一套任务清单和记录模板,换一个模型跑一遍,对比完成轮次和 Token 消耗。如果你也跑了,欢迎把记录表贴出来对照。

🚀 告别海外账号与网络限制!稳定直连全球优质大模型,限时半价接入中。 👉 点击领取海量免费额度

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询