在手机上用飞书给 Mac 智能体派活并审批工具调用
29.3/100
综合分
2
GitHub 星标
—
npm 周下载
—/5
用户评分
数据截至 2026/10/3 · 周下载取自 npm 全网(含 CI / 镜像),非本站安装数;综合分由星标、活跃度与兼容性检查合成。
安装命令 · 需先装 dsh CLI 引擎
dsh plugin --profile web add wheam/dsh-feishu-remote该包不可直接 npm 安装,改从 GitHub 源安装(明细见下方安装检查)
状态速览
判定依据:实装验证 · 静态安装检查 · 自动扫描 · 仓库维护状态信任档位:需留意
是什么
dsh 原生插件 · platform
安全吗
本站尚未对该插件做风险分级
暂未覆盖,不等同于无风险
还在维护吗
更新放缓:最近一次提交在 53 天前
档位由哪些信号合成
本站实装验证(真实安装 L4 覆盖全站;L5 为运行时冒烟或实机截图,覆盖范围小于 L4) · 验证所用 dsh 版本 · 静态安装检查 · 风险分级 · 仓库维护状态。 下方各区块是它的证据明细。
⚠︎ 实装验证未通过(dependency_conflict · 2026/10/4) ——可能是验证环境差异,装前建议到 GitHub 仓库确认最近更新与 issue。
社区实装还没有人打卡 · 装过的第一个就是你
安全扫描自动 · 静态分析源码v2.7.0🔵 扫描:含敏感能力尚无人工评估展开查看扫描说明与证据 ↓
安全扫描自动 · 静态分析源码
v2.7.0静态扫描发现插件具备触达本地系统的能力:执行外部命令、读写/删除本地文件、读取剪贴板或密钥类环境变量(至少其一)。这是能力清单,不是危险判定——具体能力项与证据见下方,安装前请自行判断是否需要。
可执行外部命令读写/删除本地文件
查看扫描证据(共 12 处,展示前 12 条)
- 写入本地文件build.mjs:13
mkdirSync('lib', { recursive: true }) - 删除本地文件build.mjs:14
rmSync('lib/index.js.map', { force: true }) - 写入本地文件build.mjs:48
mkdirSync('lib', { recursive: true }) - 读取本地文件build.mjs:49
writeFileSync('lib/client.js', readFileSync('src/client.js', 'utf8')) - 写入本地文件build.mjs:49
writeFileSync('lib/client.js', readFileSync('src/client.js', 'utf8')) - 写入本地文件build.mjs:50
mkdirSync('lib/types', { recursive: true }) - 写入本地文件build.mjs:51
writeFileSync('lib/types/client.d.ts', [ - 读取本地文件build.mjs:64
if (existsSync(manifestPath)) return directory - 读取本地文件build.mjs:74
const manifest = JSON.parse(readFileSync(join(packageRoot, 'package.json'), 'utf8')) - 读取本地文件build.mjs:85
: readFileSync(licensePath, 'utf8').replace(/ ?/gu, '\n').trim(), - 写入本地文件build.mjs:99
writeFileSync('lib/THIRD_PARTY_NOTICES.txt', [ - 执行外部命令固定命令build.mjs:107
execFileSync('node_modules/.bin/tsc', ['-p', 'tsconfig.json'], { stdio: 'inherit' })
扫描于 2026/11/4(0 天前) · 范围 入口闭包 + 发布文件清单 · 来源 GitHub 仓库
静态扫描只反映源码中出现的调用,不构成安全背书;人工评估与自动扫描相互独立、互不覆盖。
依赖的 DSH / Cordis 模块
@deepseek-ai/cordis@deepseek-ai/dsh-agent@deepseek-ai/dsh-agent-default-model@deepseek-ai/dsh-agent-presets@deepseek-ai/dsh-client-connection@deepseek-ai/dsh-credentials@deepseek-ai/dsh-host-webserver@deepseek-ai/dsh-llm@deepseek-ai/dsh-session@deepseek-ai/dsh-session-persistence@deepseek-ai/dsh-settings@deepseek-ai/dsh-system-prompt给这个插件打分还没有人投票↓
用户评分
还没有人投票,来当第一个
功能亮点
- 手机派活给Mac智能体
- 审批工具调用
README
由 DeepSeek 最新模型翻译生成dsh-feishu-remote
把飞书或 Lark 变成 Mac 上 DeepSeek Harness(DSH)Web 服务的远程控制端。
你可以在手机上给本机智能体发任务、查看流式进度、批准或拒绝工具调用、切换 Workspace,并继续使用 Web GUI 中的同一批会话、模型、凭据和工具。
手机飞书 / Lark ⇅ 飞书云端(官方长连接,无需公网回调) ⇅ dsh-feishu-remote(运行在 dsh web 进程内) ⇅ DSH Agent · Session · Workspace · Web GUI
它解决什么问题
DSH 原本主要通过本机 Web GUI 使用。这个插件为已经运行的 dsh web增加一个飞书入口,适合在离开电脑后继续处理任务:
- 在飞书里发消息,任务直接进入本机 DSH;
- 智能体请求敏感工具操作时,在飞书审批卡片中批准或拒绝;
- 飞书创建的会话同时出现在 Web GUI,不会另起一套智能体服务或会话数据库;
- 私聊、普通群和话题群按稳定规则隔离会话;
- 每个聊天来源可以选择自己的 DSH Workspace;
- 一台 Mac 上可以同时运行多个、配置彼此隔离的飞书机器人。
它不是云端托管服务,也不会让关机或休眠的 Mac 继续工作。Mac、dsh web 和网络连接都必须保持可用。
展开完整文档(README 剩余 1 节)
dsh-feishu-remote 把飞书或 Lark 变成 Mac 上 DeepSeek Harness(DSH)Web 服务的远程控制端。 你可以在手机上给本机智能体发任务、查看流式进度、批准或拒绝工具调用、切换 Workspace,并继续使用 Web GUI 中的同一批会话、模型、凭据和工具。 手机飞书 / Lark ⇅ 飞书云端(官方长连接,无需公网回调) ⇅ dsh-feishu-remote(运行在 dsh web 进程内) ⇅ DSH Agent · Session · Workspace · Web GUI 它解决什么问题 DSH 原本主要通过本机 Web GUI 使用。这个插件为已经运行的 dsh web增加一个飞书入口,适合在离开电脑后继续处理任务: - 在飞书里发消息,任务直接进入本机 DSH; - 智能体请求敏感工具操作时,在飞书审批卡片中批准或拒绝; - 飞书创建的会话同时出现在 Web GUI,不会另起一套智能体服务或会话数据库; - 私聊、普通群和话题群按稳定规则隔离会话; - 每个聊天来源可以选择自己的 DSH Workspace; - 一台 Mac 上可以同时运行多个、配置彼此隔离的飞书机器人。 它不是云端托管服务,也不会让关机或休眠的 Mac 继续工作。Mac、dsh web 和网络连接都必须保持可用。插件代码与 DSH 运行在同一进程、拥有同一系统用户的权限,安装前应像审查其他本机智能体插件一样审查源码。 当前状态 本项目目前是源码安装的开发者预览版: - 精确兼容 DSH 0.1.5-rc.1,其他版本默认视为不兼容; - 核心链路已经通过自动化测试、真实 dsh web 加载和企业自建飞书应用初验; - PersonalAgent 扫码开通、多机器人、Workspace 与 Markdown Profile 已实现并通过自动化测试; - PersonalAgent 的真实 Feishu/Lark 租户全矩阵验收、双真实 App 并发验收仍待完成; - 尚未提供公开 npm 包或本项目的预构建 Release,当前需要克隆源码后本地构建。 DSH 仍处于 RC 阶段,相邻 RC 版本可能包含破坏性变化。安装、更新或启用前都必须先运行仓库内的兼容性检查。 主要能力 会话与群聊路由 | 飞书场景 | 触发规则 | DSH Session | | 私聊 | 任意用户直接发消息 | 每个私聊来源独立 | | 普通群 | 每一轮都必须由任意用户明确 @机器人 | 整个群共用一个 | | 话题群 | 每个话题第一次必须 @机器人 激活;之后该话题可免 @ | 每个话题独立 | 普通群里未 @ 的聊天不会单独启动智能体,但在下次明确 @ 时可以作为有界历史上下文注入。 未激活的话题保持静默。机器人不设个人操作者白名单:任何能联系到它的用户都可以激活话题、执行命令或驱动智能体。 远程任务体验 - 一张极简进度卡从“正在处理”更新到最终结果;完整过程仍保存在 DSH 会话中; - 工具审批卡支持按钮操作,并保留 /approve、/reject 文字兜底; - /stop 或给运行中任务卡添加 ❌ reaction 可停止当前回合; - 任务开始时可添加“敲键盘”reaction,结束后自动移除; - 支持飞书图片和文件入站,超长输出会保存到 Workspace 并作为 Markdown 文件发回飞书; - 出站请求具备并发限制、卡片更新合并、限流退避、终态优先和失败兜底。 Workspace、上下文与多机器人 - 首次使用可从 DSH Workspace Registry 选择 Workspace、创建一个末级目录,或输入绝对路径; - Workspace 绑定跨重启保存;/new 保留当前 Workspace,切换 Workspace 会开启新会话; - 每轮都会告诉模型当前群名/群类型、发言人、消息/话题标识、@对象和附件元数据; - 回复群消息时按 replyToMessageId 精确读取被回复内容,保留其中的文档标题与链接; - 可选读取最近的私聊、群聊或话题历史,作为不可信上下文发送给当前模型; - 一个插件实例可管理多个飞书 App,每个机器人独立配置凭据、可选群范围、Workspace、模型和并发; - 每个机器人可加载一份本机 Markdown Profile,作为稳定的角色和工作方式说明; - 可选配合 dsh-session-groups 在 Web 左栏按飞书来源分组。 安装 1. 准备环境 当前安装流程面向 macOS 上的 DSH Web/Mac App 环境,需要: - DeepSeek Harness 0.1.5-rc.1; - Node.js 22 或更高版本; - pnpm 11.22.0(dsh plugin 本身也会调用 pnpm); - 能访问飞书/Lark 的网络。 克隆本仓库: mkdir -p ~/Developer/dsh-plugins cd ~/Developer/dsh-plugins git clone https://github.com/wheam/dsh-feishu-remote.git cd dsh-feishu-remote 如果仓库尚未公开,请使用你获授权的 SSH 地址克隆。 确认工具版本: node --version corepack enable corepack prepare pnpm@11.22.0 --activate pnpm --version 2. 检查 DSH 兼容性 ./scripts/check-dsh-compat.sh GO 脚本会同时检查终端 PATH 和 Mac App 实际使用的 /opt/homebrew/bin/dsh;两者不一致时,以 Mac App 使用的版本为准。 3. 安装依赖并构建 pnpm install --frozen-lockfile pnpm run check pnpm run check 会依次执行 TypeScript 检查、契约测试和 bundle 构建,并生成未提交到 Git 的 lib/index.js、lib/client.js、类型声明与第三方许可文件。 4. 链接到 Web profile 仍在 dsh-feishu-remote 仓库目录中执行: DSH_FEISHU_PLUGIN_DIR="$PWD" dsh plugin --profile web add "link:$DSH_FEISHU_PLUGIN_DIR" 然后完整重启 DSH Web 服务: - 使用 DeepSeek Harness Mac App:退出并重新打开 App; - 从终端运行:停止旧进程后重新执行 dsh web。 不要同时启动两个占用同一端口的 dsh web 进程。 5. 选择已有机器人或创建新机器人 在 Host 本机打开 Web GUI: 1. 进入设置中的「飞书遥控(dsh-feishu-remote)」; 2. 已经创建过 PersonalAgent 时,点击「选择并绑定已有机器人」;首次使用也可以点击「创建并绑定新机器人」; 3. 用手机飞书或 Lark 扫码; 4. 选择已有机器人或确认创建新机器人,并核对权限、事件和卡片回调; 5. 等待页面显示「已连接」。 扫码入口只允许从 Host 本机的 localhost 页面调用。通过 LAN 或 Tailscale 打开的设置页可以查看状态,但不能发起创建或补权,这是防止远端页面接触短期二维码和本机凭据写入能力的安全边界。 选择已有机器人时不会重复创建应用;创建新机器人会生成归扫码者所有的 PersonalAgent。两种流程都会将 App Secret 写入 DSH 管理的 ~/.dsh/.credentials.yaml,操作者无需登记 open_id 且固定对所有人开放。Secret 不会返回浏览器,也不会写入 cordis.patch.yml。 卸载插件不会删除飞书侧应用、~/.dsh/.credentials.yaml 中的凭据或插件状态。重新安装后,如果原设置仍在,插件会直接重连原机器人;如果设置已被清空,可再次扫码并选择原来的机器人,无需再创建一个。 PersonalAgent 扫码链路已完成自动化验证,但真实租户全矩阵仍在验收中。如果租户不支持所需能力、扫码失败,或你已经有企业自建应用,请使用下面的手工配置。 6. 验证安装 完成下面所有检查后,才能认为安装成功: 1. dsh --profile web --dump-config 能看到启用的 dsh-feishu-remote; 2. Web GUI 能正常打开,浏览器控制台没有 Failed to load plugins 或 slot/key 错误; 3. 「飞书遥控」设置页能显示、保存并热重载; 4. 在飞书私聊机器人发送 /help,能收到命令说明; 5. 发送一个普通任务,结果出现在飞书,同时 Session 出现在 Web GUI; 6. 再执行一个需要工具审批的任务,验证批准和拒绝按钮。 完整验收红线见 docs/12-plugin-install-checklist.md。仅有 --dump-config 成功或 Web 页面返回 HTTP 200,都不足以证明前端插件契约已经正确加载。 手工配置已有飞书应用 扫码不可用时,可以绑定现有的企业自建应用或 PersonalAgent。 飞书开放平台配置 在飞书开放平台为应用启用机器人,并配置: | 类型 | 名称 | 用途 | | 权限 | im:message.p2p_msg:readonly | 接收私聊 | | 权限 | im:message.group_at_msg:readonly | 接收群内 @机器人 | | 权限 | im:message:send_as_bot | 发送消息和卡片 | | 权限 | im:message:readonly | 读取私聊历史和显式回复目标 | | 权限 | im:message.group_msg | 接收普通群消息,并读取群/话题历史及群内回复目标 | | 权限 | im:message.reactions:write_only | 添加和删除工作状态 reaction | | 事件 | im.message.receive_v1 | 接收消息事件 | | 回调 | card.action.trigger | 处理审批与 Workspace 卡片 | 事件和卡片回调使用长连接,无需公网 URL。企业自建应用需要创建并发布新版本,权限和订阅才会真正生效。更细的控制台步骤见 docs/09-onboarding.md。 保存 Secret 把 Secret 写入 DSH 管理的凭据文件,而不是仓库或普通配置文件: ~/.dsh/.credentials.yaml version: 1 refs: DSH_FEISHU_APP_SECRET: "替换为真实 App Secret" chmod 600 ~/.dsh/.credentials.yaml 如果文件已有其他凭据,请保留现有的 version、refs 和 records 内容,只增加对应引用;不要覆盖整个文件。也可以让启动 dsh web 的进程继承同名环境变量,但环境变量优先级更高且在 GUI 中只读,不适合作为长期管理方式。 配置插件 在 ~/.dsh/profiles/web/cordis.patch.yml 中覆盖插件配置,或在 Web GUI 的高级设置中填写同样字段: - id: dsh-feishu-remote disabled: false config: appId: cli_xxxxxxxxxxxxx appSecretRef: DSH_FEISHU_APP_SECRET brand: feishu allowedChatIds: [] requireMention: true 操作者默认且固定对所有人开放,不需要填写用户 open_id。allowedChatIds 为空表示不额外限制群范围;非空时只限制机器人在哪些群接受任务,不影响私聊。保存后重启或等待设置热重载,再发送 /help 验证。 常用命令 | 命令 | 作用 | | /help | 显示远程控制说明 | | /status | 查看连接、模型、Workspace 和 Session 状态 | | /workspace | 查看、选择或创建 Workspace | | /workspace current | 查看当前绑定 | | /workspace use <路径或名称> | 使用已有目录或已登记 Workspace,并开启新 Session | | /workspace create <完整路径> | 创建一个末级目录、绑定并开启新 Session | | /new | 下一条普通消息开启全新 Session,保留当前 Workspace | | /sessions | 列出当前飞书来源、当前 Workspace 内的历史 Session | | /resume <session-id> | 恢复当前范围内的历史 Session | | /steer <内容> | 给正在运行的 Agent 补充或纠正信息 | | /stop | 停止当前回合,保留已确认的后续消息 | | /approve / /reject | 处理当前一次工具审批的文字兜底 | | /commands | 查看允许透传的 Harness 原生命令 | 未知斜杠命令默认拒绝。只有出现在 commandAllowlist 中的 Harness 原生命令才会透传。 Workspace 使用方式 插件不会把自身安装目录当作新会话的默认工作目录。每个私聊、普通群或话题会独立绑定 DSH Workspace: 1. 若配置了可用的 defaultWorkspace,首次任务优先绑定它; 2. 否则当 Registry 只有一个可用 Workspace 时自动绑定; 3. 有多个 Workspace 时发送选择卡片,并暂存当前任务; 4. 也可发送 /workspace use ~/Projects/demo 或 /workspace create ~/Projects/demo; 5. 绑定完成后,暂存的第一条任务会自动继续。 /workspace create 只创建最后一级目录,父目录必须已经存在。用户主目录、磁盘根目录等过宽路径不能直接绑定。workspacePolicy: locked 会强制所有来源使用 defaultWorkspace,并统一拒绝切换。 多机器人与 Markdown Profile 单机器人工作正常后,在 Host 本机 Web GUI 点击「添加机器人」即可继续新增。界面会在后台自动迁移旧配置,原机器人继续使用 legacy Session 命名空间;新机器人使用包含 App 身份的隔离命名空间,不会替换或重复显示原机器人。 添加时可以选择自己已有的 PersonalAgent,也可以扫码创建一个新的。插件会自动保存 App Secret、生成独立凭据引用、开放所有操作者并建立长连接;不需要手抄 App ID 或 Secret。只有凭据已由外部单独管理的自建应用,才使用「手动配置(高级)」。 多机器人模式中: - bot.id、appId、状态文件、附件目录、Session、审批和限流彼此隔离; - 每个机器人使用独立 appSecretRef; - 每个机器人可以指定 defaultWorkspace、workspacePolicy、provider、model 和 agentPreset; - profileFile 是本机管理员维护的 UTF-8 Markdown 文件,建议 2–8 KiB,硬上限 32 KiB; - 多机器人上下文后端固定为 sdk,不能配置共享的 lark-cli profile; - maxTotalLiveAgents 控制所有机器人合计并发,maxLiveAgents 控制单机器人并发;0 表示不限。 Profile 会作为 system prompt 的一部分发送给所配置的模型提供商。不要在其中放 App Secret、API key、密码或不希望发送给模型的内容。 手工配置示例: - id: dsh-feishu-remote disabled: false config: maxTotalLiveAgents: 12 bots: - id: project-bot enabled: true appId: cli_xxxxxxxxxxxxx appSecretRef: DSH_FEISHU_PROJECT_SECRET defaultWorkspace: /Users/me/Projects/example workspacePolicy: locked profileFile: /Users/me/.dsh/bot-profiles/project-bot.md agentPreset: standard contextBackend: sdk maxLiveAgents: 4 - id: general-bot enabled: true appId: cli_yyyyyyyyyyyyy appSecretRef: DSH_FEISHU_GENERAL_SECRET defaultWorkspace: /Users/me/Projects workspacePolicy: default contextBackend: sdk 多机器人迁移、身份隔离、回滚与验收矩阵见 docs/17-multi-bot-workspace-profile.md。 常用配置参考 以下字段均可用于单机器人;除 bots、maxTotalLiveAgents 外,大部分也可放在 bots[] 的每个机器人中。 | 字段 | 默认值 | 说明 | | appId | DSH_FEISHU_APP_ID 环境变量 | 飞书 App ID | | appSecretRef | DSH_FEISHU_APP_SECRET | DSH 凭据引用名,不是 Secret 本身 | | brand | feishu | feishu、lark 或兼容别名 larkoffice | | allowedChatIds | [] | 可选群白名单;空列表不限制已加入的群 | | requireMention | true | 话题首次是否需要 @;普通群始终每轮需要 @ | | defaultWorkspace | 空 | 首次绑定使用的 Workspace 路径、ID 或名称 | | workspacePolicy | default | default 允许切换;locked 强制默认 Workspace | | provider / model | DSH 当前默认 | 覆盖机器人使用的模型选择 | | agentPreset | DSH 当前默认 | 覆盖 Agent preset | | profileFile | 空 | 本机 Markdown Profile 路径 | | maxLiveAgents | 0 | 单机器人最大 live/provisional Agent 数,0 不限 | | commandAllowlist | [] | 可透传的 Harness 原生命令名,不带 / | | enableApprovals | true | 启用飞书工具审批闭环 | | interactiveTimeoutMs | 600000 | 审批等待时间 | | progressCards | true | 启用可更新的任务进度卡 | | progressUpdateMs | 600 | 普通进度更新合并窗口,最小 250 ms | | workingReaction | true | 任务运行时添加“敲键盘”reaction | | maxInboundFileBytes | 20971520 | 入站文件上限,默认 20 MiB | | maxOutboundFileBytes | 31457280 | 出站文件上限,默认 30 MiB | | cardBodyMaxChars | 12000 | 单卡正文预算 | | contextMode | auto | auto 开启最近聊天历史回填;off 关闭该历史窗口(不关闭当前会话元数据和明确回复对象) | | contextBackend | auto | 单机器人可用 auto、cli、sdk;多机器人必须 sdk | | contextMaxMessages | 150 | 群聊/话题历史消息总上限 | | contextMaxChars | 100000 | 群聊/话题历史字符总上限 | | contextP2pMaxMessages | 80 | 私聊额外消息上限 | | contextP2pMaxChars | 50000 | 私聊额外字符上限 | | contextTimeoutMs | 10000 | 单次上下文读取超时 | | contextIncludeBot | true | 上下文中是否包含机器人历史回复 | | statePath | ~/.dsh/feishu-remote/<appId>.json | 路由、Workspace 绑定和水位状态 | | inboundDir | ~/.dsh/feishu-remote/inbox | 入站附件目录;多机器人默认再按 App ID 隔离 | 旧版 cwd 与 workspaceRoot 只为已有部署保留,必须成对出现。新部署应使用 DSH Workspace,不要再用这两个字段固定工作目录。 单机器人还支持以下环境变量: - DSH_FEISHU_APP_ID - DSH_FEISHU_APP_SECRET - DSH_FEISHU_ALLOWED_CHAT_IDS(逗号分隔) - DSH_FEISHU_CLI_PATH 多机器人应使用各自的 appSecretRef,不要依赖共享的 legacy 环境变量。 隐私与安全边界 - 操作者固定开放。 插件不按用户 open_id 做白名单判断;任何能联系到机器人的用户都可以发起任务。旧配置中的 allowedOpenIds、allowAllUsers 以及同名环境变量只为升级兼容而接受,运行时会忽略。 - 群范围可选收窄。 allowedChatIds: [] 表示不限制机器人已加入的群;非空列表只接受指定群。 - 审批只授权一次。 审批卡与操作者、聊天、Session 和截止时间绑定,重复或越权操作被拒绝。 - 聊天历史会发给模型。 开启 contextMode: auto 后,被读取的群聊、话题和私聊历史会注入 DSH durable history,并发送给当前模型提供商。它们被标记为不可信上下文,但插件只做密钥形态脱敏,不承诺清理个人信息或业务敏感内容。 - 当前飞书场景会发给模型。 每个普通任务都会携带群名/ID、会话类型、发言人、消息/话题标识、@和资源元数据;用户使用飞书“回复”时,还会按 ID 读取并携带被明确选择的那一条消息。 原始事件、tenant key、完整成员列表和无关身份字段不会进入模型。字段清单与降级规则见 docs/19-feishu-runtime-context.md。 - Profile 会发给模型。 profileFile 正文进入 system prompt;状态页只显示路径、大小和 digest。 - Secret 不进普通设置。 扫码写入 DSH credential provider;手工配置也应只写 ~/.dsh/.credentials.yaml,并保持 0600 权限。 - 配置路径等同本机权限。 feishuCliPath 可以指定任意可执行文件,只应由受信任的本机管理员修改,Web GUI 不开放该字段。 - 本机插件不是安全沙箱。 DSH Agent 工具与插件进程使用同一 OS 用户;高隔离需求应在操作系统或独立主机层实现。 如需关闭未被当前消息明确选择的最近聊天历史窗口,设置 contextMode: off。当前会话元数据和用户主动回复的目标消息仍属于当前输入,会继续注入。敏感部署建议同时配置非空 allowedChatIds,只允许指定群使用。 更新、卸载与数据保留 本地 link: 安装的更新流程: git pull --ff-only pnpm install --frozen-lockfile pnpm run check 然后完整重启 dsh web。链接安装直接使用当前仓库中的 lib/,不需要再次执行 dsh plugin add。 如果 ./scripts/check-dsh-compat.sh 输出 NO-GO,不要继续启用更新后的插件。 卸载插件: bash dsh plugin --profile web remove dsh-feishu-remote 卸载后重启 dsh web。卸载不会自动删除以下数据: - ~/.dsh/feishu-remote/ 中的状态和附件; - 已创建的 DSH Session 与 Workspace; - ~/.dsh/.credentials.yaml 中的凭据; - 飞书侧已经创建的应用; - Markdown Profile 文件。 这些数据需要由管理员单独确认后再清理,插件不会执行不可逆删除。 故障排查 设置页没有出现 bash test -f lib/index.js && echo "bundle exists" dsh --profile web --dump-config 确认已经运行 pnpm run check、插件行未被禁用,并在浏览器 DevTools 控制台检查 Failed to load plugins 或 slot/key 错误。RC 版本不一致时先停止操作,不要只改 peerDependencies 绕过兼容闸。 机器人没有响应 依次检查: 1. 设置页是否显示已连接; 2. 非空 allowedChatIds 是否包含当前群; 3. 普通群本轮是否明确 @机器人,话题是否已由任意用户激活; 4. 飞书应用版本是否已经发布并包含消息事件; 5. Host 日志是否出现凭据、权限、长连接或限流错误。 卡片按钮没有反应 确认应用已订阅 card.action.trigger 并发布新版本。临时使用 /approve 或 /reject 处理当前审批。重复点击、其他用户点击、跨 Session 点击和过期卡片都会被安全拒绝。 上下文或 reaction 不工作 上下文回填需要历史消息权限,普通群完整上下文需要 im:message.group_msg;工作状态 reaction 需要 im:message.reactions:write_only。这些增强权限缺失时核心消息链路仍可工作,日志会说明降级。 更完整的故障与验收步骤见 docs/09-onboarding.md 和 docs/12-plugin-install-checklist.md。 开发 bash pnpm install --frozen-lockfile pnpm run typecheck pnpm run test pnpm run build pnpm run check | 命令 | 内容 | | pnpm run typecheck | tsc --noEmit | | pnpm run test | Vitest 契约测试,不需要真实飞书凭据 | | pnpm run build | esbuild Host bundle、复制 Web client、生成类型与第三方许可 | | pnpm run check | 依次执行 typecheck、test、build | 无真实凭据的文本链路冒烟可使用 config.appId: mock。真实审批按钮、飞书租户权限、普通群历史和多 App 隔离仍应按部署验收矩阵测试。 进一步阅读 | 文档 | 内容 | | docs/03-architecture.md | 总体架构与关键设计决策 | | docs/09-onboarding.md | 手工创建飞书应用、权限与真实租户验收 | | docs/12-plugin-install-checklist.md | 安装、更新和 DSH 升级的强制检查清单 | | docs/13-feishu-context.md | 历史上下文回填、安全边界与数据流 | | docs/16-personal-agent-qr-onboarding.md | PersonalAgent 扫码开通设计与验收矩阵 | | docs/17-multi-bot-workspace-profile.md | 多机器人、Workspace、Profile、迁移与回滚 | | docs/11-incident-rc7-keyed-slot.md | DSH RC 前端契约事故记录与永久防线 | 其余 docs/ 文件记录需求、调研、实现计划和多轮 review,主要面向维护者。 许可证 MIT。项目保留参考实现的版权声明;bundle 的第三方依赖许可在构建生成的 lib/THIRD_PARTY_NOTICES.txt 中。
预览分享卡片长什么样 ↓
分享 · DeepSeek Harness Hub
wheam/dsh-feishu-remote
在手机上用飞书给 Mac 智能体派活并审批工具调用
相关插件 · 平台集成
智能体工程课walkinglabs/learn-harness-engineering
一门项目制课程,教你搭建环境、管理状态、做验证、加控制机制,让 AI 编程智能体稳定干活。
★ 21,155已汉化DSH
71.7
视频翻译配音liuzhao1225/YouDub-webui
开源视频本地化工作台:导入视频,识别、翻译并逐句克隆原声,生成字幕和配音成片。
★ 5,792已汉化Cordis
71.4
失败经验库Ikalus1988/MisakaNet
📚 零依赖、由 git 支撑的微课程库,让 AI 智能体异步分享并检索经过验证的调试经验。| https://misakanet.org
★ 550已汉化DSH
71.2
IM 机器人接入xmanrui/dsh-im
让 DeepSeek Harness 触手可及 Connecting DeepSeek Harness
★ 3,170已汉化DeepSeek 客户端
71
桌面智能体工作区freestylefly/wesight
WeSight 是开源桌面控制台,面向本地 AI 智能体。它帮你安装或复用 Claude…
★ 933已汉化MCP
71
中国平台研究引擎Jesseovo/last30days-skill-cn
给 AI Agent 的中文互联网研究 Skill:检索 8 大平台最近 30…
★ 2,041已汉化DSH
70.7
这是你的仓库?认领条目