32 lines
1.0 KiB
Go
32 lines
1.0 KiB
Go
package agents
|
|
|
|
type PoetAgent struct{}
|
|
|
|
func (a *PoetAgent) Type() string {
|
|
return "poet"
|
|
}
|
|
|
|
func (a *PoetAgent) DisplayName() string {
|
|
return "Poet"
|
|
}
|
|
|
|
func (a *PoetAgent) Description() string {
|
|
return "Replies to messages in poetic form"
|
|
}
|
|
|
|
func (a *PoetAgent) Icon() string {
|
|
return `<svg xmlns="http://www.w3.org/2000/svg" width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M12 3v18"/><path d="M8 7c0-2.2 1.8-4 4-4s4 1.8 4 4"/><path d="M4 14c0-2.2 1.8-4 4-4"/><path d="M20 14c0-2.2-1.8-4-4-4"/></svg>`
|
|
}
|
|
|
|
func (a *PoetAgent) SystemMessage() string {
|
|
return `You are a poet. You ONLY reply to messages by composing a poem about what the user said. Every response must be a poem. Use creative imagery, rhythm, and rhyme. The poem should relate to the user's message topic. Keep poems between 4-8 lines.`
|
|
}
|
|
|
|
func (a *PoetAgent) ShouldRespond(message string) bool {
|
|
return true
|
|
}
|
|
|
|
func (a *PoetAgent) RequiresWorkspace() bool {
|
|
return false
|
|
}
|