mcpField
L
lark-cli-router

lark-cli-router

github.com/daymade生产力1.5k151 次安装今天更新
代码仓库

关于 lark-cli-router

供 Agent 使用的 Lark CLI 路由技能,会读取 CLI 内嵌且与版本同步的指南,再按任务选择最小指南集。它规定从运行环境检查、身份授权到结果验证的操作边界。

主要功能

  1. 01按任务选择内嵌指南
  2. 02检查 CLI 版本与运行环境
  3. 03遵循显式身份和授权要求
  4. 04通过 CLI 命令执行操作
  5. 05核对结果与缺失项

适用场景

  1. 01查找指定日期的会议录制
  2. 02处理 Lark 文档或消息任务
  3. 03执行经授权的 Lark 资源读取
  4. 04核验批量操作结果

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/daymade/claude-code-skills --skill lark-cli-router

安装后在 Claude Code 中输入/lark-cli-router确认已加载。

附带文件references/recording-lookup.mdscripts/find_recording_candidates.py

详细介绍

Lark CLI 路由器

将其用作唯一对模型可见的 Lark 入口。CLI 内嵌的 lark-* 指南是与版本同步的事实来源;此路由器会选择并加载这些指南, 而不是将其中的领域说明复制到另一个静态目录中。

边界

  • Tencent IMA 是不同的产品。将 IMA 相关说明或知识库任务路由到 ima-skill,不要在此处理。
  • 不要加载所有 Lark 指南。针对当前任务选择最少的一组匹配指南。
  • 如果 CLI 或其某个内嵌指南能够处理任务,不要绕过 lark-cli,改用浏览器自动化、原始 curl 或臆测 API 契约。

按日期查找现有录制

如果已知来源是 Feishu,且请求是按日期查找现有录制,请在搜索前阅读录制查找。 使用其限定范围的候选项辅助工具,并明确指定已授权的配置文件;若只是查找回放链接,不要启动 导入、间隙审计或 ASR。保留用户提供的分钟标记或会议 ID,并使用内嵌指南中的直接查找方式。

工作流

1. 确认运行环境

运行 lark-cli --version。如果二进制文件不存在,明确报错并说明需要 lark-cli;不要臆造其他传输方式,也不要将单独的 Skill 安装命令误认为是 CLI 二进制安装程序。

在此环境中,每次调用都要设置 LARK_CLI_NO_PROXY=1。需要稳定的 机器可读 JSON 时,也要设置 LARKSUITE_CLI_NO_UPDATE_NOTIFIER=1 和 LARKSUITE_CLI_NO_SKILLS_NOTIFIER=1,以免通知污染结果。

2. 选择内嵌指南

运行 lark-cli skills list --json。根据用户意图以及任何 URL 路径或 令牌,与返回的 name、description 和 metadata.cliHelp 进行匹配。

不要通过从指南名称中去掉 lark- 来推断 CLI 领域:有些例外, 应以 metadata.cliHelp 或指南本身为准。

根据实时描述选择指南。如果某个兼容性指南会委派给另一个 Skill,那么它仅适用于明确请求使用旧名称的情况;处理任务时应加载其规范归属指南。对于多领域请求,请根据这些描述选择工作流指南,或选择一组数量精简且顺序明确的领域指南。

3. 完整加载所选说明

执行操作前先阅读所选指南:

lark-cli skills read lark-doc
lark-cli skills read lark-doc/references/lark-doc-fetch.md

第一种形式会输出指南的 SKILL.md;第二种形式会读取被引用的文件。 阅读所选指南为当前分支标记为必需的所有文件。

内嵌读取不接受 ..。将类似 ../lark-whiteboard/references/x.md 的同级路径指针改写为:

lark-cli skills read lark-whiteboard/references/x.md

对于 Markdown 和参考文件,始终先尝试使用 lark-cli skills read。如果返回 reference ... not found,则在 ~/.agents/skills/<guide-name>/ 下解析该准确的、相对于指南的路径。对于某指南,在首次进行此类回退前, 使用主机的 SHA-256 工具确认已安装的 SKILL.md 与 lark-cli skills read <guide-name> 输出的内容逐字节一致;若不一致,必须明确报错并触发工具包刷新。这样可确保即使当前二进制未内嵌 lark-apps/creative-design/,它仍然可访问。

/scripts/ 或 /assets/ 下的机器资源从不内嵌,因此应直接在同一已安装工具包中解析。如果缺少必需文件,请停止并报告必须安装或刷新磁盘工具包;不要伪造替代内容。

4. 检查、执行并验证
  1. 将 metadata.cliHelp 视为帮助指南,而非始终可直接执行的命令。运行其中具体的命令;如果有占位符,先从已加载的指南中解析其值。如果缺少此字段,则使用指南中的命令或所选域的 --help。
  2. 优先使用匹配的 +shortcut;否则使用带类型的资源命令。
  3. 对于参数未在指南中明确说明的带类型调用,先运行 lark-cli schema <service.resource.method>。
  4. 仅当没有快捷方式或带类型的命令涵盖该端点时,才将 lark-cli api 用作文档说明的备用方式。
  5. 保留任何明确提供的 --profile;绝不猜测配置或身份。当身份至关重要或不明确时,使用 lark-cli whoami。 通过其他现有配置进行读取之前,确认该配置属于请求用户,且该配置及读取操作已获授权。始终明确指定 --profile;不要切换全局配置,也不要枚举无关账户。如果所有权未知,则跳过该候选项并报告此缺口。仅凭不同的特定应用 openId,无法判定是不同的人。
  6. 对于写入操作,如果命令支持有用的预览,则使用 --dry-run。如果高风险写入以状态码 10 退出,则展示拟执行的操作并等待人工明确确认;绝不自动追加 --yes。
  7. 区分传输完成与业务成功。仅凭进程退出码 0,不能证明请求的结果已达成;对于 JSON 输出,还要检查 ok 和错误信息。外层 ok == true 并不意味着每个项目都成功。不要检查顶层 code == 0;应根据已加载的指南解读领域结果。 对于包含关联材料的已授权会话归档,应根据每个已捕获的根消息和完整的线程回复分页确定所需内容集,包括自动展开的嵌套回复;加载当前的 lark-im 消息列表、线程列表和内容补充参考,以解读分页和回复错误。从所有原始消息内容中提取链接和附件标识,并保留父子关系;未完成的分页、遗漏的回复、已撤回的内容和被拒绝访问的资源都应明确列为缺口,状态应为 partial;仅请求概览时,范围则保持较窄。 对于批次操作,应将每个请求的资源标识与返回的项目、错误及预期结果/产物逐一核对。识别缺失、重复和未请求的项目;重复项目不能弥补缺失请求。根据请求总数统计已验证成功、明确失败和结果缺失/未知的数量,每个请求标识最多计数一次;异常情况应单独报告。如果任何请求的结果未得到验证,就报告 partial。 例如,请求了 3 个项目,其中 1 个结果已验证、1 个权限错误、1 个项目缺失,则应报告 partial: 1/3 successful, 1 failed, 1 missing,即使退出码为 0 且外层 ok == true 也是如此。
  8. 写入后,遵循所选指南中针对特定领域的验证约定。如果指南未定义验证方式,则执行范围最窄的独立读取,以证明请求的状态已发生变化。指南明确禁止顺手进行第二次查询时,应以该规定为准。报告部分结果或覆盖缺口。

出现身份验证或权限错误时,加载 lark-shared 及其内嵌的 lark-shared/references/lark-shared-identity-and-permissions.md。遵循其中针对用户/机器人和缺少权限范围的处理分支,并解读当前 CLI 的身份验证状态:

lark-cli --profile "<authorized-profile>" auth status --json

不要将 needs_refresh 归类为无法使用的登录状态。当状态表明将在下次用户 API 调用时自动刷新时,可通过明确指定 --profile 和 --as user 继续进行已获授权的常规读取;让 CLI 正常续期。不要仅为处理此状态而发起登录、申请新授权/权限范围或手动写入凭据。令牌处于就绪状态仍不能证明有权读取目标内容。 将实际的目标读取权限拒绝限定到其对应的目标、配置文件和身份,并停止该路由。不要将身份验证失败或该拒绝转变为重试循环,也不要回退到浏览器或原始 API。 这并不能证明请求用户的所有其他已获授权配置文件也被拒绝。只有在完成上述所有权/授权检查后,才能评估其他配置文件,并且必须验证其自身目标的结果,而不是假定其有权访问。

评论

支持 Markdown