Single-Turn Agent CoT (agent_cot_tools
)¶
Single-turn agent Chain of Thought datasets focus on training models to handle complete tasks requiring tool usage in a single interaction. This format captures the full reasoning process from initial analysis through tool execution to final synthesis.
When to Use Single-Turn Agent CoT¶
Single-turn agent CoT is ideal for: - Complete task resolution where the user's request can be fully addressed in one response - Tool reasoning training where you want models to learn systematic tool selection - Parameter construction training for building accurate function calls - Result synthesis where multiple tool outputs need to be combined into coherent answers
Format Structure¶
The AgentCoTWithTools
schema captures six key components:
{
"question": "User's question or request",
"available_tools": [list of tool definitions],
"initial_analysis": "Understanding of what's needed",
"tool_planning": [reasoning steps for tool selection],
"tool_executions": [actual tool calls and results],
"result_synthesis": "How results combine to answer question",
"final_answer": "Complete response to user"
}
Detailed Schema Breakdown¶
question
(string)¶
The user's original question or request that requires tool usage.
Examples:
- "What's the weather in London and Paris?"
- "Calculate the tip for a $45.67 dinner and find a good restaurant nearby"
- "Book a table for 4 at an Italian restaurant tomorrow at 7 PM"
available_tools
(list)¶
Complete tool definitions using Pydantic schemas. These are the tools the agent can choose from.
"available_tools": [
{
"name": "get_weather",
"description": "Get current weather conditions for a location",
"parameters": [
{
"name": "location",
"type": "str",
"description": "City name or location",
"required": true
}
],
"returns": "Weather data including temperature and conditions",
"category": "information"
}
]
initial_analysis
(string)¶
The agent's understanding of what the user needs and what information or actions are required.
Examples:
- "User wants weather information for two cities. I need to retrieve current weather data for both London and Paris and present a comparison."
- "This requires two tasks: calculating an 18-20% tip on $45.67, and finding restaurant recommendations near the user's location."
tool_planning
(list)¶
Step-by-step reasoning for tool selection and parameter construction. Each step includes:
{
"step_number": 1,
"reasoning": "Why this tool is needed at this point",
"selected_tool": {tool definition},
"parameter_reasoning": {
"param_name": "explanation of how this parameter value was determined"
},
"expected_result": "What the tool should return and how it helps"
}
Example:
{
"step_number": 1,
"reasoning": "Need current weather data for London as specified in the user's request",
"selected_tool": {
"name": "get_weather",
"description": "Get current weather conditions for a location",
// ... full tool definition
},
"parameter_reasoning": {
"location": "User explicitly mentioned London as first city"
},
"expected_result": "Current weather conditions for London including temperature, conditions, and other relevant data"
}
tool_executions
(list)¶
Actual function calls made with their results. Each execution includes:
{
"function": "tool_name",
"arguments": {parameter dictionary},
"reasoning": "Brief explanation of why executing now",
"result": "The actual result returned from the tool"
}
Example:
{
"function": "get_weather",
"arguments": {"location": "London"},
"reasoning": "Executing weather lookup for London as planned",
"result": "London: 15°C, overcast, 80% humidity, light rain expected"
}
result_synthesis
(string)¶
Explanation of how the tool results are combined and interpreted to address the original question.
Example:
- "Both weather reports show cooler temperatures with London having rain while Paris is clearer. Combined this data to provide a comprehensive comparison for the user's planning purposes."
final_answer
(string)¶
The complete, natural response to the user incorporating all tool results.
Example:
- "Here's the current weather for both cities: London is 15°C with overcast skies and light rain expected (80% humidity), while Paris is warmer at 18°C with partly cloudy conditions (65% humidity). Paris has better weather today if you're planning outdoor activities."
Configuration Example¶
YAML Configuration¶
dataset_system_prompt: "You are an AI assistant that excels at systematic tool usage and reasoning."
data_engine:
generation_system_prompt: "Generate realistic scenarios requiring tool usage with detailed reasoning traces."
provider: "openai"
model: "gpt-4o-mini"
conversation_type: "agent_cot_tools"
available_tools:
- "get_weather"
- "search_web"
- "calculator"
- "book_restaurant"
max_tools_per_query: 3
dataset:
creation:
num_steps: 20
batch_size: 5
sys_msg: false # Agent format doesn't use system messages
save_as: "single_turn_agent.jsonl"
Python API¶
from deepfabric import DataSetGenerator
from deepfabric.tools.defaults import get_default_tools
engine = DataSetGenerator(
generation_system_prompt="You excel at tool reasoning and selection.",
provider="openai",
model_name="gpt-4o-mini",
conversation_type="agent_cot_tools",
available_tools=["get_weather", "search_web", "calculator"],
max_tools_per_query=2,
)
dataset = engine.create_data(
num_steps=10,
batch_size=2,
sys_msg=False
)
Best Practices¶
Tool Planning Quality¶
- Be specific about why each tool is selected
- Explain parameter construction based on user input
- Set clear expectations for what each tool should return
Tool Execution Realism¶
- Match planning to execution - tools used should align with the plan
- Provide realistic results that tools would actually return
- Include error cases where tools might not have complete information
Result Synthesis¶
- Address the original question directly
- Integrate all tool results meaningfully
- Provide actionable information when possible
Common Use Cases¶
Weather and Location Services¶
{
"question": "What's the weather like in Tokyo and should I bring an umbrella?",
"tool_planning": [
{
"reasoning": "Need current weather conditions for Tokyo to assess umbrella necessity",
"selected_tool": {...weather_tool...},
"parameter_reasoning": {"location": "Tokyo specified by user"},
"expected_result": "Current weather including precipitation probability"
}
]
}
Calculation and Information Lookup¶
{
"question": "If I invest $5000 at 7% annual interest for 3 years, how much will I have?",
"tool_planning": [
{
"reasoning": "Need to calculate compound interest with given parameters",
"selected_tool": {...calculator_tool...},
"parameter_reasoning": {
"expression": "Compound interest formula: P(1+r)^t where P=5000, r=0.07, t=3"
},
"expected_result": "Final investment value after 3 years"
}
]
}
Multi-Tool Workflows¶
{
"question": "Find a good Italian restaurant in NYC and calculate the tip for a $85 dinner",
"tool_planning": [
{
"step_number": 1,
"reasoning": "Need to search for Italian restaurants in New York City",
"selected_tool": {...search_tool...}
},
{
"step_number": 2,
"reasoning": "Need to calculate appropriate tip amount for $85 bill",
"selected_tool": {...calculator_tool...}
}
]
}
Training Benefits¶
Models trained on single-turn agent CoT data demonstrate: - Improved tool selection accuracy across different domains - Better parameter construction with fewer errors - Enhanced reasoning transparency that users can follow - More efficient tool usage with reduced unnecessary calls - Better error handling when tools return unexpected results
This format creates training data that teaches models not just to use tools, but to think systematically about tool usage in a way that's both effective and explainable.