关于 lark-cli-router
供 Agent 使用的 Lark CLI 路由技能,会读取 CLI 内嵌且与版本同步的指南,再按任务选择最小指南集。它规定从运行环境检查、身份授权到结果验证的操作边界。
主要功能
- 01按任务选择内嵌指南
- 02检查 CLI 版本与运行环境
- 03遵循显式身份和授权要求
- 04通过 CLI 命令执行操作
- 05核对结果与缺失项
适用场景
- 01查找指定日期的会议录制
- 02处理 Lark 文档或消息任务
- 03执行经授权的 Lark 资源读取
- 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. 检查、执行并验证
- 将
metadata.cliHelp视为帮助指南,而非始终可直接执行的命令。运行其中具体的命令;如果有占位符,先从已加载的指南中解析其值。如果缺少此字段,则使用指南中的命令或所选域的--help。 - 优先使用匹配的
+shortcut;否则使用带类型的资源命令。 - 对于参数未在指南中明确说明的带类型调用,先运行
lark-cli schema <service.resource.method>。 - 仅当没有快捷方式或带类型的命令涵盖该端点时,才将
lark-cli api用作文档说明的备用方式。 - 保留任何明确提供的
--profile;绝不猜测配置或身份。当身份至关重要或不明确时,使用lark-cli whoami。 通过其他现有配置进行读取之前,确认该配置属于请求用户,且该配置及读取操作已获授权。始终明确指定--profile;不要切换全局配置,也不要枚举无关账户。如果所有权未知,则跳过该候选项并报告此缺口。仅凭不同的特定应用 openId,无法判定是不同的人。 - 对于写入操作,如果命令支持有用的预览,则使用
--dry-run。如果高风险写入以状态码10退出,则展示拟执行的操作并等待人工明确确认;绝不自动追加--yes。 - 区分传输完成与业务成功。仅凭进程退出码
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也是如此。 - 写入后,遵循所选指南中针对特定领域的验证约定。如果指南未定义验证方式,则执行范围最窄的独立读取,以证明请求的状态已发生变化。指南明确禁止顺手进行第二次查询时,应以该规定为准。报告部分结果或覆盖缺口。
出现身份验证或权限错误时,加载 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。
这并不能证明请求用户的所有其他已获授权配置文件也被拒绝。只有在完成上述所有权/授权检查后,才能评估其他配置文件,并且必须验证其自身目标的结果,而不是假定其有权访问。