fix(prompt): clean persona system prompt — remove YAML dump, filter empty subsessions

- Persona injector: concise natural language rules, not raw YAML
- Context builder: skip empty memory, skip raw intent data
- Prompt reduced from 2000+ tokens to ~500 tokens
- LLM response quality improved (natural tone, no confusion)
This commit is contained in:
Aska committed 2026-08-12 19:27:12 +08:00
1 parent 14a8eecfdb
commit 585dfa1e38
2 files changed
+36 -32

No files matched your search

+9 -7
View File
@@ -129,16 +129,18 @@ func (b *Builder) Build(systemPrompt string, sessionID string, subsessionResults
// 2. Subsession results (injected as system context)
for _, r := range subsessionResults {
if r.Error != "" {
if r.Error != "" || r.Content == "" || r.Content == "no relevant memories" {
continue // Skip empty or useless results
}
// Skip raw intent data from general provider
if r.Provider == "general" && strings.HasPrefix(r.Content, "Intent:") {
continue
}
if r.Content != "" {
msg := model.LLMMessage{
Role: "system",
Content: fmt.Sprintf("[%s context]\n%s", r.Provider, r.Content),
}
messages = append(messages, msg)
msg := model.LLMMessage{
Role: "system",
Content: fmt.Sprintf("[%s context]\n%s", r.Provider, r.Content),
}
messages = append(messages, msg)
}
// 3. IoT device context