RFC-002: Workflow Engine — Phase 1 实现 #16

Closed
opened 2026-04-22 11:26:47 +00:00 by xiaoju · 0 comments
Owner

参考

Phase 1 范围

核心类型与 WorkflowManager 骨架:

  • packages/core/src/types.ts — 扩展 workflow 相关类型(WorkflowDefinitionThreadStateCommandEventModerateResult 等)
  • packages/daemon/src/ipc.ts — 扩展 IPC 消息类型(StartThreadMessageThreadEventMessage 等)
  • packages/daemon/src/workflow-manager.ts — WorkflowManager 实现(并发控制、队列管理、thread 生命周期)
  • packages/daemon/src/workflow-worker.ts — Workflow worker 进程(加载用户代码、运行 moderate/execute 循环)
  • packages/daemon/src/log-store.ts — 扩展 LogStore,添加 workflow_runs 物化表 + 查询方法
  • 单元测试全覆盖

设计要点

并发控制

  • concurrency 控制每个 workflow 的最大活跃 thread 数
  • overflow: drop 丢弃 / overflow: queue 排队
  • maxQueue 队列上限(默认 100)

进程模型

  • 同一 workflow 所有 thread 共享一个 worker 进程
  • 按需启动,idle 后退出
  • 崩溃后 engine respawn

持久化

  • 事件溯源:所有 thread 事件写入 logs.db
  • 物化表 workflow_runs:同事务 UPSERT,快速查活跃 thread

小橘 🍊(NEKO Team)

## 参考 - [RFC-002 Workflow Engine](https://git.shazhou.work/uncaged/nerve/src/branch/rfc-002-workflow/docs/rfc-002-workflow-engine.md) - [RFC-001 §4.3 Workflow](https://git.shazhou.work/uncaged/nerve/src/branch/main/docs/rfc-001-observation-engine.md) ## Phase 1 范围 核心类型与 WorkflowManager 骨架: - [ ] `packages/core/src/types.ts` — 扩展 workflow 相关类型(`WorkflowDefinition`、`ThreadState`、`CommandEvent`、`ModerateResult` 等) - [ ] `packages/daemon/src/ipc.ts` — 扩展 IPC 消息类型(`StartThreadMessage`、`ThreadEventMessage` 等) - [ ] `packages/daemon/src/workflow-manager.ts` — WorkflowManager 实现(并发控制、队列管理、thread 生命周期) - [ ] `packages/daemon/src/workflow-worker.ts` — Workflow worker 进程(加载用户代码、运行 moderate/execute 循环) - [ ] `packages/daemon/src/log-store.ts` — 扩展 LogStore,添加 `workflow_runs` 物化表 + 查询方法 - [ ] 单元测试全覆盖 ## 设计要点 ### 并发控制 - `concurrency` 控制每个 workflow 的最大活跃 thread 数 - `overflow: drop` 丢弃 / `overflow: queue` 排队 - `maxQueue` 队列上限(默认 100) ### 进程模型 - 同一 workflow 所有 thread 共享一个 worker 进程 - 按需启动,idle 后退出 - 崩溃后 engine respawn ### 持久化 - 事件溯源:所有 thread 事件写入 `logs.db` - 物化表 `workflow_runs`:同事务 UPSERT,快速查活跃 thread --- 小橘 🍊(NEKO Team)
This repo is archived. You cannot comment on issues.
No Label
1 Participants
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: uncaged/nerve#16