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 = 最终可浏览产物

🔗 打开 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 的长任务不再像黑盒,而像一个可以被观察、被确认、被继续推进的工作台。

← 返回报告集合页