- tags
- [DragonFlow, agent, 工作流, sentino, AI 语音, CouCou, sentino-app-server]
- created
- 2026-05-15
- updated
- 2026-06-11
- sources
- [raw/notes/2026-05-15-iot-agent-capability-decision-memo-v5-final.md, wiki/reports/2026-06-11-architecture-business-readiness.md, wiki/projects/coucou-19day-sprint.md]
定义¶
DragonFlow(又称 Sentino Flow / WorkflowD)是 Sentino 的 AI 语音交互工作流平台——独立的 Java 三件套(workflow-engine + workflow-api + workflow-web),不是 Sentino Agent 平台 的子模块,而是其核心实现之一。
workflow-api 的实际定位远超"agent 工作流"(详见 #workflow-api-实际是-sentino-idp--多功能后端2026-06-11-修正 节)——它同时是 Sentino IdP(JWT/OAuth2/User/Workspace)+ 订阅管理 + agent CRUD + Agora pipeline 的多功能后端。workflow-web 部署在 studio.sentino.jp(即 PRD 里 "CouCou Studio"),同 host 透传 /api/auth/* 等 endpoint 到 workflow-api。
DragonFlow 负责 LLM 编排、工具调用(Function Calling)、TTS 调度、Agora ConvoAI 对接、设备控制 envelope 生成、以及上述全套 IdP + workspace + 订阅基础设施。
代码位置:~/local/DragonFlow/,生产:studio.sentino.jp。
关键要点¶
- 三件套架构:
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 三件套。
workflow-api 实际是 Sentino IdP + 多功能后端(2026-06-11 修正)¶
早期理解(已 deprecated):dragonflow concept 页 v1 把 workflow-api 描述为"AI 语音工作流的后端"——这窄化了它的实际角色。
真实情况(2026-06-11 读代码 + curl prod 验证):workflow-api 是 Sentino IdP + Workspace + 订阅管理 + Agent CRUD + Agora pipeline 的多功能后端,远不止 agent 工作流。生产部署在 studio.sentino.jp,前端 workflow-web 同 host 透传 /api/auth/* 等 endpoint。
已实现的能力清单¶
| 能力 | 实现 | 文件 |
|---|---|---|
| JWT auth(stateless) | ✅ | JwtTokenProvider.java + JwtAuthenticationFilter.java |
| API_KEY auth(server-to-server) | ✅ 跟 JWT 双轨,filter 链 ApiKey 优先 | ApiKeyAuthenticationFilter.java |
| OAuth2 第三方登录 | ✅ authorize / callback / bind | OAuth2Controller.java + OAuthAccount.java |
| 用户注册 / 登录 / refresh | ✅ /api/auth/register / /login / /refresh-token / /forgot-password / /reset-password |
AuthController.java |
| 邀请码 + 注册配置 | ✅ /api/auth/validate-invitation-code / /registration-config |
同上 |
| 邮箱验证 | ✅ /api/email-verification/verify |
— |
| User 模型 | ✅ username / email / phone / avatar / fullName / passwordHash / isEmailVerified / isActive / isSuperAdmin / 软删除 / entryWorkspaceId | User.java |
| Workspace + 角色 | ✅ 4 角色(OWNER / ADMIN / MEMBER / VIEWER)+ 软删除 | UserWorkspace.java + UserWorkspaceDao.java |
| 订阅 plan | ✅ FREE / PRO / BUSINESS / ENTERPRISE | User.subscriptionPlan + UserSubscription.java |
| memex 用户映射 | ✅ | MemoBaseUserMapping.java |
| agent / workflow / character CRUD | ✅ Studio 创作工具的后端 | — |
| 设备控制 envelope + Agora pipeline | ✅ DataStream 控制 / SSE 流式 | — |
prod 实测验证(2026-06-11)¶
curl https://studio.sentino.jp/api/auth/registration-config
→ {"invitationCodeRequired":false,"googleOAuthEnabled":true}
curl -X POST https://studio.sentino.jp/api/auth/login -d '{"email":"x","password":"y"}'
→ 401 + {"success":false,"error":"Invalid email or password","timestamp":...}
CORS:setAllowedOriginPatterns("*") + allowCredentials=true(SecurityConfig.java)—— 任何前端(CouCou H5 / 客户自做 app / Studio 自身)跨域调用零阻塞。
战略叙事侧的隐藏证据¶
studio.sentino.jp 首页 <meta description>:
"The AI voice infrastructure for fan economy. Bring IP characters to life with voice, memory, and emotion — across every device"
跟 2026-06-11-architecture-business-readiness §01 战略叙事完全对齐——fan economy + IP characters + voice/memory/emotion + cross-device = Physical AI Bubble。说明 Sentino 公开品牌已经在打这个方向,工程演进跟战略叙事 align。
与 Sentino app server 终态的关系(2026-06-11 修正)¶
2026-06-11-architecture-business-readiness §06 终态架构 = workflow-api(IdP + 业务后端)+ api.sentino.jp(公共 API 门面)+ coucou-server(薄业务层,新增) 的组合:
┌────────────────────────────┐
│ workflow-api(多功能后端) │
│ • IdP: JWT/OAuth/User │
│ • Workspace + 订阅 │
│ • Agent CRUD │
│ • Agora pipeline │
│ 生产:studio.sentino.jp │
└────┬───────────────────┬────┘
│ 业务接口暴露经 │ 直接 /api/auth/*
↓ │
┌──────────────────────┐ │
│ api.sentino.jp │ │
│ 公共 API 门面 │ │
│ workspace+API_KEY │ │
│ /api/v1/chat/... │ │
│ /api/v1/memory/... │ │
└──────┬───────────────┘ │
│ API_KEY │ JWT
↓ ↓
┌─────────────────┐ ┌──────────────────┐
│ coucou-server │ │ workflow-web │
│ (新增薄业务层) │ │ (Studio 前端) │
│ • 订阅 mock │ │ │
│ • distribute │ │ studio.sentino │
│ • creator notes │ │ .jp │
│ • agent meta │ └──────────────────┘
└─────┬───────────┘ ↑
│ JWT 验签 │ JWT
↓ │
┌──────────────────────────────┐│
│ CouCou H5(coucou.sentino ├┘
│ .jp) │
│ auth 直接调 workflow-api │
│ /api/auth/*;业务调 coucou- │
│ server │
└────────────────────────────────┘
关键定位: - workflow-api 不是新建的 Sentino app server,是早已存在的多功能后端 - api.sentino.jp 是公共 API 门面(在 workflow-api 之上加 workspace + API_KEY 隔离) - coucou-server 是新增的薄业务层(own CouCou-specific business data,业务调用走公共 API) - workflow-web (Studio) 同 host (studio.sentino.jp) 透传 /api/auth/* 到 workflow-api - CouCou H5 跟 workflow-web 共享同一 IdP——同账户天然互通,"Mia 既订阅又创作"无需 mock 真实现
首步落地:coucou-19day-sprint(2026-06-11 ~ 06-30)。19 天 H5 demo sprint 直接复用 workflow-api auth + agent CRUD + workspace 模型,coucou-server 只 own CouCou 业务薄层,不动 dragonflow schema。
完整研究链路:→ 2026-06-11-architecture-business-readiness
相关概念¶
- 2026-06-11-architecture-business-readiness — Sentino × CouCou 架构 v2,§06 明确 workflow-api 是 Sentino app server 种子
- coucou-19day-sprint — 19 天 H5 demo sprint,复用 workflow-api 作终态架构的演进起点
- 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 是 工具设计 的具体落地