RFC-001: Workflow Engine #1

Closed
opened 2026-05-06 04:23:32 +00:00 by xiaoju · 2 comments
Owner

背景

Uncaged 需要一个通用的 Workflow 引擎,用单文件 ESM bundle 定义 workflow,通过 CLI 管理和执行。

详细设计见 docs/rfc-001-workflow-engine.md

Phase 拆分

Phase 1: 核心数据结构 + Bundle 管理

  • @uncaged/workflow 包:Crockford Base32 编解码、XXH64 hash、ULID 生成、JSONL 读写、workflow.yaml 注册表 CRUD
  • CLI: uncaged-workflow add/list/show/remove
  • 验证目标:能注册一个 ESM bundle,验证其单文件约束,计算 hash,写入注册表
  • Testing issue: 待创建

Phase 2: Thread 生命周期

  • Thread 创建、状态持久化(.data.jsonl / .info.jsonl)
  • CLI: uncaged-workflow run/threads/thread/thread rm/ps/kill
  • 进程模型:同 bundle 同进程,IPC 终止单个 thread
  • 验证目标:能启动 workflow thread,写入 JSONL,查询运行状态,终止指定 thread
  • Testing issue: 待创建

Phase 3: 版本管理 + 高级 Thread 操作

  • CLI: uncaged-workflow history/rollback/pause/resume
  • 验证目标:能查看 workflow 历史版本并回滚,能暂停/恢复 thread
  • Testing issue: 待创建

Phase 4: Fork + 集成

  • CLI: uncaged-workflow fork
  • 与 solve-issue 等现有 workflow 集成
  • 验证目标:能从历史 thread 的某个 role 输出处 fork 出新 thread
  • Testing issue: 待创建

完成标准

  • 所有 Phase 的 testing issue 已 close
  • 一个真实 workflow(如 solve-issue)成功通过引擎运行
  • bun publish 到 npm 成功
## 背景 Uncaged 需要一个通用的 Workflow 引擎,用单文件 ESM bundle 定义 workflow,通过 CLI 管理和执行。 详细设计见 `docs/rfc-001-workflow-engine.md`。 ## Phase 拆分 ### Phase 1: 核心数据结构 + Bundle 管理 - `@uncaged/workflow` 包:Crockford Base32 编解码、XXH64 hash、ULID 生成、JSONL 读写、workflow.yaml 注册表 CRUD - CLI: `uncaged-workflow add/list/show/remove` - 验证目标:能注册一个 ESM bundle,验证其单文件约束,计算 hash,写入注册表 - Testing issue: 待创建 ### Phase 2: Thread 生命周期 - Thread 创建、状态持久化(.data.jsonl / .info.jsonl) - CLI: `uncaged-workflow run/threads/thread/thread rm/ps/kill` - 进程模型:同 bundle 同进程,IPC 终止单个 thread - 验证目标:能启动 workflow thread,写入 JSONL,查询运行状态,终止指定 thread - Testing issue: 待创建 ### Phase 3: 版本管理 + 高级 Thread 操作 - CLI: `uncaged-workflow history/rollback/pause/resume` - 验证目标:能查看 workflow 历史版本并回滚,能暂停/恢复 thread - Testing issue: 待创建 ### Phase 4: Fork + 集成 - CLI: `uncaged-workflow fork` - 与 solve-issue 等现有 workflow 集成 - 验证目标:能从历史 thread 的某个 role 输出处 fork 出新 thread - Testing issue: 待创建 ## 完成标准 - [ ] 所有 Phase 的 testing issue 已 close - [ ] 一个真实 workflow(如 solve-issue)成功通过引擎运行 - [ ] bun publish 到 npm 成功
Author
Owner

Testing Issues 关联

  • Phase 1: 核心数据结构 + Bundle 管理 → #3
  • Phase 2: Thread 生命周期 → #2
  • Phase 3: 版本管理 + 高级 Thread 操作 → #4
  • Phase 4: Fork + 集成 → #5
## Testing Issues 关联 - Phase 1: 核心数据结构 + Bundle 管理 → #3 - Phase 2: Thread 生命周期 → #2 - Phase 3: 版本管理 + 高级 Thread 操作 → #4 - Phase 4: Fork + 集成 → #5
Author
Owner

RFC-001 完成 🎉

所有 Phase 验证通过:

  • Phase 1: 核心数据结构 + Bundle 管理 (#3)
  • Phase 2: Thread 生命周期 (#2)
  • Phase 3: 版本管理 + 高级操作 (#4)
  • Phase 4: Fork + 集成 (#5)
  • Refactor: AsyncGenerator + ThreadInput (#6)

最终架构

  • Bundle 契约: AsyncGenerator<RoleOutput, WorkflowResult> — 零框架依赖
  • ThreadInput: { prompt, steps } — fork/resume 天然支持
  • createRoleModerator: 可选 helper,moderator 路由自动处理 resume
  • 53 tests, biome clean, bun publish dry-run 通过

小橘 🍊(NEKO Team)

## RFC-001 完成 🎉 所有 Phase 验证通过: - ✅ Phase 1: 核心数据结构 + Bundle 管理 (#3) - ✅ Phase 2: Thread 生命周期 (#2) - ✅ Phase 3: 版本管理 + 高级操作 (#4) - ✅ Phase 4: Fork + 集成 (#5) - ✅ Refactor: AsyncGenerator + ThreadInput (#6) ### 最终架构 - **Bundle 契约**: `AsyncGenerator<RoleOutput, WorkflowResult>` — 零框架依赖 - **ThreadInput**: `{ prompt, steps }` — fork/resume 天然支持 - **createRoleModerator**: 可选 helper,moderator 路由自动处理 resume - **53 tests**, biome clean, bun publish dry-run 通过 小橘 🍊(NEKO Team)
Sign in to join this conversation.
No Label
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: uncaged/workflow#1