最近在使用阿里的工具上,遇到了好多奇葩的问题。
一、钉钉 linux 版修复之路
好久以前,我在 debian 上安装了钉钉后,点击程序图标无反应,于是就弃用了,甚至都删除了手机版钉钉。
最近,因学习需要不得不在手机上安装了钉钉。今天,我再次将 linux 版钉钉安装到 debian 13.6 系统,发现还是同样的问题。钉钉的开发工程师们,难道这个问题就一直让它摆在这里,成为大家使用中的一道坎吗???
具体是什么问题?有2个。
第一个就是安装后自动生成的桌面图标所有者竟然是root,那一把❎是无法打开的。只能删除,重新添加图标到桌面。
第二个问题就是点击无反应了。我使用千问办公(阿里客服推荐的)问了半天,只提示无法加载某些 .so 库文件,一顿操作之后问题依然,永远也抓不到正确的点。于是我只能用智能体+AI模型来解决,果然还是用 AI 模型思路清晰,给我写了个 py 文件,执行了一条命令就修复了,1 分钟搞定。
二、千问办公智能化程度也不高嘛
我在阿里工单上问了关于Qoder 使用方面的问题后,客服回电解答了半天,最后推荐我用千问办公来解决,但我发现,这个千问办公似乎真的只能办公,在技术问题的解答上完全是小学生水平。我问的所有阿里工具使用方面的问题,几乎没有一个能解决的,每次都强调不一本正经的AI ,但每次都是一本正经的 AI 解答。
三、Qoder CN IDE 与 Qoder CN CLI 数据互通问题
这几天,我尝试从 claude code 转移到阿里的 Qoder 上来,于是就安装了 Qoder CN 版,使用过程中真是问题不断,伤透了脑筋啊。
Qoder CN IDE 与 Qoder CN CLI 中缓存文件都用的 ~/.qoder-cn/,因此数据基本是互通的,我用 Qoder CN CLI 安装的技能,Qoder CN IDE 都正常加载了。但也有不互通的。
1 .互通不全面
经咨询 AI 模型,及自己对比,总结出 Qoder CN IDE 和 Qoder CN CLI 两个工具的技能、插件、规则是共用的,而 MCP 则是不同的配置
2 .插件互通有bug
插件我不会在 Qoder CN CLI 中安装,于是就在 Qoder CN IDE 上来装了,结果就发现了一个互通方面的问题。我在 Qoder CN IDE 的插件市场安装了 contex7 插件后,在 Qoder CN CLI 中 /plugins reload 时提示下面的错误信息:
Manifest parse error at /home/hy/.qoder-cn/plugins/cache/qoder-marketplace/context7/1.0.0/.qoder-plugin/plugin.json: agents: Path must end with .md也就是说 Qoder CN CLI 在校验插件时,要求 agents 字段填写 Agent 文件路径,且 "Markdown 路径必须以 .md 结尾",否则就会在 /plugins reload 时予以拒绝。
# 首先查看 plugin.json 配置信息
$ cat ~/.qoder-cn/plugins/cache/qoder-marketplace/context7/1.0.0/.qoder-plugin/plugin.json
{
"name": "context7",
"version": "1.0.0",
"displayName": "Context7",
"description": "Context7 fetches up-to-date documentation and code examples for any library or framework, resolving the right library version and answering setup, API, and usage questions with current docs instead of outdated training data.",
"descriptionZh": "Context7 为任意库或框架拉取最新文档与代码示例,自动定位对应的版本,基于实时文档回答配置、API 与用法问题,而非依赖可能过时的训练数据。",
"homepage": "https://github.com/upstash/context7",
"repository": "https://github.com/upstash/context7",
"category": "Coding",
"skills": "./skills/",
"agents": "./agents",
"commands": "./commands",
"mcpServers": "./.mcp.json"
}
# 查看 agents目录下有什么
ls ~/.qoder-cn/plugins/cache/qoder-marketplace/context7/1.0.0/agents/ 2>/dev/null
docs-researcher.md于是,将 plugin.json 中的 "agents": "./agents" 修改为 "agents": "./agents/docs-researcher.md" 后,再次 /plugins reload 就正常了。
四、千问模型还是比不上 DeepSeek 啊
我用两个模型分别问了同一个问题:Qoder CN IDE 和 Qoder CN CLI 两个工具技能、插件、规则、MCP是不是共用的?下面是两个模型下的对话记录
DeepSeek V4 Pro 下的对话
> Qoder CN IDE 和 Qoder CN CLI 两个工具技能、插件、规则、MCP是不是共用的?
▪ 是的,四项基本共用。
具体来说:
┌─────────┬─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┐
│ 资源 │ 共用方式 │
├─────────┼─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┤
│ Skills │ 存储在 ~/.qoder-cn/skills/ 目录,IDE 和 CLI 读取同一份。通过 npx skills add 安装后两者都能用。 │
├─────────┼─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┤
│ Plugins │ 插件打包 skills/rules/agents/MCP,通过 marketplace 或本地安装后 IDE 和 CLI 都能加载。 │
├─────────┼─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┤
│ Rules │ 项目级 .qoder/rules/(可随 Git 共享)和用户级 ~/.qoder-cn/rules/,IDE 和 CLI 读取相同路径。 │
├─────────┼─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┤
│ MCP │ 配置统一在 ~/.qoder/settings.json 或项目级 .qoder/settings.json 中,JSON 格式完全一致。IDE 通过 UI 管理、CLI 通过 qodercli mcp add 命令,但底层读写同一个配置文件。 │
└─────────┴─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┘
简而言之:你在 IDE 里配好的 skill/rule/MCP,CLI 里自动生效,反之亦然。因为它们共享 ~/.qoder-cn/ 下的用户级配置和项目目录下的项目级配置。
> 但我的 IDE 没有读到 CLI 安装的MCP
▪ 找到原因了。IDE 和 CLI 读取的 MCP 配置文件不同:
┌───────────────────────────┬──────────┬──────────────────────────────────────────────────────────────────────┐
│ 文件 │ 用途 │ MCP 服务器 │
├───────────────────────────┼──────────┼──────────────────────────────────────────────────────────────────────┤
│ ~/.qoder-cn/settings.json │ IDE 读取 │ brave-search, context7, deepwiki, fetch, firecrawl, playwright (6个) │
├───────────────────────────┼──────────┼──────────────────────────────────────────────────────────────────────┤
│ ~/.qoder-cn/mcp.json │ CLI 写入 │ playwright, fetch (2个,且 fetch 源不同) │
└───────────────────────────┴──────────┴──────────────────────────────────────────────────────────────────────┘
CLI 的 mcp add 命令把配置写到了 mcp.json,而 IDE 只读 settings.json 里的 mcpServers 字段,两边没有自动同步。
解决方法:把 mcp.json 里的 MCP 配置合并到 settings.json 的 mcpServers 中。你想让我帮你做这个合并吗?或者告诉我你 CLI 装了哪些 IDE 里看不到的 MCP,我直接帮你加到 settings.json 里。
> 好像是反的,IDE读取的是mcp.json,而CLI 读取的是settings.json
▪ 你说得对,让我确认一下。
▪ 确认了,情况是反过来的:
┌─────┬────────────────────────────────────────┬──────────────────────────────────────────────────────────────────────┐
│ │ 读取文件 │ 可见 MCP │
├─────┼────────────────────────────────────────┼──────────────────────────────────────────────────────────────────────┤
│ IDE │ ~/.qoder-cn/mcp.json │ fetch, playwright (2个) │
├─────┼────────────────────────────────────────┼──────────────────────────────────────────────────────────────────────┤
│ CLI │ ~/.qoder-cn/settings.json → mcpServers │ brave-search, context7, deepwiki, fetch, firecrawl, playwright (6个) │
└─────┴────────────────────────────────────────┴──────────────────────────────────────────────────────────────────────┘
所以结论需要修正:Skills、Plugins、Rules 三者确实共用,但 MCP 配置不是——IDE 读 mcp.json,CLI 读 settings.json,两边不同步。
要解决的话,我可以把所有 MCP 合并到 mcp.json,让 IDE 也能看到全部 6 个。唯一的冲突是 fetch 用了不同的包源(@modelcontextprotocol/server-fetch vs @tokenizin/mcp-npx-fetch),你想保留哪个?Qwen-3.8-Max 模型下的对话
> Qoder CN IDE 和 Qoder CN CLI 两个工具技能、插件、规则、MCP是不是共用的?
▪ 不共用。根据官方文档,两者的扩展存储位置不同:
┌─────────────┬─────────────────────────────────────────────────┬──────────────────────────────────────────┐
│ 类型 │ Qoder CN IDE │ Qoder CN CLI │
├─────────────┼─────────────────────────────────────────────────┼──────────────────────────────────────────┤
│ 技能 Skills │ ~/.lingma/skills/、项目 .lingma/skills/ │ ~/.qoder-cn/skills/、项目 .qoder/skills/ │
├─────────────┼─────────────────────────────────────────────────┼──────────────────────────────────────────┤
│ 规则 Rules │ 项目 .lingma/rules/ │ ~/.qoder-cn/rules/、项目 .qoder/rules/ │
├─────────────┼─────────────────────────────────────────────────┼──────────────────────────────────────────┤
│ MCP │ IDE「个人设置 → MCP 服务」(可跨 IDE/插件共用) │ CLI 自己的配置文件(~/.qoder-cn/) │
├─────────────┼─────────────────────────────────────────────────┼──────────────────────────────────────────┤
│ 插件 │ 无对应概念(IDE 插件体系) │ ~/.qoder-cn/ 下的 CLI 插件/Marketplace │
└─────────────┴─────────────────────────────────────────────────┴──────────────────────────────────────────┘
要点:
- 目录体系不同:IDE 用 .lingma/~/.lingma,CLI 用 .qoder/~/.qoder-cn,互不读取。
- MCP 例外:IDE 侧的 MCP 在 VS Code/JetBrains/Qoder CN IDE 之间共用,但与 CLI 的 MCP 配置仍是分开的,需各自添加。
- 想让两边行为一致,需要把 Skills/规则/MCP 分别复制或用符号链接到对应目录。
> 可我没找到.lingma/这个目录啊
▪ 我来看看你机器上实际有哪些相关目录。
▪ 我实际查了你的机器,.lingma/ 不存在是正常的——那是文档里的旧命名(原灵码),而且这些目录只在你在 IDE 里添加过规则/技能后才会创建。你机器上的真实情况是:
Qoder CN IDE 实际用的位置
- 用户级 Skills:~/.qoder/skills/(目前是空的,所以之前没创建过)
- MCP:~/.config/QoderCN/SharedClientCache/mcp.json(你已配了 playwright、fetch)
- 项目级规则/技能:在项目目录下的 .qoder/ 里
▪ 我实际查了你的机器,.lingma/ 不存在是正常的——那是文档里的旧命名(原灵码),而且这些目录只在你在 IDE 里添加过规则/技能后才会创建。你机器上的真实情况是:
Qoder CN IDE 实际用的位置
- 用户级 Skills:~/.qoder/skills/(目前是空的,所以之前没创建过)
- MCP:~/.config/QoderCN/SharedClientCache/mcp.json(你已配了 playwright、fetch)
- 项目级规则/技能:在项目目录下的 .qoder/ 里
CLI 用的位置
- 全部在 ~/.qoder-cn/(skills、rules、mcp.json、plugins 都在里面)
结论修正:两者仍然不共用——MCP 是两份独立文件(IDE 在 SharedClientCache/mcp.json,CLI 在 ~/.qoder-cn/mcp.json,内容只是恰好部分重叠);Skills/Rules 也是各自目录。文档里写的 .lingma 可理解为 .qoder 的旧称。
> 结论错误,我的IDE和CLI应该是共用了技能、插件、规则的。
▪ 我来验证一下,看看 IDE 是否真的读取了 ~/.qoder-cn 下的配置。
▪ 你说得对,我找到了证据——Qoder CN IDE 的日志(~/.config/QoderCN/SharedClientCache/logs/qoder.log)显示它加载的就是 ~/.qoder-cn 下的资源:
修正结论:Qoder CN IDE 和 CLI 共用 ~/.qoder-cn 作为用户级配置目录——技能、插件、规则是同一份,项目级则共用项目下的 .qoder/。我之前引用的文档页写的 .lingma 路径已过时(那是原灵码时代的旧目录,新版 IDE 已统一改用 ~/.qoder-cn)。
唯一可能仍分开的是 MCP:IDE 侧有 ~/.config/QoderCN/SharedClientCache/mcp.json,CLI 侧是 ~/.qoder-cn/mcp.json,两份文件内容只有部分重叠,这点我无法从日志确认是否共用。
> 帮我看看 IDE 是否读的~/.qoder-cn/mcp.json,而 CLI 则是读的 ~/.qoder-cn/setting.json?
▪ 查证完毕,你的猜测基本正确,而且 CLI 实际上是两个都读:
IDE → 读 ~/.qoder-cn/mcp.json ✓
IDE 已把 MCP 配置迁移到 ~/.qoder-cn/mcp.json 作为统一存储位置。
CLI → 主要读 ~/.qoder-cn/settings.json 的 mcpServers ✓(注意是 settings.json,带 s)
官方 MCP 参考文档明确写了用户级位置是 ~/.qoder-cn/settings.json → mcpServers。
但 CLI 同时也读 mcp.json:运行 qoderclicn mcp list 的结果显示 6 个服务器,其中 playwright 只存在于 ~/.qoder-cn/mcp.json(settings.json 里没有),却也被 CLI 加载并连接。说明 CLI 会合并两个文件,同名服务器按优先级覆盖(如 fetch 以 settings.json 里的 @modelcontextprotocol/server-fetch 为准)。
所以最终效果:IDE 和 CLI 的 MCP 也是共用的,统一落在 ~/.qoder-cn/ 下。总结: Qwen-3.8-Max 就是死鸭子嘴硬,对错误的回答还要强词夺理一番,提供的日志证据也是错的。比如上面的 playwright 只存在于 ~/.qoder-cn/mcp.json(settings.json 里没有) 就是强词夺理,因为 settings.json 里明明就有 playwright 这个 MCP 😓
决定不再用 Qwen-3.8-Max 。阿里云的工程师们,需要努力了!!!