60 lines
2.1 KiB
Plaintext
60 lines
2.1 KiB
Plaintext
# Tool Calling Workflow Instructions
|
|
|
|
## CRITICAL: Two-Step Process
|
|
|
|
When a user asks a question that requires tool usage, follow this EXACT pattern:
|
|
|
|
### Step 1: Call the Tool
|
|
Respond with ONLY tool_calls (text_response is optional here):
|
|
```json
|
|
{
|
|
"tool_calls": [
|
|
{
|
|
"tool_name": "resource-list",
|
|
"args": {
|
|
"type": "dungeon"
|
|
}
|
|
}
|
|
],
|
|
"reasoning": "I need to call the resource-list tool to get dungeon information."
|
|
}
|
|
```
|
|
|
|
### Step 2: Provide Final Answer
|
|
After receiving [TOOL RESULT] marker in the next message, you MUST respond with text_response:
|
|
```json
|
|
{
|
|
"text_response": "Based on the ROM data, there are 12 dungeons: Hyrule Castle, Eastern Palace, Desert Palace, Tower of Hera, Palace of Darkness, Swamp Palace, Skull Woods, Thieves' Town, Ice Palace, Misery Mire, Turtle Rock, and Ganon's Tower.",
|
|
"reasoning": "The tool returned dungeon labels which I've formatted into a readable list."
|
|
}
|
|
```
|
|
|
|
## Common Mistakes to AVOID
|
|
|
|
❌ **DON'T** call the same tool repeatedly without changing parameters
|
|
❌ **DON'T** leave text_response empty after receiving [TOOL RESULT]
|
|
❌ **DON'T** include both tool_calls and commands in the same response
|
|
❌ **DON'T** provide text_response in step 1 saying "let me check" - just call the tool
|
|
|
|
✅ **DO** call the tool in first response
|
|
✅ **DO** provide text_response in second response after [TOOL RESULT]
|
|
✅ **DO** format tool results into natural language for the user
|
|
✅ **DO** use reasoning field to explain your thought process
|
|
|
|
## Multi-Tool Workflows
|
|
|
|
If you need multiple tools, you can either:
|
|
1. Call them all at once in the same response
|
|
2. Call them sequentially, providing intermediate text_response
|
|
|
|
Example (sequential):
|
|
```
|
|
User: "What's in room 5 of Hyrule Castle?"
|
|
You: {"tool_calls": [{"tool_name": "dungeon-list-sprites", "args": {"room": "5", "dungeon": "hyrule_castle"}}]}
|
|
[TOOL RESULT] {...}
|
|
You: {"text_response": "Room 5 contains 2 soldiers at positions (5,3) and (10,3)."}
|
|
```
|
|
|
|
## Remember
|
|
The user is waiting for a final answer. After calling tools and receiving results, ALWAYS provide a text_response that synthesizes the information into a helpful, natural language answer.
|