Power Design Patterns
Downcity 里 Power 的主要形态,以及什么时候该选 actions、hooks、lifecycle runtime、system text 或 HTTP
不是每个 Power 都应该长得一样。
在当前 Downcity 里,健康的 Power 设计通常从“先选主形态”开始。
1. Action-first Power
适合这些目标:
- 显式用户触发能力
- 明确的命令或 API 入口
- 边界清楚的一次性工作
典型例子:
skillsound
2. Hook / resolve Power
当 Power 需要参与现有运行链路时,使用这种形态。
典型例子:
messenger的内置授权能力sound的自动 ASR- 各类 role resolver 风格 Power
3. System-text Power
当 Power 的主工作是增加稳定运行时指导文本时,使用这种形态。
典型例子:
skillwebmemory
4. Lifecycle-owned runtime Power
当 Power 必须拥有长期运行态时,使用这种形态。
典型例子:
messengertaskshell
ActionSchedule 有意不建模成 Power;它是共享的 Agent action 模块。
它适合这些能力:
- start
- stop
- recover
- 持有内存状态
- 随时间 poll 或 react
5. Runtime HTTP Power
当 Power 主要通过 HTTP 暴露状态或控制面时,使用这种形态。
这种形态适合由自定义 Power 提供专用状态端点,同时复用宿主的鉴权与生命周期。
一个实用判断
不要先问“这段代码最方便塞在哪里”。
先问:
- 它是不是显式命令
- 它是不是链路参与点
- 它是不是稳定 system 指导
- 它是不是生命周期拥有的 runtime state
- 它是不是 HTTP 暴露面