Skip to main content
Agents in the Atthene Multi-Agent System can be enhanced with various capabilities to handle complex tasks. This guide covers all available capabilities and how to configure them.

Tools

Tools extend agent capabilities by providing access to external systems, APIs, and computational resources. Only ReAct agents (react_agent) support tool calling.
We’re actively working on integrating with the Model Context Protocol (MCP) to expand the available tools and enable seamless integration with external services.

Available Tools

tavily_search

Web Search 🔧Search engine optimized for comprehensive, accurate results from the web.Configurable

tavily_extract

Content Extraction 🔧Extracts comprehensive content from web pages based on URLs.Configurable

calculator

CalculatorPerforms basic mathematical calculations safely.

wikipedia_search

Wikipedia SearchSearch Wikipedia and get article summaries on any topic.

arxiv_search

ArXiv SearchSearch academic papers on ArXiv.org across scientific fields.

youtube_search

YouTube SearchSearch YouTube for videos and content.

python_repl

Python REPLExecute Python code in a safe environment.

Configuring Tools

Tools can be added in two ways: simple (just the tool name) or with configuration (for tools that support it).

Simple Tool Configuration

Most tools can be added by just specifying their name:
agents:
  - name: "research_agent"
    agent_type: "react_agent"
    
    tools:
      - "wikipedia_search"
      - "arxiv_search"
      - "calculator"
    
    tool_calling:
      enabled: true
      max_iterations: 10

Advanced Tool Configuration

Some tools support optional configuration for customization: Configurable Tools:
  • tavily_search - Web search with advanced options
  • tavily_extract - Content extraction with format options
agents:
  - name: "advanced_researcher"
    agent_type: "react_agent"
    
    tools:
      # Simple tools (no config)
      - "wikipedia_search"
      - "calculator"
      
      # Configured tools
      - name: "tavily_search"
        tool_type: "tavily_search"
        config:
          max_results: 10
          include_answer: true
          include_raw_content: "markdown"
          country: "US"
      
      - name: "tavily_extract"
        tool_type: "tavily_extract"
        config:
          format: "markdown"
    
    tool_calling:
      enabled: true
      max_iterations: 10

Tool Configuration Reference

Available options:
  • max_results (integer, default: 5) - Maximum number of search results
  • include_answer (boolean, default: false) - Include a short answer to the query
  • include_raw_content (string, default: “markdown”) - Include cleaned HTML content (“markdown” or “text”)
  • include_image_descriptions (boolean, default: false) - Include image descriptions
  • country (string, optional) - Boost results from specific country (e.g., “US”, “UK”)
  • auto_parameters (boolean, default: false) - Enable automatic parameter configuration
  • timeout (integer, default: 30) - Request timeout in seconds
Available options:
  • format (string, default: “markdown”) - Output format: “markdown” or “text”
  • timeout (integer, default: 30) - Request timeout in seconds

Tool Calling Configuration

tool_calling.enabled
boolean
default:"true"
Enable or disable tool calling for this agent
tool_calling.max_iterations
integer
default:"10"
Maximum number of reasoning and tool execution cyclesRecommended values:
  • Simple tasks: 3-5 iterations
  • Research tasks: 5-10 iterations
  • Complex analysis: 10-15 iterations
Setting max_iterations too high can lead to excessive API calls and longer response times. Start with lower values and increase if needed.

Tool Usage Examples

Web Search and Research

- name: "web_researcher"
  agent_type: "react_agent"
  
  tools:
    - "tavily_search"
    - "tavily_extract"
  
  tool_calling:
    enabled: true
    max_iterations: 8
  
  system_prompt: |
    You are a research specialist with web search capabilities.
    
    When researching:
    1. Use tavily_search to find relevant sources
    2. Use tavily_extract to get detailed content from URLs
    3. Synthesize information from multiple sources
    4. Always cite your sources

Data Analysis with Calculator

- name: "data_analyst"
  agent_type: "react_agent"
  
  tools:
    - "calculator"
    - "tavily_search"
  
  tool_calling:
    enabled: true
    max_iterations: 5
  
  system_prompt: |
    You are a data analyst with calculation capabilities.
    
    For numerical tasks:
    1. Break down complex calculations into steps
    2. Use the calculator tool for accuracy
    3. Show your work and reasoning
    4. Provide insights from the results

Streaming

Streaming enables real-time delivery of agent responses, tool calls, and reasoning steps to end users.

Streaming Configuration

streaming_config.enable_streaming
boolean
default:"true"
Enable streaming of agent responses
streaming_config.show_output_to_user
boolean
default:"true"
Stream agent text output to users in real-time
streaming_config.show_tool_to_user
boolean
default:"true"
Show tool calling events and results to users
streaming_config.show_reasoning
boolean
default:"false"
Show agent’s internal reasoning and thought process

Streaming Examples

Standard User-Facing Streaming

streaming_config:
  enable_streaming: true
  show_output_to_user: true
  show_tool_to_user: true
  show_reasoning: false
User sees:
  • ✅ Agent responses (streaming)
  • ✅ Tool calls and results
  • ❌ Internal reasoning

Development/Debug Mode

streaming_config:
  enable_streaming: true
  show_output_to_user: true
  show_tool_to_user: true
  show_reasoning: true
User sees:
  • ✅ Agent responses (streaming)
  • ✅ Tool calls and results
  • ✅ Internal reasoning steps
Enable show_reasoning: true during development to understand how agents make decisions and use tools.

Background Processing

streaming_config:
  enable_streaming: false
  show_output_to_user: false
  show_tool_to_user: false
Use case: Internal agents in supervisor architectures that process data without user interaction.

Streaming Events

When streaming is enabled, the system emits these event types:
  • TextMessageStart - Agent begins generating a response
  • TextMessageContent - Streaming content chunks
  • TextMessageEnd - Response generation complete
  • RunStarted - Agent execution begins
  • RunFinished - Agent execution completes successfully
  • RunError - Agent execution encounters an error
  • LLMCallStarted - LLM API call initiated
  • LLMCallCompleted - LLM call finished (includes token usage)
  • LLMCallError - LLM call failed
Tool execution events showing which tools are called and their results

Knowledge Base Integration

Agents can access knowledge bases to retrieve domain-specific information and documents. Both LLM agents and ReAct agents support knowledge base integration.
For comprehensive knowledge base configuration details, see the Knowledge Base Setup guide.

Available Knowledge Base Types

milvus

Milvus Vector DatabaseProduction-ready vector database with dense vector semantic search and multi-tenancy support.
Additional vector database integrations will be supported in future releases.

Configuration

Add knowledge bases directly to agent configuration:
agents:
  - name: "knowledge_agent"
    agent_type: "llm_agent"  # or react_agent
    
    knowledge_bases:
      - name: "company_docs"
        knowledge_base_type: "milvus"
        knowledge_base_id: "kb_123"
        retrieval_config:
          top_k: 10
          search_ef: 64
          metric_type: "COSINE"

Configuration Reference

Required fields:
  • name (string) - Instance identifier
  • knowledge_base_type (string) - Must be “milvus”
  • knowledge_base_id (string) - Knowledge base ID for isolation
Optional retrieval_config fields:
  • top_k (integer, default: 10) - Number of results to return (1-1000)
  • search_ef (integer, default: 64) - HNSW search parameter for accuracy (1-512)
  • metric_type (string, default: “COSINE”) - Distance metric: “COSINE”, “L2”, or “IP”
  • offset (integer, default: 0) - Number of results to skip for pagination
  • score_threshold (float, optional) - Minimum similarity score (0.0-1.0)
  • enable_rerank (boolean, default: false) - Enable result reranking
  • rerank_model (string, optional) - Reranking model if enabled

LLM Configuration

Fine-tune language model behavior for different use cases.

Model Selection

llm_config:
  model: "gpt-4o"  # or gpt-4-turbo, gpt-3.5-turbo, etc.
Available models:
  • gpt-4o - Latest GPT-4 optimized model (recommended)
  • gpt-4-turbo - Fast GPT-4 variant
  • gpt-3.5-turbo - Faster, more economical option

Temperature Control

Temperature controls the randomness and creativity of responses:
llm_config:
  temperature: 0.7  # Range: 0.0 - 2.0
Temperature Guidelines:
TemperatureUse CaseExample
0.0 - 0.3Factual, deterministicData analysis, fact retrieval
0.4 - 0.7BalancedGeneral conversation, Q&A
0.8 - 1.2CreativeContent writing, brainstorming
1.3 - 2.0Highly creativeCreative writing, poetry
For most applications, a temperature of 0.7 provides a good balance between consistency and natural variation.

Token Limits

llm_config:
  max_tokens: 2000
Control the maximum length of generated responses:
  • Short responses: 500-1000 tokens
  • Standard responses: 1000-2000 tokens
  • Long-form content: 2000-4000 tokens
Higher token limits increase API costs and response times. Set appropriate limits based on your use case.

Advanced Capabilities

Multi-Agent Coordination

Supervisor agents coordinate multiple specialized agents:
- name: "supervisor"
  agent_type: "supervisor"
  
  # Agents under supervision
  supervised_agents:
    - "researcher"
    - "analyst"
    - "writer"
  
  # Coordination behavior
  return_to_supervisor: true
  max_handoffs: 15
  
  supervisor_prompt: |
    Coordinate the team by delegating tasks to specialists.
    Evaluate their work and decide on next steps.
Supervisors can coordinate both LLM agents and ReAct agents, creating hybrid teams with diverse capabilities.

Agent Handoffs

In supervisor architectures, agents can hand off tasks to each other:
supervisor_prompt: |
  You coordinate a research team.
  
  Workflow:
  1. Delegate research to research_agent
  2. Send findings to analysis_agent
  3. Have writer_agent create the final report
  
  Use transfer tools to hand off between agents.

Capability Combinations

Research + Analysis Agent

- name: "research_analyst"
  agent_type: "react_agent"
  
  tools:
    - "tavily_search"
    - "tavily_extract"
    - "calculator"
    - "knowledge_base"
  
  tool_calling:
    enabled: true
    max_iterations: 12
  
  llm_config:
    model: "gpt-4o"
    temperature: 0.2  # Low for factual accuracy
    max_tokens: 3000
  
  streaming_config:
    enable_streaming: true
    show_output_to_user: true
    show_tool_to_user: true
    show_reasoning: true
  
  knowledge_bases:
    - name: "research_db"
      knowledge_base_type: "cognee"
      enabled: true
  
  system_prompt: |
    You are a research analyst with comprehensive capabilities.
    
    Your tools:
    - Web search for current information
    - Content extraction from URLs
    - Calculator for numerical analysis
    - Knowledge base for historical context
    
    Approach:
    1. Search knowledge base for existing information
    2. Use web search for current data
    3. Extract detailed content from sources
    4. Perform calculations as needed
    5. Synthesize comprehensive analysis

Creative Writing Agent

- name: "creative_writer"
  agent_type: "llm_agent"
  
  llm_config:
    model: "gpt-4o"
    temperature: 1.0  # High for creativity
    max_tokens: 4000
  
  streaming_config:
    enable_streaming: true
    show_output_to_user: true
  
  system_prompt: |
    You are a creative writer specializing in engaging, 
    well-structured content.
    
    Your writing style:
    - Clear and engaging
    - Well-organized with proper structure
    - Appropriate tone for the audience
    - Creative but professional

Best Practices

Tool Selection

Principle of Least Privilege: Only provide tools that the agent actually needs. More tools increase complexity and potential for errors.
Test agents with minimal tools first, then add more as needed.

Streaming Configuration

Production: Disable show_reasoning for end users. Enable for internal monitoring and debugging.
User Experience: Always enable show_output_to_user for user-facing agents to provide real-time feedback.

Performance Optimization

Max Iterations: Start with 5-7 iterations. Monitor actual usage and adjust based on task complexity.
Token Limits: Set realistic max_tokens based on expected response length to control costs.

System Prompts

Tool Instructions: When agents have tools, explicitly describe when and how to use them in the system prompt.
Capability Awareness: Make agents aware of their capabilities and limitations in the system prompt.

Troubleshooting

Possible causes:
  • tool_calling.enabled is false
  • System prompt doesn’t mention tool usage
  • max_iterations is too low
Solution: Enable tool calling, update system prompt to encourage tool use, and increase max_iterations.
Cause: Agent repeatedly calls tools without reaching a conclusionSolution: Lower max_iterations and improve system prompt to guide the agent toward conclusions.
Possible causes:
  • enable_streaming is false
  • show_output_to_user is false
  • Network/connection issues
Solution: Verify streaming configuration and check network connectivity.
Possible causes:
  • Knowledge base not properly configured
  • enabled is false
  • Empty or unindexed knowledge base
Solution: Verify knowledge base configuration and ensure data is properly indexed.

Next Steps