From 7be669e49e1ab69aafbcb4e474506a056a3e6731 Mon Sep 17 00:00:00 2001 From: John Costa Date: Tue, 15 Apr 2025 16:44:00 +0100 Subject: [PATCH] wip(agents): allowing event agent to call location agent --- backend/agents/event_agent.go | 14 +++++++++++--- backend/agents/note_agent.go | 2 +- backend/agents/orchestrator.go | 6 +++--- 3 files changed, 15 insertions(+), 7 deletions(-) diff --git a/backend/agents/event_agent.go b/backend/agents/event_agent.go index b170cea..ae38a68 100644 --- a/backend/agents/event_agent.go +++ b/backend/agents/event_agent.go @@ -87,6 +87,8 @@ type EventAgent struct { client client.AgentClient eventsModel models.EventModel + + locationAgent LocationAgent } type listEventArguments struct{} @@ -100,7 +102,7 @@ type linkEventArguments struct { EventID string `json:"eventId"` } -func NewEventAgent(eventsModel models.EventModel) (EventAgent, error) { +func NewEventAgent(eventsModel models.EventModel, locationAgent LocationAgent) (EventAgent, error) { agentClient, err := client.CreateAgentClient(log.NewWithOptions(os.Stdout, log.Options{ ReportTimestamp: true, TimeFormat: time.Kitchen, @@ -112,8 +114,9 @@ func NewEventAgent(eventsModel models.EventModel) (EventAgent, error) { } agent := EventAgent{ - client: agentClient, - eventsModel: eventsModel, + client: agentClient, + eventsModel: eventsModel, + locationAgent: locationAgent, } agentClient.ToolHandler.AddTool("listEvents", func(info client.ToolHandlerInfo, args string, call client.ToolCall) (any, error) { @@ -177,5 +180,10 @@ func NewEventAgent(eventsModel models.EventModel) (EventAgent, error) { return "Saved", nil }) + agentClient.ToolHandler.AddTool("getLocationId", func(info client.ToolHandlerInfo, args string, call client.ToolCall) (any, error) { + // locationAgent.client.RunAgent() + return "no location found", nil + }) + return agent, nil } diff --git a/backend/agents/note_agent.go b/backend/agents/note_agent.go index 3802eb0..9a69f28 100644 --- a/backend/agents/note_agent.go +++ b/backend/agents/note_agent.go @@ -43,7 +43,7 @@ func (agent NoteAgent) GetNotes(userId uuid.UUID, imageId uuid.UUID, imageName s } request.Chat.AddSystem(noteAgentPrompt) - request.Chat.AddImage(imageName, imageData) + request.Chat.AddImage(imageName, imageData, nil) resp, err := agent.client.Request(&request) if err != nil { diff --git a/backend/agents/orchestrator.go b/backend/agents/orchestrator.go index 3cdfcc5..3778411 100644 --- a/backend/agents/orchestrator.go +++ b/backend/agents/orchestrator.go @@ -134,7 +134,7 @@ func NewOrchestratorAgent(noteAgent NoteAgent, contactAgent ContactAgent, locati }) agent.ToolHandler.AddTool("contactAgent", func(info client.ToolHandlerInfo, args string, call client.ToolCall) (any, error) { - go contactAgent.client.RunAgent(contactPrompt, contactTools, "finish", info.UserId, info.ImageId, imageName, imageData) + go contactAgent.client.RunAgent(contactPrompt, contactTools, "finish", nil, info.UserId, info.ImageId, imageName, imageData) return Status{ Ok: true, @@ -142,7 +142,7 @@ func NewOrchestratorAgent(noteAgent NoteAgent, contactAgent ContactAgent, locati }) agent.ToolHandler.AddTool("locationAgent", func(info client.ToolHandlerInfo, args string, call client.ToolCall) (any, error) { - go locationAgent.client.RunAgent(locationPrompt, locationTools, "finish", info.UserId, info.ImageId, imageName, imageData) + go locationAgent.client.RunAgent(locationPrompt, locationTools, "finish", nil, info.UserId, info.ImageId, imageName, imageData) return Status{ Ok: true, @@ -150,7 +150,7 @@ func NewOrchestratorAgent(noteAgent NoteAgent, contactAgent ContactAgent, locati }) agent.ToolHandler.AddTool("eventAgent", func(info client.ToolHandlerInfo, args string, call client.ToolCall) (any, error) { - go eventAgent.client.RunAgent(eventPrompt, eventTools, "finish", info.UserId, info.ImageId, imageName, imageData) + go eventAgent.client.RunAgent(eventPrompt, eventTools, "finish", nil, info.UserId, info.ImageId, imageName, imageData) return Status{ Ok: true,