
DeepSeek Harness 快速上手30 分钟把第一个插件挂上一切皆插件的智能体框架【免费下载链接】deepseek-harnessDeepSeek Harness: Everything is a Plugin.项目地址: https://gitcode.com/gh_mirrors/de/deepseek-harnessDeepSeek Harnessdsh是 DeepSeek 开源的智能体框架核心理念只有一句话Everything is a Plugin。模型接入、工具调用、会话管理全部是独立的插件模块想加能力就加一个插件想换实现就换一个。这篇文章带你把框架跑起来亲手写一个会在终端说话的小插件顺带把每一步为什么这么跑讲清楚。先看目标终端一行日志 浏览器一个界面先别急着敲命令花 30 秒看清跑通长什么样后面每一步就知道自己在干什么终端里打印一行日志[hello-plugin] plugin loaded!浏览器打开http://127.0.0.1:3080的 dsh Web 界面里面可以选工作区、配模型、和智能体对话倒推回去这个画面由三件事支撑页面能出来是因为框架先被从源码构建了日志能打印是因为我们的插件被一个--patch配置文件叠加进了默认配置对话能发生是因为模型页里填了密钥。下面按这个倒序把三件事办完。搭起框架4 条命令顺序比细节重要这一节解决从源码到运行中的 Web 界面。四条命令的顺序不能乱——尤其构建必须跑在启动之前否则产物是空的启动会直接报错。先克隆仓库并进入目录后续命令都基于它git clone https://gitcode.com/gh_mirrors/de/deepseek-harness cd deepseek-harness接着安装依赖。框架要求 Node.js 22.19 及以上或 24pnpm 11没有 pnpm 的话Node 22 自带 corepackcorepack enable即可启用仓库锁定的版本。装完再执行pnpm install仓库是一个多包 workspace安装时间偏长耐心等它跑完。然后构建产物pnpm run buildpnpm dsh web直接消费构建好的产物不会重新构建所以首次运行这一步不能跳过。最后启动pnpm dsh web跑完它默认在http://127.0.0.1:3080启动 Web UI 并自动打开浏览器。不想自动开浏览器就加--no-open3080 端口被占加--port 8080换个端口就行。顺手提醒dsh进程以启动时所在目录作为默认文件系统位置但全新的 Web UI 不会选中任何工作区。进界面后先点选择工作区把要操作的项目目录加进来并选中否则会话输入框是灰的发不出消息。接上模型填个密钥不用重启界面跑起来只是空壳这一步给它装上大脑。打开设置 → 模型DeepSeek 官方提供商的卡片上有一个 API 密钥字段填入保存。模型路由立即可用不需要重启服务器如果你用的是兼容 OpenAI 协议的第三方网关点添加模型提供商切到自定义模型 API填 Provider ID、显示名称、API 地址、API 协议OpenAI Chat Completions对多数场景都适用再加 API 密钥和至少一个模型其中 Provider ID 是永久的请求、已保存会话、模型默认值、凭据引用都靠它标识想改名字只能新建一个再删旧的填之前想好。模型配好后在模型选择器里选一个它同时会成为新会话的默认值。这时可以发第一句话比如让它总结这个仓库并指出主要包——它会读工作区文件、跑命令按权限策略需要审批的操作Web UI 会先问你。写第一个会说话的插件2 个文件 1 个启动参数这一节解决验证插件链路真的通同时把插件是什么讲透。在 dsh 里插件就是一个导出apply函数的 TypeScript 模块框架加载时调用apply传入ctx上下文对象你通过它注册能力。官方教程让你在仓库根目录建一个临时项目先创建目录只新增文件不动仓库原有内容mkdir -p scratch-plugin/src创建scratch-plugin/src/my-plugin.ts写入插件本体——这就是完整配置import type { Context } from deepseek-ai/cordis export const name hello-plugin export function apply(ctx: Context) { console.log([hello-plugin] plugin loaded!) }再创建scratch-plugin/cordis.yml把插件注册进框架。路径必须是绝对路径先在仓库根目录跑pwd拿到- insert: - id: hello name: /绝对路径/deepseek-harness/scratch-plugin/src/my-plugin.ts最后把这个文件叠加到默认配置上启动跑完它你应该在终端看到[hello-plugin] plugin loaded!pnpm dsh web --patch ./scratch-plugin/cordis.yml--patch的语义是叠加而不是替换patch 文件只贡献配置框架其余部分保持不动这也是插件体系换实现的入口。顺手提醒通过ctx注册的事件监听、工具、定时器在插件卸载时都会被自动清理不用手动clearInterval个别需要手动清理的资源比如网络连接用ctx.effect()包住并返回清理函数即可。跑通之后自然下一步是给智能体加工具链路通了别急着写下一个 hello world。最有价值的动作是让智能体真的调用你的能力在插件里加一行export const inject [tools]框架会等工具注册表就绪后才执行apply之后就能用ctx.tools.register()注册自定义工具。官方教程里有一个完整的greet工具例子注册完可以直接在对话里让模型调用参考 工具开发教程。另外两个值得知道的点插件除函数形式外还有对象形式和类形式继承Service适合提供长期运行的服务三者声明依赖 → 等就绪 → 执行 apply的流程一致想深挖底层Cordis 框架教程会在临时目录里带你从零拼配置不需要 API 密钥。30 分钟前你还在琢磨插件到底是什么现在框架已经加载了你的插件智能体也接上了大脑。剩下的路很明确找一个你真正想自动化的小事从把它包成一个工具开始。【免费下载链接】deepseek-harnessDeepSeek Harness: Everything is a Plugin.项目地址: https://gitcode.com/gh_mirrors/de/deepseek-harness创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考