engine

package
v0.0.0-...-fd6a81b Latest Latest
Warning

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

Go to latest
Published: Jul 17, 2026 License: Apache-2.0 Imports: 14 Imported by: 0

Documentation

Overview

Package engine 提供执行引擎模板(Ring 1)。引擎是"循环结构"的代码 实现:react 是唯一的主循环形态,plan-execute 等其他模板不直接面向 用户,而是被 skill 声明引用、打包成能力挂到工具面上。 新循环形态(reflection、debate)在此注册后即可被 skill 配置引用。

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func ExtractJSON

func ExtractJSON(s string) string

ExtractJSON 从模型输出中提取 JSON 文本,按包裹形态逐层剥离: 先剥 <think> 推理块,再优先取 ``` 代码栏内容,最后截取第一个 { 到 最后一个 } 之间。注意产物可能带尾部冗余(模型多打括号),解析方应 按值解码(见 unmarshalLoose),不要用严格的整段 Unmarshal。

func Register

func Register(name string, b Builder)

Register 注册一个引擎模板。

Types

type Assembly

type Assembly struct {
	Model        model.ToolCallingChatModel
	Capabilities []capability.Capability
	MaxSteps     int
	// Modifier 在每次模型调用前注入 system prompt(L1-L4 拼装的产物)。
	Modifier MessageModifier
	// Rewriter 在每次模型调用前重写累积历史(上下文压缩)。
	Rewriter MessageModifier
	// Prompts 是引擎专属提示词(如 planner/replanner),已渲染为文本。
	Prompts map[string]string
	// Config 是引擎专属配置(如 max_rounds)。
	Config map[string]any
}

Assembly 是构建一个引擎实例所需的全部原料,由 agent/skill 构建层装配。

func (*Assembly) ConfInt

func (a *Assembly) ConfInt(key string, def int) int

ConfInt 从引擎配置取整数,缺省返回 def。

func (*Assembly) ConfString

func (a *Assembly) ConfString(key, def string) string

ConfString 从引擎配置取字符串,缺省返回 def。

type Builder

type Builder func(ctx context.Context, asm *Assembly) (Runner, error)

Builder 按装配单构建 Runner。

type MessageModifier

type MessageModifier func(ctx context.Context, msgs []*schema.Message) []*schema.Message

MessageModifier 与 eino react 的同名概念对齐:模型调用前修改消息。

type Runner

type Runner interface {
	Generate(ctx context.Context, msgs []*schema.Message) (*schema.Message, error)
	Stream(ctx context.Context, msgs []*schema.Message) (*schema.StreamReader[*schema.Message], error)
}

Runner 是引擎构建产物的统一执行面。

func Build

func Build(ctx context.Context, name string, asm *Assembly) (Runner, error)

Build 按名称构建 Runner,name 为空默认 react。

func BuildReAct

func BuildReAct(ctx context.Context, asm *Assembly) (Runner, error)

BuildReAct 基于 eino 内置的 ReAct agent 构建 Runner: 模型在「思考 → 调工具 → 观察结果」的循环里自主推进,直到不再产生 工具调用。这是"大脑即循环"的主形态,是否完成由模型停止调用工具 自然表达,MaxSteps 是流程兜底。

Jump to

Keyboard shortcuts

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