dsh-ldf:在 DSH 中挂载 Local Decision Framework

前言

智能体在回答里常会给出带有不确定性的论断。若要在本地做「主张校验」、留存收据(receipt),并复用 OpenAI 兼容的 chat-completions 端点作评判,通常需要自行拼装 MCP 服务、配置与提示词。DeepSeek Harness(DSH)采用「一切皆插件」的扩展方式;社区目录站点独立于 DeepSeek / 幻方,用于发现和分发插件,并非官方应用商店。

下面介绍维护者 phillui-37 发布的 dsh-ldf:将上游 Local Decision Framework(LDF)以 DSH 宿主插件形式接入,在启用后注册指引与宿主工具,并通过 DSH 原生 MCP 客户端维持 Python 服务端可用。

这是什么

dsh-ldf(GitHub:phillui-37/dsh-ldf)是 Local Decision Framework (LDF) 的 DSH 宿主插件。上游实现以 Git submodule 固定在仓库 upstream/;所有 DSH 适配代码在 src/,不复制或改写上游源文件。

运行要求(见仓库 README 与 package.json):

  • DSH:>=0.2 <0.3(MVP 在本地 DSH SDK 0.2.2-alpha.2 上验证)
  • Node.js:>=22
  • Python:>=3.10,且已安装上游 mcp 依赖

插件版本当前为 0.1.0,许可证 MIT。

核心功能

工作方式概览

插件启用后:

  1. 注册 guidance(模型指引)与 宿主工具。
  2. DSH 原生 MCP 客户端保持 Python MCP 服务(stdio)可用。
  3. 主张校验、模型发现、本地模型配置 仅在对应工具被调用时执行;模型配置须在用户明确批准 provider、model、format 之后才会继续。
  4. 插件 不会 在后台自动轮询校验主张。

评判流量路径简述:DSH 宿主 → dsh-ldf(提示与宿主工具)→ 原生 MCP 客户端 → 固定的 Python MCP 服务 → 配置的 chat-completions 端点;本地收据写入本机存储。另有 Node 侧的本地模型工具可对接本机 Ollama 或 LM Studio,经批准后可更新 DSH 设置并替换 MCP 子进程连接。

MCP 工具(上游)

默认 MCP 命名空间为 ldf(可由 serverName 修改),工具对外前缀一般为 mcp__ldf__,包括:

工具 作用(摘要)
ldf_check_claim 校验单个主张
ldf_check_claims 批量校验
ldf_summarize_output 归纳输出
ldf_fetch_evidence 获取证据

证据语义、裁决类型等细节以上游 upstream/README.md 为准。

宿主侧扩展工具

除上游 MCP 工具外,插件在启用时还提供:

  • ldf_discover_models:按需盘点本机运行时/模型与相关 CLI(含对 127.0.0.1:11434 的 Ollama、127.0.0.1:1234 的 LM Studio 等检查,README 中另有截断说明)。
  • ldf_setup_local_model:在用户确认(confirmed: true)后配置本机运行时、下载或加载模型;通过 /v1/models 可见性验证后更新 baseUrl 与 model,并重启 MCP 连接。

设置与持久化

各字段可在 DSH Settings 中编辑,保存后会序列化子 fiber 更新、释放旧 MCP 连接与 prompt 区段并启动替换;禁用插件会移除工具与指引。正在进行的调用可能被设置变更打断。

常用字段(默认值见 README 表格):

  • python:解释器路径,建议使用虚拟环境的绝对路径。
  • baseUrl / model:评判 API;默认指向本机 Ollama http://127.0.0.1:11434/v1 与 qwen3:8b(需自行准备模型或使用下方 setup 工具)。
  • apiKeyFile:托管服务商可选,指向 UTF-8 密钥文件路径,密钥不写入设置表单。
  • outputMode:json_schema、json_object 或 plain。
  • prefix / suffix:可编辑的多行模型指引,默认 prefix 建议代理对重大不确定主张使用稳定 evidence ID 做校验(不强制自动调工具)。
  • followUpstreamSkill:为 true 时尝试在 ~/.agents/skills 等路径加载匹配的 ldf-check-claim skill 以替换插件内全部 LDF 提示文本。

LDF 上游行为仍会写入收据;capture / captureResponse 可保留证据或原始响应,需结合 dataDir 与保留策略使用。

设置界面

src/client.js 在 DSH 插件设置槽位提供 Local Decision Framework (ldf) 配置表单,不依赖可选的宿主 UI primitives 包。

安装与启用

官方 README 给出的准备步骤(含 submodule 与 Python 虚拟环境)如下。安装方式为 通过 DSH 插件管理器将该本地目录作为 bundle 安装,而非本文臆造的一条式远程 add 命令。

git clone --recurse-submodules https://github.com/phillui-37/dsh-ldf.git dsh-ldf
cd dsh-ldf
# For an existing checkout:
git submodule update --init --recursive
python3 -m venv .venv
.venv/bin/python -m pip install ./upstream
npm install

随后:

  1. 在 DSH 中用插件管理器安装该目录 bundle;宿主须满足 package.json 中的 peer 依赖(如 @deepseek-ai/dsh-mcp-client、@deepseek-ai/dsh-tools 等)。
  2. 打开 DSH Settings 中生成的 Local Decision Framework 表单,将 python 设为 .venv/bin/python 的绝对路径。插件以 PYTHONPATH 指向上游 submodule 的 src,始终运行固定 checkout,而非任意全局 LDF 版本。
  3. 配置 baseUrl 与 model。LDF 会在 base URL 后追加 /chat/completions;配置路径建议使用绝对路径。

典型用法

主张校验流程(概念)

当代理或用户触发 claim 相关 MCP 工具时:

  1. 若未提供证据,上游逻辑 本地弃权(abstain),不调用提供商。
  2. 若提供证据,则请求已配置的 /chat/completions,校验裁决与引用后 写入本地 receipt,再返回工具结果。

这与「后台持续自动校验」不同:无工具请求时服务处于等待,不做 claim 检查。

本地评判端点

默认以本机 Ollama 为评判端点。若尚未部署 qwen3:8b,可先调用 ldf_discover_models 了解本机现状,再在用户明确批准后使用 ldf_setup_local_model 完成拉取与验证。

可选上游 Skill 指引

若已在常用 skills 目录安装与 ldf-check-claim 匹配的 SKILL.md,可将 followUpstreamSkill 设为 true,由 skill 替换插件内置的 prefix/suffix 等指引文本;找不到可用文件时保留当前指引并记录警告。

适用场景与注意

适合:

  • 已在或计划使用 DSH 0.2.x,并希望在同一宿主内集成 LDF 的 MCP 工具与收据能力。
  • 需要用 OpenAI 兼容 API(本机 Ollama/LM Studio 或带 apiKeyFile 的托管端点)作为「评判模型」的团队或个人开发者。

务必注意:

  1. 插件以 当前 DSH 进程权限 运行;安装前请阅读源码与 MIT 许可证,并理解 MCP 子进程、本机 loopback 与密钥文件路径的权限含义。
  2. README 明确:不要 将缺少解释器或启动失败伪装为成功的 judge 调用;启动失败由 DSH 记录并可重连。
  3. 社区目录页(SkillHub)与 GitHub 仓库由维护者 phillui-37 发布;星标与简介以各站点当时展示为准,本文不罗列未在抓取资料中出现的运营数据。

结尾

dsh-ldf 把 Local Decision Framework 的 Python MCP 服务与 DSH 的设置、工具、指引槽位绑在一起,并补充本机模型发现与配置工具,便于在可控环境下对主张做证据驱动的校验与留痕。

羽毛球分组比赛记分
小程序二维码

欢迎使用《羽毛球分组比赛记分》微信小程序

小夜