本页内容

排障

文档首页 · 参考 · English

先运行:

sigil doctor

需要为支持请求生成脱敏诊断文件时,使用 sigil doctor --output json。下面列出最常见的后续动作。

决策树

现象先检查下一步
每次都进入快速设置Connection 就绪状态重新打开 /config,保存一条就绪 connection 与模型
模型列表不对当前选择的 connection核对 connection-id/model-id,不要期待其他 connection 的模型
文件范围不对工作区路径从目标目录重新启动
工具被阻止审批或沙箱提示阅读原因;仅在确有需要时调整策略
MCP 不可用/config → MCP Servers修正认证、配置或启动模式
终端输入异常终端支持情况换用受支持的终端并运行 Doctor
会话要求恢复 routeDoctor 中的 session:route_resume确认目标 connection 或选择替代 route
会话已在使用另一个 TUI/Desktop owner退出原 owner 后重试,或新建会话
上下文接近上限信息栏完成当前步骤,或在可用时使用 /compact

每次都会进入快速设置

当前没有可用的模型服务 connection、凭据或默认模型路由。打开 /config,依次选择 provider、凭据来源和模型,检查后保存;首次设置最多要求这三个决定。运行 sigil doctor,确认存在 default=connection-id/model-id 复合路由。精确字段见模型服务指南配置字段参考

Sigil 找不到 API 密钥

确认环境变量名属于当前 connection,并且启动 Sigil 的终端能够读取它。修改 Shell 环境变量后请重启 Sigil。使用 stored credential 时,在 /config 中修复当前 connection。默认 file 与非交互 auto 都只使用 owner-only 的 ~/.sigil/credentials.json,不会查询旧的原生系统记录。如果文件记录缺失,在 /config 中重新输入一次 key 即可。不要把 API key 写进 sigil.toml 或问题单。

Provider connection 或模型目录未就绪

sigil doctor 会独立报告每条 connection,且不会打印 secret 值或 credential ID。按 UI 状态处理:

模型目录不是保存配置的前置条件;站点没有列表接口或暂时无法刷新时,可直接输入精确模型 ID 继续。只有实际模型请求成功,才能证明凭据、端点和该模型组合可用。

状态含义处理方式
needs_credential / credential_unavailable当前凭据来源缺失,或 configured store 无法读取修复该 connection 的环境变量绑定或 stored record,并检查 [storage].credential_store
auth_rejected模型目录请求被当前凭据拒绝仍可保存明确模型 ID;首次请求若也失败,再替换凭据
offlinetls_rejectedprotocol_mismatch模型目录暂时无法按当前协议访问可先保存明确模型 ID;同时检查网络、TLS、端点和协议
remote_emptyDiscovery 成功,但没有返回模型手动输入精确模型 ID
catalog_unsupported当前 provider/端点不提供 discovery使用 provider 自带列表或手动输入
catalog_malformed返回值不是合法模型目录手动输入模型 ID;远端元数据不会扩展本地能力

Provider 生成请求与远程模型目录均遵循标准 HTTP_PROXYHTTPS_PROXYNO_PROXY 环境变量。[web].proxy_mode 只控制 Web 工具,不用于配置 Provider 流量。

如果 Doctor 报告 Provider 配置无效或 schema 不兼容,请直接替换为当前 config_version = 2 connection 模板。Sigil 不迁移或推断旧 Provider 区块。不要新增重复 connection,也不要手工编辑 credential ID。Desktop 仍会以配置恢复状态打开所选工作区: 进入设置,选择替换无效配置,检查 Provider、凭据来源和精确模型后再确认替换。 TUI 会进入快速设置,并把最后一步明确标成检查、替换无效配置并启动。两条路径都会在 配置锁内重新确认磁盘文件仍然无效;如果其他进程已把它修成有效配置,本次替换会被拒绝。

主题颜色难以阅读

打开 /configAppearance,切换主题或语法高亮样式;也可以关闭信息栏。见外观

工作区不对

检查 Sigil 的启动目录和当前 workspace.root。可以从目标目录重新启动,也可以编辑正在使用的 sigil.tomlworkspace.root = "." 表示使用启动目录作为工作区。

外部目录默认不可访问,见权限与沙箱

文件工具不能访问某个路径

先阅读工具卡片中的错误。确认路径位于工作区内、没有被策略排除,也没有通过符号链接指向工作区外。确实需要访问时,只配置范围最小的额外根目录,不要仅仅为了消除错误而扩大权限。

非交互 run 中的工具需要审批

非交互模式不能显示审批弹窗。请为预期操作预先配置足够但尽可能小的权限,或者改用交互模式。不要让自动化任务拥有超出实际需要的权限。

审批被拒绝、过期或取消

该操作没有执行。拒绝表示用户明确作出了决定;超时过期、进程取消和恢复时发现请求已陈旧是不同的 终态,不会伪造“用户拒绝”记录。请检查审批卡片或审计原因,必要时修正请求后重试。Sigil 不会在 后台静默继续已过期或已取消的操作。

鼠标或剪贴板不可用

在当前 sigil.toml 中检查 [terminal].mouse_captureosc52_clipboard,修改后重启,再拖选普通会话文本。松开鼠标后会通过系统剪贴板以及启用时的 OSC52 自动复制;失败时选区会保留,可按 Ctrl-C 重试。Ctrl-L 复制现有选区,没有选区时复制最近一条助手回复。远程 Shell 或容器可能同时无法访问这两种适配器;图片粘贴另行依赖受支持的系统剪贴板。见终端兼容性

失焦通知没有出现

通知默认关闭,而且依赖终端支持。在 /configTerminal 中启用后运行 Doctor,并确认终端没有禁用 OSC 或响铃通知。

会话需要恢复 route

运行 sigil doctor 并检查 session:route_resume。同一可信 origin 内的 endpoint 路径修正会自动 rebind,启动时不会联系 Provider。origin 或账户/tenant 边界变化、connection 缺失,或旧 session 无法证明 trust binding 时,需要用户作出明确决定:在 /config 或 Desktop 设置中检查并保存目标 connection、选择 replacement route,或新建 session。Sigil 会保持 shell 与可移植对话记录可用,不会把历史静默发送到未经确认的目的地。

会话已在使用

该 session 已由另一个 TUI、Desktop run 或 headless run 持有可写 attachment。返回或退出原 owner 后再显式恢复,也可以新建 session 或回到会话库。正常退出或进程崩溃后,操作系统会释放 attachment;不要删除 sidecar lock file,也不要强制接管。

恢复会话后显示工具已中断

进程停止时仍在运行的工具会标记为“已中断”,命令不会自动重放。请检查工具卡片,只有确认该操作仍然需要时才重试。

上下文用量很高

信息栏会显示上下文压力。开始大型任务前,先完成当前步骤或创建检查点。只有能够为所选模型安全精简上下文时,Sigil 才会启用 /compact;否则请新建会话,或从当前会话分叉。见用户指南

MCP 服务缺失、失败或尚未激活

打开 /configMCP Servers 查看状态:

OAuth 只使用最新打开的登录标签页或完整的回调 URL。远端撤销失败时,本机凭据会保留并显示错误;你可以重试撤销,也可以明确选择只清除本机。后者并不表示远端令牌已经撤销。凭据存储、回调、刷新、目标拒绝和 401 的恢复步骤统一见 MCP 指南

代码智能未就绪

运行 Doctor,确认语言工具已经安装,而且启动 Sigil 的同一环境可以找到它。语言服务不可用时,Sigil 可能在缺少部分代码上下文的情况下继续工作,工具卡片会明确提示这一限制。

安装后找不到命令

打开新的 Shell,确认包管理器的可执行文件目录已经加入 PATH。存在多个副本时,运行 command -v sigil(PowerShell 使用 Get-Command sigil)并移除旧副本。重装命令统一在安装维护。

报告问题

运行 sigil doctor --output json 或使用 /feedback。先检查导出文件,再手动附加到相应的 GitHub 表单。请说明实际结果、预期结果、复现步骤、平台与终端,并只提供足够定位问题的安全日志片段。删除项目内容和密钥;报告不会自动上传。

下一步:查找精确命令与键位