memorypipe

package
v0.31.0 Latest Latest
Warning

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

Go to latest
Published: Nov 11, 2026 License: MIT Imports: 6 Imported by: 0

Documentation

Overview

Package memorypipe 记忆的**注入-引用-打标**三段(读写时机归宿主)。

为什么只做这三段

「什么时候写记忆、写什么、摘要怎么生成」全是宿主的上下文策略——本仓 @@budget@@ 已经把摘要生成留成 @@Summarizer@@ 接口,同一条边界在记忆上成立: 内核不该替宿主决定「这次对话值不值得记住」。

但**注入**那一侧有三件事与策略无关、且各宿主各写一遍必然各判一套:

  1. **来源**:一条没有来源的记忆与模型的猜测在文本上无法分辨。所以来源 不是可选的元数据,是**注入的前提**——没有来源的条目不注入,而是显式 丢弃并给出原因。
  2. **打标**:注入体必须逐条带 id / source / at 标记,模型才能引用它 (而引用是「这条依据从哪来」的唯一可追溯路径),宿主才能据此判新鲜度。
  3. **裁剪显式**:预算裁掉了哪几条必须说出来。静默截断会让模型以为 「记忆里只有这些」,而实际是「更多被挤掉了」。

scope 精确匹配,不做父级兜底

按「project」查却回退到「global」看起来更友好,代价是**作用域失去了意义**: 一条只该在某个项目里生效的记忆会在任何会话里生效,而报告完全正常。 故 scope 不匹配就是丢弃,原因写清。

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type Drop

type Drop struct {
	ID   string
	Why  string
	Text string // 摘要(截断),便于宿主排查
}

Drop 一条被丢弃的条目及其原因。

丢弃必须**可解释**:宿主据此判断「是配置问题还是预算问题」—— 两者在「记忆怎么没出现」这个现象上完全一样。

type Entry

type Entry struct {
	// ID 稳定标识(渲染时进标记,模型据此引用)。
	ID string
	// Text 正文。
	Text string
	// Scope 作用域(宿主自定词表;本包只做**精确匹配**)。
	Scope string
	// Tags 标签(查询按 AND 匹配)。
	Tags []string
	// Source 来源(**必填**:没有来源的条目与猜测不可分)。
	Source string
	// At 产生时刻(渲染进标记,供模型判新鲜度)。
	At time.Time
}

Entry 一条记忆(值类型)。

ID 与 Source 都由宿主填:本包不生成 ID(那是存储的活),也不猜来源。

type Piece

type Piece struct {
	Entry Entry
	Text  string // 可能被字节裁剪过的正文
}

Piece 一条实际注入的片段。

type Query

type Query struct {
	// Scope 只要这个作用域的条目。
	Scope string
	// Tags 必须全部命中(AND;OR 会让「加个标签」变成放宽而不是收紧)。
	Tags []string
	// MaxItems 最多注入几条(<=0 = 不限制)。
	MaxItems int
	// MaxBytes 正文总字节上限(<=0 = 不限制)。
	MaxBytes int
}

Query 注入请求。

type Result

type Result struct {
	Pieces    []Piece
	Dropped   []Drop
	Truncated bool
	Reason    string
}

Result 一次注入的结果。

func Build

func Build(entries []Entry, q Query) (Result, error)

Build 按查询挑出要注入的记忆条目。

func (Result) Prompt

func (r Result) Prompt() string

Prompt 渲染成可注入的文本:**逐条打标**。

标记里带 id / source / at 三样,缺一样就少一条追溯路径: 没有 id 无法引用,没有 source 无法判断可信度,没有 at 无法判新鲜度。

Jump to

Keyboard shortcuts

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