@elizaos/prompts 2.0.0-alpha.43 → 2.0.0-alpha.430

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (41) hide show
  1. package/dist/python/prompts.py +828 -244
  2. package/dist/rust/prompts.rs +809 -245
  3. package/dist/typescript/index.d.ts +40 -0
  4. package/dist/typescript/index.ts +846 -242
  5. package/package.json +6 -7
  6. package/prompts/add_contact.txt +29 -0
  7. package/prompts/choose_option.txt +4 -7
  8. package/prompts/extract_secret_operation.txt +20 -0
  9. package/prompts/extract_secret_request.txt +16 -0
  10. package/prompts/extract_secrets.txt +17 -0
  11. package/prompts/image_description.txt +8 -15
  12. package/prompts/image_generation.txt +4 -7
  13. package/prompts/initial_summarization.txt +28 -0
  14. package/prompts/long_term_extraction.txt +128 -0
  15. package/prompts/message_classifier.txt +37 -0
  16. package/prompts/message_handler.txt +44 -70
  17. package/prompts/multi_step_decision.txt +6 -18
  18. package/prompts/multi_step_summary.txt +4 -10
  19. package/prompts/option_extraction.txt +4 -9
  20. package/prompts/post_action_decision.txt +35 -0
  21. package/prompts/post_creation.txt +14 -25
  22. package/prompts/reflection.txt +8 -11
  23. package/prompts/reflection_evaluator.txt +37 -32
  24. package/prompts/remove_contact.txt +20 -0
  25. package/prompts/reply.txt +5 -8
  26. package/prompts/schedule_follow_up.txt +28 -0
  27. package/prompts/search_contacts.txt +23 -0
  28. package/prompts/should_follow_room.txt +18 -0
  29. package/prompts/should_mute_room.txt +18 -0
  30. package/prompts/should_respond.txt +37 -37
  31. package/prompts/should_respond_with_context.txt +41 -0
  32. package/prompts/should_unfollow_room.txt +18 -0
  33. package/prompts/should_unmute_room.txt +18 -0
  34. package/prompts/think.txt +25 -0
  35. package/prompts/update_contact.txt +27 -0
  36. package/prompts/update_entity.txt +6 -13
  37. package/prompts/update_role.txt +29 -0
  38. package/prompts/update_settings.txt +5 -12
  39. package/prompts/update_summarization.txt +30 -0
  40. package/scripts/generate-action-docs.js +18 -1
  41. package/scripts/generate-plugin-action-spec.js +1 -0
@@ -2,25 +2,19 @@
2
2
 
3
3
  Example task outputs:
4
4
  1. A post about the importance of AI in our lives
5
- <response>
6
- <thought>I am thinking about writing a post about the importance of AI in our lives</thought>
7
- <post>AI is changing the world and it is important to understand how it works</post>
8
- <imagePrompt>A futuristic cityscape with flying cars and people using AI to do things</imagePrompt>
9
- </response>
5
+ thought: I am thinking about writing a post about the importance of AI in our lives
6
+ post: AI is changing the world and it is important to understand how it works
7
+ imagePrompt: A futuristic cityscape with flying cars and people using AI to do things
10
8
 
11
9
  2. A post about dogs
12
- <response>
13
- <thought>I am thinking about writing a post about dogs</thought>
14
- <post>Dogs are man's best friend and they are loyal and loving</post>
15
- <imagePrompt>A dog playing with a ball in a park</imagePrompt>
16
- </response>
10
+ thought: I am thinking about writing a post about dogs
11
+ post: Dogs are man's best friend and they are loyal and loving
12
+ imagePrompt: A dog playing with a ball in a park
17
13
 
18
14
  3. A post about finding a new job
19
- <response>
20
- <thought>Getting a job is hard, I bet there's a good post in that</thought>
21
- <post>Just keep going!</post>
22
- <imagePrompt>A person looking at a computer screen with a job search website</imagePrompt>
23
- </response>
15
+ thought: Getting a job is hard, I bet there's a good post in that
16
+ post: Just keep going!
17
+ imagePrompt: A person looking at a computer screen with a job search website
24
18
 
25
19
  {{providers}}
26
20
 
@@ -28,22 +22,17 @@ Write a post that is {{adjective}} about {{topic}} (without mentioning {{topic}}
28
22
  Your response should be 1, 2, or 3 sentences (choose the length at random).
29
23
  Your response should not contain any questions. Brief, concise statements only. The total character count MUST be less than 280. No emojis. Use \n\n (double spaces) between statements if there are multiple statements in your response.
30
24
 
31
- Your output should be formatted in XML like this:
32
- <response>
33
- <thought>Your thought here</thought>
34
- <post>Your post text here</post>
35
- <imagePrompt>Optional image prompt here</imagePrompt>
36
- </response>
25
+ Your output should be formatted as TOON like this:
26
+ thought: Your thought here
27
+ post: Your post text here
28
+ imagePrompt: Optional image prompt here
37
29
 
38
30
  The "post" field should be the post you want to send. Do not including any thinking or internal reflection in the "post" field.
39
31
  The "imagePrompt" field is optional and should be a prompt for an image that is relevant to the post. It should be a single sentence that captures the essence of the post. ONLY USE THIS FIELD if it makes sense that the post would benefit from an image.
40
32
  The "thought" field should be a short description of what the agent is thinking about before responding, including a brief justification for the response. Includate an explanation how the post is relevant to the topic but unique and different than other posts.
41
33
 
42
- Do NOT include any thinking, reasoning, or <think> sections in your response.
43
- Go directly to the XML response format without any preamble or explanation.
44
-
45
- IMPORTANT: Your response must ONLY contain the <response></response> XML block above. Do not include any text, thinking, or reasoning before or after this XML block. Start your response immediately with <response> and end with </response>.
46
34
 
35
+ IMPORTANT: Your response must ONLY contain the TOON document above. Do not include any text, thinking, or reasoning before or after it.
47
36
 
48
37
 
49
38
 
@@ -12,17 +12,14 @@ Analyze the agent's recent behavior and interactions. Consider:
12
12
  3. Were any mistakes made?
13
13
  4. What could be improved?
14
14
 
15
- Respond using XML format like this:
16
- <response>
17
- <thought>Your detailed analysis</thought>
18
- <quality_score>Score 0-100 for overall quality</quality_score>
19
- <strengths>What went well</strengths>
20
- <improvements>What could be improved</improvements>
21
- <learnings>Key takeaways for future interactions</learnings>
22
- </response>
23
-
24
- IMPORTANT: Your response must ONLY contain the <response></response> XML block above.
25
-
15
+ Respond using TOON like this:
16
+ thought: Your detailed analysis
17
+ quality_score: Score 0-100 for overall quality
18
+ strengths: What went well
19
+ improvements: What could be improved
20
+ learnings: Key takeaways for future interactions
21
+
22
+ IMPORTANT: Your response must ONLY contain the TOON document above.
26
23
 
27
24
 
28
25
 
@@ -21,44 +21,49 @@ Message Sender: {{senderName}} (ID: {{senderId}})
21
21
  # Known Facts:
22
22
  {{knownFacts}}
23
23
 
24
+ # Latest Action Results:
25
+ {{actionResults}}
26
+
24
27
  # Instructions:
25
28
  1. Generate a self-reflective thought on the conversation about your performance and interaction quality.
26
- 2. Extract new facts from the conversation.
29
+ 2. Extract only durable new facts from the conversation.
30
+ - Prefer facts about the current user/sender that will still matter in a week: identity, stable preferences, recurring collaborators, durable setup, long-term projects, or ongoing constraints.
31
+ - Do NOT extract temporary status updates, current debugging/work items, one-off session metrics, isolated praise/complaints, or facts that are only true right now.
32
+ - If a fact would feel stale, irrelevant, or surprising to store a week from now, skip it.
33
+ - When in doubt, omit the fact.
27
34
  3. Identify and describe relationships between entities.
28
35
  - The sourceEntityId is the UUID of the entity initiating the interaction.
29
36
  - The targetEntityId is the UUID of the entity being interacted with.
30
37
  - Relationships are one-direction, so a friendship would be two entity relationships where each entity is both the source and the target of the other.
31
-
32
- Do NOT include any thinking, reasoning, or <think> sections in your response.
33
- Go directly to the XML response format without any preamble or explanation.
34
-
35
- Generate a response in the following format:
36
- <response>
37
- <thought>a self-reflective thought on the conversation</thought>
38
- <facts>
39
- <fact>
40
- <claim>factual statement</claim>
41
- <type>fact|opinion|status</type>
42
- <in_bio>false</in_bio>
43
- <already_known>false</already_known>
44
- </fact>
45
- <!-- Add more facts as needed -->
46
- </facts>
47
- <relationships>
48
- <relationship>
49
- <sourceEntityId>entity_initiating_interaction</sourceEntityId>
50
- <targetEntityId>entity_being_interacted_with</targetEntityId>
51
- <tags>group_interaction,voice_interaction,dm_interaction,additional_tag1,additional_tag2</tags>
52
- </relationship>
53
- <!-- Add more relationships as needed -->
54
- </relationships>
55
- </response>
56
-
57
- IMPORTANT: Your response must ONLY contain the <response></response> XML block above. Do not include any text, thinking, or reasoning before or after this XML block. Start your response immediately with <response> and end with </response>.
58
-
59
-
60
-
61
-
38
+ 4. It is normal to return no facts when nothing durable was learned.
39
+ 5. Always decide whether the user's task or request is actually complete right now.
40
+ - Set `task_completed: true` only if the user no longer needs additional action or follow-up from you in this turn.
41
+ - If you asked a clarifying question, an action failed, work is still pending, or you only partially completed the request, set `task_completed: false`.
42
+ 6. Always include a short `task_completion_reason` grounded in the conversation and action results.
43
+
44
+ Output:
45
+ TOON only. Return exactly one TOON document. No prose before or after it. No <think>.
46
+ Do not output JSON, XML, Markdown fences, or commentary.
47
+ Use indexed TOON fields exactly like this:
48
+ thought: "a self-reflective thought on the conversation"
49
+ task_completed: false
50
+ task_completion_reason: "The request is still incomplete because the needed action has not happened yet."
51
+ facts[0]:
52
+ claim: durable factual statement
53
+ type: fact
54
+ in_bio: false
55
+ already_known: false
56
+ relationships[0]:
57
+ sourceEntityId: entity_initiating_interaction
58
+ targetEntityId: entity_being_interacted_with
59
+ tags[0]: dm_interaction
60
+
61
+ For additional entries, increment the index: facts[1], relationships[1], tags[1], etc.
62
+ Always include `task_completed` and `task_completion_reason`.
63
+ If there are no durable new facts, omit all facts[...] entries.
64
+ If there are no relationships, omit all relationships[...] entries.
65
+
66
+ IMPORTANT: Your response must ONLY contain the TOON document above. Do not include any text, thinking, or reasoning before or after it.
62
67
 
63
68
 
64
69
 
@@ -0,0 +1,20 @@
1
+ task: Extract the contact removal request.
2
+
3
+ context:
4
+ {{providers}}
5
+
6
+ current_message:
7
+ {{message}}
8
+
9
+ instructions[4]:
10
+ - identify the contact name to remove
11
+ - set confirmed to yes only when the user explicitly confirms removal
12
+ - set confirmed to no when confirmation is absent or ambiguous
13
+ - return only the requested contact
14
+
15
+ output:
16
+ TOON only. Return exactly one TOON document. No prose before or after it. No <think>.
17
+
18
+ Example:
19
+ contactName: Jane Doe
20
+ confirmed: yes
package/prompts/reply.txt CHANGED
@@ -13,16 +13,13 @@ IMPORTANT CODE BLOCK FORMATTING RULES:
13
13
  - This ensures the user sees clearly formatted and copyable code when relevant.
14
14
 
15
15
  Do NOT include any thinking, reasoning, or <think> sections in your response.
16
- Go directly to the XML response format without any preamble or explanation.
16
+ Go directly to the TOON response format without any preamble or explanation.
17
17
 
18
- Respond using XML format like this:
19
- <response>
20
- <thought>Your thought here</thought>
21
- <text>Your message here</text>
22
- </response>
23
-
24
- IMPORTANT: Your response must ONLY contain the <response></response> XML block above. Do not include any text, thinking, or reasoning before or after this XML block. Start your response immediately with <response> and end with </response>.
18
+ Respond using TOON like this:
19
+ thought: Your thought here
20
+ text: Your message here
25
21
 
22
+ IMPORTANT: Your response must ONLY contain the TOON document above. Do not include any text, thinking, or reasoning before or after it.
26
23
 
27
24
 
28
25
 
@@ -0,0 +1,28 @@
1
+ task: Extract follow-up scheduling information from the request.
2
+
3
+ context:
4
+ {{providers}}
5
+
6
+ current_message:
7
+ {{message}}
8
+
9
+ current_datetime:
10
+ {{currentDateTime}}
11
+
12
+ instructions[5]:
13
+ - identify who to follow up with
14
+ - include entityId only when it is explicitly known
15
+ - convert requested timing into an ISO datetime in scheduledAt
16
+ - normalize priority to high, medium, or low
17
+ - include message only when the user asked for a specific note or reminder text
18
+
19
+ output:
20
+ TOON only. Return exactly one TOON document. No prose before or after it. No <think>.
21
+
22
+ Example:
23
+ contactName: Jane Doe
24
+ entityId:
25
+ scheduledAt: 2026-04-06T14:00:00.000Z
26
+ reason: Check in on the proposal
27
+ priority: medium
28
+ message: Send the latest deck before the call
@@ -0,0 +1,23 @@
1
+ task: Extract contact search criteria from the request.
2
+
3
+ context:
4
+ {{providers}}
5
+
6
+ current_message:
7
+ {{message}}
8
+
9
+ instructions[5]:
10
+ - return categories as a comma-separated list when the user filters by category
11
+ - return tags as a comma-separated list when the user filters by tags
12
+ - return searchTerm for any name or free-text lookup
13
+ - set intent to count when the user only wants a count, otherwise list
14
+ - omit fields that are not clearly requested
15
+
16
+ output:
17
+ TOON only. Return exactly one TOON document. No prose before or after it. No <think>.
18
+
19
+ Example:
20
+ categories: vip,colleague
21
+ searchTerm: Jane
22
+ tags: ai,design
23
+ intent: list
@@ -0,0 +1,18 @@
1
+ task: Decide whether {{agentName}} should follow this room.
2
+
3
+ context:
4
+ {{providers}}
5
+
6
+ current_message:
7
+ {{message}}
8
+
9
+ instructions[3]:
10
+ - return true only when the user is clearly asking {{agentName}} to follow, join, listen to, or stay engaged in this room
11
+ - return false when the request is ambiguous or unrelated
12
+ - prefer false when uncertain
13
+
14
+ output:
15
+ TOON only. Return exactly one TOON document. No prose before or after it. No <think>.
16
+
17
+ Example:
18
+ decision: true
@@ -0,0 +1,18 @@
1
+ task: Decide whether {{agentName}} should mute this room.
2
+
3
+ context:
4
+ {{providers}}
5
+
6
+ current_message:
7
+ {{message}}
8
+
9
+ instructions[3]:
10
+ - return true only when the user is clearly asking {{agentName}} to mute, silence, or ignore this room
11
+ - return false when the request is ambiguous or unrelated
12
+ - prefer false when uncertain
13
+
14
+ output:
15
+ TOON only. Return exactly one TOON document. No prose before or after it. No <think>.
16
+
17
+ Example:
18
+ decision: true
@@ -1,40 +1,40 @@
1
- <task>Decide on behalf of {{agentName}} whether they should respond to the message, ignore it or stop the conversation.</task>
1
+ task: Decide whether {{agentName}} should respond, ignore, or stop.
2
2
 
3
- <providers>
3
+ context:
4
4
  {{providers}}
5
- </providers>
6
-
7
- <instructions>Decide if {{agentName}} should respond to or interact with the conversation.
8
-
9
- IMPORTANT RULES FOR RESPONDING:
10
- - If YOUR name ({{agentName}}) is directly mentioned → RESPOND
11
- - If someone uses a DIFFERENT name (not {{agentName}}) → IGNORE (they're talking to someone else)
12
- - If you're actively participating in a conversation and the message continues that thread → RESPOND
13
- - If someone tells you to stop or be quiet → STOP
14
- - Otherwise → IGNORE
15
-
16
- The key distinction is:
17
- - "Talking TO {{agentName}}" (your name mentioned, replies to you, continuing your conversation) → RESPOND
18
- - "Talking ABOUT {{agentName}}" or to someone else → IGNORE
19
- </instructions>
20
-
21
- <output>
22
- Do NOT include any thinking, reasoning, or <think> sections in your response.
23
- Go directly to the XML response format without any preamble or explanation.
24
-
25
- Respond using XML format like this:
26
- <response>
27
- <name>{{agentName}}</name>
28
- <reasoning>Your reasoning here</reasoning>
29
- <action>RESPOND | IGNORE | STOP</action>
30
- </response>
31
-
32
- IMPORTANT: Your response must ONLY contain the <response></response> XML block above. Do not include any text, thinking, or reasoning before or after this XML block. Start your response immediately with <response> and end with </response>.
33
- </output>
34
-
35
-
36
-
37
-
38
-
39
-
40
5
 
6
+ rules[6]:
7
+ - direct mention of {{agentName}} -> RESPOND
8
+ - different assistant name or talking to someone else -> IGNORE unless {{agentName}} is also directly addressed
9
+ - prior participation by {{agentName}} in the thread is not enough by itself; the newest message must still clearly expect {{agentName}} -> otherwise IGNORE
10
+ - request to stop or be quiet directed at {{agentName}} -> STOP
11
+ - if multiple people are mentioned and {{agentName}} is one of the addressees -> RESPOND
12
+ - if unsure whether the speaker is talking to {{agentName}}, prefer IGNORE over hallucinating relevance
13
+
14
+ available_contexts:
15
+ {{availableContexts}}
16
+
17
+ context_routing:
18
+ - primaryContext: choose one context from available_contexts, or "general" if none apply
19
+ - secondaryContexts: optional comma-separated list of additional relevant contexts
20
+ - evidenceTurnIds: optional comma-separated list of message IDs supporting the decision
21
+
22
+ decision_note:
23
+ - respond only when the latest message is talking TO {{agentName}}
24
+ - talking TO {{agentName}} means name mention, reply chain, or a clear follow-up that still expects {{agentName}} to answer
25
+ - mentions of other people do not cancel a direct address to {{agentName}}
26
+ - casual conversation between other users is not enough
27
+ - if another assistant already answered and nobody re-addressed {{agentName}}, IGNORE
28
+ - if {{agentName}} already replied recently and nobody re-addressed {{agentName}}, IGNORE
29
+ - talking ABOUT {{agentName}} or continuing a room conversation around them is not enough
30
+
31
+ output:
32
+ TOON only. Return exactly one TOON document. No prose before or after it. No <think>.
33
+
34
+ Example:
35
+ name: {{agentName}}
36
+ reasoning: Direct mention and clear follow-up.
37
+ action: RESPOND
38
+ primaryContext: general
39
+ secondaryContexts:
40
+ evidenceTurnIds:
@@ -0,0 +1,41 @@
1
+ task: Decide whether {{agentName}} should respond and which domain context applies.
2
+
3
+ context:
4
+ {{providers}}
5
+
6
+ available_contexts:
7
+ {{availableContexts}}
8
+
9
+ rules[6]:
10
+ - direct mention of {{agentName}} -> RESPOND
11
+ - different assistant name or talking to someone else -> IGNORE unless {{agentName}} is also directly addressed
12
+ - prior participation by {{agentName}} in the thread is not enough by itself; the newest message must still clearly expect {{agentName}} -> otherwise IGNORE
13
+ - request to stop or be quiet directed at {{agentName}} -> STOP
14
+ - if multiple people are mentioned and {{agentName}} is one of the addressees -> RESPOND
15
+ - if unsure whether the speaker is talking to {{agentName}}, prefer IGNORE over hallucinating relevance
16
+
17
+ context_routing:
18
+ - primaryContext: the single best-matching domain from available_contexts
19
+ - secondaryContexts: zero or more additional domains that are relevant
20
+ - action intent does not only come from the last message; consider the full recent conversation
21
+ - if no specific domain applies, use "general"
22
+
23
+ decision_note:
24
+ - respond only when the latest message is talking TO {{agentName}}
25
+ - talking TO {{agentName}} means name mention, reply chain, or a clear follow-up that still expects {{agentName}} to answer
26
+ - mentions of other people do not cancel a direct address to {{agentName}}
27
+ - casual conversation between other users is not enough
28
+ - if another assistant already answered and nobody re-addressed {{agentName}}, IGNORE
29
+ - if {{agentName}} already replied recently and nobody re-addressed {{agentName}}, IGNORE
30
+ - talking ABOUT {{agentName}} or continuing a room conversation around them is not enough
31
+ - context routing always applies, even for IGNORE/STOP decisions
32
+
33
+ output:
34
+ TOON only. Return exactly one TOON document. No prose before or after it. No <think>.
35
+
36
+ Example:
37
+ name: {{agentName}}
38
+ reasoning: Direct mention asking about token balance.
39
+ action: RESPOND
40
+ primaryContext: wallet
41
+ secondaryContexts: []
@@ -0,0 +1,18 @@
1
+ task: Decide whether {{agentName}} should unfollow this room.
2
+
3
+ context:
4
+ {{providers}}
5
+
6
+ current_message:
7
+ {{message}}
8
+
9
+ instructions[3]:
10
+ - return true only when the user is clearly asking {{agentName}} to stop following or leave this room
11
+ - return false when the request is ambiguous or unrelated
12
+ - prefer false when uncertain
13
+
14
+ output:
15
+ TOON only. Return exactly one TOON document. No prose before or after it. No <think>.
16
+
17
+ Example:
18
+ decision: true
@@ -0,0 +1,18 @@
1
+ task: Decide whether {{agentName}} should unmute this room.
2
+
3
+ context:
4
+ {{providers}}
5
+
6
+ current_message:
7
+ {{message}}
8
+
9
+ instructions[3]:
10
+ - return true only when the user is clearly asking {{agentName}} to unmute or resume listening to this room
11
+ - return false when the request is ambiguous or unrelated
12
+ - prefer false when uncertain
13
+
14
+ output:
15
+ TOON only. Return exactly one TOON document. No prose before or after it. No <think>.
16
+
17
+ Example:
18
+ decision: true
@@ -0,0 +1,25 @@
1
+ # Task: Think deeply and reason carefully for {{agentName}}.
2
+
3
+ {{providers}}
4
+
5
+ # Context
6
+ The initial planning phase identified this question as requiring deeper analysis.
7
+ The following is the conversation so far and all available context.
8
+
9
+ # Instructions
10
+ You are {{agentName}}. A question or request has been identified as complex, ambiguous, or requiring careful reasoning. Your job is to think through this thoroughly before responding.
11
+
12
+ Approach this systematically:
13
+ 1. Identify the core question or problem being asked
14
+ 2. Consider multiple angles, approaches, or interpretations
15
+ 3. Evaluate trade-offs, risks, and constraints
16
+ 4. Draw on relevant knowledge and context from the conversation
17
+ 5. Arrive at a well-reasoned conclusion or recommendation
18
+
19
+ Be thorough but concise. Prioritize depth of reasoning over length. If there are genuine unknowns, acknowledge them rather than guessing.
20
+
21
+ Respond using TOON:
22
+ thought: Your detailed internal reasoning — the full chain of thought, alternatives considered, and why you reached your conclusion
23
+ text: Your response to the user — clear, structured, and well-reasoned. Use headings, lists, or code blocks as appropriate for the content.
24
+
25
+ IMPORTANT: Your response must ONLY contain the TOON document above. Do not include any preamble or explanation outside of it.
@@ -0,0 +1,27 @@
1
+ task: Extract contact updates from the request.
2
+
3
+ context:
4
+ {{providers}}
5
+
6
+ current_message:
7
+ {{message}}
8
+
9
+ instructions[6]:
10
+ - identify the contact name to update
11
+ - set operation to replace unless the user clearly says to add_to or remove_from
12
+ - return categories and tags as comma-separated lists
13
+ - return preferences and customFields as comma-separated key:value pairs
14
+ - include notes only when explicitly requested
15
+ - omit fields that are not being changed
16
+
17
+ output:
18
+ TOON only. Return exactly one TOON document. No prose before or after it. No <think>.
19
+
20
+ Example:
21
+ contactName: Jane Doe
22
+ operation: add_to
23
+ categories: vip
24
+ tags: ai,friend
25
+ preferences: timezone:America/New_York,language:English
26
+ customFields: company:Acme,title:Designer
27
+ notes: Prefers async communication
@@ -9,20 +9,13 @@
9
9
  Based on the request, determine what information about the entity should be updated.
10
10
  Only update fields that the user has explicitly requested to change.
11
11
 
12
- Respond using XML format like this:
13
- <response>
14
- <thought>Your reasoning for the entity update</thought>
15
- <entity_id>The entity ID to update</entity_id>
16
- <updates>
17
- <field>
18
- <name>field_name</name>
19
- <value>new_value</value>
20
- </field>
21
- </updates>
22
- </response>
23
-
24
- IMPORTANT: Your response must ONLY contain the <response></response> XML block above.
12
+ Respond using TOON like this:
13
+ thought: Your reasoning for the entity update
14
+ entity_id: The entity ID to update
15
+ updates[1]{name,value}:
16
+ field_name,new_value
25
17
 
18
+ IMPORTANT: Your response must ONLY contain the TOON document above.
26
19
 
27
20
 
28
21
 
@@ -0,0 +1,29 @@
1
+ task: Extract the requested role change.
2
+
3
+ context:
4
+ {{providers}}
5
+
6
+ current_roles:
7
+ {{roles}}
8
+
9
+ recent_messages:
10
+ {{recentMessages}}
11
+
12
+ current_message:
13
+ {{message}}
14
+
15
+ instructions[6]:
16
+ - identify the single entity whose role should be updated
17
+ - return entity_id only when the UUID is explicit in context
18
+ - normalize new_role to one of OWNER, ADMIN, MEMBER, GUEST, or NONE
19
+ - if the user is removing elevated access without naming a new role, use NONE
20
+ - do not invent entity ids or roles
21
+ - include a short thought describing the change
22
+
23
+ output:
24
+ TOON only. Return exactly one TOON document. No prose before or after it. No <think>.
25
+
26
+ Example:
27
+ thought: Sarah should become an admin.
28
+ entity_id: 00000000-0000-0000-0000-000000000000
29
+ new_role: ADMIN
@@ -9,19 +9,12 @@
9
9
  Based on the request, determine which settings to update.
10
10
  Only update settings that the user has explicitly requested.
11
11
 
12
- Respond using XML format like this:
13
- <response>
14
- <thought>Your reasoning for the settings changes</thought>
15
- <updates>
16
- <update>
17
- <key>setting_key</key>
18
- <value>new_value</value>
19
- </update>
20
- </updates>
21
- </response>
22
-
23
- IMPORTANT: Your response must ONLY contain the <response></response> XML block above.
12
+ Respond using TOON like this:
13
+ thought: Your reasoning for the settings changes
14
+ updates[1]{key,value}:
15
+ setting_key,new_value
24
16
 
17
+ IMPORTANT: Your response must ONLY contain the TOON document above.
25
18
 
26
19
 
27
20
 
@@ -0,0 +1,30 @@
1
+ # Task: Update and Condense Conversation Summary
2
+
3
+ You are updating an existing conversation summary with new messages, while keeping the total summary concise.
4
+
5
+ # Existing Summary
6
+ {{existingSummary}}
7
+
8
+ # Existing Topics
9
+ {{existingTopics}}
10
+
11
+ # New Messages Since Last Summary
12
+ {{newMessages}}
13
+
14
+ # Instructions
15
+ Update the summary by:
16
+ 1. Merging the existing summary with insights from the new messages
17
+ 2. Removing redundant or less important details to stay under the token limit
18
+ 3. Keeping the most important context and decisions
19
+ 4. Adding new topics if they emerge
20
+ 5. **CRITICAL**: Keep the ENTIRE updated summary under 2500 tokens
21
+
22
+ The goal is a rolling summary that captures the essence of the conversation without growing indefinitely.
23
+
24
+ Respond in TOON:
25
+ text: Your updated and condensed summary here
26
+ topics[0]: topic1
27
+ topics[1]: topic2
28
+ topics[2]: topic3
29
+ keyPoints[0]: First key point
30
+ keyPoints[1]: Second key point