dsh-anchored-standard context-gate插件源码解析Harness双路径统一上下文注入控制【免费下载链接】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 的实验性预设项目通过先 Minimal 对齐引导、后 Standard 全量工具的两阶段设计在 Project2 评测中取得 98/99 的成绩。其中context-gate 插件是整个预设的上下文守门人它拦截 Harness 的两条统一注入路径确保会话的首次模型请求不受任何自动注入上下文干扰——这正是锚定 Minimal 轨迹的关键一环。一、为什么需要上下文门禁项目的锚定机制依赖三个杠杆工具 schema、输出预算、注入提醒。实测数据表明技能目录注入在场时锚定完全失效0/9 复现。因此context-gate的设计目标很明确会话未被晋升unpromoted期间首次模型请求必须干净拦截的不是某一个注入来源而是 Harness 的两条统一注入路径本身——这样连未来新增的注入源也天然被覆盖无需维护按来源点名的黑名单 二、总体架构一个插件两条拦截路径插件本体位于 shared/context-gate.mjs诊断名为anchored-context-gate。它的apply(ctx, config)入口注册了三个监听器session/event观察晋升信号、system-prompt/assemble路径 a、agent/pre-step路径 b。路径 asystem-prompt/assemble—— 清空运行时上下文监听系统提示词的组装过程。当会话处于未晋升状态时组装结果的contexts数组被整体置空覆盖整个SystemPrompt.context()家族——沙箱快照、审批策略快照、任何第三方上下文提供者无需逐一枚举门关闭期间循环自身的快照投影因快照从未存在而保持静默晋升后恰好差分注入一条全新的 runtime-context 消息——首轮极简、二轮注入的效果由投影的 diff 机制自然产生插件本身不写任何重注入逻辑。源码见 shared/context-gate.mjs。路径 bagent/pre-step—— 保留claimed 基线剥离一切附加注入前置步骤pre-step的瀑布负载中携带了本步骤从收件箱认领claimed的消息批次。门在门控期间的规则是消息类型是否保留本步骤认领的用户消息、工具结果等 claimed 批次✅ 保留skill-invocation用户主动触发的技能手势allowKinds默认项✅ 保留技能目录、AGENTS.md 摘要、时间/tmux 上下文、hooks、未知第三方插件注入❌ 一律剥离判定不看消息来源身份默认否认而是白名单思维claimed 批次 kind 白名单之外的全部剔除。其中 claimed 消息即使被下游监听器克隆对象引用变化也能通过id匹配识别测试用例专门覆盖了这一点见 test/context-gate.test.mjs。源码见 shared/context-gate.mjs。 一个容易忽略的细节持久历史含压缩摘要从不经过此门——它通过会话表面进入请求而非 pre-step 瀑布因此不受影响。三、晋升状态机epoch 感知的相位判断门什么时候开由共享的状态机 shared/compaction-epoch.mjs 决定核心函数createEpochPromotion的语义是晋升信号会话日志中首次出现持久的tool/call和/或assistant/message事件由promoteOn配置选择默认either即先到先晋升压缩边界compaction/end事件会把边界重置到该 seq 并撤销晋升——压缩后的一次请求本质上是第二次首请求门会重新关闭直到边界之后再次出现晋升信号断点续跑安全相位完全由持久事件派生冷启动时扫描一次会话日志即可重建resume / reload 后状态不丢失兼容旧版session.events与新版snapshotEvents()两种接口。增量更新逻辑见 shared/compaction-epoch.mjs。四、配置项与挂载要点插件只接受 4 个配置键未知键在预设挂载时即报错拼写错误无处隐藏键默认值含义promoteOneither晋升触发either/tool-call/assistant-messageincludeSubagentsfalse是否对子代理subagent同样执行门控enabledtruefalse时两条拦截路径同时关闭可做 A/B 对照allowKinds[skill-invocation]kind 白名单显式写[]表示只保留 claimed 批次挂载顺序是硬约束context-gate必须作为agent.cordis.yml的第一行。因为瀑布式的 after-next 变换按注册顺序的逆序应用只有最先注册加上 pre-step 监听器的prepend: true门才能成为最外层变换——后续任何插件都无法绕过它重新注入。以基础模式为例- id: context-gate name: ./context-gate.mjs config: promoteOn: either includeSubagents: true allowKinds: [skill-invocation]完整配置见 preset/agent.cordis.yml。容错设计两条过滤逻辑自身失败时一律降级为保留全部——门禁的 bug 绝不能吃掉用户上下文同时仅对监听器自身逻辑做 try/catch 保护下游错误照常传播。五、哪些预设挂载了 context-gate由 scripts/sync-modes.mjs 保证shared/是共享插件的唯一事实源各模式目录内的副本是物化生成并提交的保证每个模式目录自包含、可单独安装模式目录promoteOn说明preset/either基础模式锚定核心zero-anchored-standard/assistant-message零工具锚定回合变体whoami-standard/assistant-message你是谁自我介绍锚定变体prefab/either预制会话模式随种子已晋升六、测试与验证完整的零依赖测试套件位于 test/context-gate.test.mjs覆盖未晋升/已晋升两种相位下的两条路径行为、克隆消息识别、压缩边界重新关门、子代理默认跳过与includeSubagents: true的完整门控、enabled: false全关、allowKinds的各种取值、以及全部非法配置在 apply 时抛错。运行方式npm test结语context-gate用不到两百行代码回答了一个关键问题如何在不枚举任何注入来源的前提下保证首次请求的洁净度。答案就是拦截统一路径 基线白名单 epoch 感知状态机三件套。这套首轮极简、二轮全量的注入控制模式也使其可脱离 anchored 预设、被其他需要统一注入控制的 Harness 组合单独复用 插件源码shared/context-gate.mjs晋升状态机shared/compaction-epoch.mjs挂载配置preset/agent.cordis.yml测试用例test/context-gate.test.mjs【免费下载链接】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),仅供参考
企业数字化 ERP 产品动态
相关推荐
水稻害虫检测数据集:VOC格式、类别JSON与可视化审计全解析 简介:面向目标检测与农业害虫识别场景,此数据集提供10类水稻害虫的VOC格式标注,包含训练集与验证集,并附类别json字典和可视化脚本,可直接用于模型训练与评估。压缩包共2000个文件,以XML标注文件为主&#… · 2026/9/25 10:37:09
AI音乐生成提示词模板库:12种风格+四层结构,从随机抽卡到精准配乐 1. 为什么我要花两周时间整理这套AI音乐提示词库去年年底我开始用AI音乐生成工具做短视频配乐,一开始觉得这东西太简单了——输入“欢快的钢琴曲”不就完了?结果生成出来的东西要么像八音盒卡带,要么像MIDI铃声大杂烩,根本没法用。… · 2026/9/25 10:37:09
Atlas 300V 24G部署YOLO模型全攻略:从ONNX转换到推理性能优化 1. Atlas 300V 24G是谁:先纠正一个常见误读最近被问得最多的问题就是"Atlas 300V 24G是不是运算加速卡",很多人把它当成一张类似游戏显卡的东西,或者以为它跟GPU一样插上就能跑PyTorch。这个误读直接影响后续所有部署决策——如果你… · 2026/9/25 10:37:09
Atlas 300V部署YOLO全流程:昇腾推理卡环境搭建与模型转换实战 “Atlas部署YOLO”这六个字,是我最近在好几个AI相关的社群里见得最多的一句话。点进去一看,问的人大多一脸迷茫,手里刚好有一张Atlas 300V Pro(24G)推理卡,或者是公司刚采购了一批昇腾设备,领导… · 2026/9/25 11:07:23
DeskcommCRM深度拆解:用沟通驱动客户关系管理的实战指南 做客户管理系统最怕什么?不是功能不够多,而是功能太多了,销售不愿意用,最后沦为一个昂贵的Excel仓库。我见过太多团队砸钱上Salesforce或者自研系统,结果一线压根不买账,数据不录、跟进不写、客户资料散落在… · 2026/9/25 11:07:11
创维E900V22D刷机全攻略:S905L3SB芯片兼容性解析与救砖实战 /* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/9/25 1:00:31
MQTT协议原理与Broker服务器搭建实战:从Mosquitto到EMQX /* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/9/25 1:00:37