运行时、终端与上传排障
用安全模式定位定制故障,检查退出码、终端交互与反向代理上传限制。
This page has not been translated into English yet. The original Chinese version is shown below.
先用最小复现区分 CLI、定制组件与运行环境的问题,再逐项恢复配置。
用安全模式隔离定制
qwen --safe-mode安全模式停用上下文文件、Hooks、扩展、Skills、环境中的 MCP 配置、自定义 subagent、权限规则、设置中的审批覆盖、记忆和跨会话消息等。内置 subagent 仍加载,显式 --yolo 与 --approval-mode 仍生效。
显式传入本次调用的 --mcp-config 或 ACP session/new mcpServers 仍被接受,不能把安全模式理解为无条件禁止所有 MCP。Linux 操作者 executionSandbox 策略也仍保留;排障页笼统的“禁用沙箱设置”不覆盖专章的强制隔离说明。
QWEN_CODE_SAFE_MODE=true 可替代标志,但导出的变量会被子进程继承。由该 shell 启动的 daemon 或编辑器会让所有会话进入安全模式:不写会话记录,其他会话也不能列出或发消息给它们。排障后应为正常 daemon 取消该变量。
安装与 CI 检测
找不到 qwen 时检查 PATH、新终端与对应安装方式,见安装。MODULE_NOT_FOUND 在源码开发环境中可能表示依赖或构建不完整,不能把源码 npm install/build 当作所有独立安装的通用修复。
CLI 不显示交互提示时检查 CI、CONTINUOUS_INTEGRATION 或 CI_ 前缀变量;官方 UI 检测可能因此判定 CI。若该变量并非运行所需,可在单次命令中排除,例如 env -u CI_TOKEN qwen。
鼠标与滚动
ui.mouseTracking 默认启用,终端将鼠标事件交给 Qwen Code,其自带点击链接与上下文菜单。设为 false 可恢复终端原生处理,但应用内鼠标交互也会关闭。
默认 ui.useTerminalBuffer 为 true;关闭 mouseTracking 后,滚轮不再滚动虚拟历史,应使用 Shift+↑/↓、PgUp/PgDn 或 Ctrl+Home/End。还想恢复终端原生 scrollback 时再关闭 useTerminalBuffer,修改需重启。
tmux 可能将滚轮翻译为箭头键,导致切换输入历史。检查 tmux 的鼠标映射,或在非屏幕阅读器模式下用 Shift+Up/Down 滚动应用历史。
IDE Companion
确认 VS Code 只打开一个工作区目录,安装扩展后重启集成终端以继承 QWEN_CODE_IDE_WORKSPACE_PATH 和 QWEN_CODE_IDE_SERVER_PORT。容器中检查 host.docker.internal 解析。官方提供 /ide install 重新安装入口,并可在命令面板验证 Qwen Code: Run。
附件上传 413
反向代理可能在 daemon 收到请求前拒绝。daemon 单文件上限仍是 8 MiB,单纯增大 daemon body limit 不会改变代理限制。
支持 session_attachment_chunk_upload 的 daemon 与 TypeScript SDK/Web Shell 会把大于 512 KiB 的附件按 512 KiB 请求上传,不改变文件字节或图像质量。旧 daemon 仍走单请求,代理上限小于 512 KiB 时仍需调整。
上传过期或 daemon 重启后可从 UI 重试。已完成但响应丢失的文件可能仍在附件目录,取消不会删除已经完成的文件。
退出码
| 代码 | 含义 |
|---|---|
| 41 | FatalAuthenticationError,认证失败 |
| 42 | FatalInputError,无头模式输入无效或缺失 |
| 44 | FatalSandboxError,沙箱环境错误 |
| 52 | FatalConfigError,配置无效 |
| 53 | FatalTurnLimitedError,无头模式达到会话轮数上限 |
工具失败时先确认最小操作、目标路径与权限;沙箱拒绝不等于模型故障,见沙箱入口。