Shortcuts:`+` 命令为什么是第一层

Shortcuts 是 lark-cli 的第一层命令,命名上统一带 +,例如:

lark-cli calendar +agenda
lark-cli im +messages-send --chat-id "oc_xxx" --text "Hello"
lark-cli docs +create --doc-format markdown --content "# Weekly Report"

它们不是 API 的简单别名,而是“面向任务”的封装。

源码位置

shortcuts/ 按业务域拆分:

目录典型能力
shortcuts/calendar日程、agenda、free/busy、会议室
shortcuts/im发消息、回复、群、媒体上传下载
shortcuts/doc / drive / wiki文档、云空间、知识库
shortcuts/base / sheets / slides多维表格、电子表格、幻灯片
shortcuts/mail邮件浏览、发送、草稿、watch
shortcuts/appsSpark/Miaoda 应用、发布、日志、指标、openapi-key
shortcuts/event事件订阅与消费

业务域里通常有大量测试文件,这很重要:shortcut 是给人和 Agent 直接调用的高层接口,任何参数命名、输出形状或安全门禁变化都会影响真实自动化。

Shortcut 的设计目的

和 generated API command 相比,Shortcut 更像“产品接口”:

维度ShortcutAPI Command
输入人类可记的参数,如 --chat-id--text接近 OAPI 的字段和 body
输出默认适合任务继续流转更接近接口响应
风险控制常内置 dry-run、提示、确认来自 metadata 的统一机制
适用高频任务、Agent 首选精确覆盖平台 API

所以 root help 才会写“Prefer a +shortcut over the raw API resource when one matches the task.” 这条规则对 Agent 尤其重要:少暴露底层字段,就少一次幻觉填参的机会。

阅读一个 Shortcut 的方法

读某个 shortcut 时按这个顺序看:

  1. shortcuts/<domain>/shortcuts.go,看它如何注册到 domain command。
  2. 找具体 +xxx 文件,看 flags、validation、dry-run、RunE。
  3. 看同名 _test.go,确认输出契约和边界条件。
  4. 回到对应 skills/lark-<domain>/SKILL.md,看 Agent 文档是否同步描述。

下一篇:生成式 API Commands