traia-iatp


Nametraia-iatp JSON
Version 0.1.4 PyPI version JSON
download
home_pageNone
SummaryInter-Agent Transfer Protocol (IATP) - Enable AI Agents to utilize other AI Agents as tools
upload_time2025-07-16 16:57:27
maintainerNone
docs_urlNone
authorNone
requires_python>=3.12.8
licenseNone
keywords crewai iatp agent-to-agent a2a mcp web3 cryptocurrency tools
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage No coveralls.
            # Traia IATP

[![PyPI version](https://badge.fury.io/py/traia-iatp.svg)](https://badge.fury.io/py/traia-iatp)
[![Python 3.12+](https://img.shields.io/badge/python-3.12+-blue.svg)](https://www.python.org/downloads/)
[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)

**Traia IATP** is an Inter-Agent Transfer Protocol (IATP) package that enables AI agents to utilize other AI agents as tools via the A2A (Agent-to-Agent) protocol. This implementation allows CrewAI agents to act as both IATP servers (utility agents) and clients.

## Features

- πŸ€– **Utility Agent Creation**: Convert MCP servers into IATP-compatible utility agents
- πŸ”Œ **IATP Client Tools**: Enable CrewAI crews to use utility agents as tools via IATP protocol
- 🌐 **Protocol Support**: HTTP/2 with SSE streaming and optional gRPC for high-performance scenarios
- πŸ“Š **Registry Management**: MongoDB-based registry for discovering utility agents
- 🐳 **Docker Support**: Complete containerization for deployment
- 🐳 **Local Docker Deployment**: Complete containerization for local deployment

## Installation

### From PyPI (Recommended)

```bash
pip install traia-iatp
```

### From Source

```bash
git clone https://github.com/Traia-IO/IATP.git
cd IATP
pip install -e .
```

### Development Installation

```bash
# Install with all dependencies for development
pip install -e ".[dev]"
```

## Quick Start

### 1. Creating a Utility Agency (IATP Server)

```python
import asyncio
from traia_iatp import MCPServer, MCPServerType, IATPServerAgentGenerator

async def create_utility_agency():
    # Define an MCP server
    mcp_server = MCPServer(
        name="example-mcp-server",
        url="http://example-mcp-server:8080",
        server_type=MCPServerType.STREAMABLE_HTTP,
        description="Example MCP server that provides utility functions"
    )
    
    # Generate and deploy utility agency
    generator = IATPServerAgentGenerator()
    agency = await generator.create_from_mcp(mcp_server)
    
    # Deploy locally with Docker
    await generator.deploy_local(agency)
```

### 2. Using Utility Agencies in CrewAI (IATP Client)

```python
from crewai import Agent, Task, Crew
from traia_iatp import find_utility_agent
from traia_iatp.client import A2AToolkit

# Find available utility agents by agent_id
agent = find_utility_agent(agent_id="finbert-mcp-traia-utility-agent")

if agent:
    # Get the IATP endpoint
    endpoint = agent.base_url
    if agent.endpoints and 'iatp_endpoint' in agent.endpoints:
        endpoint = agent.endpoints['iatp_endpoint']
    
    # Create tool from agent endpoint
    finbert_tool = A2AToolkit.create_tool_from_endpoint(
        endpoint=endpoint,
        name=agent.name,
        description=agent.description,
        timeout=300,
        retry_attempts=1,
        supports_streaming=False,
        iatp_endpoint=endpoint
    )
    
    # Use in CrewAI agent
    sentiment_analyst = Agent(
        role="Financial Sentiment Analyst",
        goal="Analyze sentiment of financial texts using FinBERT models",
        backstory="Expert financial sentiment analyst with deep knowledge of market psychology",
        tools=[finbert_tool],
        verbose=True,
        allow_delegation=False
    )
    
    # Create task
    task = Task(
        description="Analyze the sentiment of: 'Apple Inc. reported record quarterly earnings'",
        expected_output="Sentiment classification with confidence score and investment implications",
        agent=sentiment_analyst
    )
    
    # Run crew
    crew = Crew(agents=[sentiment_analyst], tasks=[task])
    result = crew.kickoff()
```

#### Alternative: Batch Tool Creation

For creating multiple tools at once, you can use the convenience function:

```python
from traia_iatp.client import create_utility_agency_tools

# Search and create tools in batch
tools = create_utility_agency_tools(
    query="sentiment analysis",
    tags=["finbert", "nlp"],
    capabilities=["sentiment_analysis"]
)

# Use all found tools in an agent
agent = Agent(
    role="Multi-Tool Analyst",
    tools=tools,
    goal="Analyze using multiple available utility agents"
)
```

### 3. CLI Usage

The package includes a powerful CLI for managing utility agencies:

```bash
# First, register an MCP server in the registry
traia-iatp register-mcp \
    --name "Trading MCP" \
    --url "http://localhost:8000/mcp" \
    --description "Trading MCP server" \
    --capability "trading" \
    --capability "crypto"

# Create a utility agency from registered MCP server
traia-iatp create-agency \
    --name "My Trading Agent" \
    --description "Advanced trading utility agent" \
    --mcp-name "Trading MCP" \
    --deploy

# List available utility agencies
traia-iatp list-agencies

# Search for agencies by capability
traia-iatp search-agencies --query "trading crypto"

# Deploy from a generated agency directory
traia-iatp deploy ./utility_agencies/my-trading-agent --port 8001

# Find available tools for CrewAI
traia-iatp find-tools --tag "trading" --capability "crypto"

# List registered MCP servers
traia-iatp list-mcp-servers

# Show example CrewAI integration code
traia-iatp example-crew
```

## Architecture

### IATP Operation Modes

The IATP protocol supports two distinct operation modes:

#### 1. Synchronous JSON-RPC Mode
For simple request-response patterns:
- Client sends: `message/send` request via JSON-RPC
- Server processes the request using CrewAI agents  
- Server returns: A single `Message` result

#### 2. Streaming SSE Mode
For real-time data and long-running operations:
- Client sends: `message/send` request via JSON-RPC
- Server returns: Stream of events via Server-Sent Events (SSE)
- Supports progress updates, partial results, and completion notifications

### Component Overview

```
β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”    β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”    β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚   CrewAI Agent      │───▢│   IATP Client       │───▢│   Utility Agency    β”‚
β”‚   (A2A Client)      β”‚    β”‚   (HTTP/2 + gRPC)   β”‚    β”‚   (A2A Server)      β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜    β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜    β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
                                                                β”‚
                                                                β–Ό
                                                       β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
                                                       β”‚   MCP Server        β”‚
                                                       β”‚   (Tools Provider)  β”‚
                                                       β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
```

## Key Components

### Server Components (`traia_iatp.server`)
- **Template Generation**: Jinja2 templates for creating utility agents
- **HTTP/2 + SSE Support**: Modern protocol support with streaming
- **gRPC Integration**: Optional high-performance protocol support
- **Docker Containerization**: Complete deployment packaging

### Client Components (`traia_iatp.client`)
- **CrewAI Integration**: Native tools for CrewAI agents
- **HTTP/2 Client**: Persistent connections with multiplexing
- **SSE Streaming**: Real-time data consumption
- **Connection Management**: Pooling and retry logic

### Registry Components (`traia_iatp.registry`)
- **MongoDB Integration**: Persistent storage and search
- **Vector Search**: Embedding-based capability discovery
- **Atlas Search**: Full-text search capabilities
- **Agent Discovery**: Find agents by capability, tags, or description

## Environment Variables

```bash
# MongoDB Configuration (choose one method)
MONGODB_CONNECTION_STRING="mongodb+srv://..."
# OR
MONGODB_USER="username"
MONGODB_PASSWORD="password"
# OR X.509 Certificate
MONGODB_X509_CERT_FILE="/path/to/cert.pem"

# Optional: Custom MongoDB cluster
MONGODB_CLUSTER_URI="custom-cluster.mongodb.net"
MONGODB_DATABASE_NAME="custom_db"

# OpenAI for embeddings (optional)
OPENAI_API_KEY="your-openai-key"

# MCP Server Authentication (as needed)
MCP_API_KEY="your-mcp-api-key"
```

## Examples

### Advanced IATP Integration

```python
from traia_iatp import find_utility_agent
from traia_iatp.client import A2AToolkit

# Find multiple utility agents
trading_agent = find_utility_agent(agent_id="trading-mcp-agent")
sentiment_agent = find_utility_agent(agent_id="finbert-mcp-agent") 

tools = []
for agent in [trading_agent, sentiment_agent]:
    if agent:
        # Get endpoint and create tool
        endpoint = agent.endpoints.get('iatp_endpoint', agent.base_url)
        tool = A2AToolkit.create_tool_from_endpoint(
            endpoint=endpoint,
            name=agent.name,
            description=agent.description,
            iatp_endpoint=endpoint
        )
        tools.append(tool)

# Use multiple IATP tools in one agent
multi_tool_agent = Agent(
    role="Multi-Domain Analyst", 
    goal="Analyze markets using multiple specialized AI agents",
    tools=tools,
    backstory="Expert analyst with access to specialized AI agents for trading and sentiment analysis"
)
```

### Local Docker Deployment

```python
from traia_iatp.utils.docker_utils import LocalDockerRunner
from pathlib import Path

# Deploy a generated agency locally (not yet configured properly)
runner = LocalDockerRunner()
deployment_info = await runner.run_agent_docker(
    agent_path=Path("./utility_agencies/my-trading-agent"),
    port=8000,
    detached=True
)

if deployment_info["success"]:
    print(f"Agency deployed at: {deployment_info['iatp_endpoint']}")
    print(f"Container: {deployment_info['container_name']}")
    print(f"Stop with: {deployment_info['stop_command']}")
```

## Development

### Setting Up Development Environment

```bash
# Clone the repository
git clone https://github.com/Traia-IO/IATP.git
cd IATP

# Create virtual environment
python -m venv venv
source venv/bin/activate  # On Windows: venv\Scripts\activate

# Install in development mode with dev dependencies
pip install -e ".[dev]"

# Run tests
pytest

# Run linting
black .
flake8 .
mypy .
```

### Running Tests

```bash
# Run all tests
pytest

# Run specific test file
pytest tests/test_client.py

# Run with coverage
pytest --cov=traia_iatp --cov-report=html
```

## Contributing

We welcome contributions! Please see our [Contributing Guide](CONTRIBUTING.md) for details.

This is a private code base hence only members of Dcentralab can contribute

1. Fork the repository
2. Create a feature branch (`git checkout -b feature/amazing-feature`)
3. Commit your changes (`git commit -m 'Add amazing feature'`)
4. Push to the branch (`git push origin feature/amazing-feature`)
5. Open a Pull Request

## License

This project is licensed under the MIT License - see the [LICENSE](LICENSE) file for details.

## Support

- πŸ“– **Documentation**: [https://pypi.org/project/traia-iatp](https://pypi.org/project/traia-iatp)
- πŸ› **Bug Reports**: [GitHub Issues](https://github.com/Traia-IO/IATP/issues)
- πŸ’¬ **Community**: [Visit our website](https://traia.io)
- πŸ“§ **Email**: support@traia.io

## Related Projects

- [A2A Protocol](https://github.com/google-a2a/A2A) - Agent-to-Agent communication protocol
- [CrewAI](https://github.com/joaomdmoura/crewAI) - Framework for orchestrating role-playing AI agents
- [FastMCP](https://github.com/modelcontextprotocol/fastmcp) - Fast implementation of Model Context Protocol

---

**Made with ❀️ by the Traia Team** 

            

Raw data

            {
    "_id": null,
    "home_page": null,
    "name": "traia-iatp",
    "maintainer": null,
    "docs_url": null,
    "requires_python": ">=3.12.8",
    "maintainer_email": null,
    "keywords": "crewai, iatp, agent-to-agent, a2a, mcp, web3, cryptocurrency, tools",
    "author": null,
    "author_email": null,
    "download_url": "https://files.pythonhosted.org/packages/db/14/1b29e11d0848a00f027bfa9ff1efd20fd69d710839801e8564189283c9b3/traia_iatp-0.1.4.tar.gz",
    "platform": null,
    "description": "# Traia IATP\n\n[![PyPI version](https://badge.fury.io/py/traia-iatp.svg)](https://badge.fury.io/py/traia-iatp)\n[![Python 3.12+](https://img.shields.io/badge/python-3.12+-blue.svg)](https://www.python.org/downloads/)\n[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)\n\n**Traia IATP** is an Inter-Agent Transfer Protocol (IATP) package that enables AI agents to utilize other AI agents as tools via the A2A (Agent-to-Agent) protocol. This implementation allows CrewAI agents to act as both IATP servers (utility agents) and clients.\n\n## Features\n\n- \ud83e\udd16 **Utility Agent Creation**: Convert MCP servers into IATP-compatible utility agents\n- \ud83d\udd0c **IATP Client Tools**: Enable CrewAI crews to use utility agents as tools via IATP protocol\n- \ud83c\udf10 **Protocol Support**: HTTP/2 with SSE streaming and optional gRPC for high-performance scenarios\n- \ud83d\udcca **Registry Management**: MongoDB-based registry for discovering utility agents\n- \ud83d\udc33 **Docker Support**: Complete containerization for deployment\n- \ud83d\udc33 **Local Docker Deployment**: Complete containerization for local deployment\n\n## Installation\n\n### From PyPI (Recommended)\n\n```bash\npip install traia-iatp\n```\n\n### From Source\n\n```bash\ngit clone https://github.com/Traia-IO/IATP.git\ncd IATP\npip install -e .\n```\n\n### Development Installation\n\n```bash\n# Install with all dependencies for development\npip install -e \".[dev]\"\n```\n\n## Quick Start\n\n### 1. Creating a Utility Agency (IATP Server)\n\n```python\nimport asyncio\nfrom traia_iatp import MCPServer, MCPServerType, IATPServerAgentGenerator\n\nasync def create_utility_agency():\n    # Define an MCP server\n    mcp_server = MCPServer(\n        name=\"example-mcp-server\",\n        url=\"http://example-mcp-server:8080\",\n        server_type=MCPServerType.STREAMABLE_HTTP,\n        description=\"Example MCP server that provides utility functions\"\n    )\n    \n    # Generate and deploy utility agency\n    generator = IATPServerAgentGenerator()\n    agency = await generator.create_from_mcp(mcp_server)\n    \n    # Deploy locally with Docker\n    await generator.deploy_local(agency)\n```\n\n### 2. Using Utility Agencies in CrewAI (IATP Client)\n\n```python\nfrom crewai import Agent, Task, Crew\nfrom traia_iatp import find_utility_agent\nfrom traia_iatp.client import A2AToolkit\n\n# Find available utility agents by agent_id\nagent = find_utility_agent(agent_id=\"finbert-mcp-traia-utility-agent\")\n\nif agent:\n    # Get the IATP endpoint\n    endpoint = agent.base_url\n    if agent.endpoints and 'iatp_endpoint' in agent.endpoints:\n        endpoint = agent.endpoints['iatp_endpoint']\n    \n    # Create tool from agent endpoint\n    finbert_tool = A2AToolkit.create_tool_from_endpoint(\n        endpoint=endpoint,\n        name=agent.name,\n        description=agent.description,\n        timeout=300,\n        retry_attempts=1,\n        supports_streaming=False,\n        iatp_endpoint=endpoint\n    )\n    \n    # Use in CrewAI agent\n    sentiment_analyst = Agent(\n        role=\"Financial Sentiment Analyst\",\n        goal=\"Analyze sentiment of financial texts using FinBERT models\",\n        backstory=\"Expert financial sentiment analyst with deep knowledge of market psychology\",\n        tools=[finbert_tool],\n        verbose=True,\n        allow_delegation=False\n    )\n    \n    # Create task\n    task = Task(\n        description=\"Analyze the sentiment of: 'Apple Inc. reported record quarterly earnings'\",\n        expected_output=\"Sentiment classification with confidence score and investment implications\",\n        agent=sentiment_analyst\n    )\n    \n    # Run crew\n    crew = Crew(agents=[sentiment_analyst], tasks=[task])\n    result = crew.kickoff()\n```\n\n#### Alternative: Batch Tool Creation\n\nFor creating multiple tools at once, you can use the convenience function:\n\n```python\nfrom traia_iatp.client import create_utility_agency_tools\n\n# Search and create tools in batch\ntools = create_utility_agency_tools(\n    query=\"sentiment analysis\",\n    tags=[\"finbert\", \"nlp\"],\n    capabilities=[\"sentiment_analysis\"]\n)\n\n# Use all found tools in an agent\nagent = Agent(\n    role=\"Multi-Tool Analyst\",\n    tools=tools,\n    goal=\"Analyze using multiple available utility agents\"\n)\n```\n\n### 3. CLI Usage\n\nThe package includes a powerful CLI for managing utility agencies:\n\n```bash\n# First, register an MCP server in the registry\ntraia-iatp register-mcp \\\n    --name \"Trading MCP\" \\\n    --url \"http://localhost:8000/mcp\" \\\n    --description \"Trading MCP server\" \\\n    --capability \"trading\" \\\n    --capability \"crypto\"\n\n# Create a utility agency from registered MCP server\ntraia-iatp create-agency \\\n    --name \"My Trading Agent\" \\\n    --description \"Advanced trading utility agent\" \\\n    --mcp-name \"Trading MCP\" \\\n    --deploy\n\n# List available utility agencies\ntraia-iatp list-agencies\n\n# Search for agencies by capability\ntraia-iatp search-agencies --query \"trading crypto\"\n\n# Deploy from a generated agency directory\ntraia-iatp deploy ./utility_agencies/my-trading-agent --port 8001\n\n# Find available tools for CrewAI\ntraia-iatp find-tools --tag \"trading\" --capability \"crypto\"\n\n# List registered MCP servers\ntraia-iatp list-mcp-servers\n\n# Show example CrewAI integration code\ntraia-iatp example-crew\n```\n\n## Architecture\n\n### IATP Operation Modes\n\nThe IATP protocol supports two distinct operation modes:\n\n#### 1. Synchronous JSON-RPC Mode\nFor simple request-response patterns:\n- Client sends: `message/send` request via JSON-RPC\n- Server processes the request using CrewAI agents  \n- Server returns: A single `Message` result\n\n#### 2. Streaming SSE Mode\nFor real-time data and long-running operations:\n- Client sends: `message/send` request via JSON-RPC\n- Server returns: Stream of events via Server-Sent Events (SSE)\n- Supports progress updates, partial results, and completion notifications\n\n### Component Overview\n\n```\n\u250c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2510    \u250c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2510    \u250c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2510\n\u2502   CrewAI Agent      \u2502\u2500\u2500\u2500\u25b6\u2502   IATP Client       \u2502\u2500\u2500\u2500\u25b6\u2502   Utility Agency    \u2502\n\u2502   (A2A Client)      \u2502    \u2502   (HTTP/2 + gRPC)   \u2502    \u2502   (A2A Server)      \u2502\n\u2514\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2518    \u2514\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2518    \u2514\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2518\n                                                                \u2502\n                                                                \u25bc\n                                                       \u250c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2510\n                                                       \u2502   MCP Server        \u2502\n                                                       \u2502   (Tools Provider)  \u2502\n                                                       \u2514\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2518\n```\n\n## Key Components\n\n### Server Components (`traia_iatp.server`)\n- **Template Generation**: Jinja2 templates for creating utility agents\n- **HTTP/2 + SSE Support**: Modern protocol support with streaming\n- **gRPC Integration**: Optional high-performance protocol support\n- **Docker Containerization**: Complete deployment packaging\n\n### Client Components (`traia_iatp.client`)\n- **CrewAI Integration**: Native tools for CrewAI agents\n- **HTTP/2 Client**: Persistent connections with multiplexing\n- **SSE Streaming**: Real-time data consumption\n- **Connection Management**: Pooling and retry logic\n\n### Registry Components (`traia_iatp.registry`)\n- **MongoDB Integration**: Persistent storage and search\n- **Vector Search**: Embedding-based capability discovery\n- **Atlas Search**: Full-text search capabilities\n- **Agent Discovery**: Find agents by capability, tags, or description\n\n## Environment Variables\n\n```bash\n# MongoDB Configuration (choose one method)\nMONGODB_CONNECTION_STRING=\"mongodb+srv://...\"\n# OR\nMONGODB_USER=\"username\"\nMONGODB_PASSWORD=\"password\"\n# OR X.509 Certificate\nMONGODB_X509_CERT_FILE=\"/path/to/cert.pem\"\n\n# Optional: Custom MongoDB cluster\nMONGODB_CLUSTER_URI=\"custom-cluster.mongodb.net\"\nMONGODB_DATABASE_NAME=\"custom_db\"\n\n# OpenAI for embeddings (optional)\nOPENAI_API_KEY=\"your-openai-key\"\n\n# MCP Server Authentication (as needed)\nMCP_API_KEY=\"your-mcp-api-key\"\n```\n\n## Examples\n\n### Advanced IATP Integration\n\n```python\nfrom traia_iatp import find_utility_agent\nfrom traia_iatp.client import A2AToolkit\n\n# Find multiple utility agents\ntrading_agent = find_utility_agent(agent_id=\"trading-mcp-agent\")\nsentiment_agent = find_utility_agent(agent_id=\"finbert-mcp-agent\") \n\ntools = []\nfor agent in [trading_agent, sentiment_agent]:\n    if agent:\n        # Get endpoint and create tool\n        endpoint = agent.endpoints.get('iatp_endpoint', agent.base_url)\n        tool = A2AToolkit.create_tool_from_endpoint(\n            endpoint=endpoint,\n            name=agent.name,\n            description=agent.description,\n            iatp_endpoint=endpoint\n        )\n        tools.append(tool)\n\n# Use multiple IATP tools in one agent\nmulti_tool_agent = Agent(\n    role=\"Multi-Domain Analyst\", \n    goal=\"Analyze markets using multiple specialized AI agents\",\n    tools=tools,\n    backstory=\"Expert analyst with access to specialized AI agents for trading and sentiment analysis\"\n)\n```\n\n### Local Docker Deployment\n\n```python\nfrom traia_iatp.utils.docker_utils import LocalDockerRunner\nfrom pathlib import Path\n\n# Deploy a generated agency locally (not yet configured properly)\nrunner = LocalDockerRunner()\ndeployment_info = await runner.run_agent_docker(\n    agent_path=Path(\"./utility_agencies/my-trading-agent\"),\n    port=8000,\n    detached=True\n)\n\nif deployment_info[\"success\"]:\n    print(f\"Agency deployed at: {deployment_info['iatp_endpoint']}\")\n    print(f\"Container: {deployment_info['container_name']}\")\n    print(f\"Stop with: {deployment_info['stop_command']}\")\n```\n\n## Development\n\n### Setting Up Development Environment\n\n```bash\n# Clone the repository\ngit clone https://github.com/Traia-IO/IATP.git\ncd IATP\n\n# Create virtual environment\npython -m venv venv\nsource venv/bin/activate  # On Windows: venv\\Scripts\\activate\n\n# Install in development mode with dev dependencies\npip install -e \".[dev]\"\n\n# Run tests\npytest\n\n# Run linting\nblack .\nflake8 .\nmypy .\n```\n\n### Running Tests\n\n```bash\n# Run all tests\npytest\n\n# Run specific test file\npytest tests/test_client.py\n\n# Run with coverage\npytest --cov=traia_iatp --cov-report=html\n```\n\n## Contributing\n\nWe welcome contributions! Please see our [Contributing Guide](CONTRIBUTING.md) for details.\n\nThis is a private code base hence only members of Dcentralab can contribute\n\n1. Fork the repository\n2. Create a feature branch (`git checkout -b feature/amazing-feature`)\n3. Commit your changes (`git commit -m 'Add amazing feature'`)\n4. Push to the branch (`git push origin feature/amazing-feature`)\n5. Open a Pull Request\n\n## License\n\nThis project is licensed under the MIT License - see the [LICENSE](LICENSE) file for details.\n\n## Support\n\n- \ud83d\udcd6 **Documentation**: [https://pypi.org/project/traia-iatp](https://pypi.org/project/traia-iatp)\n- \ud83d\udc1b **Bug Reports**: [GitHub Issues](https://github.com/Traia-IO/IATP/issues)\n- \ud83d\udcac **Community**: [Visit our website](https://traia.io)\n- \ud83d\udce7 **Email**: support@traia.io\n\n## Related Projects\n\n- [A2A Protocol](https://github.com/google-a2a/A2A) - Agent-to-Agent communication protocol\n- [CrewAI](https://github.com/joaomdmoura/crewAI) - Framework for orchestrating role-playing AI agents\n- [FastMCP](https://github.com/modelcontextprotocol/fastmcp) - Fast implementation of Model Context Protocol\n\n---\n\n**Made with \u2764\ufe0f by the Traia Team** \n",
    "bugtrack_url": null,
    "license": null,
    "summary": "Inter-Agent Transfer Protocol (IATP) - Enable AI Agents to utilize other AI Agents as tools",
    "version": "0.1.4",
    "project_urls": {
        "Documentation": "https://pypi.org/project/traia-iatp",
        "Source": "https://github.com/Traia-IO/IATP"
    },
    "split_keywords": [
        "crewai",
        " iatp",
        " agent-to-agent",
        " a2a",
        " mcp",
        " web3",
        " cryptocurrency",
        " tools"
    ],
    "urls": [
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "0e3d7f77a243c13503ae1f666b276eafcdb4767e941bb93ba52b60dd1c600ff3",
                "md5": "43469f955535cd9ad227f8f2dde549fb",
                "sha256": "0b6a03c2e95a1f1c556c361ed93e6685873658a790005140eb1251d7d8501583"
            },
            "downloads": -1,
            "filename": "traia_iatp-0.1.4-py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "43469f955535cd9ad227f8f2dde549fb",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": ">=3.12.8",
            "size": 138828,
            "upload_time": "2025-07-16T16:57:25",
            "upload_time_iso_8601": "2025-07-16T16:57:25.729029Z",
            "url": "https://files.pythonhosted.org/packages/0e/3d/7f77a243c13503ae1f666b276eafcdb4767e941bb93ba52b60dd1c600ff3/traia_iatp-0.1.4-py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "db141b29e11d0848a00f027bfa9ff1efd20fd69d710839801e8564189283c9b3",
                "md5": "739fa52a27a031d4b74bb048a2c4ce7a",
                "sha256": "6f8a19f775ad100770e03d9f5d0ba0cfe096072a5354c8c5c26dadb8de79711f"
            },
            "downloads": -1,
            "filename": "traia_iatp-0.1.4.tar.gz",
            "has_sig": false,
            "md5_digest": "739fa52a27a031d4b74bb048a2c4ce7a",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": ">=3.12.8",
            "size": 113499,
            "upload_time": "2025-07-16T16:57:27",
            "upload_time_iso_8601": "2025-07-16T16:57:27.079431Z",
            "url": "https://files.pythonhosted.org/packages/db/14/1b29e11d0848a00f027bfa9ff1efd20fd69d710839801e8564189283c9b3/traia_iatp-0.1.4.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2025-07-16 16:57:27",
    "github": true,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "github_user": "Traia-IO",
    "github_project": "IATP",
    "github_not_found": true,
    "lcname": "traia-iatp"
}
        
Elapsed time: 0.59518s