doc_id: DES-202606-003 feature_id: FEAT-202606-006-agent-semantic-interaction type: design title: 卡片链式架构分阶段实施与单次切换方案 status: reviewing owner: 医梦研发团队 created_at: 2026-06-29 updated_at: 2026-07-01 reviewers:
| 旧对象 | 新对象 | 处理 |
|---|---|---|
| Card 驱动业务流程 | TaskState 驱动任务 | 删除链式语义 |
AgentResponse.cardKey/cardData |
后端 SemanticResponse |
替换 |
card_created |
presentation 或 command_prepared |
拆分 |
nextCard |
interaction + TaskState | 删除 |
| 信息 CardInstance | 无状态 Presentation | 不落实例 |
| 卡片写动作 | Command | 迁移 |
emoon-ai-card |
emoon-ai-command |
模块重命名 |
ai_card_instance |
ai_command_instance |
新建,不迁数据 |
ai_card_action_log |
ai_command_audit_log |
新建,不迁数据 |
ai_card_definition |
MVP 删除;展示 ViewModel 随代码版本管理 | 不迁动作 |
| Dify 卡片输出 | FastGPT 文本 + 只读 Tool Call | 替换 |
| OpenAPI v1.2 卡片动作 | OpenAPI v2 interaction/commands | 主版本替换 |
实施分四个可独立验收阶段,只有全部门禁通过后才执行一次性切换。 “分阶段”指开发和验证节奏,不表示生产同时维护 v1/v2 两套协议。
门禁:连续覆盖正常、参数错误、超时和空结果;能力不满足则停止后续开发, 保留旧演示链,不进入切换。
门禁:不用卡片即可完成挂号查询;工具参数无效时能澄清且不暴露内部拒绝; 查询链稳定后再进入命令阶段。
emoon-ai-card 迁移为 emoon-ai-command。command_prepared/command_completed。门禁:锁号实时复核、挂号二次确认、幂等和 UNKNOWN 状态测试全部通过。
AppointmentSlotCandidatesV1 生成无状态 Presentation。presentation,点击回传 interaction。切换时清理:
nextCard 和卡片流程配置。card_created 事件。/cards/{id}/actions/*。不迁移生产数据。实施脚本应:
ai_result_snapshot、ai_command_instance、ai_command_audit_log;actions_json。需要同步:
FEAT-202606-001:标记链式卡片与 v1.2 被替代;FEAT-202606-002:FastGPT 只读 MCP 与 Command 边界;ODS-202606-001:增加新架构优先声明;STD-202605-001:更新模块、依赖和红线;本方案不提供长期运行的 v1/v2 双轨。切换前,旧演示版本保持可部署;切换动作必须有 完整发布制品、数据库备份和版本回退点。切换后若验收失败,整体回退到旧发布制品, 不得在同一部署中混用 v1 卡片动作和 v2 Command。
如果 FastGPT 工具调用能力验证失败:
本专题完成前,不以旧 Card Runtime 为基础继续建设生产业务智能体。只有同时满足以下条件, 后续智能体才能进入规模化开发:
cardKey/cardData 即可完成查询、解释和替代推荐;nextCard 或渲染结果;TST-202606-001 全部通过并形成测试结果文档;达到门槛后,后续智能体按“只读查询型 → 事务型”的顺序分批建设,但统一遵守同一中台协议; 不得为单个智能体恢复模型直出 Card JSON 或链式 Card 编排。