# deepseek-harness-studio

> Add an entry point to the DSH sidebar to launch the complete LLM Wiki knowledge base product (data import, compiled Wiki, knowledge graph, traceable Q&A) as a standalone application in a new window, without affecting the DSH homepage.

## Metadata

- Author: [@fufankeji](https://github.com/fufankeji)
- Repo: <https://github.com/fufankeji/deepseek-harness-studio.git>
- GitHub: [fufankeji/deepseek-harness-studio](https://github.com/fufankeji/deepseek-harness-studio)
- Stars: 403
- Language: TypeScript
- License: [MIT](https://spdx.org/licenses/MIT.html)
- Homepage: <https://www.beyondata.com/>
- Topics: `ai-agent`, `deepseek`, `deepseek-harness`, `deepseek-harness-studio`, `desktop-app`, `developer-tools`, `dsh`, `dsh-plugin`, `electron`, `macos`, `plugin-manager`, `windows`
- Forks: 43
- Open Issues: 2
- Last push: 2026-08-20T10:56:44.000Z
- Added: 2026-08-20T00:00:00.000Z

## Install

```bash
dsh plugin --profile web add github:fufankeji/deepseek-harness-studio/packages/examples/ff-llm-wiki-plugin
```

## Wiki

## 一句话定位
这个插件在 DSH 侧栏挂一个 FF - LLM Wiki 启动入口,点击后会在系统浏览器新窗口里打开一份完整的"工业知识库"独立应用——支持资料导入、确定性编译的 Wiki、知识图谱和基于 DeepSeek 的可溯源问答。DSH 主页面、导航、主题和工作区不会被替换。

## 核心能力
- 在 DSH 侧栏新增"FF - LLM Wiki"启动按钮,一键打开独立知识库应用
- 在新窗口中启动完整的 Next.js 知识工作台(资料、Wiki、知识图谱、问答、评估、设置六大模块)
- 后台拉起一个隔离的 API 子进程处理问答、文档处理与评估,DSH 主进程只做反向代理
- 从 DSH 凭证中心读取 DeepSeek API Key,避免重复配置
- 应用数据(文档、Wiki、SQLite)落盘到 DSH Home 下的插件专属目录,卸载时可统一清理
- 启动失败时返回 503 并附带子进程最近日志,方便排查

## 技术实现
- **语言**: TypeScript(Host)+ 嵌入 Next.js 16 / React 19 的应用
- **关键依赖**: better-sqlite3(原生 SQLite)、@fastify/multipart(文档上传)、fastify(应用 API)、mammoth + pdf-parse(应用内解析)
- **架构模式**: 双面插件——Host 端通过 `ctx.webServer.register` 暴露 `/api/ff-llm-wiki/{open,status}` 路由,用 `node:child_process.spawn` 拉起独立 Node 进程跑应用 API,并用 `node:http` 启动静态反向代理;Client 端通过 `ctx.slots.inject('sidebar.primary.action')` 注入一个按钮,点击 `window.open('/api/ff-llm-wiki/open')` 触发 Host 启动子进程后重定向到 127.0.0.1 的本地端口
- **入口文件**: `src/index.ts`(Host 启动器)、`src/client/Plugin.tsx`(侧栏入口)

## 适用场景
希望把 DSH 当作统一入口,既能用 DSH 主能力、又能附带跑一份企业级知识库演示/生产系统的用户;尤其是想用现成方案演示"文档导入 → 编译式 Wiki → 知识图谱 → 可溯源问答 → 评估"完整链路、且不想自己维护第二套 UI 的团队。

## 前置依赖与兼容性
| 依赖 | 最低版本 | 说明 |
|---|---|---|
| Node.js | >=24 | 由 `package.json#engines` 强制 |
| DSH | 未声明 | 插件未显式声明 dsh 最低版本,但仅作为 `web` 平台注入,需要 DSH Web/Desktop Bundle |
| DeepSeek API Key | 无版本要求 | 在 DSH 凭证中心配置 `DEEPSEEK_API_KEY`;密钥由 DSH 凭证中心托管 |
| 原生模块 | better-sqlite3 | 由嵌入应用在运行时使用,需要平台对应的预编译产物 |

## 安装方式
```bash
dsh plugin --profile web add github:fufankeji/deepseek-harness-studio/packages/examples/ff-llm-wiki-plugin
```

## 配置项
本插件无需额外配置。

> 插件本身不暴露 Config 字段。所有依赖项均通过 DSH 凭证中心或嵌入应用自身的环境变量提供:
>
> | 间接配置 | 来源 | 说明 |
> |---|---|---|
> | `DEEPSEEK_API_KEY` | DSH 凭证中心 | 应用启动时由 Host 解析并注入到子进程 |
> | `DEEPSEEK_BASE_URL` | 嵌入应用默认值 | 默认 `https://api.deepseek.com`,可用嵌入应用环境变量覆盖 |
> | `DEEPSEEK_MODEL` | 嵌入应用默认值 | 默认 `deepseek-v4-flash`,可设为 `deepseek-v4-pro` |
> | `PORT` / `DATABASE_PATH` | 嵌入应用运行时 | 应用自身的环境变量,不需要 DSH 侧关心 |

## 常见问题

**Q: 这个插件会替换 DSH 主界面吗?**

A: 不会。点击侧栏入口只会在系统浏览器新窗口打开独立应用,DSH 原页面、导航、主题和工作区都保持不变。

**Q: 需要单独配置 DeepSeek API Key 吗?**

A: 不需要。插件从 DSH 凭证中心读取 `DEEPSEEK_API_KEY`,在 DSH 凭证中心配好之后重启 Host,侧栏状态会显示已配置。

**Q: 卸载时数据会被清理吗?**

A: 会。文档、Wiki、图谱和 SQLite 数据都写入 DSH Home 下的 `ff-llm-wiki` 专属目录,卸载时由插件中心统一清理。

**Q: 会占用固定端口吗?**

A: 不会。插件通过 `node:net` 自带的端口探测自动挑选空闲端口,Host 同时启动一个 API 子进程和一个静态反向代理,所以不会冲突。

**Q: 支持哪些模型?**

A: 应用内置 `deepseek-v4-flash`(默认)与 `deepseek-v4-pro` 两种选择,在应用内的设置页可以切换并做最小推理验证。

**Q: 启动失败怎么办?**

A: 启动失败时路由返回 503 并把最近 4KB 子进程日志附加到错误消息;先确认 `DEEPSEEK_API_KEY` 已配置,然后查看控制台报错。

## 上手难度
入门 — 安装即可在侧栏看到入口,首次点击会复制种子数据并启动子进程,无需任何配置改动即可在演示数据上跑通完整链路。

## 已知问题与限制
- 应用内的检索仍是字段加权算法,没有接入 Embedding 向量索引;知识图谱也是本地规则抽取,不是模型实体抽取(见 `application/README.md:169`)
- 嵌入应用没有生产级多租户权限、鉴权、容灾与高可用,定位是单机演示/小规模内部使用
- 嵌入应用前端没有单元测试框架,质量保障依赖 API 接口测试和浏览器真机验收
- 插件要求 Node.js >= 24,使用更低版本 Node 会在 `package.json#engines` 处失败
- better-sqlite3 是原生模块,如果宿主环境没有匹配的预编译产物,首次安装可能需要本地编译工具链

---

This document is auto-generated by [deepseek-plugin.org](https://deepseek-plugin.org). HTML page: [deepseek-harness-studio](https://deepseek-plugin.org/plugins/fufankeji/deepseek-harness-studio/packages/examples/ff-llm-wiki-plugin)
Wiki generated by AI (model: `MiniMax-M3`)
