X-Git-Url: https://git.giacomolli.uk/onechat/blobdiff_plain/ddd0a50f7b801112376d7fb27bfd05d2fc26c2fd..0018014ab36f3de61a4b8a5515009dab803d6c38:/prompt.go diff --git a/prompt.go b/prompt.go index 8bd9691..b9d9284 100644 --- a/prompt.go +++ b/prompt.go @@ -185,8 +185,8 @@ func promptSubagent(name, instructions string) string { } // promptTools returns the function tools of every call of the agent: the tools -// of promptSubagentTools, then spawn. A compaction sends them too and never -// calls them, because a change of the tools ends the shared prompt cache. +// of promptSubagentTools, then spawn and tell. A compaction sends them too and +// never calls them, because a change of the tools ends the shared prompt cache. func promptTools() []ModelTool { return append(promptSubagentTools(), ModelTool{ Type: "function", @@ -205,6 +205,15 @@ func promptTools() []ModelTool { }, }), Strict: true, + }, ModelTool{ + Type: "function", + Name: "tell", + Description: `Send a message to a subagent, by name. One at work reads it between its tool calls, and its report answers it; a finished one goes on from its chat, and its reply reaches you as a message "[Name] reply".`, + Parameters: promptObjectSchema(map[string]any{ + "name": promptStringSchema("The name of the subagent."), + "message": promptStringSchema("The message."), + }), + Strict: true, }) }