voyager
Nagi-ovo
Enhancement suite for Gemini, AI Studio, Claude & ChatGPT — plus a prompt manager for any websites, DeepSeek Harness included. / 面向 Gemini、AI Studio、Claude 与 ChatGPT 的增强套件;其中的提示词管理器可用于任意网站,如 DeepSeek Harness。
PROJECT TOPICS
INSTALL REFERENCE
dsh plugin --profile web add github:zjuatri/dsh-feishu-plugin
该命令指向仓库当前默认分支;尚无绑定当前 commit 的完整验证结果。
PROJECT README
把飞书任务和机器人所在群聊带进 DeepSeek Harness(DSH) Web:查看任务、阅读群消息、用模型总结待办,并把需要继续处理的内容一键放进当前对话输入框。
这是 DSH 的第三方插件,需要已经能正常运行的
dsh web。Node.js 版本需为 20 或更高。
如果终端提示找不到 dsh,这是正常的:它不是本仓库提供的命令,而是独立包 @deepseek-ai/dsh 的 CLI。无需全局安装也可以使用:
npx @deepseek-ai/dsh plugin --profile web add D:\desktop\repos\dsh-feishu-plugin
经常使用 DSH 时再考虑全局安装:
npm install -g @deepseek-ai/dsh
dsh plugin --profile web add D:\desktop\repos\dsh-feishu-plugin
注意参数顺序是 dsh plugin --profile web add <路径>,不是 dsh plugin add --profile web <路径>。下文的 apply-profile.mjs 是本仓库提供的等效安装方式,适合在克隆后的仓库里开发和验证。
feishu_tasks 和 feishu_summarize,可在 DSH 对话中供模型调用。在仓库根目录运行:
# 链接 DSH 运行时依赖;可安全重复执行
node scripts/bootstrap-deps.mjs
# 安装前自检
node scripts/check.mjs
# 写入 DSH 的 web profile;会先备份原配置
node scripts/apply-profile.mjs
然后重启 dsh web 并刷新浏览器。首次安装必须重启;以后改 lib/index.js 也需要重启,改 lib/client.js 刷新页面即可。
如需预览而不修改配置,使用:
node scripts/apply-profile.mjs --dry-run
详细的安装、隔离验证和自定义 DSH 路径说明见 docs/install.md。
在飞书开发者后台创建“企业自建应用”,完成以下事项:
| 权限 | 用途 | 是否必需 |
|---|---|---|
im:chat:readonly |
获取机器人所在的群 | 是 |
im:message:readonly |
读取消息 | 是 |
im:message.group_msg |
读取群内所有消息 | 是,群聊总结 |
task:tasklist:read |
读取任务清单 | 是,任务列表 |
task:task:read |
读取“我负责的”任务 | 是,登录后 |
task:task:write |
完成或恢复任务 | 是,使用完成按钮时 |
offline_access |
获得刷新令牌,保持登录 | 建议 |
如果之后才新增权限,需要在插件中重新授权,已有令牌不会自动拥有新权限。
重启后,在 DSH 中打开:设置 → 插件 → 插件配置 → feishu-plugin,填入飞书应用的 App ID 与 App Secret 并保存。
也可以命令行配置:
node scripts/apply-settings.mjs --app-id cli_xxx --app-secret your_secret
node scripts/apply-settings.mjs --show
配置会写入 $DSH_HOME/settings.yaml 的 feishu-plugin 段,并且热加载,无需再次重启。密钥不会通过读取接口或设置表单回显。
点击左侧边栏底部的“飞书”:
| 位置 | 你能做什么 |
|---|---|
| 会话内 | 打开右侧“飞书”面板;“加入输入框”可把内容追加到当前对话草稿。 |
| 首页 | 打开完整飞书页面;可以看任务和群聊,但没有当前会话输入框可插入。 |
在面板中:
“加入输入框”插入的内容刻意很短:任务只插一行 - [ ] 任务名(截止 …)[清单: …],消息插一行 > [HH:mm]昵称: 内容 这样的引用行。任务的描述不会插入——agent 建的任务常把会议、优先级、妙记 token、来源 uuid 全塞进描述里,整段贴进输入框会把你要办的那句话淹掉;描述在飞书里原本就在,面板行上也不显示。
只配置 App ID / App Secret 后,插件就能以机器人身份读取任务清单与机器人所在群聊。以下操作必须使用你的 user_access_token:
授权通常只需一次。令牌过期后插件会尝试自动刷新。
飞书要求 OAuth 重定向地址预先加入应用白名单,且常常不接受本机 127.0.0.1 地址。若你的应用回调地址是已有的公网地址,按下面做:
oauthRedirectUri 中填写该白名单地址。即使回调页面本身报错也不影响这一步:只要 URL 中还有 code,就可以兑换。授权码有效期短且只能使用一次,建议立即粘贴。
| 配置 | 默认值 | 说明 |
|---|---|---|
appId / appSecret |
空 | 飞书应用凭证,必填 |
baseUrl |
https://open.feishu.cn |
Lark 国际版使用 https://open.larksuite.com |
oauthRedirectUri |
空 | 必须与飞书后台白名单完全一致 |
maxMessages |
200 |
每次总结读取的消息数,范围 10–2000 |
summaryProvider / summaryModel |
空 | 留空时使用 DSH 当前默认模型 |
toolsEnabled |
true |
是否提供两个模型工具 |
命令行修改单项示例:
node scripts/apply-settings.mjs --set "maxMessages=300"
node scripts/apply-settings.mjs --set "baseUrl=https://open.larksuite.com"
注意:设置表单或命令中留空表示“不修改”,不是清空配置。 如要移除一个已写入的值,请直接编辑 $DSH_HOME/settings.yaml。
确认机器人能力已发布、机器人已被加入目标群,并已申请 im:chat:readonly、im:message:readonly 和 im:message.group_msg。群聊历史只会读取机器人所在群。
先点击“登录飞书”完成用户授权,并确认已发布 task:task:read。未登录时插件会退回到任务清单,这属于正常行为。
这项操作会写入飞书,必须用户登录并拥有 task:task:write。权限后来补开时,请重新授权。
检查 oauthRedirectUri 与飞书后台“安全设置 → 重定向 URL”是否逐字符一致。不能使用本机地址时,改用已备案的公网回调地址并走上面的复制粘贴兑换流程。
用 node scripts/apply-settings.mjs --show 确认写入位置和内容;如果刚刚安装插件,请先重启一次 dsh web,使插件的设置区注册完成。
node scripts/check.mjs # 语法、依赖和测试
node scripts/panel-check.mjs # 在隔离的 DSH home 中验证插件装载和接口
node scripts/panel-check.mjs --ui # 额外尝试无头浏览器 UI 验证
开发时可启动本地假飞书服务,不需要真实租户:
node scripts/stub-feishu.mjs 3098
项目的 HTTP 接口位于同源路径 /plugin/feishu/api/*;源码职责划分和完整安装接线请查看 docs/install.md 与 lib/ 目录注释。
maxMessages 调到 2000。MIT
CLASSIFICATION EVIDENCE
系统优先读取 GitHub Topics,再与站内分类词典和词根规则比对。当前命中: feishu、lark、chat-summary。