大家好,我是小木头 AI 圈内我想最近最热的话题之一就是 DeepSeek Harness。那什么是 Harness?在过去的视频分享中,我已经有过介绍,感兴趣的朋友可以来了解一下。这是由 DeepSeek 发布的一款可以认为是开源的智能体框架或智能体项目,它以插件的形式来集成模型、工具、技能、会话,非常的灵活。在上一期咱们还介绍了如何构建或开发自己的第一款小插件,本期视频呢我就来分享在昨天我编写好的一款飞书插件。

帮助大家在飞书里就能够与自己的 Harness 进行对话,这是不是跟 OpenClaw、跟 Hermes 当时的集成非常的相似呢?这样咱们在任何地方通过移动设备就能够与自己的 Harness 进行对话。那现在就开始咱们今天的分享,首先当然要在本地运行自己的 Harness。如果还没有做的朋友可以回看上一期的视频分享来了解如何本地安装运行,现在就来到我的这个飞书插件。

代码仓库在这里,我会把链接呢放在视频的描述中。它同时支持飞书和 Lark 也就是国内和国际版,来看看如何进行安装配置吧。还没有运行过 Harness 的朋友可以用现在这条命令 npx @deepseek-ai/dsh web 运行一次,它会启动一个 Web Profile,这在后面的配置中也会用到。

复制这个命令在终端这里运行这个命令,在我本地环境中已经安装了飞书插件,所以大家可能会看到在这里有这么一段可能相对不同的输出。不用管它,我们只需要确保 Harness 运行在了 3080 端口。复制这个 URL 在浏览器中打开它,这就是咱们典型的一个 Harness 的 Web 界面。

接下来配置飞书插件,咱们回到这个代码仓库。首先需要前往飞书国内版或国际版的控制台创建一个自建应用,我以 Lark 为例在这里创建一个自建应用。

就叫 deepseekbot。应用创建完成接下来做的第一步就是添加机器人的特性,接下来该做的是权限配置。在代码仓库文档这里给到了我们可以用到的一个较小的权限集合,如果大家不想一条一条的选择、一条一条配呢可以复制下面这段 JSON 代码块。

这里列出了需要的权限,我们可以通过批量导入的方式。我已经复制了这一段回到应用这里在 Permission & Scopes 点击批量导入导出,那我们现在呢就导入这几个权限。

还需要添加一个消息的接收可以回到文档这里可以看到有这么一条 im.message.receive_v1 的事件需要订阅。在这里呢也提到这个订阅是在 Events & Callbacks,我们选择订阅模式我们会选择长链接而不使用开发者服务器。

好处呢就是你不需要自己拥有一台服务器来维护这个连接保存,同时呢添加事件选择这个 Message Received 也就是 im.message.receive_v1 勾选它添加。在回调这里我们同样将订阅模式设为长连接保存,这样就完成了配置。

我们要做的呢是发布一个版本,版本自己可以按自己的偏好来编写再设置一个更新的笔记或者是备注。重点呢是保存发布,发布完成那现在回到最上方基本信息这里的 credential and basic info 我们需要的是 App ID 和 App Secret。

先回到代码仓库在这里后面会介绍到如何配置环境变量,那咱们呢首先安装插件复制这条 npx 命令。咱们可以先停掉当前的这个 Harness 运行它,因为我已经安装过所以呢它提示我已经是最新版本。

大家可能在初次安装的时候呢会看到不同的信息,目的呢就是将其安装。我们还可以通过这个 plugin --profile web list 命令来查看已经安装的插件,下面这一步这是对于开发者来讲如果你有兴趣克隆这个代码仓库通过代码修改或者本地安装呢也可以参考下面这个命令来进行安装。

我们从正式的发布版安装这步呢就可以不需要了,接下来配环境变量先配 ID 来看看这个应用的 ID 将它复制一下粘贴过来。另一个呢就是密钥,同样的从控制台将密钥复制粘贴过来就好。

好了现在我已经将两个环境变量配置好,现在我们要做的是在这个 cordis.patch YAML 文件里面做一番小小的配置。大家在运行过一次 Harness 后呢会有这么一个 patch 文件,打开它大家可以看到我之前已经配置过的这么一个 Lark channel。

这段配置在文档这里也有详细的一个示例,要注意的是在 App ID 和 App Secret 会引用到飞书 App ID、飞书 App Secret 这两个环境变量。大家可以任意的起名,最终在这个 patch 文件当中要用的就是你配置的两个环境变量只要保持一致就好。

那蛮巧,我在示例中用到的也叫飞书 App ID 那在这里我就要对应对其做一块修改。好保存,最为重要的一点是在这里呢确保要有 disabled 这么一个字段将其设为 false 表示启用这个插件,否则呢这个插件是禁用掉的。

那现在我们就可以退出配置就这么简单的一点点小小的配置,要注意的是如果你用的是国内版也就是飞书呢 domain 这里设为 feishu。如果你用的是海外版 Lark domain 设为 lark,就这一点小小的差异。

如果你想指定固定的工作区可以在这里通过 workspace 这个字段指定你想要它操作或者是使用的工作区。现在一切就绪我们首先打开桌面端的飞书或者 Lark,我刚才创建了个新的应用在这里打开它就是 deepseekbot。

在对话前我们当然是要将本地的 Harness 运行,回到终端这里启动。在终端输出这里大家可能会看到类似的输出这表示呢 WebSocket 已经就绪客户端已经连接成功。

那咱们现在可以开始对话了,给他打个招呼 hi 看到吗?现在呢就收到了来自于我本地运行的 Harness 的消息。这条消息大家在 Web 界面上也能看到这就是刚才我发的条消息,我现在让它解释一下这个项目是干嘛的。

我将其关联到的是 dsh-lark 这个工作区,那么解释的应该就是插件究竟做了什么。我们来发条消息验证一下吧,在飞书这里目前没有流式的实时的消息的通知状态的更新。

那大家可能好奇究竟在做什么,我们可以回到桌面上看看这个 Web 界面的 UI 这里呢正在实时的吐出消息。我们现在回到飞书这里应该能看到同样的消息,它介绍了 dsh-lark 这个工作区究竟是做什么的有非常详细的介绍。

好了现在我们端到端的就将 DeepSeek Harness 和飞书集成,那现在呢大家可以将 DeepSeek Harness 部署在自己想要的任何地方。可以是自己家用的电脑,也可以是云端的服务器。

而接下来要做的是通过飞书插件或者 Lark 插件将其集成到自己的移动设备终端,那我们在手机上就能通过飞书、通过 Lark 与 Harness 进行对话了。好了本期视频的分享就到这里吧,我会将相关链接同样的放在视频描述中感兴趣的朋友呢就在描述中取用。

大家在使用中有任何问题欢迎在代码仓库提 issue,那也祝大家 DeepSeek Harness 使用一切顺利。好了我是小木头我们下期见