- tags
- [DragonFlow, agent, 工作流, sentino, AI 语音]
- created
- 2026-05-15
- updated
- 2026-05-15
- sources
- [raw/notes/2026-05-15-iot-agent-capability-decision-memo-v5-final.md]
定义¶
DragonFlow(又称 Sentino Flow / WorkflowD)是 Sentino 的 AI 语音交互工作流平台——独立的 Java 三件套中间件(workflow-engine + workflow-api + workflow-web),不是 Sentino Agent 平台 的子模块,而是其核心实现之一。负责 LLM 编排、工具调用(Function Calling)、TTS 调度、Agora ConvoAI 对接、设备控制 envelope 生成。
代码位置:~/local/DragonFlow/。
关键要点¶
- 三件套架构:
workflow-engine— Java 核心执行引擎,纯业务逻辑无 DB 依赖;驱动 LLM 调用、Function Call、TTSworkflow-api— Spring Boot REST 服务 + PostgreSQL + Redis;暴露控制接口、WebSocket voice pipelineworkflow-web— React/Vite 前端(git submodule);@xyflow workflow 编辑器 + Agora RTC voice chat- 独立 SaaS 平台层定位:上游接 LLM 决策,下游通过 Agora DataStream 把设备控制 command 透传给固件;与 IoT 平台是平级中间件关系
- Product 抽象 + Capability Schema 通用框架:
product.capability_configJSONB 字段是设备能力的 source of truth,由 DragonFlow 团队维护(详见上游device-control-application.md) - 设备控制 wire envelope 端到端实现:OpenAI tool calling →
_publish_message双层 → DataStream 透传 → 固件 cJSON 解析;spec 见device-control-firmware-integration-guide.md - 能力交集逻辑(v5):会话启动时接收
device_info.supported_executors→ 存进 conversation 上下文 → chat 回调时跟product.capability_config做交集 → 注入 LLM tool schema - 跨端能力自带:workflow-web 已经在用同一套抽象做"Web 端 Agent 控制"——IoT 是其端适配之一(详见 iot-agent-capability-bridging 的两层分离架构)
与 Sentino Agent 平台的关系¶
sentino-agent 是产品概念("Sentino 提供的 AI 语音 agent 服务"),DragonFlow 是其当前事实上的核心实现。Sentino API 网关(api.sentino.jp)暴露的对外接口(如 /api/v1/conversations / /api/v1/agent/chat)背后即由 DragonFlow 服务驱动。
→ "Sentino Agent" 跟 "DragonFlow" 在日常对话中常混用,但精确说法: - Sentino Agent 平台 = 产品定位 + API 契约 + 客户视角 - DragonFlow = 实现该平台的代码与服务(workflow-engine + workflow-api + workflow-web)
在 sentino 整体架构里的位置¶
┌────────────────┐
│ 客户 / 终端用户 │
└───────┬────────┘
│ HTTP / Agora RTC
▼
┌─────────────────────────┐
│ Sentino API 网关 │ api.sentino.jp
│ (memovis/api-gateway) │
└───────┬─────────────────┘
│ 内部调用
▼
┌─────────────────────────┐
│ DragonFlow │ workflow-engine + api + web
│ - LLM 编排 │
│ - Function Call │
│ - 设备控制 envelope │
│ - product.capability_ │
│ config 维护 │
└───────┬─────────────────┘
│ Agora ConvoAI / DataStream
▼
┌─────────────────────────┐
│ Agora 平台 │
└───────┬─────────────────┘
│ DataStream binary
▼
┌─────────────────────────┐
│ 设备固件 │ cJSON 解析 + executor dispatch
└─────────────────────────┘
物模型协议(device ↔ IoT 平台 MQTT 信令)走完全独立的通道,不经过 DragonFlow——详见 iot-agent-capability-bridging。
设备控制协议在 DragonFlow 的实现¶
- 入口:
AbstractDeviceControlFunction.execute()(早前硬编码两个子类 StarBuddy / Lily),P1 重构为GenericDeviceControlFunction(per-session 构造,从 product 表读 capability_config) - Tool schema 自动生成:
ProductToolSchemaBuilder把 capability_config 转 OpenAI tool schema 暴露给 LLM - Schema 校验:
ActionEnvelopeBuilder用networkntJSON Schema 严格校验 LLM 输出,不通过的 capability 直接 drop(不进 wire) - Wire envelope:
_publish_message函数包装 → OpenAI SSE chunk → ConvoAI → DataStream binary 广播
设计动机详见 DragonFlow device-control-application.md(Phase 1 设计)。
关键文档(DragonFlow 内部)¶
| 文档 | 内容 | 读者 |
|---|---|---|
docs/device-control-application.md |
Product 抽象 + Capability Schema 通用框架(Phase 1 设计) | 架构师 / 后端 |
docs/device-control-firmware-integration-guide.md |
固件接入指南(envelope spec SOT) | 固件团队 |
docs/device-control-demo.md |
StarBuddy / Lily 双 profile 实现样例 | 工程参考 |
docs/capability-editor-form-design.md |
Capability 编辑器 UI 设计 | 前端 / PO |
iot-docs 端的镜像文档(sentino-iot 视角):详见 ~/local/iot-docs/control/ 目录的 design / firmware-implementation-guide / product-capability-guide 三件套。
相关概念¶
- sentino-agent — DragonFlow 是 Sentino Agent 平台的当前事实核心实现
- iot-agent-capability-bridging — DragonFlow 维护 product.capability_config(v5 决策 #1),与设备 supported_executors 做交集
- agora-convoai-server — DragonFlow 通过 ConvoAI 把设备控制 command 透传到设备
- sentino-iot — IoT 平台是 DragonFlow 的端适配之一
- agent-tool-design — DragonFlow 的 device_control function 是 工具设计 的具体落地