新闻详情

新闻详情

首页 / 资讯中心 / 详情

dsh-anchored-standard Wire级Think-Execute分离完全指南:如何在Adapter层用tool_choice:none实现工具“可见不可调用“

发布时间:2026/9/25 18:55:48来源:尧图网络
dsh-anchored-standard Wire级Think-Execute分离完全指南:如何在Adapter层用tool_choice:none实现工具“可见不可调用“
dsh-anchored-standard Wire级Think-Execute分离完全指南如何在Adapter层用tool_choice:none实现工具可见不可调用【免费下载链接】dsh-anchored-standardTwo-phase DeepSeek Harness preset: Minimal-aligned bootstrap, then full Standard tools (Project2 98/99)项目地址: https://gitcode.com/gh_mirrors/ds/dsh-anchored-standarddsh-anchored-standard 是一个 DeepSeek Harness 社区实验预设项目其Wire Think-Execute Standard模式在Adapter 层实现了 Wire 级 Think-Execute 分离请求中工具定义保持可见但通过tool_choice: none禁止调用让模型看得见工具却调不了工具先完整思考再执行。本文用通俗方式讲清它的原理、三个关键步骤和安装配置方法。什么是可见不可调用的 Think 条件在 AI 编程助手里**思考Think和执行Execute**常常混在一起模型一边看工具列表一边决定调用容易没想清楚就动手。dsh-anchored-standard 的 Wire 级分离把一轮对话拆成两个阶段阶段工具状态网络请求wire模型行为 THINK第 0 步工具定义完整可见tool_choice: none禁止调用基于完整工具目录做规划⚡ EXECUTE第 1 步起常驻精简目录可调用正常路由按刚才的计划执行对比同家族的 shared/think-phase.mjs 思路——它把思考步骤的工具目录清空——Wire 级模式更进一步工具不隐藏、只上锁。模型能看到自己稍后能用的一切工具来规划而工具只需一个参数即可恢复可用。这正是 wire-think-standard/agent.cordis.yml 开头注释描述的实验目标。为什么官方 Adapter 做不到DeepSeek Harness 官方 DeepSeek Adapter 的GenerateOptions词表里根本没有tool_choice字段官方文档把该映射标记为 MVP 裁剪。也就是说官方路由无法在请求里携带禁止调用工具的指令官方 Adapter 的 wire 请求体在私有生成器内部构建没有可包装的缝隙也无法用同一个 provider id 重复注册会抛出DUPLICATE_ADAPTER。所以社区方案选择了一条合法缝隙注册一条兄弟路由sibling route用自己的 provider id 承载tool_choice能力。两个关键文件谁负责上锁谁负责切换1️⃣ shared/toolchoice-adapter.mjs —— 带锁的兄弟路由它零依赖地内置了一套协议忠实的 DeepSeek chat-completions 序列/SSE/翻译管线并注册在专属 provider id默认deepseek-wire-think下。核心只有一行逻辑见 serializeThinkRequest只要请求里带有工具定义就在 wire 上附加tool_choice默认值none不带工具则不附加。其余细节都与官方行对齐连接信息按行配置 llm-deepseek设置段 环境变量DEEPSEEK_BASE_URL/DEEPSEEK_API_KEY解析同一个 API Key 即可同时服务两条路由。2️⃣ shared/wire-think.mjs —— 每步路由的相位引擎它不改请求内容只换路。在 agent/request 监听器 中THINK 步把请求路由唯一切换到兄弟路由冻结的请求体原封不动日志可重建性不变EXECUTE 步把路由切回捕获的原始 provider绝不让你带锁进入工具步子代理默认直接进入执行阶段它们的 brief 本来就是计划。两个文件在模式目录中都有物化副本wire-think-standard/toolchoice-adapter.mjs、wire-think-standard/wire-think.mjs由npm run sync从shared/生成勿直接改副本。三步机制THINK → STEER → EXECUTE一轮用户消息在 Wire 模式下的完整生命周期THINKstep 0请求携带完整工具目录走兄弟路由wire 上tool_choice: none——模型只能输出纯文本计划同时按 Think 步作用域剥离自动注入上下文skill-catalog、agent-instructions。STEER转向纯文本回复会让回合即将关闭agent/turn-stopping检查点每回合恰好转向一次注入一条引导通知思考回合已完成所有工具已激活请执行你上一条消息里的计划。转向记录是持久事件重启后不会重复转向。EXECUTEstep 1切回官方 provider模型看到提升后的常驻目录——shell str_replace_editor 发现工具dev_tool_search/skill_search/skill_load 已显式解锁的工具。agent.cordis.yml中的关键行见 wire-think-standard/agent.cordis.yml- id: toolchoice-adapter # 必须保持第一个本地行路由要先于引擎存在 name: ./toolchoice-adapter.mjs - id: wire-think name: ./wire-think.mjs config: mode: every-turn # 或 first-turn只限制在首个用户回合一键安装 Wire Think-Execute 预设每个模式目录都是自包含的单独复制即可安装git clone https://gitcode.com/gh_mirrors/ds/dsh-anchored-standard dsh_home${DSH_HOME:-$HOME/.dsh} mkdir -p $dsh_home/.agent-presets cp -R wire-think-standard $dsh_home/.agent-presets/wire-think-standard完全重启 DeepSeek Harness新建空白会话选择Wire Think-Execute Standard (experimental)即可。注意该模式需要和官方路由一样可见DEEPSEEK_API_KEY见 preset.yml 的 description 说明。降级阶梯与成本采纳前必知的两件事️永不卡死的降级设计详见 wire-think.mjs 头注释兄弟路由未注册行缺失或第二个预设重复挂载同一 id 触发DUPLICATE_ADAPTER→ Think 步自动降级为零工具条件过滤器失败 → 回退到完整目录并一次性告警转向失败 → Think 回复直接作为本回合答案。⚠️成本须知Think/Execute 交替每回合切换请求前缀中的 tools 块两次DeepSeek前缀缓存复用会在每次切换的改动 token 处失效provider id 本身对后端缓存不可见每回合多出一次模型调用。若觉得不划算把mode设为first-turn切换和缓存开销只发生在会话首个用户回合。测试方面test/toolchoice-adapter.test.mjs 精确断言了有工具时 wire 恰好携带tool_choice: none、无工具时不携带可用npm test本地复现零依赖测试套件。常见问题FAQQtool_choice: none和直接把工具目录清空有什么区别A清空目录时模型无法感知自己拥有什么none让模型带着完整工具视野做规划思考质量更高且执行阶段工具一个参数之遥即可恢复。Q为什么 adapter 要内置一套序列化管线而不是复用官方包A预设目录是单独复制到.agent-presets/的无法依赖外部 npm 包因此按 MIT 许可内置了一个最小、协议忠实的子集官方版权声明保留在 NOTICE。Q和 README.md 里其他锚定模式的关系AWire 模式是锚定家族的wire 级条件变体combo-anchored/ 组合包甚至允许把think-phase行换成wire-thinktoolchoice-adapter把回合开场升级为本文的条件代价是兄弟路由与前缀缓存抖动。总结核心创新用自注册 provider id 的兄弟 Adapter 路由绕开官方词表缺口在 wire 上实现工具可见 禁止调用分工清晰adapter 负责上锁tool_choice: noneengine 负责换路think 走兄弟路由execute 回官方路由生产级稳健三重降级永不卡死会话持久化转向事件保证重启安全代价透明每回合 1 次模型调用与前缀缓存失效可用mode: first-turn收敛成本。这套机制完整展示了社区插件如何在不动框架源码的前提下通过 Adapter 层扩展出官方能力之外的 wire 级请求条件——对研究 DeepSeek 思考轨迹与工具面剂量效应的同学是一份值得逐行阅读的样本。【免费下载链接】dsh-anchored-standardTwo-phase DeepSeek Harness preset: Minimal-aligned bootstrap, then full Standard tools (Project2 98/99)项目地址: https://gitcode.com/gh_mirrors/ds/dsh-anchored-standard创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
网站建设高端定制企业官网
RELATED

相关资讯

更多精彩内容,欢迎继续阅读

较早相关资讯

最新相关资讯

A.每日一题:1401. 圆和矩形是否有重叠 2026/9/25 19:29:24

A.每日一题:1401. 圆和矩形是否有重叠

题目链接:1401. 圆和矩形是否有重叠(中等) 算法原理: 解法:找距离圆心最近的点 时间复杂度O(1) 0ms击败100.00% 题目给的提示:找到正方形上距离圆心最近的点,计算该点到圆心的距离,并…

阅读更多 →
A.每日一题:3498. 字符串的反转度 2026/9/25 19:29:24

A.每日一题:3498. 字符串的反转度

题目链接:3498. 字符串的反转度(简单) 算法原理: 解法:模拟 时间复杂度O(N) 2ms击败82.98% 思路就很简单,把每个字符对应在反转表中的值对应位置 累加在一起返回即可 对于在反转表中的值,注意这…

阅读更多 →
开源可落地的AI代码审查工作流:CLI+Git+本地LLM实践 2026/9/25 19:29:17

开源可落地的AI代码审查工作流:CLI+Git+本地LLM实践

1. 项目概述:这不是一个“工具”,而是一套可落地的开源代码审查工作流“open-code-review”这个名称乍看像某个具体软件,但实际它代表的是一类正在快速成型的新型开发实践——用开源、透明、可审计的方式,把大语言模型&#xff08…

阅读更多 →
122.Agent-LangChain核心组件-中间件-动态提示词(dynamic_promapt) 2026/9/25 19:29:17

122.Agent-LangChain核心组件-中间件-动态提示词(dynamic_promapt)

摘要:本文介绍 LangChain 中 dynamic_prompt 注解的用法,讲解如何通过该注解将函数注册为动态提示词中间件,并利用 ModelRequest 类型获取运行时上下文与系统提示词,实现系统提示词的动态覆盖与拼接,最后通过完整代码示…

阅读更多 →
xgplayer 分支合入评估:BVC2 外置与标准 VVC/transmuxer 媒体能力合入 main 的实践指南 2026/9/25 19:29:17

xgplayer 分支合入评估:BVC2 外置与标准 VVC/transmuxer 媒体能力合入 main 的实践指南

音视频前端 【免费下载链接】xgplayer A HTML5 video player with a parser that saves traffic 项目地址: https://gitcode.com/gh_mirrors/xg/xgplayer 点击查看 免费下载 本文是 xgplayer 仓库中 codex/split-bvc2-transmuxer 功能线合入 main 主干的技术评估与…

阅读更多 →
Atlas 300V 24G NPU实战:从零跑通YOLOv5推理部署 2026/9/25 19:29:11

Atlas 300V 24G NPU实战:从零跑通YOLOv5推理部署

前阵子我拿到一块 Atlas 300V 24G,第一反应是:这玩意到底算不算运算加速卡?答案是肯定的——它不但是加速卡,而且是专门为 AI 推理设计的 NPU 加速卡。如果你正在边缘设备上折腾 YOLO 目标检测,这块卡和对应的工具链是…

阅读更多 →

今日资讯

本周资讯

本月资讯

看完文章仍有疑问?

联系尧图顾问,获取一对一建站咨询

立即免费咨询 📞 400-888-8888
📞 ✉