资讯动态

DeepSeek-Reasonix 工具调用结果未知时怎么恢复被阻塞的写操作

发布时间:2026/9/12 16:54:55 来源:尧图企业网站定制
DeepSeek-Reasonix 工具调用结果未知时怎么恢复被阻塞的写操作【免费下载链接】DeepSeek-ReasonixDeepSeek-native AI coding agent for your terminal. Engineered around prefix-cache stability — leave it running.项目地址: https://gitcode.com/GitHub_Trending/de/DeepSeek-Reasonix在 DeepSeek-Reasonix 中工具调用已经开始执行但结果始终没有确认例如进程重启、结果在返回前丢失时这次调用会保持“未知”状态。未知写操作会阻止同一 session 中后续的所有写操作——即使模型换了新的 call ID 也一样只读诊断可以继续。工具恢复功能就是为这个局面设计的通过恢复卡检查未知调用、确认其效果已实际发生或标记为不重试解除写入屏障继续任务在满足受限条件时还可以重试。执行证据由 Go runtime 管理Electron 本地 tab 与 Remote tab 共用同一套 Controller API沿用已有的 session、turn ledger 和文件 checkpoint不新增恢复数据库。什么算“未知”写操作为什么会被阻塞参数检查、工具目标解析和权限判定完成后runtime 才建立调用回执。回执包含 session、turn、call、attempt、规范化参数摘要和幂等键先通过现有 session checkpoint 持久化再同步落盘tool_started最后才调用工具。返回结果后更新同一 attempt 并保存显式失败、未开始、运行后取消或超时分别归类“调用过”不等于“外部效果已确认”。重启后已开始但未确认结果的调用仍为未知新格式中只有 dispatch、没有 start 的调用可以认定未开始旧记录缺少证据时保守处理不猜测成功或失败。未知写操作阻止后续写操作。同一 session 的压缩或历史改写会保留未解决回执。用户确认记录为user_confirmed不会伪造工具成功输出也不会自动再次执行已确认的相同工具和参数。恢复入口本地与 Remote 共用同一 API桌面统一入口是GetToolRecoveryForTab和ResolveToolRecoveryForTab。Remote tab 转发到 Serve 的GET /tool-recovery和POST /tool-recovery沿用认证、会话路径和前台写权限保护POST 还使用现有的 expected-session 头与前台 ownership 守卫。快照携带sessionPath、runtimeEpoch、内容修订号revision、调用列表calls和重试能力retryEnabled。每个操作必须提交该快照的身份以及attemptId、inspectionId动作只能是inspect、confirm、reject、retry之一。运行中、结束处理中、会话切换中、已关闭、旧 epoch 或旧 revision 的操作都会被拒绝切换 tab/session 后旧异步响应不得覆盖新界面。前端实现中见 ToolRecoveryPanel.tsx操作报错后会重新读取最新快照不会自动重放可能已提交的动作。服务端准入逻辑见 internal/control/tool_recovery.go。操作步骤从未知到解除写阻塞等 session 空闲。Controller 与模型回合共用同一套写权限准入runtime 处于 running、finishing、rotating 或 closed 时恢复操作直接被拒。打开恢复卡。每个未解决调用以工具名 · unknown列出。普通快照不携带原始参数只有显式检查才返回本地存储的参数回执参数不会进入模型恢复提示。执行“检查”inspect。检查结果分四种状态present效果存在、postcondition_satisfied文件后置条件满足、absent_fenced效果不存在且旧尝试已被阻止提交、unknown无法确认。注意文件后置条件只证明当前状态不证明原调用的结果。按检查结果选择“确认”或“不重试”。界面上 confirm/reject 按钮在拿到 inspectionId即完成检查之前处于禁用状态确认必须针对已检查的同一 attempt效果确实已发生时选择确认记录为user_confirmed不伪造成功输出也不会自动重新执行相同工具和参数。无法确认效果时选择不重试保留未知事实与写入屏障不会因此放行更多写入。全部解决后继续任务。恢复卡在调用列表清空前端判断calls.length 0并出现恢复按钮后点继续走现有的普通回合提交及其既有围栏。快照同时提供从保留的 session 证据计算的 unknown、confirmed、retried、rejected、blocked 计数可用于核对各状态数量不是历史全量遥测。可选分支启用受限重试重试默认关闭。只在拥有该 session 的 Go 主机上设置环境变量才开放重试操作远程能力由远端主机自行决定REASONIX_TOOL_RECOVERY_RETRY1重试使用新的 call ID 和 attempt ID保留原幂等键和原始参数经过正常的参数、权限、hook、租约和工具执行管线存储的参数是权威的界面不能替换它们旧请求也不能再次提交同一重试。重试的额外前提只读工具重试要求旧执行者已经退出。写工具必须实现tool.EffectVerifier并在重试前重新证明“效果不存在且旧尝试已无法再提交”——仅观察到不存在不够。界面上只有检查结果为absent_fenced的写工具才开放重试按钮。验证器的RecoveryScope必须与原记录的接收端、账户和资源身份一致。工具可读取tool.RecoveryIdempotencyKey(ctx)在实际接收端实现去重。适用范围限制文件工具复用已有WriteVerifier做只读后置条件检查通用 shell 命令和任意 MCP 服务无法自动证明外部效果不存在因此默认保持未知。本实现对没有权威回执或去重能力的第三方服务不承诺 exactly-once。验证与边界浏览器验收命令依赖 desktop/frontend 的开发环境脚本通过 Vite 开发服务器 Playwright Chromium 无头浏览器运行恢复页cd desktop/frontend node bench/tool-recovery.mjs脚本覆盖检查、确认、继续、禁止不安全重试、切换 session 后拒绝迟到响应通过时逐项输出 PASS见 bench/tool-recovery.mjs。部署与版本边界部署时配套更新 Go runtime 与 Electron 生成契约先保持重试关闭核实具体工具的接收端语义后再开启。关闭重试不会删除证据或人工恢复能力。旧版本可执行程序没有新恢复保证应先解决未确认效果再降级 Go runtime本功能不自动改写存储格式或执行降级迁移。远端发布和生产灰度是独立交付步骤不等同于本地实现与测试完成。如果检查长期停留在unknown例如通用 shell 或无去重能力的 MCP 调用文档给出的立场是保留未知、不自动重放选择“不重试”记录事实写入屏障保持生效后续写操作等人工处理后随普通回合继续。更多细节见 TOOL_RECOVERY.md 与 TOOL_RECOVERY.zh-CN.md。【免费下载链接】DeepSeek-ReasonixDeepSeek-native AI coding agent for your terminal. Engineered around prefix-cache stability — leave it running.项目地址: https://gitcode.com/GitHub_Trending/de/DeepSeek-Reasonix创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

读完文章,也想定制专属网站?

尧图设计师 24 小时内与您沟通定制方案

免费获取报价