Documentation
¶
Overview ¶
Package planner 是 v2 的编排前端:把"目标 + 工具清单"变成 runtime 可执行的计划。
M1 验证类型 A(control loop / IncrementalPlanSource)。本文件提供把 tool.Registry 接入 runtime 内核所需的端口适配器;真实的 LLM PlanSource(Claude)在后续文件加入, 它实现 runtime.PlanSource.Next —— 看目标 + 工具 + ExecState 决定下一步。
Index ¶
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func SpecToWorkflow ¶
func SpecToWorkflow(spec planSpec, goal string, workflowTools map[string]string) *definition.WorkflowDefinition
SpecToWorkflow 将 DAGPlanner 生成的 planSpec 转换为 v1 engine 可执行的 WorkflowDefinition。
这是 v3 AI 规划 + v1 可靠执行的关键桥接:
DAGPlanner → planSpec → SpecToWorkflow → WorkflowDefinition → v1 engine.RunDAG()
v1 engine 提供:
- Task/Node 持久化(task_nodes 表)
- Async AwaitBinding + Poll Worker
- 分布式锁 + Crash Recovery
- Task Events 事件流
SpecToWorkflow 将 DAGPlanner 生成的 planSpec 转为 v1 engine 可执行的 WorkflowDefinition。 workflowTools: 已知的 "工具名 → 工作流定义名" 映射,用于将 workflow-as-tool 转为 NodeSubWorkflow。
Types ¶
type DAGPlanner ¶
type DAGPlanner struct {
Provider model.Completer // 任意 LLM 后端(*OpenAICompatibleProvider 满足;含 OpenAI 兼容网关)
Model string
Goal string
System string
MaxRepairs int // FR5/FR6:generate→validate→repair 的最大修复轮数(默认 3)
// contains filtered or unexported fields
}
func NewDAGPlanner ¶
func (*DAGPlanner) Generate ¶
Generate 让 LLM 产出一张校验通过的 DAG,返回可执行的 runtime.Plan。 调用方:sched.Run(ctx, runtime.NewStaticSource(plan), state)。
func (*DAGPlanner) GenerateWorkflow ¶
func (p *DAGPlanner) GenerateWorkflow(ctx context.Context, workflowTools map[string]string) (*definition.WorkflowDefinition, error)
GenerateWorkflow 生成一张校验通过的 DAG,返回 v1 engine 可直接执行的 WorkflowDefinition。 这是 v3 AI 规划 + v1 可靠执行的关键桥接。
type NopEmitter ¶
type NopEmitter struct{}
func (NopEmitter) Emit ¶
func (NopEmitter) Emit(runtime.Event)
type ToolInvoker ¶
ToolInvoker 把 tool.Registry 适配成 runtime.Invoker(Tool-First:节点 = 一次工具调用)。
func NewToolInvoker ¶
func NewToolInvoker(reg *tool.Registry) ToolInvoker