DWS Shortcut 完成情况报告

对齐基准 larksuite/cli · 执行底座 钉钉 MCP · 随 loop 持续更新
366
shortcut 总数
298
1:1 封装层
68
真·智能层
16
覆盖服务
0
失败/panic/编造

①做了什么:两个层次

诚实区分——shortcut 分两层,价值定位不同,不混为一谈。

🔵 1:1 封装层 · 298 条

一个 shortcut ≡ 一个 MCP tool。把裸 dws mcp <svc> <tool> --json '{…}' 收敛成命名 flag,附校验/风险确认/Intent。
价值:DX 与 AI-agent 可发现性,不是新能力。
命名 flagrequired/enum 校验风险确认自然语言 Intentdry-run/format

🟣 真·智能层 · 68 条

照 lark-cli 范式的多步/编排/智能,不是 1:1。框架新增 CallMCPData(多步取数,对标 lark CallAPITyped)+ resolveUser(名→ID,对标 ResolveOpenIDsTyped)。
价值:这才是「shortcut 作为新能力」。
按名解析+消歧多工具编排失败回滚跨服务

②真·智能层 68 条明细(节选)

shortcut多步/智能逻辑验证
chat +dm --to <名>搜人→解析 userId→发单聊;多人消歧真机 dry-run
contact +lookup --name <名>搜人→解析→取完整资料✅ 真机端到端
todo +assign --to <名>解析人→建待办并设执行人真机 dry-run
contact +org --name <名>解析人→取 deptId→查部门详情(3 步)✅ 真机端到端
contact +team --name <名>解析人→取部门→列部门成员编译/挂载
calendar +free --who <名>解析人→查其时段忙闲✅ 真机端到端
calendar +book [--with <名CSV>]建日程→按名加参与者→失败回滚删日程真机 dry-run
calendar +invite --event --with解析多人→加入已有日程编译/挂载
calendar +suggest-time --with解析多人→推荐可开会时间编译/挂载
calendar +today算今天范围→列我今天日程✅ 真机端到端
calendar +next-event近 7 天→取最近一个日程编译/挂载
calendar +reschedule --event查日程详情→改时间编译/挂载
chat +send-to-group --group <群名>按群名搜群→消歧→发消息编译/挂载
chat +group-members --group <群名>搜群→列群成员编译/挂载
chat +broadcast --to <名CSV>多名逐一解析→群发单聊,失败汇总编译/挂载
todo +todo-done --task <关键词>列我待办→按标题匹配→标完成编译/挂载
todo +remind --task --at给自己建带提醒的待办编译/挂载
minutes +latest-minutes列妙记→取最新一条详情编译/挂载
minutes +action-items列妙记→取最新→取其待办编译/挂载
wiki +wiki-new-doc --space <名>按名搜知识空间→建文档(跨 doc server 路由)编译/挂载
doc +doc-append --doc --content文档末尾追加文本编译/挂载
doc +share-doc --to <名> --url解析人→把文档链接私信 TA(跨服务)编译/挂载
质量亮点(agent 严守 ground truth):+send-to-group 纠正了「按群名搜群」的正确工具(search_groups 而非按成员昵称的 search_common_groups);+wiki-new-doc 发现 create_file 在 doc server 并正确跨服务路由;+mail-to 因钉钉无 email 字段主动 skip 拒绝编造。

③测试验证(零副作用全量)

写/删命令不能真跑,用假 Caller 拦截——每条命令走完「解析→校验→确认→组装 MCP 调用」,捕获组装出的 (product,tool,params),不真发网络。

验证项范围结果
go build ./... / gofmt / vet全仓✅ 0 告警
TestAllShortcutsAssemble全部 366✅ 322 组装真实MCP · 44 自校验 · 0 失败/panic
TestAllToolLiteralsAreRealtool 字面量✅ 0 编造(比对 helper ground truth)
TestAllHaveIntent全部 366✅ 每条均有自然语言描述
TestNoDuplicateCommands全部✅ 无重复 · 命名规范
usage / userdef 单测埋点/沉淀✅ 全通过
app 包全量回归internal/app✅ ~72s 通过(未破坏现有命令)
智能层真机验证(9 批)只读/解析类 20+ 条✅ 端到端返回真实数据、投影正确
真机抓修真实 bug合成测试盖不住的投影/解析偏差✅ 修复 8 处(resolve-dept/at-me/group-members/free/today/suggest-time/unread-chats/dept-members)

真机验证补齐了 assemble 测试的盲区:合成响应验证不了「防御式投影是否匹配真实响应结构」。9 批真机验证抓到并修复 8 处解析/投影偏差(如 +resolve-dept 漏了真实容器 key deptList、+at-me 未拍平嵌套、+today/+free 直吐冗长 raw)。少数命令(chat 会话消息读、minutes)因 org/PAT 权限受限无法真机跑通,组装链路仍由 assemble 测试覆盖。

④效果评估 GSB(vs lark-cli)

4.1 能力覆盖 GSB(按 dws 实际暴露的 MCP tool 数 = helper∪shortcut,非 shortcut 数)

lark 服务larkdwsdwsGSB说明
im21chat95G群/消息/机器人更全
mail21mail43G覆盖更广
doc14doc34G块级读写更细
minutes14minutes25G录音/说话人更全
calendar12calendar24G会议室/ACL 更全
contact2contact15G部门/角色/花名册更全
wiki12wiki16G略优
base87aitable79S持平;helper 仅 16,shortcut 补齐 +63(真 gap-fill)
task18todo20S持平
drive26drive25S持平
apps63devapp25Bhelper 无 devapp,25 全由 shortcut 补,但仍少于 lark
sheets84sheet60B钉钉表格 MCP 较少;helper 已覆盖
vc/okr/slides/markdown/whiteboard/note/event62—0B钉钉无对应能力,客观不可对齐
🟢 G 7 领域 · 🟡 S 3 领域 · 🔴 B(apps/sheets 少于 lark + 6 领域钉钉无能力)。base 的"持平"几乎全靠 shortcut gap-fill(helper 仅 16)。dws 独有:oa/attendance/report/ding/aisearch/live/devdoc。

4.2 组合/智能层 GSB(关键发现)

关键结论:lark 有 ~104 个组合(≥2 次 API)shortcut,但 lark 的组合性多源于飞书 REST API 太细粒度(要先查 spreadsheetToken→sheetId→再操作);钉钉 MCP 是粗粒度的——一个 tool = 一个完整操作,所以 lark 的组合在钉钉这边大量塌缩成 1:1(已被封装层覆盖),或根本没有对应 tool。
lark 组合来源数量GSB钉钉现实
sheets(先解析 sheetId)41S钉钉直接吃 token → 1:1 层已覆盖
apps db-env/audit/log/trace17B钉钉无对应工具
drive/doc/im(上传/媒体/搜索)23S多为钉钉 1:1 已覆盖
calendar/contact/wiki/minutes/todo 编排~10G✅ 已建为真·智能 shortcut(+book/+lookup/+org/+wiki-new-doc/+reschedule…)
okr/whiteboard/slides/vc11B钉钉无对应能力
→ 钉钉真正需要「组合」的场景(按名解析+多工具编排+跨服务),dws 已覆盖并额外做了 lark 没有的(+today/+broadcast/+share-doc/+action-items 等)。不盲目复刻 lark 的机械多步(在钉钉会成冗余假组合)。

⑤dws 差异化优势

复用生产级 MCP 通道(架构性)—— CallMCP 统一继承错误分类(auth/PAT/业务)、dry-run、--format/--jq/--fields;lark 每命令各自实现。
协作能力覆盖更全 —— chat 95/mail 43/doc 34/minutes 25(dws tool 覆盖)是 lark 对应 2–4 倍。
钉钉原生特有能力(lark 完全没有)—— 审批/日志/考勤/DING/企业智能搜索,75 条差异化封装。
真·智能编排(22 条) —— 按名解析+消歧、失败回滚、跨服务;resolveUser/CallMCPData 让新智能 shortcut 越写越快。
高频自动沉淀(P2 · lark 无此设计)
高频使用→埋点→suggest→add 写 YAML→运行时加载可用
工程质量 —— 假 Caller 拦截,366 条(含写/删)零副作用全量验证,可复跑回归。
一句话结论:dws 已把钉钉侧能对齐的都对齐(366 条 = 298 封装 + 68 智能 / 16 服务,1:1 层已去 213 条纯重复),即时协作显著优于 lark,拥有审批/考勤/DING 等原生差异化能力与「高频自动沉淀」独有闭环。lark 的组合优势多因飞书 API 细粒度、在钉钉粗粒度 MCP 下塌缩为 1:1(已覆盖),真正需编排的钉钉侧已建齐;受限项均为钉钉客观无对应能力,非工程遗漏。全部 366 条通过零副作用全量验证。