33 lines
971 B
Go
33 lines
971 B
Go
package agent
|
|
|
|
import (
|
|
"fmt"
|
|
)
|
|
|
|
// WebAgentB is a simple agent that applies formatting functions
|
|
type WebAgentB struct {
|
|
*AgentClient
|
|
sysprompt string
|
|
}
|
|
|
|
// NewWebAgentB creates a WebAgentB that uses the given formatting function
|
|
func NewWebAgentB(client *AgentClient, sysprompt string) *WebAgentB {
|
|
return &WebAgentB{AgentClient: client, sysprompt: sysprompt}
|
|
}
|
|
|
|
// Process applies the formatting function to raw output
|
|
func (a *WebAgentB) Process(args map[string]string, rawOutput []byte) []byte {
|
|
msg, err := a.FormMsg(a.sysprompt,
|
|
fmt.Sprintf("request:\n%+v\ntool response:\n%v", args, string(rawOutput)))
|
|
if err != nil {
|
|
a.Log().Error("failed to process the request", "error", err)
|
|
return []byte("failed to process the request; err: " + err.Error())
|
|
}
|
|
resp, err := a.LLMRequest(msg)
|
|
if err != nil {
|
|
a.Log().Error("failed to process the request", "error", err)
|
|
return []byte("failed to process the request; err: " + err.Error())
|
|
}
|
|
return resp
|
|
}
|