uagent-a2a-adapter


Nameuagent-a2a-adapter JSON
Version 0.1.5 PyPI version JSON
download
home_pageNone
SummaryAdapters for integrating A2A agents with uAgents framework
upload_time2025-07-08 21:10:34
maintainerNone
docs_urlNone
authorNone
requires_python>=3.8
licenseApache-2.0
keywords uagents a2a-sdk ai agents adapter integration
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage No coveralls.
            ### A2A uAgent Adapter

A comprehensive Python module for integrating A2A (Agent-to-Agent) systems with uAgents, enabling intelligent multi-agent coordination and communication.

## Overview

The A2A uAgent Adapter provides a seamless bridge between A2A agents and the uAgent ecosystem, allowing for:

- **Multi-Agent Coordination**: Manage multiple specialized AI agents from a single interface
- **Intelligent Routing**: Automatically route queries to the most suitable agent based on keywords, specialties, or LLM-based analysis
- **Health Monitoring**: Continuous health checking and discovery of available agents
- **Fallback Mechanisms**: Robust error handling with fallback executors
- **Chat Protocol Integration**: Full support for uAgent chat protocols and messaging


## Features

### Multi-Agent Management

- Configure and manage multiple A2A agents with different specialties
- Automatic agent discovery and registration
- Health monitoring and status tracking


### Intelligent Routing

- **Keyword Matching**: Route queries based on agent keywords and specialties
- **LLM-Based Routing**: Use AI to intelligently select the best agent for complex queries
- **Round-Robin**: Distribute load evenly across available agents
- **Priority-Based**: Assign priorities to agents for preferential routing


### Communication Protocols

- Full uAgent chat protocol support
- Asynchronous message handling
- Acknowledgment and error handling
- Real-time agent communication


### ️ Reliability Features

- Health checking and agent discovery
- Fallback executor support
- Graceful error handling
- Timeout management


## Installation

```shellscript
pip install uagent_a2a_adapter
```

## Quick Start

### Single Agent Setup

```python
from uagent_a2a_adapter import A2AAdapter
from your_agent_executor import YourAgentExecutor  # Replace with your executor

def main():
    # Initialize your agent executor
    executor = YourAgentExecutor()

# Create and run the adapter
adapter = A2AAdapter(
    agent_executor=agent_executor,
    name="MyAgent",
    description="A helpful AI assistant",
    port=8000,
    a2a_port=9999
)

adapter.run()
```

### Multi-Agent Setup

```python
from a2a_adapter import A2AAdapter, A2AAgentConfig

# Configure multiple agents
agent_configs = [
    A2AAgentConfig(
        name="CodeAgent",
        description="Specialized in coding tasks",
        url="http://localhost:9001",
        port=9001,
        specialties=["Python", "JavaScript", "Code Review"],
        priority=2
    ),
    A2AAgentConfig(
        name="DataAgent", 
        description="Expert in data analysis",
        url="http://localhost:9002",
        port=9002,
        specialties=["Data Analysis", "Statistics", "Visualization"]
    )
]

# Create multi-agent adapter
adapter = A2AAdapter(
    name="MultiAgentSystem",
    description="Coordinated AI agent system",
    port=8000,
    agent_configs=agent_configs,
    routing_strategy="keyword_match"
)

adapter.run()
```

## Configuration

### A2AAgentConfig

Configure individual agents with specialized capabilities:

```python
config = A2AAgentConfig(
    name="SpecializedAgent",
    description="Agent description",
    url="http://localhost:9000",
    port=9000,
    specialties=["Machine Learning", "Data Science"],
    skills=["python", "tensorflow", "pandas"],  # Auto-generated if not provided
    examples=["Help with ML models", "Analyze data"],  # Auto-generated if not provided
    keywords=["ml", "ai", "data"],  # Auto-generated if not provided
    priority=1  # Higher numbers = higher priority
)
```

### Routing Strategies

#### Keyword Matching (Default)

Routes queries based on keyword and specialty matching with scoring:

```python
adapter = A2AAdapter(
    routing_strategy="keyword_match",
    # ... other config
)
```

#### LLM-Based Routing

Uses AI to intelligently select the best agent:

```python
adapter = A2AAdapter(
    routing_strategy="llm_routing",
    # ... other config
)
```

#### Round Robin

Distributes queries evenly across all healthy agents:

```python
adapter = A2AAdapter(
    routing_strategy="round_robin",
    # ... other config
)
```

## API Reference

### A2AAdapter

Main adapter class for managing A2A agents.

#### Constructor Parameters

| Parameter | Type | Default | Description
|-----|-----|-----|-----
| `name` | str | Required | Name of the adapter
| `description` | str | Required | Description of the adapter
| `port` | int | 8000 | uAgent port
| `mailbox` | bool | True | Enable mailbox functionality
| `seed` | str | None | Seed for uAgent (auto-generated if None)
| `agent_configs` | List[A2AAgentConfig] | [] | List of agent configurations
| `fallback_executor` | AgentExecutor | None | Fallback executor for unrouted queries
| `routing_strategy` | str | "keyword_match" | Routing strategy to use


#### Methods

##### `add_agent_config(config: A2AAgentConfig)`

Add a new agent configuration to the adapter.

##### `run()`

Start the adapter and begin processing messages.

### A2AAgentConfig

Configuration class for individual A2A agents.

#### Constructor Parameters

| Parameter | Type | Default | Description
|-----|-----|-----|-----
| `name` | str | Required | Agent name
| `description` | str | Required | Agent description
| `url` | str | Required | Agent URL
| `port` | int | Required | Agent port
| `specialties` | List[str] | Required | Agent specialties
| `skills` | List[str] | Auto-generated | Agent skills
| `examples` | List[str] | Auto-generated | Usage examples
| `keywords` | List[str] | Auto-generated | Routing keywords
| `priority` | int | 1 | Agent priority (higher = more preferred)


## Architecture

```plaintext
┌─────────────────┐    ┌──────────────────┐    ┌─────────────────┐
│   uAgent Chat   │    │   A2A Adapter    │    │   A2A Agents    │
│   Protocol      │◄──►│                  │◄──►│                 │
└─────────────────┘    │  ┌─────────────┐ │    │  ┌─────────────┐│
                       │  │   Router    │ │    │  │ Code Agent  ││
┌─────────────────┐    │  │             │ │    │  └─────────────┘│
│  External       │◄──►│  │ • Keywords  │ │    │  ┌─────────────┐│
│  uAgents        │    │  │ • LLM       │ │    │  │ Data Agent  ││
└─────────────────┘    │  │ • Priority  │ │    │  └─────────────┘│
                       │  └─────────────┘ │    │  ┌─────────────┐│
┌─────────────────┐    │  ┌─────────────┐ │    │  │ Chat Agent  ││
│  Health         │◄──►│  │ Discovery   │ │    │  └─────────────┘│
│  Monitor        │    │  │ & Health    │ │    └─────────────────┘
└─────────────────┘    │  └─────────────┘ │
                       └──────────────────┘
```

## Message Flow

1. **Incoming Message**: External uAgent sends chat message
2. **Agent Discovery**: Adapter discovers and health-checks available agents
3. **Query Routing**: Router selects best agent based on strategy
4. **Message Forwarding**: Query sent to selected A2A agent
5. **Response Processing**: Agent response processed and formatted
6. **Reply**: Response sent back to original sender
7. **Acknowledgment**: Confirmation sent to complete the cycle


## Advanced Usage

### Custom Fallback Executor

```python
class CustomFallbackExecutor(AgentExecutor):
    async def execute(self, context, event_queue):
        # Custom fallback logic
        pass

adapter = A2AAdapter(
    name="SystemWithFallback",
    fallback_executor=CustomFallbackExecutor(),
    # ... other config
)
```

### Dynamic Agent Registration

```python
# Start with basic configuration
adapter = A2AAdapter(name="DynamicSystem")

# Add agents dynamically
new_agent = A2AAgentConfig(
    name="NewAgent",
    url="http://localhost:9003",
    port=9003,
    specialties=["Natural Language Processing"]
)

adapter.add_agent_config(new_agent)
```

### Health Monitoring

The adapter automatically monitors agent health and excludes unhealthy agents from routing:

```python
# Health status is checked on startup and periodically
# Unhealthy agents are automatically excluded from routing
# Health checks include:
# - Agent card availability at /.well-known/agent.json
# - HTTP response status
# - Response time monitoring
```

## Error Handling

The adapter includes comprehensive error handling:

- **Agent Unavailable**: Automatically routes to alternative agents
- **Network Timeouts**: Configurable timeout settings with graceful degradation
- **Invalid Responses**: Fallback to error messages or alternative agents
- **Health Check Failures**: Automatic agent exclusion and retry logic



## Development

### Setting up Development Environment

```bash
# Clone the repository
git clone https://github.com/gautammanak1/uagent-a2a-adapter.git
cd uagent-a2a-adapter

# Install development dependencies
pip install -e .[dev]

# Run tests
pytest

# Format code
black .
isort .

# Type checking
mypy uagent_a2a_adapter
```

### Running Tests

```bash
# Run all tests
pytest

# Run with coverage
pytest --cov=uagent_a2a_adapter

# Run specific test file
pytest tests/test_adapter.py
```


## Contributing

We welcome contributions! Please see [CONTRIBUTING.md](CONTRIBUTING.md) for guidelines.

1. Fork the repository
2. Create a feature branch
3. Make your changes
4. Add tests
5. Submit a pull request

## License

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

## Changelog

See [CHANGELOG.md](CHANGELOG.md) for version history and changes.

## Support

- **Issues**: [GitHub Issues](https://github.com/gautammanak1/uagent-a2a-adapter/issues)
- **Discussions**: [GitHub Discussions](https://github.com/gautammanak1/uagent-a2a-adapter/discussions)
- **Email**: gautam.kumar@fetch.ai

## Acknowledgments

- [uAgents](https://github.com/fetchai/uAgents) - The underlying agent framework
- [A2A](https://github.com/a2a-ai/a2a) - Agent-to-Agent communication protocol
- [Fetch.ai](https://fetch.ai) - For the foundational agent technologies



## License

This project is licensed under the MIT License - see the LICENSE file for details.


---

**Note**: This adapter requires a running A2A infrastructure and properly configured A2A agents to function correctly.

            

Raw data

            {
    "_id": null,
    "home_page": null,
    "name": "uagent-a2a-adapter",
    "maintainer": null,
    "docs_url": null,
    "requires_python": ">=3.8",
    "maintainer_email": null,
    "keywords": "uagents, a2a-sdk, ai, agents, adapter, integration",
    "author": null,
    "author_email": "gautammanak <gautam.kumar@fetch.ai>",
    "download_url": "https://files.pythonhosted.org/packages/a2/46/c2e3809fc0f1728460e79c225a3ca654a3708f3cd5a3c069a39ae1a7ba7d/uagent_a2a_adapter-0.1.5.tar.gz",
    "platform": null,
    "description": "### A2A uAgent Adapter\n\nA comprehensive Python module for integrating A2A (Agent-to-Agent) systems with uAgents, enabling intelligent multi-agent coordination and communication.\n\n## Overview\n\nThe A2A uAgent Adapter provides a seamless bridge between A2A agents and the uAgent ecosystem, allowing for:\n\n- **Multi-Agent Coordination**: Manage multiple specialized AI agents from a single interface\n- **Intelligent Routing**: Automatically route queries to the most suitable agent based on keywords, specialties, or LLM-based analysis\n- **Health Monitoring**: Continuous health checking and discovery of available agents\n- **Fallback Mechanisms**: Robust error handling with fallback executors\n- **Chat Protocol Integration**: Full support for uAgent chat protocols and messaging\n\n\n## Features\n\n### Multi-Agent Management\n\n- Configure and manage multiple A2A agents with different specialties\n- Automatic agent discovery and registration\n- Health monitoring and status tracking\n\n\n### Intelligent Routing\n\n- **Keyword Matching**: Route queries based on agent keywords and specialties\n- **LLM-Based Routing**: Use AI to intelligently select the best agent for complex queries\n- **Round-Robin**: Distribute load evenly across available agents\n- **Priority-Based**: Assign priorities to agents for preferential routing\n\n\n### Communication Protocols\n\n- Full uAgent chat protocol support\n- Asynchronous message handling\n- Acknowledgment and error handling\n- Real-time agent communication\n\n\n### \ufe0f Reliability Features\n\n- Health checking and agent discovery\n- Fallback executor support\n- Graceful error handling\n- Timeout management\n\n\n## Installation\n\n```shellscript\npip install uagent_a2a_adapter\n```\n\n## Quick Start\n\n### Single Agent Setup\n\n```python\nfrom uagent_a2a_adapter import A2AAdapter\nfrom your_agent_executor import YourAgentExecutor  # Replace with your executor\n\ndef main():\n    # Initialize your agent executor\n    executor = YourAgentExecutor()\n\n# Create and run the adapter\nadapter = A2AAdapter(\n    agent_executor=agent_executor,\n    name=\"MyAgent\",\n    description=\"A helpful AI assistant\",\n    port=8000,\n    a2a_port=9999\n)\n\nadapter.run()\n```\n\n### Multi-Agent Setup\n\n```python\nfrom a2a_adapter import A2AAdapter, A2AAgentConfig\n\n# Configure multiple agents\nagent_configs = [\n    A2AAgentConfig(\n        name=\"CodeAgent\",\n        description=\"Specialized in coding tasks\",\n        url=\"http://localhost:9001\",\n        port=9001,\n        specialties=[\"Python\", \"JavaScript\", \"Code Review\"],\n        priority=2\n    ),\n    A2AAgentConfig(\n        name=\"DataAgent\", \n        description=\"Expert in data analysis\",\n        url=\"http://localhost:9002\",\n        port=9002,\n        specialties=[\"Data Analysis\", \"Statistics\", \"Visualization\"]\n    )\n]\n\n# Create multi-agent adapter\nadapter = A2AAdapter(\n    name=\"MultiAgentSystem\",\n    description=\"Coordinated AI agent system\",\n    port=8000,\n    agent_configs=agent_configs,\n    routing_strategy=\"keyword_match\"\n)\n\nadapter.run()\n```\n\n## Configuration\n\n### A2AAgentConfig\n\nConfigure individual agents with specialized capabilities:\n\n```python\nconfig = A2AAgentConfig(\n    name=\"SpecializedAgent\",\n    description=\"Agent description\",\n    url=\"http://localhost:9000\",\n    port=9000,\n    specialties=[\"Machine Learning\", \"Data Science\"],\n    skills=[\"python\", \"tensorflow\", \"pandas\"],  # Auto-generated if not provided\n    examples=[\"Help with ML models\", \"Analyze data\"],  # Auto-generated if not provided\n    keywords=[\"ml\", \"ai\", \"data\"],  # Auto-generated if not provided\n    priority=1  # Higher numbers = higher priority\n)\n```\n\n### Routing Strategies\n\n#### Keyword Matching (Default)\n\nRoutes queries based on keyword and specialty matching with scoring:\n\n```python\nadapter = A2AAdapter(\n    routing_strategy=\"keyword_match\",\n    # ... other config\n)\n```\n\n#### LLM-Based Routing\n\nUses AI to intelligently select the best agent:\n\n```python\nadapter = A2AAdapter(\n    routing_strategy=\"llm_routing\",\n    # ... other config\n)\n```\n\n#### Round Robin\n\nDistributes queries evenly across all healthy agents:\n\n```python\nadapter = A2AAdapter(\n    routing_strategy=\"round_robin\",\n    # ... other config\n)\n```\n\n## API Reference\n\n### A2AAdapter\n\nMain adapter class for managing A2A agents.\n\n#### Constructor Parameters\n\n| Parameter | Type | Default | Description\n|-----|-----|-----|-----\n| `name` | str | Required | Name of the adapter\n| `description` | str | Required | Description of the adapter\n| `port` | int | 8000 | uAgent port\n| `mailbox` | bool | True | Enable mailbox functionality\n| `seed` | str | None | Seed for uAgent (auto-generated if None)\n| `agent_configs` | List[A2AAgentConfig] | [] | List of agent configurations\n| `fallback_executor` | AgentExecutor | None | Fallback executor for unrouted queries\n| `routing_strategy` | str | \"keyword_match\" | Routing strategy to use\n\n\n#### Methods\n\n##### `add_agent_config(config: A2AAgentConfig)`\n\nAdd a new agent configuration to the adapter.\n\n##### `run()`\n\nStart the adapter and begin processing messages.\n\n### A2AAgentConfig\n\nConfiguration class for individual A2A agents.\n\n#### Constructor Parameters\n\n| Parameter | Type | Default | Description\n|-----|-----|-----|-----\n| `name` | str | Required | Agent name\n| `description` | str | Required | Agent description\n| `url` | str | Required | Agent URL\n| `port` | int | Required | Agent port\n| `specialties` | List[str] | Required | Agent specialties\n| `skills` | List[str] | Auto-generated | Agent skills\n| `examples` | List[str] | Auto-generated | Usage examples\n| `keywords` | List[str] | Auto-generated | Routing keywords\n| `priority` | int | 1 | Agent priority (higher = more preferred)\n\n\n## Architecture\n\n```plaintext\n\u250c\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\u2510    \u250c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2510\n\u2502   uAgent Chat   \u2502    \u2502   A2A Adapter    \u2502    \u2502   A2A Agents    \u2502\n\u2502   Protocol      \u2502\u25c4\u2500\u2500\u25ba\u2502                  \u2502\u25c4\u2500\u2500\u25ba\u2502                 \u2502\n\u2514\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2518    \u2502  \u250c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2510 \u2502    \u2502  \u250c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2510\u2502\n                       \u2502  \u2502   Router    \u2502 \u2502    \u2502  \u2502 Code Agent  \u2502\u2502\n\u250c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2510    \u2502  \u2502             \u2502 \u2502    \u2502  \u2514\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2518\u2502\n\u2502  External       \u2502\u25c4\u2500\u2500\u25ba\u2502  \u2502 \u2022 Keywords  \u2502 \u2502    \u2502  \u250c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2510\u2502\n\u2502  uAgents        \u2502    \u2502  \u2502 \u2022 LLM       \u2502 \u2502    \u2502  \u2502 Data Agent  \u2502\u2502\n\u2514\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2518    \u2502  \u2502 \u2022 Priority  \u2502 \u2502    \u2502  \u2514\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2518\u2502\n                       \u2502  \u2514\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2518 \u2502    \u2502  \u250c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2510\u2502\n\u250c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2510    \u2502  \u250c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2510 \u2502    \u2502  \u2502 Chat Agent  \u2502\u2502\n\u2502  Health         \u2502\u25c4\u2500\u2500\u25ba\u2502  \u2502 Discovery   \u2502 \u2502    \u2502  \u2514\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2518\u2502\n\u2502  Monitor        \u2502    \u2502  \u2502 & Health    \u2502 \u2502    \u2514\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2518\n\u2514\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2518    \u2502  \u2514\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2518 \u2502\n                       \u2514\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2518\n```\n\n## Message Flow\n\n1. **Incoming Message**: External uAgent sends chat message\n2. **Agent Discovery**: Adapter discovers and health-checks available agents\n3. **Query Routing**: Router selects best agent based on strategy\n4. **Message Forwarding**: Query sent to selected A2A agent\n5. **Response Processing**: Agent response processed and formatted\n6. **Reply**: Response sent back to original sender\n7. **Acknowledgment**: Confirmation sent to complete the cycle\n\n\n## Advanced Usage\n\n### Custom Fallback Executor\n\n```python\nclass CustomFallbackExecutor(AgentExecutor):\n    async def execute(self, context, event_queue):\n        # Custom fallback logic\n        pass\n\nadapter = A2AAdapter(\n    name=\"SystemWithFallback\",\n    fallback_executor=CustomFallbackExecutor(),\n    # ... other config\n)\n```\n\n### Dynamic Agent Registration\n\n```python\n# Start with basic configuration\nadapter = A2AAdapter(name=\"DynamicSystem\")\n\n# Add agents dynamically\nnew_agent = A2AAgentConfig(\n    name=\"NewAgent\",\n    url=\"http://localhost:9003\",\n    port=9003,\n    specialties=[\"Natural Language Processing\"]\n)\n\nadapter.add_agent_config(new_agent)\n```\n\n### Health Monitoring\n\nThe adapter automatically monitors agent health and excludes unhealthy agents from routing:\n\n```python\n# Health status is checked on startup and periodically\n# Unhealthy agents are automatically excluded from routing\n# Health checks include:\n# - Agent card availability at /.well-known/agent.json\n# - HTTP response status\n# - Response time monitoring\n```\n\n## Error Handling\n\nThe adapter includes comprehensive error handling:\n\n- **Agent Unavailable**: Automatically routes to alternative agents\n- **Network Timeouts**: Configurable timeout settings with graceful degradation\n- **Invalid Responses**: Fallback to error messages or alternative agents\n- **Health Check Failures**: Automatic agent exclusion and retry logic\n\n\n\n## Development\n\n### Setting up Development Environment\n\n```bash\n# Clone the repository\ngit clone https://github.com/gautammanak1/uagent-a2a-adapter.git\ncd uagent-a2a-adapter\n\n# Install development dependencies\npip install -e .[dev]\n\n# Run tests\npytest\n\n# Format code\nblack .\nisort .\n\n# Type checking\nmypy uagent_a2a_adapter\n```\n\n### Running Tests\n\n```bash\n# Run all tests\npytest\n\n# Run with coverage\npytest --cov=uagent_a2a_adapter\n\n# Run specific test file\npytest tests/test_adapter.py\n```\n\n\n## Contributing\n\nWe welcome contributions! Please see [CONTRIBUTING.md](CONTRIBUTING.md) for guidelines.\n\n1. Fork the repository\n2. Create a feature branch\n3. Make your changes\n4. Add tests\n5. Submit a pull request\n\n## License\n\nThis project is licensed under the Apache License 2.0 - see the [LICENSE](LICENSE) file for details.\n\n## Changelog\n\nSee [CHANGELOG.md](CHANGELOG.md) for version history and changes.\n\n## Support\n\n- **Issues**: [GitHub Issues](https://github.com/gautammanak1/uagent-a2a-adapter/issues)\n- **Discussions**: [GitHub Discussions](https://github.com/gautammanak1/uagent-a2a-adapter/discussions)\n- **Email**: gautam.kumar@fetch.ai\n\n## Acknowledgments\n\n- [uAgents](https://github.com/fetchai/uAgents) - The underlying agent framework\n- [A2A](https://github.com/a2a-ai/a2a) - Agent-to-Agent communication protocol\n- [Fetch.ai](https://fetch.ai) - For the foundational agent technologies\n\n\n\n## License\n\nThis project is licensed under the MIT License - see the LICENSE file for details.\n\n\n---\n\n**Note**: This adapter requires a running A2A infrastructure and properly configured A2A agents to function correctly.\n",
    "bugtrack_url": null,
    "license": "Apache-2.0",
    "summary": "Adapters for integrating A2A agents with uAgents framework",
    "version": "0.1.5",
    "project_urls": {
        "Bug Tracker": "https://github.com/gautammanak1/uagent-a2a-adapter/issues",
        "Documentation": "https://github.com/gautammanak1/uagent-a2a-adapter#readme",
        "Homepage": "https://github.com/gautammanak1/uagent-a2a-adapter",
        "Repository": "https://github.com/gautammanak1/uagent-a2a-adapter"
    },
    "split_keywords": [
        "uagents",
        " a2a-sdk",
        " ai",
        " agents",
        " adapter",
        " integration"
    ],
    "urls": [
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "f535770a69eb996dc53e71ce00a22698d33706e4dd2432730913a26c92f99e76",
                "md5": "3168618066cf1edd822889b4a97f8bb6",
                "sha256": "738264e680bf1661fafa7dfab6dfee593969aea8b75e52f11b434e4fb7cd23c4"
            },
            "downloads": -1,
            "filename": "uagent_a2a_adapter-0.1.5-py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "3168618066cf1edd822889b4a97f8bb6",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": ">=3.8",
            "size": 12522,
            "upload_time": "2025-07-08T21:10:32",
            "upload_time_iso_8601": "2025-07-08T21:10:32.937082Z",
            "url": "https://files.pythonhosted.org/packages/f5/35/770a69eb996dc53e71ce00a22698d33706e4dd2432730913a26c92f99e76/uagent_a2a_adapter-0.1.5-py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "a246c2e3809fc0f1728460e79c225a3ca654a3708f3cd5a3c069a39ae1a7ba7d",
                "md5": "855c5b2360cf7a2fd86be0d7b7508dd2",
                "sha256": "d8a812fa23b607e590c2b94c2b6175a43f9cc150f30f3836914556b66d72447b"
            },
            "downloads": -1,
            "filename": "uagent_a2a_adapter-0.1.5.tar.gz",
            "has_sig": false,
            "md5_digest": "855c5b2360cf7a2fd86be0d7b7508dd2",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": ">=3.8",
            "size": 23073,
            "upload_time": "2025-07-08T21:10:34",
            "upload_time_iso_8601": "2025-07-08T21:10:34.392243Z",
            "url": "https://files.pythonhosted.org/packages/a2/46/c2e3809fc0f1728460e79c225a3ca654a3708f3cd5a3c069a39ae1a7ba7d/uagent_a2a_adapter-0.1.5.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2025-07-08 21:10:34",
    "github": true,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "github_user": "gautammanak1",
    "github_project": "uagent-a2a-adapter",
    "travis_ci": false,
    "coveralls": false,
    "github_actions": false,
    "lcname": "uagent-a2a-adapter"
}
        
Elapsed time: 0.54809s