lark-cli Shortcut 深度对齐矩阵
12 个 agent 逐条深读 lark 每个 shortcut 的智能实现(Validate/DryRun/ID解析/投影/多步/分页),映射钉钉、标注保真度差距。
2026-07-13 最新源码复核
对比基线:
- DWS:
feature/shortcut@b7c14c1(已合并 origin/main@390b611)
- lark-cli:
main@e96c4fa5
- lark-cli 本轮更新范围:
f495cbb1..e96c4fa5
本轮 lark-cli 没有增加或删除生产 shortcut 命令,变化集中在已有命令的实现保真度:统一 --json shorthand、文档分享锚点读取、whiteboard 本地文件安全内联、VC meeting events 的 identity/timeline/NDJSON 投影、Apps DB 环境自动选择、Drive push 错误分类,以及 Wiki token 解析兼容性。因此下方历史 gap 清单的命令面没有因本轮 pull 新增条目,但若要追平体验,以下实现差距需要上调优先级。
当前命令面快照
| 指标 |
数量 |
说明 |
| DWS built-in shortcut |
366 |
16 个服务;运行时 registry 实测 |
| lark-cli primary shortcut |
363 |
19 个服务;排除 _test.go 与 42 个 sheets/backward 隐藏兼容别名 |
| 双方可映射服务内命令 |
DWS 313 / lark 324 |
12 组产品映射,不含平台特有服务 |
| 同服务同名命令 |
50 |
仅是名称交集,不等于语义等价或保真度一致 |
| DWS 平台特有 shortcut |
53 |
attendance / ding / oa / report 等 |
| lark 平台特有 shortcut |
39 |
okr / vc / slides / markdown / whiteboard / note / event |
双方重叠服务的命令面如下;“同名”只用于定位,能力判断仍需看参数、验证、多步编排、输出投影和 dry-run:
| 产品映射 |
DWS |
lark |
同名 |
| aitable ↔ base |
82 |
87 |
31 |
| calendar ↔ calendar |
23 |
10 |
3 |
| chat ↔ im |
89 |
21 |
2 |
| contact ↔ contact |
16 |
2 |
1 |
| devapp ↔ apps |
30 |
63 |
3 |
| doc ↔ doc |
19 |
14 |
1 |
| drive ↔ drive |
9 |
26 |
3 |
| mail ↔ mail |
10 |
21 |
0 |
| minutes ↔ minutes |
13 |
9 |
1 |
| sheet ↔ sheets |
2 |
42 |
0 |
| todo ↔ task |
13 |
17 |
2 |
| wiki ↔ wiki |
7 |
12 |
3 |
最新优先差距
- 文档与白板资源保真度:lark
doc +fetch/+update 已支持分享链接 selection anchor、HTML5 block 资源引用,以及相对路径内的 SVG/Mermaid/PlantUML whiteboard 安全内联。DWS 具备文档读写和媒体原子能力,但缺少统一引用解析、路径门禁和资源回写编排。
- Sheets typed workflow:lark 的 typed table、批量样式、维度移动/冻结、range copy/fill/sort、workbook import/export 仍是最大可建设缺口。DWS 原生 helper 已有部分底层能力,但 shortcut 层只有 2 个精选命令,缺少跨 sheet 分块写、类型推断和 partial rollback。
- Drive 本地同步体验:lark
+push/+pull/+sync/+import/+export 带批量计划、错误分类、路径保护和版本操作;DWS 目前偏原子上传/搜索,缺完整目录同步和可恢复批处理。
- Mail 高保真写链路:lark 对 send/reply/reply-all/forward 提供模板、签名、HTML lint、线程头、定时和附件编排;DWS 有底层发信/草稿工具,但 smart shortcut 尚未覆盖这些组合体验。
- 消息资源与统一搜索:DWS 已有
+search-msg/+chat-messages/+thread-replies/+at-me 等拆分场景,lark +messages-search 仍在统一多维过滤、会话上下文富化、reaction/资源下载方面更完整。
- 会议事件输出:lark
vc +meeting-events 本轮新增当前身份、actor、会议状态推断、timeline 与 NDJSON 元数据。DWS 最新 main 已有更强的实时 event bus 和个人事件订阅,但尚未沉淀成同等级 shortcut 投影;这是“底层能力领先、shortcut UX 未收口”。
不建议机械追平
- lark Apps DB、Spark 发布、Lark Drive/Wiki 特有对象模型属于平台差异,不应只为同名率复制。
- DWS 的 attendance、DING、OA、report、agoal 和最新 event bus 是钉钉侧差异化能力,应优先做场景化组合,而不是追求 363 vs 366 的数字对齐。
- DWS 已具备按姓名解析、跨产品智能编排、失败回滚和 usage→自定义 shortcut 沉淀闭环,这些能力无法由同名命令统计体现。
注:下方“361 条”汇总是上一轮逐条人工分类的历史基线;当前 lark-cli primary shortcut 是 363 条,另有 42 个不应重复计为能力的 Sheets 隐藏兼容别名。历史条目的判断仍可复用,但总量数字不能直接代表本轮最新覆盖率,后续应把新增条目按 covered-1to1 / covered-smart / gap-buildable / no-dingtalk-tool 四类补录。
汇总(361 条 lark shortcut)
| dws_status |
数量 |
含义 |
| covered-1to1 |
144 |
lark 组合在钉钉塌缩成 1:1,封装层已覆盖 |
| no-dingtalk-tool |
127 |
钉钉无对应工具,客观不可对齐 |
| gap-buildable |
41 |
钉钉有工具、值得补成智能 shortcut(建设目标);已建 minutes +detail/+replace-batch、base +record-share-links/+resolve-base、im +thread-replies/+chat-messages/+chat-list、task +related-tasks |
| covered-smart |
49 |
已建智能 shortcut / 部分覆盖 |
🎯 gap-buildable 目标清单(原 49 条,已建 8 → 剩 41,按服务)
已落地:minutes +detail(✅ smart +detail)、minutes +word-replace(✅ smart +replace-batch,批量+去重)、base +record-share-link-create(✅ smart +record-share-links,>20 去重+分片+合并)、im +threads-messages-list(✅ smart chat +thread-replies,list_topic_replies + 投影)、im +chat-list(✅ smart chat +chat-list)、task +get-related-tasks(✅ smart todo +related-tasks,三角色并集+去重+投影)。
im → chat(5)
| lark 命令 |
risk |
保真度差距(钉钉有 tool,缺什么智能) |
+chat-list ✅ |
read |
已建 smart chat +chat-list:list_all_conversations + 默认仅群聊 + --types group/p2p 当前页过滤 + --exclude-muted + page-size/page-token 别名 + openConversationId/name/conversationType 投影。剩余未做:sort/sort-type、bot 身份 p2p 剥离(DWS 无对应身份模型) |
+chat-messages-list ✅ |
read |
已建 smart chat +chat-messages:群/单聊 list_conversation_message_v2 / list_individual_chat_message 互斥 + sender/text/time 投影。剩余未做:reactions 富化、资源下载 |
+chat-search |
read |
dws 无群名模糊搜索v2对应 tool(search_common_groups/find 语义不同),缺 query规范化、mode映射、mute过滤、meta投影 |
+messages-resources-download |
write |
dws download-media 走 get_resource_download_url 拿URL,缺分片Range下载/重试/扩展名推断/安全落盘路径校验 |
+messages-search |
read |
dws 有 search_messages_by_keyword/by_time_range/by_sender/at_me 多个原子 tool,但各自单点,缺统一多维filter编排+mget+chat上下文富化+跨字段Validate |
+threads-messages-list ✅ |
read |
已建 smart chat +thread-replies:list_topic_replies + sender/text/time 投影。剩余未做:reactions 富化、资源下载 |
task → todo(3)
| lark 命令 |
risk |
保真度差距(钉钉有 tool,缺什么智能) |
+reminder |
write |
dws 有 add_todo_reminder/reset_todo_reminder 但无 lark 的先查现有再替换编排、相对时间(15m/1h)解析与互斥校验,值得补智能 shortcut |
+get-related-tasks ✅ |
read |
已建 smart todo +related-tasks:creator+executor+participant 三角色并集 + taskId 去重 + 投影。剩余未做:followed-by-me 成员比对、subtask_count/tasklists 富投影 |
+upload-attachment |
write |
dws add-attachment 走 init→PUT→commit 三步 MCP 上传(能力更重),但无 50MB/regular 校验、applink 提取与 dry-run 计划展示;可对齐成更智能 shortcut |
calendar → calendar(1)
| lark 命令 |
risk |
保真度差距(钉钉有 tool,缺什么智能) |
+room-find |
read |
dws 有 room search(query_available_meeting_room 按单一时间段+过滤)和 busy search,但无多slot并发room_find聚合、无city/building/floor/capacity维度过滤、无按attendee推荐可用室,值得补成智能 shortcut 但未建 |
doc (docs) → doc(2)
| lark 命令 |
risk |
保真度差距(钉钉有 tool,缺什么智能) |
+media-insert |
write |
dws doc media insert 为3步(取凭证→PUT→insert_document_block)无回滚、无selection定位、无剪贴板、无宽高比补算、无wiki解析;可补成带回滚的智能shortcut |
+media-download |
read |
dws doc media download 走resourceId→downloadUrl两段,缺whiteboard导图分支、自动扩展名、路径安全、overwrite防护;media分支可对齐,whiteboard无工具 |
drive → drive(1)
| lark 命令 |
risk |
保真度差距(钉钉有 tool,缺什么智能) |
+import |
write |
dws drive upload 有 --workspace --convert 可转在线文档,但缺按目标类型(docx/sheet/bitable/slides)导入、缺 target-token 挂载与异步轮询 |
mail → mail(4)
| lark 命令 |
risk |
保真度差距(钉钉有 tool,缺什么智能) |
+reply |
write |
dws reply 走 create_reply_draft+send_draft 两步、附件仅上传会话,缺 EML 线程头构造、签名自动注入、模板合并、HTML lint、读回执、send-time 定时、跨字段校验 |
+reply-all |
write |
dws reply-all 两步且收件人由服务端决定,缺原文收件人抽取去重排己、线程头、签名/模板/lint/定时等编排保真 |
+send |
write |
dws send_email 单步(附件时先 create_draft 再传再 send),缺签名/模板/lint/日历内嵌/定时发送/发件人profile解析/跨字段校验 |
+forward |
write |
dws forward 走 create_forward_draft+send_draft,缺 Fw:主题/引用块/原附件转载 EML 构建、签名/模板/lint/定时保真 |
wiki → wiki(1)
| lark 命令 |
risk |
保真度差距(钉钉有 tool,缺什么智能) |
+node-get |
read |
dws 无 get_node 对应 tool(proxy wiki doc read 读的是文档正文而非节点元数据/space解析);缺 token/obj_token/URL→node 解析、obj_type推断、space交叉校验——是值得补的智能 shortcut 缺口 |
minutes → minutes(4)
| lark 命令 |
risk |
保真度差距(钉钉有 tool,缺什么智能) |
+search |
read |
dws list_by_keyword_and_time_range 只按 keyword+时间+归属(created/shared)过滤,缺 owner/participant 的 me 解析与筛选、缺 query 长度与跨字段互斥校验、缺输出投影与去头像 |
+download |
read |
dws 只有 query_minutes_audio_url 返回 OSS 地址(相当于 --url-only 单条),缺真正落盘下载、批量 fanout+限速+去重、文件名推断、SSRF 防护与覆盖保护 |
+word-replace ✅ |
write |
已建 smart +replace-batch:多组 原文=>替换 批量替换 + 去重校验 + 逐组结果聚合(补齐 1:1 +word-replace 的单组限制)。剩余未做:@file/stdin 输入 |
+detail ✅ |
read |
已建 smart +detail:单命令按 --artifacts fanout basic/summary/keywords/transcript/todos + partial-failure 容错 + rt.Output 投影。剩余未做:wait-ready 轮询、transcript 落盘 |
base → aitable(10)
| lark 命令 |
risk |
保真度差距(钉钉有 tool,缺什么智能) |
+title-resolve ✅ |
read |
已建 smart aitable +resolve-base:search_bases 按名解析 baseId + 0/1/多候选消歧投影。剩余未做:Drive doc_wiki 全文搜索 |
+field-create |
write |
dws create_fields 支持批量,但缺 formula/lookup guide-ack 门禁与逐字段节流,可补智能 shortcut |
+field-update |
write |
dws update_field 缺 formula/lookup guide-ack 保护 |
+record-share-link-create ✅ |
read |
已建 smart +record-share-links:>20 条记录去重 + 分片(≤20/批) + 跨 aitable-helper server fanout + 合并 {recordId,shareUrl},补齐单批 20 条上限 |
+record-upload-attachment |
write |
dws 只有 prepare_attachment_upload(拿上传凭证),缺 分片上传编排+append_attachments 回填单元格的完整链路 |
+dashboard-block-list |
read |
dws 仪表盘块是 chart(create/get/update/delete_chart),缺通用 block list,可对齐补 |
+dashboard-block-get |
read |
dws get_chart 覆盖 chart 类块,缺通用 block get |
+dashboard-block-create |
write |
dws create_chart 覆盖图表块,缺其他 block 类型的通用创建 |
+dashboard-block-update |
write |
dws update_chart 覆盖图表块更新 |
+dashboard-block-delete |
high-risk-write |
dws delete_chart 覆盖图表块删除 |
sheets → sheet(14)
| lark 命令 |
risk |
保真度差距(钉钉有 tool,缺什么智能) |
+sheet-hide |
write |
dws update_sheet可能含hidden属性但未见独立hide命令,需确认 |
+sheet-unhide |
write |
同上,dws无独立unhide命令 |
+sheet-set-tab-color |
write |
dws update_sheet或可设tab色但无独立命令 |
+sheet-show-gridline |
write |
dws无网格线显隐命令 |
+sheet-hide-gridline |
write |
dws无网格线显隐命令 |
+workbook-create |
write |
dws有create_workspace_sheet但仅建空表,缺typed一步建表+填充+样式+partial回滚编排 |
+dim-hide |
write |
dws update-dimension或含hidden但无独立hide命令 |
+dim-unhide |
write |
同上,dws无独立unhide命令 |
+dim-freeze |
write |
dws update-dimension可能含frozen但无独立freeze命令 |
+cells-get |
read |
dws range read存在但缺include样式/公式投影统一封装 |
+table-get |
read |
dws缺typed table读回+列类型推断+多sheet编排,只有裸csv/range读 |
+table-put |
write |
dws有append/set_cell_range但缺typed多sheet分块写+建缺失sheet+样式+partial回滚编排 |
+rows-resize |
write |
dws update-dimension可调尺寸但无独立rows-resize+size/type互斥校验 |
+cols-resize |
write |
dws update-dimension可调尺寸但无独立cols-resize+互斥校验 |
apps → devapp(3)
| lark 命令 |
risk |
保真度差距(钉钉有 tool,缺什么智能) |
+release-create |
write |
dws 有 create_dev_app_version(开放平台版本)可类比,但妙搭 release 是低代码应用发布、语义与产物不同 |
+release-get |
read |
dws 有 get_dev_app_version_detail 可类比但产品域(开放平台vs妙搭)不同 |
+release-list |
read |
dws 有 list_dev_app_versions 可类比但无 status 枚举过滤且产品域不同 |
已建智能 shortcut(covered-smart,48)— 可继续升级保真度
- im: +chat-members-list +chat-list +messages-send +threads-messages-list
- task: +complete +assign +get-my-tasks +get-related-tasks
- contact: +search-user
- calendar: +agenda +create +update +freebusy +suggestion
- doc (docs): +history-revert
- drive: +upload +search +inspect
- mail: +triage
- minutes: +upload +latest-minutes +action-items +transcript +minutes-search +detail +replace-batch
- base: +table-get +table-create +view-create +view-get-filter +view-set-filter +view-get-visible-fields +view-set-visible-fields +view-get-group +view-set-group +view-get-sort +view-set-sort +view-get-timebar +view-set-timebar +view-get-card +view-set-card +record-list +record-search +record-get +record-upsert +base-create +workflow-list +form-create +form-list +form-get +record-share-link-create