拓十年匠心定制 · 商业建站与技术教学双线并行 咨询热线:400-886-1026 service@lmnt.cn
ARTICLE DETAIL

资讯详情

深耕网站建设与运营推广的一线实战洞察。

Qwen Code v0.15 发布,auto-memory 与 /batch 新特性实测

Qwen Code v0.15 发布,auto-memory 与 /batch 新特性实测

1. 从“复读机”到“记事本”:Qwen Code v0.15 到底改了什么

如果你最近在终端里用 Qwen Code 写代码,大概率经历过这种场景:新开一个会话,刚准备让它改个接口,它先反问你“这个项目用什么语言”。你耐着性子说“Go,别生成 Python”,关掉窗口再打开,它又忘了。Qwen Code v0.15 这次更新,核心就是冲着这个“失忆”问题来的。

简单说,v0.15 给 Qwen Code 装上了三个新东西:auto-memory(自动记忆)、auto-dream(后台整理记忆)和 /batch(批量执行)。auto-memory 负责在对话过程中自动提取技术栈、代码风格、项目结构这类关键信息,存进本地记忆库;auto-dream 则在后台定期扫描、合并重复项、清理过期内容,相当于给记忆做“碎片整理”;/batch 让你用一条命令对多个文件并行处理,比如批量加注释、批量改 lint 规则。

这套组合适合谁?我觉得有三类人最值得升级:一是长期维护同一个项目、反复跟 AI 强调同一套规范的开发者;二是需要批量处理文件、不想写脚本的“懒人”;三是刚接触终端 AI 编码、环境配置容易翻车的新手,因为 v0.15 还顺带强化了 /doctor 诊断命令。

我试过在本地终端里把 auto-memory 和 /batch 串起来用,整体感受是:它不再只是一个“你问我答”的对话框,而更像一个会记笔记、会整理书桌的助手。下面我按实际验证顺序,把配置、触发条件、边界和排错一条条拆开讲。

2. 前置准备:用 TaoToken 统一 Key 接入 Qwen Code v0.15

在验证新特性之前,得先把 Qwen Code 跑起来。Qwen Code 本身是一个终端里的编码 Agent,它需要调用模型 API 才能工作。这里我用 TaoToken 作为统一的 API 通道,好处是 Key 和 Base URL 一套配置就能覆盖多个模型,不用在多个平台之间来回切换。

TaoToken 的官网是 https://taotoken.net/?utm_source=taotoken_aicg_blog_end&utm_medium=csdn&utm_campaign=rewrite&utm_content= ,API 入口是 https://taotoken.net/api 。注意 API 地址后面不加 UTM 参数,直接用它作为 Base URL 即可。

先确认你的 Node.js 版本。Qwen Code v0.15 要求 Node 18 以上,我本地是 20.x,没问题。然后全局安装:

npm install -g @qwen-code/qwen-code

安装完成后,运行qwen --version,应该能看到0.15.x。如果还是旧版本,先npm uninstall -g @qwen-code/qwen-code再重装。

接下来是鉴权配置。Qwen Code 支持通过环境变量或配置文件读取 API Key 和 Base URL。我推荐用配置文件,方便持久化。在用户目录下创建~/.qwen/settings.json,写入:

{ "apiKey": "你的_TaoToken_Key", "baseUrl": "https://taotoken.net/api", "model": "qwen3-coder-plus", "autoMemory": true, "autoDream": true }

这里三个关键字段:apiKey填你在 TaoToken 控制台创建的 Key;baseUrl固定为https://taotoken.net/api;model填你要用的模型 ID,比如qwen3-coder-plus。autoMemory和autoDream是 v0.15 新增的开关,默认是 true,显式写出来更清楚。

如果你不想改配置文件,也可以用环境变量:

export QWEN_API_KEY="你的_TaoToken_Key" export QWEN_BASE_URL="https://taotoken.net/api" export QWEN_MODEL="qwen3-coder-plus"

配置好后,运行qwen进入交互模式。第一次启动会提示你选择主题和确认配置,按回车即可。如果卡在“connecting”超过 10 秒,先别急着怀疑网络,往下看第 5 节的排错部分。

注意:TaoToken 的 Key 只显示一次,创建后立刻复制保存。如果丢了,去控制台重新生成一个,旧 Key 可以删除。

3. 可复制配置:auto-memory 触发条件与 /batch 边界设置

这一节把 auto-memory、auto-dream 和 /batch 的配置片段单独拎出来,你可以直接复制到自己的settings.json里。Qwen Code v0.15 的配置文件路径是~/.qwen/settings.json,项目级配置可以放在项目根目录的.qwen/settings.json,项目级会覆盖用户级。

先看完整的配置结构:

{ "apiKey": "你的_TaoToken_Key", "baseUrl": "https://taotoken.net/api", "model": "qwen3-coder-plus", "autoMemory": true, "autoDream": true, "memory": { "maxEntries": 200, "ttlDays": 30, "extractOn": ["techStack", "codeStyle", "projectStructure"] }, "batch": { "maxFiles": 50, "concurrency": 4, "dryRun": false } }

memory.maxEntries控制记忆库最多存多少条,超过后 auto-dream 会按时间淘汰最旧的。ttlDays是记忆的存活天数,默认 30 天,过期自动清理。extractOn指定 auto-memory 从对话里提取哪几类信息,我建议保留这三类,太多会拖慢提取速度。

batch.maxFiles是单次 /batch 最多处理多少个文件,默认 50。如果你要处理上百个文件,建议分批跑,或者调高这个值但注意内存占用。concurrency是并行数,4 在大多数笔记本上比较稳,调到 8 以上可能触发 API 限流。dryRun设为 true 时,/batch 只打印将要修改的文件列表,不实际写入,适合第一次验证。

auto-memory 的触发条件是这样的:当你在对话里明确提到技术栈(比如“这个项目用 Go 1.22”)、代码风格(比如“接口统一用 SSE 流式返回”)或项目结构(比如“handlers 目录放路由”)时,它会在后台提取并存入记忆库。不是每句话都记,只有包含这些关键词的句子才会触发。你可以在会话里输入/memory list查看当前记忆条目。

auto-dream 的触发是自动的,默认每 24 小时或每 20 次会话触发一次,具体取决于哪个先到。它会在后台扫描记忆库,合并重复项(比如“用 Go”和“项目语言是 Go”合并成一条),清理超过 ttlDays 的条目。你也可以手动触发:/memory dream。

/batch 的边界要注意:它只处理文本文件,二进制文件(图片、PDF、编译产物)会被跳过。另外,它不会跨目录递归,除非你在命令里显式指定路径。比如/batch "src/**/*.go" "在文件头部添加 // v1.2.0"会处理 src 下所有 Go 文件,但不会碰 vendor 目录。

提示:第一次用 /batch 时,先把dryRun设为 true,确认文件列表无误后再改成 false 实际执行。这个习惯能帮你避免误改。

4. 逐条验证:auto-memory 生效、/batch 执行与成功结果

配置写好后,我们逐条验证。先验证 auto-memory。打开终端,进入一个 Go 项目目录,运行qwen进入交互模式。然后输入:

这个项目用 Go 1.22,泛型别写太复杂,接口统一用 SSE 流式返回。

等它回复后,输入/memory list。你应该能看到类似这样的输出:

[1] techStack: Go 1.22 [2] codeStyle: 泛型简洁,接口用 SSE 流式返回

这说明 auto-memory 已经提取并存储了。接着退出会话(Ctrl+C 或输入/exit),重新运行qwen,新开会话。直接问它:“帮我写一个用户查询接口。”观察它的回复——如果它用了 Go 的http.HandlerFunc并且返回 SSE 流,说明记忆生效了。如果它又问你用什么语言,检查autoMemory是否为 true,以及extractOn是否包含对应类别。

再验证 auto-dream。手动触发/memory dream,然后看输出:

Dreaming... merged 2 duplicate entries, removed 1 expired entry.

如果显示 merged 0、removed 0,说明当前记忆库很干净,也正常。你可以故意存两条重复记忆(比如先说“用 Go”,再说“项目语言是 Go”),再触发 dream,应该能看到合并数变成 1。

最后验证 /batch。在项目根目录下,先跑 dryRun:

/batch "src/**/*.go" "在文件头部添加 // v1.2.0" --dry-run

输出会列出所有将被修改的文件路径,比如:

Would modify: src/main.go Would modify: src/handler/user.go Would modify: src/handler/order.go Total: 3 files

确认无误后,去掉--dry-run实际执行:

/batch "src/**/*.go" "在文件头部添加 // v1.2.0"

执行完成后,用head -1 src/main.go检查,应该看到// v1.2.0出现在第一行。如果文件本来就有头部注释,/batch 会追加而不是覆盖,这点设计得比较安全。

实测下来,3 个文件并行处理耗时约 2 秒,比逐个手动改快很多。如果你处理 50 个文件,大概 15 到 20 秒,取决于 API 响应速度。

5. 常见报错排查:401、local proxy failed 与 reading choices

这一节列几个我实际踩过的坑,以及对应的排查动作。第一个是 401 Unauthorized。报错长这样:

Error: 401 Unauthorized - invalid api key

原因通常是 Key 填错、Key 被删除,或者 Base URL 写成了带 UTM 的地址。检查~/.qwen/settings.json里的apiKey和baseUrl,确保baseUrl是https://taotoken.net/api,后面不要加任何参数。如果 Key 是从控制台复制的,注意不要带多余空格。

第二个是local proxy failed。报错:

Error: local proxy failed - connect ECONNREFUSED 127.0.0.1:7890

这说明你的终端里设置了本地代理环境变量,但代理服务没开。Qwen Code 会读取HTTP_PROXY和HTTPS_PROXY。如果你不需要代理,直接 unset:

unset HTTP_PROXY unset HTTPS_PROXY

然后重新运行qwen。如果你确实需要走代理,确保代理服务在运行,并且端口和HTTP_PROXY里写的一致。

第三个是reading choices相关报错:

Error: reading choices - unexpected end of JSON input

这通常是 API 返回了非 JSON 内容,比如 HTML 错误页。原因可能是 Base URL 写错,请求打到了错误的端点。检查baseUrl是否为https://taotoken.net/api,注意结尾不要多斜杠。另外,如果模型 ID 写错,也可能返回错误页。确认model字段是 TaoToken 支持的模型 ID,比如qwen3-coder-plus。

第四个是 OAuth 相关报错。如果你之前用过其他登录方式,可能会残留 OAuth token:

Error: OAuth token expired

Qwen Code v0.15 支持 API Key 和 OAuth 两种鉴权。如果你用 TaoToken 的 Key,确保没有同时配置 OAuth。检查~/.qwen/下是否有oauth.json,有的话删掉,只保留settings.json里的apiKey。

注意:如果你在 CI/CD 里用 Qwen Code,建议用环境变量而不是配置文件,避免把 Key 写进仓库。环境变量优先级高于配置文件。

6. 升级建议与 CTA:把重复劳动交给工具

验证完这三个特性,我的判断是:如果你长期用 Qwen Code 维护同一个项目,v0.15 值得升级。auto-memory 减少了你反复强调规范的次数,/batch 把批量文件处理变成一句话的事,auto-dream 则让记忆库不会越用越乱。三者配合,终端里的编码体验会顺很多。

升级方式很简单:

npm install -g @qwen-code/qwen-code@latest

然后检查~/.qwen/settings.json里的autoMemory和autoDream是否为 true。如果你还没配置 TaoToken 的 Key,去 https://taotoken.net/api-keys 创建一个,Base URL 用https://taotoken.net/api。接入文档在 https://taotoken.net/doc ,里面有各语言的配置示例。

如果你想先试试模型对话效果,可以打开 https://taotoken.net/models 直接体验。长期在终端里编码、跑 Agent 任务的话,Coding Plan 会更划算,入口在 https://taotoken.net/coding-plan 。

最后分享一个实用技巧:把/batch和 git 结合用。执行批量修改前先git commit一次,改完用git diff检查,确认无误再提交。这样即使 /batch 改错了,也能一键回滚。工具省下来的时间,用来想清楚“为什么改”,比“怎么改”更重要。

返回列表