Feishu Channel Cards · Skill Artifact
把长任务变成一张会呼吸的卡片
这份 report 记录一个 Skill 如何从 Makaron 卡片实验中被抽象出来:Web Report 是最终产物,Feishu 卡片才是实时控制台。以后做 report、部署、调研、视频、审批,都不该让用户等到最后一刻才看到结果。
同一张卡实时更新report-card DSLmobile-first Feishu UX可迁移 Skill
Live Report Card Demo
状态:4/4 完成
Feishu 卡片 = 实时进度控制台
Web Report = 最终可浏览产物
什么时候应该触发
触发条件不是“用户说 Makaron”,而是出现了需要结构化反馈、持续进度、链接交付或按钮决策的任务。
长任务进度
视频生成、部署、ASR、批处理、调研等,需要持续状态。
报告交付
日报、客户方案、A2A 复盘,用 summary / sections / links 展示。
审批确认
需要 Tianyi 决定确认、重做、继续、跳过时,用按钮把下一步变清楚。
系统告警
stalled session、liveness 卡顿、dashboard 异常,直接告诉影响和行动。
标准生命周期
真正的卡片体验不是 start card + final card,而是同一张卡从开始活到结束。
1
Send
发送初始卡
告诉用户任务开始,而不是让长任务静默运行。
2
Stream
更新同一张卡
scan → draft → build → deploy → verify,每一步都刷新同一张卡。
3
Deliver
挂最终产物
Web Report、视频、Bitable、文档链接成为最终交付。
4
Act
按钮推进
确认交付 / 重新生成 / 改成报告页 / 跳过候选 skill。
实战踩坑变成规则
Tianyi 的纠正很关键:Skill 不是 bug 清单,但 bug 里能沉淀成可复用 guardrail。
已沉淀规则
- 裸 ou_* 才是 Channel SDK DM target;不要传 OpenClaw message 的 user:ou_* 前缀。
- Web Report 通常不是实时页面;实时感来自 Feishu 卡片持续更新。
- 一张 start card + 一张 final card 不够,长任务必须更新同一张卡。
- 按钮用 1:1 宽度,移动端可读;不要暴露 exec/read/tool stack trace。
Skill 文件
- /root/.agents/skills/feishu-channel-cards/SKILL.md
- /root/.agents/skills/feishu-channel-cards/scripts/card-runner-template.cjs
- /root/.agents/skills/feishu-channel-cards/references/card-dsl.md
- /root/.agents/skills/feishu-channel-cards/references/channel-sdk-notes.md
结论
Feishu Channel Cards 是 V 的通用交互层:让 Agent 的长任务不再像黑盒,而像一个可以被观察、被确认、被继续推进的工作台。