prompt

package
v0.27.0 Latest Latest
Warning

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

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

Documentation

Overview

Package prompt 装配 agent harness 的系统提示:七大静态段 + 动态 <env> 环境块。 硬翻译自上游 constants/prompts.ts 的 getSystemPrompt(非-ant 外部版)与 computeEnvInfo。

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func ActiveOutputStyleName

func ActiveOutputStyleName() string

ActiveOutputStyleName 返回当前风格名(无则空)。

func AttributionTexts added in v0.8.0

func AttributionTexts(cwd string) (commit, pr string)

AttributionTexts 返回提交与 PR 的署名文案;空串表示不加。

优先级:attribution(新)> includeCoAuthoredBy(上游已弃用的开关)> 不加。 与上游一致的一点:attribution 里**显式写空串**是"就是不要"的有效表态,不会回落到默认文案。

func BuildSystemPrompt

func BuildSystemPrompt(ctx context.Context, cwd string) string

BuildSystemPrompt 装配完整系统提示:静态段 + <env> 环境块 + 项目记忆(CLAUDE.md) + 自动记忆(memdir)。 cwd 是本会话的工作目录(未指定会话时由调用方传进程 cwd):env 块、CLAUDE.md、记忆、git 状态都据它取, 使多会话(各自 WorkDir)被告知各自正确的目录与项目上下文。 ctx 用于读取本会话实际生效的模型(调用方经 ctx 注入,见 anthropic.EffectiveModel);传 nil 时 回落进程默认模型(仅用于拿不到回合 ctx 的展示场景,如实说明可能与会话实际模型不同)。

CLAUDE.md 与 MEMORY.md 的注入内容按 cwd 快照(claudemdSnapshot/memdirSnapshot):进程内首个请求 读一次盘、此后字节级冻结,会话中模型/用户更新记忆文件不改已注入内容——刷新点只有两个:compact 成功后的刷新窗口(ResetSnapshots,缓存已必然全断、变化无额外代价)与下个进程(新会话/resume)。 对齐上游 getUserContext = memoize(...) 的语义——系统提示在请求最前缀,注入内容每回合 变化会打断整段 prompt cache(新内容按全价重读整段上下文),冻结是缓存稳定性的关键。

func PersistOutputStyle added in v0.8.0

func PersistOutputStyle(cwd, name string) error

PersistOutputStyle 把当前选择写进项目本地 settings.local.json(name 为空表示恢复默认)。 只改 outputStyle 这一个键,文件里其它内容原样保留——这文件还放着用户的权限规则等, 整份覆盖会把它们清掉。

func ProjectMemory added in v0.5.0

func ProjectMemory(cwd string) string

ProjectMemory 是 projectMemory 的导出版,供 TUI 的 /context 按来源归因时单独计 CLAUDE.md 占用(对齐上游 analyzeContext 的 Memory files 分类)。内容与 BuildSystemPrompt 注入的完全一致。

func ProjectMemorySnapshot added in v0.18.4

func ProjectMemorySnapshot(cwd string) string

ProjectMemorySnapshot 是 claudemdSnapshot 的导出版:返回与 BuildSystemPrompt 实际注入 完全同源的(冻结)CLAUDE.md 注入块。供 /context 这类「从系统提示里拆出记忆占比」的归因 场景使用——用实时 ProjectMemory 扣减会与冻结注入量对不上(会话中改过 CLAUDE.md 时有偏差)。

func ResetSnapshots added in v0.18.6

func ResetSnapshots(cwd string)

ResetSnapshots 丢弃 cwd 的 CLAUDE.md 与记忆索引快照,下次 BuildSystemPrompt 重读盘。 供压缩完成后的「刷新窗口」调用:compact 已把消息段缓存全断(历史被摘要替换),此轮 系统提示变化不再有额外缓存代价——这是会话中途让磁盘上新增/修改的记忆进入注入的唯一 免费时机,不必等下个进程。磁盘未变时重扫结果逐字节相同,等于 no-op。

func RestoreOutputStyle added in v0.8.0

func RestoreOutputStyle(cwd string)

RestoreOutputStyle 按 settings 里记的名字恢复选中的风格;没记或那个风格已不存在则不动。 启动时调一次。

名字对不上就当没设置——风格文件可能已被删掉/改名,此时安静地用默认风格, 比每次启动都甩一条"找不到风格 X"更合适(用户下次 /output-style 自然会看到)。

func SetActiveOutputStyle

func SetActiveOutputStyle(s *OutputStyle)

SetActiveOutputStyle 设为选定风格(nil 恢复默认)。下一回合构建系统提示时生效。

Types

type MemoryFile added in v0.8.0

type MemoryFile struct {
	Path  string // 磁盘路径
	Chars int    // 剥掉 HTML 注释后的字符数——那才是真进上下文的量
}

MemoryFile 是一份被注入系统提示的记忆文件(供 /doctor 逐个报体量)。

func MemoryFiles added in v0.8.0

func MemoryFiles(cwd string) []MemoryFile

MemoryFiles 列出会被注入系统提示的所有记忆文件及其体量(含 @import 递归引入的)。 与 ProjectMemory 走同一条发现路径,故它报的就是**实际**在付的成本,不是另估一份。

type OutputStyle

type OutputStyle struct {
	Name        string
	Description string
	Prompt      string // 正文(风格指令)
}

OutputStyle 是一个已发现的输出风格。

func LoadOutputStyles

func LoadOutputStyles(cwd string) []OutputStyle

LoadOutputStyles 发现 .claude/output-styles/*.md:项目 > 用户 ~/.claude > ~/.fundev(按名去重,项目优先)。

Jump to

Keyboard shortcuts

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