@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.
- package/dist/python/prompts.py +828 -244
- package/dist/rust/prompts.rs +809 -245
- package/dist/typescript/index.d.ts +40 -0
- package/dist/typescript/index.ts +846 -242
- package/package.json +6 -7
- package/prompts/add_contact.txt +29 -0
- package/prompts/choose_option.txt +4 -7
- package/prompts/extract_secret_operation.txt +20 -0
- package/prompts/extract_secret_request.txt +16 -0
- package/prompts/extract_secrets.txt +17 -0
- package/prompts/image_description.txt +8 -15
- package/prompts/image_generation.txt +4 -7
- package/prompts/initial_summarization.txt +28 -0
- package/prompts/long_term_extraction.txt +128 -0
- package/prompts/message_classifier.txt +37 -0
- package/prompts/message_handler.txt +44 -70
- package/prompts/multi_step_decision.txt +6 -18
- package/prompts/multi_step_summary.txt +4 -10
- package/prompts/option_extraction.txt +4 -9
- package/prompts/post_action_decision.txt +35 -0
- package/prompts/post_creation.txt +14 -25
- package/prompts/reflection.txt +8 -11
- package/prompts/reflection_evaluator.txt +37 -32
- package/prompts/remove_contact.txt +20 -0
- package/prompts/reply.txt +5 -8
- package/prompts/schedule_follow_up.txt +28 -0
- package/prompts/search_contacts.txt +23 -0
- package/prompts/should_follow_room.txt +18 -0
- package/prompts/should_mute_room.txt +18 -0
- package/prompts/should_respond.txt +37 -37
- package/prompts/should_respond_with_context.txt +41 -0
- package/prompts/should_unfollow_room.txt +18 -0
- package/prompts/should_unmute_room.txt +18 -0
- package/prompts/think.txt +25 -0
- package/prompts/update_contact.txt +27 -0
- package/prompts/update_entity.txt +6 -13
- package/prompts/update_role.txt +29 -0
- package/prompts/update_settings.txt +5 -12
- package/prompts/update_summarization.txt +30 -0
- package/scripts/generate-action-docs.js +18 -1
- 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
|
-
|
|
6
|
-
|
|
7
|
-
|
|
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
|
-
|
|
13
|
-
|
|
14
|
-
|
|
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
|
-
|
|
20
|
-
|
|
21
|
-
|
|
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
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
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
|
|
package/prompts/reflection.txt
CHANGED
|
@@ -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
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
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
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
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
|
|
16
|
+
Go directly to the TOON response format without any preamble or explanation.
|
|
17
17
|
|
|
18
|
-
Respond using
|
|
19
|
-
|
|
20
|
-
|
|
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
|
-
|
|
1
|
+
task: Decide whether {{agentName}} should respond, ignore, or stop.
|
|
2
2
|
|
|
3
|
-
|
|
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
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
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
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
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
|