omdsh-dev/dsh-lark1

dsh-lark-channel

Lark/Feishu IM bot channel for DeepSeek Harness: chats drive agents, replies and approvals return as messages and cards

AI Analysis

核心用途是将 DSH 能力接入飞书工作流。适合企业团队在飞书群或单聊中直接调用 Agent 执行任务、处理审批。

Package
dsh-lark-channel
Version
0.0.1
License
BSD-3-Clause
Last updated
Aug 14, 2026

Install

$npx -p @deepseek-ai/dsh dsh plugin --profile web add github:omdsh-dev/dsh-lark

Configuration

FieldDefaultMeaning
appId, appSecretfirst-boot QR onboardingLark/Feishu app credentials. Layering below.
domainFeishuOpen-platform domain; set https://open.larksuite.com for Lark.
cwdhost process cwdAbsolute workspace directory for chat-driven agents.
provider, modelhost agentDefaultModelModel route for chat agents.
presetroster defaultAgent preset chat agents join, when the deployment composes a roster.
sessionScopechatWhich conversation facet owns one agent session: chat (one shared agent per chat), chat-thread (one per topic thread, so parallel topics stop overwriting each other's context), chat-sender (one per person in a shared chat).
outputcotcot (native thinking process + markdown answer) or stream (typewriter card per turn).
showProcesstrueShow the agent's reasoning and tool calls; off sends the answer alone.
hideProcessWhenDonefalseLet the platform drop the process once its run finishes (cot only).
attachImagesfalsePass images on to the model. Only for a route that accepts them: one rejected image ends the conversation.
syncSlashCommandstrueRegister the chat's commands on the bot so Feishu offers them when a user types /.
denyTools['ask_user_question', 'exit_plan_mode']Tools chat agents may not call, denied per agent at execution. The default names the human-interaction tools whose answers cannot reach this channel.
requireMentiontrueIn group chats, only respond when @-mentioned.
senderAllowlist[]Open ids allowed to send direct messages; empty serves anyone the app is visible to.
groupAllowlist[]When non-empty, only these oc_… group chats are served; empty serves any group.
approvers[]Open ids allowed to answer approvals; empty lets whoever may drive that chat answer.

With nothing configured the channel serves any room the bot is added to and anyone the app is visible to. Restricting further is the deployment's call: the platform already decides who can reach the bot, and this plugin only narrows what that admits.

Credentials resolve in three layers, each overriding the one before it: entry config in the composition patch, typically !!js process.env.LARK_APP_ID; the lark-channel section of the settings document, which wins while present; and first-boot QR onboarding when neither carries one, whose result persists through the host settings service.

Configuration is read once at startup, see Limitations.