lifecyclecontext

package
v0.1.0 Latest Latest
Warning

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

Go to latest
Published: Jun 11, 2026 License: Apache-2.0 Imports: 12 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

View Source
var ErrNoPendingSessionMessages = errors.New("no pending session messages")

Functions

func CloneRequest

func CloneRequest(req *agent.RequestContext) *agent.RequestContext

CloneRequest 深拷贝一份 RequestContext,防止 Prepare 过程污染原始请求。

func TruncateForPrompt

func TruncateForPrompt(value string, limit int) string

TruncateForPrompt 将字符串截断到指定长度,超长时追加截断标记。

Types

type ContextBuilder

type ContextBuilder struct {
	Runtime         RuntimeProvider
	SessionMessages SessionMessageProvider
}

ContextBuilder 统一为内部 Agent 和外部 CLI 构建运行上下文。

func NewContextBuilder

func NewContextBuilder(cfg ContextBuilder) *ContextBuilder

NewContextBuilder 创建统一上下文构建器。

func (*ContextBuilder) BuildSystemPrompt

func (b *ContextBuilder) BuildSystemPrompt(ctx context.Context, req *agent.RequestContext) (string, error)

BuildSystemPrompt 生成统一系统提示词,供所有运行时复用。 组装顺序:

  1. 角色定义(Leros 助手身份 + Assistant 级 SystemPrompt)
  2. 任务完成(反编造、持续执行直到产出真实结果)
  3. 工具强制(执行纪律、必须用工具而非描述意图)
  4. Skill 使用指导(加载指令 + 保存/patch 指令 + <available_skills>)
  5. Memory 工具使用指导
  6. 项目工作区信息(可见性规则 + 运行系统环境)
  7. 产物声明(必须声明交付物,否则用户不可见)
  8. 持久化记忆注入(USER.md + MEMORY.md)
  9. 运行元信息(日期 / SessionID / Model)

10. 平台格式指导(按 Channel)

func (*ContextBuilder) Prepare

Prepare 克隆请求并注入 memory、skill、session 上下文。

func (*ContextBuilder) SkillsProvider

func (b *ContextBuilder) SkillsProvider() skillcatalog.CatalogProvider

SkillsProvider 返回运行时上下文中的技能提供者。

type PassthroughSessionMessageProvider

type PassthroughSessionMessageProvider struct{}

PassthroughSessionMessageProvider 无 DB 依赖的会话消息提供器。 不加载历史上下文,不占位消息,仅校验输入是否为空来决定是否跳过执行。

func (*PassthroughSessionMessageProvider) CompleteClaimed

CompleteClaimed 不需要做任何事。Worker 完成结果通过 NATS 事件通知 Server 侧 runnable 写入 DB。

func (*PassthroughSessionMessageProvider) Prepare

Prepare 校验是否有待处理的用户输入。有则放行,无则返回 ErrNoPendingSessionMessages 让 pipeline 跳过。

type RuntimeProvider

type RuntimeProvider interface {
	SkillsProvider() skillcatalog.CatalogProvider
}

RuntimeProvider 聚合运行时依赖供 ContextBuilder 使用。

type SessionMessageProvider

type SessionMessageProvider interface {
	// Prepare 构建历史上下文、占位本轮待处理用户消息,并填充运行输入。
	Prepare(ctx context.Context, req *agent.RequestContext) error
	// CompleteClaimed 将本轮已占位的用户消息标记为已处理。
	CompleteClaimed(ctx context.Context, req *agent.RequestContext) error
}

SessionMessageProvider 将持久化的会话消息注入到 Agent 运行上下文中。

func NewPassthroughSessionMessageProvider

func NewPassthroughSessionMessageProvider() SessionMessageProvider

NewPassthroughSessionMessageProvider 创建无 DB 依赖的会话消息提供器。

Jump to

Keyboard shortcuts

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