promptInstructionsHeading = "\n\n# The user's instructions\n\n"
)
-// promptEfforts are the reasoning efforts that spawn can give a subagent.
-var promptEfforts = []string{"low", "medium", "high", "xhigh"}
-
// promptText is the system prompt of the reference, nearly word for word, with
// one added paragraph on the user's instructions file. The reference names its
// own agent, so promptText has the name of the agent and the kind reply in its
words. Never send a WhatsApp reply drafted by a child without the user's
agreement.
Propose routing a source that talks only about one area to its child.
-Set or remove a route only after the user agrees.`
+Set or remove a route only after the user agrees.
+Use image_show or whatsapp_send with an image only on the user's request.
+Pass an image to a child with an [image FILE] line in tell.`
// promptSubagentText is the system prompt of a subagent, from the subagent
// prompt of the reference design: its head, then the doc of the view, without
whole chat. An [image FILE] line names a stored image. Use zoom(id, 1)
to see its pixels.`
+// promptEfforts are the reasoning efforts that spawn can give a subagent.
+var promptEfforts = []string{"low", "medium", "high", "xhigh"}
+
// prompt returns the system prompt of the reference with one added paragraph on
// the user's instructions file at instructionsPath. It uses the agent name and
// ends with the user's instructions. Without instructions it has neither them
"message": promptStringSchema("The message."),
}),
Strict: true,
+ }, ModelTool{
+ Type: "function",
+ Name: "image_show",
+ Description: "Show a stored image to the user, only when the user asks to see it. Give its stored filename, not a path.",
+ Parameters: promptObjectSchema(map[string]any{
+ "image": promptStringSchema("The stored image filename from an [image FILE] line."),
+ "caption": promptStringSchema("The caption, or an empty string."),
+ }),
+ Strict: true,
}, ModelTool{
Type: "function",
Name: "whatsapp_find",
}, 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.",
+ Description: "Send text or a stored image with text as its caption 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."),
+ "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, or the caption when sending an image. Can be empty with an image."),
+ "image": promptNullableStringSchema("The stored image filename from an [image FILE] line, or null for text only."),
}),
Strict: true,
}, ModelTool{