idea_world_labDEV JOURNAL
2026年5月29日星期五

2026-05-29 回顾

今天的工作

从昨天开始尝试改进延续的问题,今天找到了可以更好地进行网页搜索的 MCP 工具。

确认的工具是 bingbraveduckduckgo 浏览器搜索以 MCP 形式提供的 web-search-mcp

以后会 fork 并根据当前工作流程进行定制。

Qwen 3.6 使用感想

Qwen 3.6 模型的判断比预期更迟钝。

qwen-code 中的 .github 路径的工作流被要求直接同步推送并应用,但实际上它只想把部分文件复制到 .qwen 路径。这是核心问题。

最终只能手动克隆后,将 .github.qwen 路径调整得与原始保持一致后再继续。其实只是“把原始结构保持一致”的问题,但模型把路径和目的混在一起解释,导致不必要的折腾延长。

对 Qwen 本身的洞察

Qwen 并不是没有能力的模型,而是能力存在但可控性较弱的模型。

信息检索、代码修改、文件操作、长任务执行本身都相当出色。问题在于它保持用户意图的持续性较弱。尤其是“直接复制”“不要修改”“不要推理”“只按官方标准”“不要触碰这个路径”等限制条件,往往在工作中被忘记或自行覆盖。

也就是说 Qwen 并不是不能工作,而是会在执行过程中自行重新解释方向。

这次工作的原始问题其实很简单。

官方 .github 完整复制
.qwen 排除
推送
测试

不过,Qwen一直把这个问题扩展到其他问题。

MCP 是问题吗?  
workflow_call 是问题吗?  
需要添加 push 触发器吗?  
需要创建 .qwen/commands 吗?  
stderr JSON 是问题吗?  
empty review 是问题吗?

在解决问题之前,实际上已经把问题放大了。在基于代理的 LLM 中,这一点是致命的。任务单元越大,就越会开始解决自己产生的子问题,而不是原始请求。

即使加入网页搜索,这个问题也没有完全解决。好的流程是先查看官方文档或源码,了解结构后,再与用户请求对比,只执行必要的操作。但 Qwen 先进行推理,构建假设,然后进行搜索以验证假设,随后又把搜索结果套回自己的假设中。

因此,网页搜索更像是用于强化假设的工具,而不是基于证据的工作工具。我们发现,处理搜索结果的方式比搜索能力本身更为重要。

对失败状态的解释也很薄弱。例如,git ls-files .qwen/ 的结果为空时,应该立即得出 .qwen 并未被跟踪的结论。但它却不断重复执行 git rm -r --cached .qwen/ 等命令。虽然具备执行命令的能力,却在根据执行结果调整后续行为、解释状态以及跳出循环的能力上不稳定。

此外,Qwen 对“完全按照官方”这类保留工作也很薄弱。它在生成和修改时积极,但在保留原始内容并同步时却不断尝试改进。虽然官方文档没有说明,但它可能会认为需要创建 .qwen,或者因为没有触发器而需要手动添加,或者因为推送时不生效而需要自行执行,这些都会破坏原始结构。

因此,与其让 Qwen “完全复制官方”,不如像下面这样将任务拆分,安全性更高。

官方文件列表输出
我的文件列表输出
差异 diff 输出
仅复制用户批准的文件

给 Qwen 过大的自主权也是危险的。文件修改、git add、commit、push、workflow 修改、自动测试后再进行修改等权限,一旦判断错误,就会把这个判断推向执行。

因此,Qwen 的角色应更接近候选生成器、日志摘要器、命令结果解释辅助,而不是工作管理员或最终执行者。

Qwen = 候选生成器 / 日志摘要器 / 命令结果解释辅助  
用户或脚本 = 最终执行者

结构化输出也要小心。Qwen 并不是完全不会 JSON,但如果让它负责复杂的 schema 或 workflow 状态管理,整体的可靠性会下降。Markdown 评论编写、代码说明、日志摘要、原因候选整理、修订草案生成是可以的。相反,精确的 JSON schema 输出、复杂的 workflow 状态管理、工具调用顺序管理、GitHub API 操作、文件路径保留、commit/push 判断则不适合。

综上所述,Qwen 作为生成器还算可以,但作为编排器则不够稳定。

关键就在这一行。

Qwen 是一个聪明的生成模型,但作为可靠的任务管理者或自动化代理使用时,其可控性、状态解释和指令保留能力较弱。

实际结论如下。

Qwen可以让它思考。  
Qwen可以负责草案。  
不要让 Qwen 操作最终的仓库。

如果以后继续使用 Qwen,运营原则最好这样设定。

禁止自主操作  
一次只能执行一个命令  
在修改前输出 diff  
禁止 commit/push  
官方原始保存工作需经人工批准  
LLM 输出仅用于 Markdown/text

在网页搜索 MCP 中的感受

将网页搜索加入后,搜索性能相较于原来的网页抓取方式明显提升。寻找所需资料的速度和搜索范围都变好了,收集候选链接也更有帮助。

但也出现了对通过网页搜索获得的信息进行奇怪解释的倾向。虽然搜索能力很强,但将搜索结果判断为代码工作上下文的能力仍不稳定。

因此,我感觉将编码 LLM 与搜索 LLM 分离可能更好。把搜索交给擅长搜索的模型或工具,而把编码判断单独验证的结构会更稳妥。

反思

今天的部分埋头苦干其实是已经知道答案的简单问题。

只需要把 .github.qwen 与原始保持一致,但在模型的中间尝试中被带偏,使问题看得更复杂。以后要先确认模型给出的工作结果是否符合需求的结构,再在初期通过 diff 直接验证路径/文件层面的同步工作。

尤其需要养成先确认“是否复制了正确的内容”,再确认“原始与目标是否形成相同结构”的习惯。

工作中断问题

今天下午 2 点以后,网络中断导致 RunPod 上运行的 Qwen 服务器宕机。此后模型调用不可用,工作难以继续。

本地的工作和整理还能进行,但基于 Qwen 服务器的自动评审/搜索/验证流程高度依赖网络状态,这一点再次得到确认。

接下来的行动

  • Fork web-search-mcp,自定义所需的搜索引擎和输出格式。
  • 为了减少 Qwen 解释网页搜索结果时产生的错误,将搜索结果摘要与编码判断阶段分离。
  • .github.qwen 等目录结构同步重要的工作,首先以 diff 为基准进行验证。
  • 不要直接给 Qwen 赋予仓库操作权限,而是一次只执行单条指令并检查 diff。
  • Qwen 的输出先以 Markdown/text 草稿形式获取,JSON schema 或 GitHub API 编排交由脚本或人工处理。
  • 为 RunPod Qwen 服务器故障准备 fallback 模型或本地确认流程。