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 }