]> git.giacomolli.uk - onechat/blobdiff - prompt.go
Reflow the comments of promptTools and terminal
[onechat] / prompt.go
index cd70250b2b999370931b20d4f327f07b04d142e0..8210575e99ce2e4db0926cacc6075fa5e322ce6a 100644 (file)
--- a/prompt.go
+++ b/prompt.go
@@ -185,8 +185,9 @@ func promptSubagent(name, instructions string) string {
 }
 
 // promptTools returns the function tools of every call of the agent: the tools
-// of promptSubagentTools, then spawn, tell, and the WhatsApp tools. A compaction sends them too and
-// never calls them, because a change of the tools ends the shared prompt cache.
+// of promptSubagentTools, then spawn, tell, and the WhatsApp tools. 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",
@@ -217,11 +218,21 @@ func promptTools() []ModelTool {
        }, ModelTool{
                Type:        "function",
                Name:        "whatsapp_find",
-               Description: "Find the WhatsApp contacts and groups of the user whose name contains the text, with no regard to case and accents. Gives up to 20 matches, each as ID | name | contact or group.",
+               Description: "Find the WhatsApp contacts and groups of the user whose name contains the text, with no regard to case and accents. Gives up to 20 matches, each as ID | name | contact or group. Give the ID to whatsapp_send.",
                Parameters: promptObjectSchema(map[string]any{
                        "name": promptStringSchema("A part of the name of the contact or the group."),
                }),
                Strict: true,
+       }, ModelTool{
+               Type:        "function",
+               Name:        "whatsapp_send",
+               Description: "Send a text message to a WhatsApp chat. Send only a message that the user asked you to send, to the chat that the user named. Give a new id for each message: a call with an id that was used gives the answer of the first call and sends nothing.",
+               Parameters: promptObjectSchema(map[string]any{
+                       "id":   promptStringSchema("A new id for this message, such as a short random word."),
+                       "chat": promptStringSchema("The ID of the chat, from whatsapp_find or from a [WhatsApp] message."),
+                       "text": promptStringSchema("The text of the message."),
+               }),
+               Strict: true,
        })
 }