summaryrefslogtreecommitdiff
path: root/tools.go
diff options
context:
space:
mode:
authorGrail Finder <wohilas@gmail.com>2025-12-18 11:53:07 +0300
committerGrail Finder <wohilas@gmail.com>2025-12-18 11:53:07 +0300
commita06cfd995f05782854844e51a71a656f70274f64 (patch)
tree8550a63a928771c758ac051f23ac12613d053f27 /tools.go
parentd73c3abd6bda8690e8b5e57342221c8cb2cc88b3 (diff)
Feat: add agent entity
Diffstat (limited to 'tools.go')
-rw-r--r--tools.go24
1 files changed, 24 insertions, 0 deletions
diff --git a/tools.go b/tools.go
index d603507..e4af7ad 100644
--- a/tools.go
+++ b/tools.go
@@ -4,6 +4,7 @@ import (
"context"
"encoding/json"
"fmt"
+ "gf-lt/agent"
"gf-lt/extra"
"gf-lt/models"
"io"
@@ -848,6 +849,29 @@ var fnMap = map[string]fnSig{
"todo_delete": todoDelete,
}
+// callToolWithAgent calls the tool and applies any registered agent.
+func callToolWithAgent(name string, args map[string]string) []byte {
+ f, ok := fnMap[name]
+ if !ok {
+ return []byte(fmt.Sprintf("tool %s not found", name))
+ }
+ raw := f(args)
+ if a := agent.Get(name); a != nil {
+ return a.Process(args, raw)
+ }
+ return raw
+}
+
+// registerDefaultAgents registers default agents for formatting.
+func registerDefaultAgents() {
+ agent.Register("websearch", agent.DefaultFormatter("websearch"))
+ agent.Register("read_url", agent.DefaultFormatter("read_url"))
+}
+
+func init() {
+ registerDefaultAgents()
+}
+
// openai style def
var baseTools = []models.Tool{
// websearch