Documentation
¶
Overview ¶
Package prompt 装配 agent harness 的系统提示:七大静态段 + 动态 <env> 环境块。 硬翻译自上游 constants/prompts.ts 的 getSystemPrompt(非-ant 外部版)与 computeEnvInfo。
Index ¶
- func ActiveOutputStyleName() string
- func AttributionTexts(cwd string) (commit, pr string)
- func BuildSystemPrompt(ctx context.Context, cwd string) string
- func PersistOutputStyle(cwd, name string) error
- func ProjectMemory(cwd string) string
- func ProjectMemorySnapshot(cwd string) string
- func ResetSnapshots(cwd string)
- func RestoreOutputStyle(cwd string)
- func SetActiveOutputStyle(s *OutputStyle)
- type MemoryFile
- type OutputStyle
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func ActiveOutputStyleName ¶
func ActiveOutputStyleName() string
ActiveOutputStyleName 返回当前风格名(无则空)。
func AttributionTexts ¶ added in v0.8.0
AttributionTexts 返回提交与 PR 的署名文案;空串表示不加。
优先级:attribution(新)> includeCoAuthoredBy(上游已弃用的开关)> 不加。 与上游一致的一点:attribution 里**显式写空串**是"就是不要"的有效表态,不会回落到默认文案。
func BuildSystemPrompt ¶
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
PersistOutputStyle 把当前选择写进项目本地 settings.local.json(name 为空表示恢复默认)。 只改 outputStyle 这一个键,文件里其它内容原样保留——这文件还放着用户的权限规则等, 整份覆盖会把它们清掉。
func ProjectMemory ¶ added in v0.5.0
ProjectMemory 是 projectMemory 的导出版,供 TUI 的 /context 按来源归因时单独计 CLAUDE.md 占用(对齐上游 analyzeContext 的 Memory files 分类)。内容与 BuildSystemPrompt 注入的完全一致。
func ProjectMemorySnapshot ¶ added in v0.18.4
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
MemoryFile 是一份被注入系统提示的记忆文件(供 /doctor 逐个报体量)。
func MemoryFiles ¶ added in v0.8.0
func MemoryFiles(cwd string) []MemoryFile
MemoryFiles 列出会被注入系统提示的所有记忆文件及其体量(含 @import 递归引入的)。 与 ProjectMemory 走同一条发现路径,故它报的就是**实际**在付的成本,不是另估一份。
type OutputStyle ¶
OutputStyle 是一个已发现的输出风格。
func LoadOutputStyles ¶
func LoadOutputStyles(cwd string) []OutputStyle
LoadOutputStyles 发现 .claude/output-styles/*.md:项目 > 用户 ~/.claude > ~/.fundev(按名去重,项目优先)。