planner

package
v1.0.6 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Jul 7, 2026 License: MIT Imports: 9 Imported by: 0

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 NewDAGPlanner(provider model.Completer, modelName, goal string, reg *tool.Registry) *DAGPlanner

func (*DAGPlanner) Generate

func (p *DAGPlanner) Generate(ctx context.Context) (*runtime.Plan, error)

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 NopAwait

type NopAwait struct{}

NopAwait:M1 是同步 loop,不应触发异步路径;触发即报错暴露问题。

func (NopAwait) Begin

type NopEmitter

type NopEmitter struct{}

func (NopEmitter) Emit

func (NopEmitter) Emit(runtime.Event)

type NopStore

type NopStore struct{}

func (NopStore) PersistNode

type ToolInvoker

type ToolInvoker struct{ Reg *tool.Registry }

ToolInvoker 把 tool.Registry 适配成 runtime.Invoker(Tool-First:节点 = 一次工具调用)。

func NewToolInvoker

func NewToolInvoker(reg *tool.Registry) ToolInvoker

func (ToolInvoker) Invoke

func (ti ToolInvoker) Invoke(ctx context.Context, name string, input map[string]any, emit runtime.Emitter) (map[string]any, error)

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL