Projects
The project I am working on
1440 × 900

把做视频这件事拆成可编排的步骤:用户在画布上把节点连成流程,一步步控制脚本、画面和成片;不想自己搭的话,直接在对话里说要什么,Agent 会自己决定该走哪些步骤并把活干完。
两种用法面向的是同一批素材和同一套项目,区别只是谁来做编排决定——画布交给用户,对话交给 Agent。
- AI 视频生成
- 画布编排
- Agent 编排
- SaaS
1440 × 900

pnpm monorepo,五个服务。画布编排、Agent 自主调用、爆款复刻三条工作流链路共用同一套 Engine handler——任务派发统一走 Redis Stream,结果统一走 Pub/Sub 回推,所以三种完全不同的交互模型可以复用一个执行器。
前端拆成静态产物后交给边缘直出:一次构建产出应用、分享、中英文首页等入口,按完整 Git SHA 封装成 release 写进对象存储,边缘路由只读已封存的版本。页面和后端因此可以各自独立发布、独立回滚。
服务
- lumen-app可独立发布的静态前端,一次构建产出多个入口静态产物 · 边缘直出
- lumen-api独立 API,逐步承接原 Studio 接口Hono
- lumen-studio兼容 API、WebSocket gateway、后台事件镜像Node · WebSocket
- lumen-agent对话 Agent,只负责 SSE,与工作流管道解耦Hono · SSE
- lumen-engine工作流执行引擎,按 DAG 跑节点Redis Stream 消费者
工作流链路(3)
画布
前端点运行,走 WebSocket 全双工提交整个 workflow 或单个节点;引擎按节点依赖顺序执行,事件经 Pub/Sub 回到网关实时推给浏览器。
- 浏览器
- WebSocket
- studio
- Redis Stream
- engine
- Pub/Sub
- 浏览器
Agent
Agent 自主决定调用哪些节点、什么顺序:每次 tool call 只跑一个节点,先订阅再派发,阻塞等结果,拿到后决定下一步。
- 浏览器
- SSE
- agent
- Redis Stream
- engine
- Pub/Sub
- agent
爆款复刻
独立于画布和 Agent:先分析参考视频与商品图生成复刻计划,每个 task 单独派发到自己的 Stream,前端轮询 HTTP 读状态。
- 浏览器
- HTTP
- studio
- 独立 Stream
- engine
- 事件镜像
- MongoDB
- TypeScript
- Hono
- Redis Stream
- Redis Pub/Sub
- MongoDB
- Cloudflare Edge
- WebSocket
- SSE
- pnpm monorepo
- Nginx