prompt

package
v0.7.9 Latest Latest
Warning

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

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

Documentation

Index

Constants

View Source
const MaxNoteContentLen = 40

MaxNoteContentLen 笔记内容最大长度(rune),供 tool handler 参考

Variables

View Source
var GetCurrentSessionID = session.GetCurrentSessionID

Functions

func BuildNotePrompt added in v0.7.6

func BuildNotePrompt(ctx context.Context) string

BuildNotePrompt 从近期笔记构建记忆线索提示词

func FormatTime added in v0.7.6

func FormatTime(t time.Time) string

FormatTime 格式化时间为简短形式

func GetDefaultPromptTemplate

func GetDefaultPromptTemplate(role string) string

GetDefaultPromptTemplate 获取内嵌的默认提示词模板 role: dev, expert, review

func GetPromptPath

func GetPromptPath(role string, global bool) (string, error)

GetPromptPath 获取提示词文件路径 global: true表示全局配置,false表示项目配置

func GetPromptSourceContent added in v0.7.9

func GetPromptSourceContent(name string, global bool) string

GetPromptSourceContent 获取用于初始化新提示词文件的种子内容。 非 global 作用域(项目):先尝试全局文件,再尝试内建模板。 global 作用域:只尝试内建模板(已知内建名才返回内容)。 无可用来源时返回空字符串,调用方创建空文件。

func GetPromptTemplate

func GetPromptTemplate(ctx context.Context, role string) string

GetPromptTemplate 获取当前生效的提示词模板 优先级:项目配置(.dscli/prompt/) > 全局配置 > 内嵌默认模板 GetPromptTemplate 获取当前生效的提示词模板。 优先级:项目配置(.dscli/prompt/) > 全局配置 > 内嵌默认模板。 当数据库中存在 role→prompt 映射时,使用映射后的 prompt 名称加载模板;

func GetSystemPrompt

func GetSystemPrompt(ctx context.Context) string

GetSystemPrompt 获取增强的系统提示词

func HandleNote added in v0.7.7

func HandleNote(ctx context.Context, content string) (result, warning string, err error)

func HandleRecall added in v0.7.7

func HandleRecall(ctx context.Context, keywordsStr string, days, limit int) (result, warning string, err error)

func JudgeHistory added in v0.7.7

func JudgeHistory(messages []*Message)

JudgeHistory - Cleanup the history

func ResolvePromptEditPath added in v0.7.8

func ResolvePromptEditPath(name string) (string, error)

ResolvePromptEditPath 确定编辑提示词的目标路径 优先编辑项目级别(若已存在);若不在项目中或文件不存在则使用全局 ResolvePromptEditPath 确定编辑提示词的目标路径 优先编辑项目级别(若已存在);若不在项目中或文件不存在则使用全局

func ResolvePromptRemovePath added in v0.7.8

func ResolvePromptRemovePath(name string) (string, error)

ResolvePromptRemovePath 确定删除提示词的目标路径 优先项目级别(若存在),否则全局

func SaveMessages added in v0.7.6

func SaveMessages(ctx context.Context, msgs ...Message) error

SaveMessages 保存消息(事务) SaveMessages 保存消息(事务),同时同步 FTS5 全文索引。

func SaveNote added in v0.7.6

func SaveNote(ctx context.Context, content string) error

SaveNote 保存一条对话笔记(限制 MaxNoteContentLen 字以内)

func ToSQLNullString added in v0.7.7

func ToSQLNullString(tcs []ToolCall) (toolCalls sql.NullString)

func ToolCallsID added in v0.7.6

func ToolCallsID(tcs []ToolCall) string

func Truncate added in v0.7.7

func Truncate(content string, maxLen int) string

Truncate 截断内容用于预览

func UpdateContent added in v0.7.7

func UpdateContent(ctx context.Context, id int64, content string) (err error)

UpdateContent update message content

func UpdateHistory added in v0.7.7

func UpdateHistory(ctx context.Context, id int64) (err error)

UpdateHistory update message session_id to 0

func UpdateToolCalls added in v0.7.7

func UpdateToolCalls(ctx context.Context, id int64, tcs []ToolCall) (err error)

UpdateToolCalls update message content

Types

type Message added in v0.7.6

type Message struct {
	ID               int64      `json:"-"`
	SessionID        int64      `json:"-"`
	ModelID          int64      `json:"-"`
	Role             string     `json:"role"`
	ReasoningContent string     `json:"reasoning_content"`
	Content          string     `json:"content"`                // 始终输出,即使为空字符串
	ToolCalls        []ToolCall `json:"tool_calls,omitempty"`   // 仅当有工具调用时输出
	ToolCallID       string     `json:"tool_call_id,omitempty"` // 仅当 role="tool" 时输出
	CreatedAt        time.Time  `json:"-"`

	OK bool `json:"-"`
	// contains filtered or unexported fields
}

Message 扩展,支持工具调用(注意:Content 字段不再使用 omitempty)

func CleanupReverse added in v0.7.7

func CleanupReverse(messages []Message) (cleaned []Message)

CleanupReverse - make the messages clean, remove the mistake message

func ListHistory added in v0.7.7

func ListHistory(ctx context.Context) ([]*Message, error)

ListHistory 加载指定会话的所有历史消息,按时间升序返回

func LoadHistory added in v0.7.7

func LoadHistory(ctx context.Context) ([]Message, error)

LoadHistory 加载指定会话的所有历史消息,按时间升序返回

func LoadPrompts added in v0.7.6

func LoadPrompts(ctx context.Context) ([]Message, error)

LoadPrompts loads the system prompt combined with skill and note prompts. Only dev role gets skills and notes; expert/review roles skip them. LoadPrompts loads the system prompt combined with skill and note prompts. Skills are injected according to role config; when no config exists, only dev role gets skills (hardcoded fallback).

func ShowMessage added in v0.7.7

func ShowMessage(ctx context.Context, id int64) (message *Message, err error)

func (*Message) GetTokens added in v0.7.6

func (m *Message) GetTokens() int

type Note added in v0.7.6

type Note struct {
	ID        int64
	SessionID int64
	Content   string
	CreatedAt time.Time
}

Note 对话笔记,用于跨对话记忆

func LoadNotes added in v0.7.6

func LoadNotes(ctx context.Context, days int) ([]Note, error)

LoadNotes 加载当前项目最近N天的笔记,最多返回10条

type PromptInfo added in v0.7.8

type PromptInfo struct {
	Name        string
	Description string
	Source      string // "built-in", "project", "global"
}

PromptInfo 提示词基本信息

func ListPrompts added in v0.7.8

func ListPrompts() []PromptInfo

ListPrompts 列出所有可用提示词(去重,项目优先 > 全局 > 内嵌)

type Result added in v0.7.7

type Result struct {
	Message     Message
	ProjectPath string
}

Result 搜索结果

func SearchMessages added in v0.7.7

func SearchMessages(ctx context.Context, keywords []string, days, limit int) ([]Result, error)

SearchMessages 搜索消息,使用 FTS5 全文搜索(中文分词,按相关性排序)。 只搜索 role=user 和 role=assistant(无tool_calls) 的消息。 仅搜索当前 session(对应当前项目)的消息,避免跨项目回忆。 keywords: 搜索关键词(空格分隔,OR 逻辑,匹配任一即返回)。 days: 搜索最近N天,<=0 表示不限时间。 limit: 返回结果数量上限。

type ToolCall added in v0.7.6

type ToolCall struct {
	ID       string           `json:"id"`
	Type     string           `json:"type"`
	Function ToolCallFunction `json:"function"`
}

type ToolCallFunction added in v0.7.6

type ToolCallFunction struct {
	Name      string `json:"name"`
	Arguments string `json:"arguments"` // JSON 字符串
}

Source Files

  • doc.go
  • history.go
  • message.go
  • note.go
  • prompt.go
  • recall.go

Jump to

Keyboard shortcuts

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