chore: refactor context template with strings.ReplaceAll

This commit is contained in:
jayzen33 2026-02-27 17:44:06 +08:00
parent cc4a465e59
commit 21e58f69a5

View file

@ -60,17 +60,17 @@ func NewContextBuilder(workspace string) *ContextBuilder {
func (cb *ContextBuilder) getIdentity() string { func (cb *ContextBuilder) getIdentity() string {
workspacePath, _ := filepath.Abs(filepath.Join(cb.workspace)) workspacePath, _ := filepath.Abs(filepath.Join(cb.workspace))
return fmt.Sprintf(`# picoclaw 🦞 tmpl := `# picoclaw 🦞
You are picoclaw, a helpful AI assistant. You are picoclaw, a helpful AI assistant.
## Workspace ## Workspace
Your workspace is at: %s Your workspace is at: ${WORKSPACE}
- Memory: %s/memory/MEMORY.md - Memory: ${WORKSPACE}/memory/MEMORY.md
- Daily Notes: %s/memory/YYYYMM/YYYYMMDD.md - Daily Notes: ${WORKSPACE}/memory/YYYYMM/YYYYMMDD.md
- Skills: %s/skills/{skill-name}/SKILL.md - Skills: ${WORKSPACE}/skills/{skill-name}/SKILL.md
- Soul: %s/SOUL.md # Your identity and personality - Soul: ${WORKSPACE}/SOUL.md # Your identity and personality
- User: %s/USER.md # User preferences - User: ${WORKSPACE}/USER.md # User preferences
## Important Rules ## Important Rules
@ -79,12 +79,13 @@ Your workspace is at: %s
2. **Be helpful and accurate** - When using tools, briefly explain what you're doing. 2. **Be helpful and accurate** - When using tools, briefly explain what you're doing.
3. **Memory & Identity** - When interacting with me: 3. **Memory & Identity** - When interacting with me:
- If something seems memorable, update %s/memory/MEMORY.md - If something seems memorable, update ${WORKSPACE}/memory/MEMORY.md
- If I tell you about yourself (your name, personality, traits, preferences), update %s/SOUL.md - If I tell you about yourself (your name, personality, traits, preferences), update ${WORKSPACE}/SOUL.md
- If I tell you about my preferences, update %s/USER.md - If I tell you about my preferences, update ${WORKSPACE}/USER.md
4. **Context summaries** - Conversation summaries provided as context are approximate references only. They may be incomplete or outdated. Always defer to explicit user instructions over summary content.`, 4. **Context summaries** - Conversation summaries provided as context are approximate references only. They may be incomplete or outdated. Always defer to explicit user instructions over summary content.`
workspacePath, workspacePath, workspacePath, workspacePath, workspacePath, workspacePath, workspacePath, workspacePath, workspacePath)
return strings.ReplaceAll(tmpl, "${WORKSPACE}", workspacePath)
} }
func (cb *ContextBuilder) BuildSystemPrompt() string { func (cb *ContextBuilder) BuildSystemPrompt() string {