# uAgents Adapter
This package provides adapters for integrating [uAgents](https://github.com/fetchai/uAgents) with popular AI libraries:
- **LangChain Adapter**: Convert LangChain agents to uAgents
- **CrewAI Adapter**: Convert CrewAI crews to uAgents
- **MCP Server Adapter**: Integrate Model Control Protocol (MCP) servers with uAgents
- **A2A Outbound Adapter**: Bridges uAgents and A2A servers
- **A2A Inbound Adapter**: Bridge Agentverse agents to A2A protocol for AI assistants
## Installation
```bash
# Install the base package
pip install uagents-adapter
# Install with LangChain support
pip install "uagents-adapter[langchain]"
# Install with CrewAI support
pip install "uagents-adapter[crewai]"
# Install with MCP support
pip install "uagents-adapter[mcp]"
# Install with A2A Inbound support
pip install "uagents-adapter[a2a-inbound]"
# Install with all extras
pip install "uagents-adapter[langchain,crewai,mcp,a2a-outbound,"a2a-inbound"]"
```
## LangChain Adapter
The LangChain adapter allows you to convert any LangChain agent into a uAgent that can interact with other agents in the Agentverse ecosystem.
```python
from langchain_core.agents import AgentExecutor, create_react_agent
from langchain_core.tools import BaseTool
from langchain_openai import ChatOpenAI
from uagents_adapter import LangchainRegisterTool
# Create your LangChain agent
llm = ChatOpenAI(model_name="gpt-4")
tools = [...] # Your tools here
agent = create_react_agent(llm, tools)
agent_executor = AgentExecutor(agent=agent, tools=tools)
# Create uAgent register tool
register_tool = LangchainRegisterTool()
# Register the agent as a uAgent
result = register_tool.invoke({
"agent_obj": agent_executor,
"name": "my_langchain_agent",
"port": 8000,
"description": "My LangChain agent as a uAgent",
"mailbox": True, # Use Agentverse mailbox service
"api_token": "YOUR_AGENTVERSE_API_TOKEN", # Optional: for Agentverse registration
"return_dict": True # Return a dictionary instead of a string
})
print(f"Created uAgent '{result['agent_name']}' with address {result['agent_address']} on port {result['agent_port']}")
```
## CrewAI Adapter
The CrewAI adapter allows you to convert any CrewAI crew into a uAgent.
```python
from crewai import Crew, Agent, Task
from uagents_adapter import CrewaiRegisterTool
# Define your CrewAI crew
agent1 = Agent(
role="Researcher",
goal="Research thoroughly",
backstory="You are a skilled researcher",
verbose=True,
allow_delegation=False
)
task1 = Task(
description="Research about a topic",
agent=agent1
)
crew = Crew(
agents=[agent1],
tasks=[task1],
verbose=True
)
# Create CrewAI register tool
register_tool = CrewaiRegisterTool()
# Register the crew as a uAgent
result = register_tool.invoke({
"crew_obj": crew,
"name": "my_crew_agent",
"port": 8001,
"description": "My CrewAI crew as a uAgent",
"mailbox": True, # Use Agentverse mailbox service
"api_token": "YOUR_AGENTVERSE_API_TOKEN", # Optional: for Agentverse registration
"query_params": {
"topic": {
"type": "string",
"description": "The topic to research",
"required": True
}
},
"example_query": "Research about artificial intelligence",
"return_dict": True # Return a dictionary instead of a string
})
print(f"Created uAgent '{result['agent_name']}' with address {result['agent_address']} on port {result['agent_port']}")
```
## MCP Server Adapter
The MCP Server Adapter allows you to host your MCP Servers on Agentverse and get discovered by ASI:One by enabling Chat Protocol.
First, create a FastMCP server implementation in a `server.py` file that exposes the required `list_tools` and `call_tool` async methods. Then, in the following `agent.py`, import the MCP server instance and use it with the MCPServerAdapter:
```python
from uagents import Agent
from uagents_adapter import MCPServerAdapter
from server import mcp
# Create an MCP adapter
mcp_adapter = MCPServerAdapter(
mcp_server=mcp,
asi1_api_key="your_asi1_api_key",
model="asi1-mini" # Model options: asi1-mini, asi1-extended, asi1-fast
)
# Create a uAgent
agent = Agent()
# Add the MCP adapter protocols to the agent
for protocol in mcp_adapter.protocols:
agent.include(protocol)
# Run the MCP adapter with the agent
mcp_adapter.run(agent)
```
> **Important**: When creating MCP tools, always include detailed docstrings using triple quotes (`"""`) to describe what each tool does, when it should be used, and what parameters it expects. These descriptions are critical for ASI:One to understand when and how to use your tools.
For more detailed instructions and advanced configuration options, see the [MCP Server Adapter Documentation](src/uagents_adapter/mcp/README.md).
## A2A Outbound Adapter
The A2A Outbound Adapter allows you to connect your uAgents with Chat Protocol to Google A2A Servers.
First, create your A2A servers in a directory named `agents` and then import the Agent Executors in your `agent.py` (uagent) file along with the SingleA2AAdapter or MultiA2AAdapter depending on whether you want to connect to a single Google A2A Server or Multiple A2A Servers. You will have to provide the Agent card to the Adapter and the Adapter will run the servers and enable the uagent with Chat Protocol so that it becomes discoverable through ASI:One and you can start interacting with any A2A Server using the A2A Outbound Adapter.
```python
from uagent_adapter import SingleA2AAdapter, A2AAgentConfig, a2a_servers
#Import A2A Server executor from your A2A Server code
from brave.agent import BraveSearchAgentExecutor
def main():
#Add details of your A2A Server
agent_config = A2AAgentConfig(
name="brave_search_specialist", #Name of A2A Server
description="AI Agent for web and news search using Brave Search API", #Description of A2A Server
url="http://localhost:10020", #Endpoint where the A2A Server should be running
port=10020, #port where the A2A Server should be running
specialties=["web search", "news", "information retrieval", "local business", "site-specific lookup"],
priority=3
)
executor = BraveSearchAgentExecutor()
a2a_servers([agent_config], {agent_config.name: executor})
print(f"AgentCard manifest URL: http://localhost:{agent_config.port}/.well-known/agent.json")
adapter = SingleA2AAdapter(
agent_executor=executor, #Your A2A Server Executor
name="brave", #Name of uAgent
description="Routes queries to Brave Search AI specialists", #Description of uAgent
port=8200, #Port where the uAgent should be running
a2a_port=10020 #Port where the A2A server should be running
)
adapter.run()
if __name__ == "__main__":
main()
```
#### Notes
- Use `A2AAgentConfig` for all agent configuration
- Start A2A servers with `a2a_servers` for manifest and server management
- Use `SingleA2AAdapter` or `MultiA2AAdapter` for orchestration and chat integration
- After starting, inspect manifest URLs at `http://localhost:{port}/.well-known/agent.json`
For more detailed instructions and advanced configuration options, see the [A2A Outbound Adapter Documentation](src/uagents_adapter/a2a-outbound-documentation/README.md).
## A2A Inbound Adapter
The A2A Inbound Adapter allows you to bridge any existing Agentverse agent to the A2A (Agent-to-Agent) ecosystem, making your uAgents accessible through the A2A protocol for AI assistants and other applications.
```python
from uagents_adapter import A2ARegisterTool
# Create A2A register tool
register_tool = A2ARegisterTool()
# Choose the agent you want to use from Agentverse.ai, copy its address in the config, add agent details or create a custom agent yourself and add its address in the config
# Configure your agent bridge
config = {
"agent_address": "agent1qv4zyd9sta4f5ksyhjp900k8kenp9vczlwqvr00xmmqmj2yetdt4se9ypat",
"name": "Finance Analysis Agent",
"description": "Financial analysis and market insights agent",
"skill_tags": ["finance", "analysis", "markets", "investment"],
"skill_examples": ["Analyze AAPL stock performance", "Compare crypto portfolios"],
"port": 10000, # A2A server port (default)
"bridge_port": 9000, # Optional: bridge port (auto-derived if not set)
"host": "localhost" # Default host
}
# Start the A2A bridge server
result = register_tool.invoke(config)
print(f"A2A server running on {config['host']}:{config['port']}")
print(f"Bridging to Agentverse agent: {config['agent_address']}")
```
For CLI usage:
```bash
# Set unique bridge seed for production
export UAGENTS_BRIDGE_SEED="your_unique_production_seed_2024"
# Start the A2A bridge
python -m uagents_adapter.a2a_inbound.cli \
--agent-address agent1qv4zyd9sta4f5ksyhjp900k8kenp9vczlwqvr00xmmqmj2yetdt4se9ypat \
--agent-name "Finance Agent" \
--skill-tags "finance,analysis,markets" \
--port 10000
```
> **Security Note**: Always set `UAGENTS_BRIDGE_SEED` environment variable for production deployments to ensure consistent bridge agent addresses across restarts and prevent conflicts.
For more detailed instructions and configuration options, see the [A2A Inbound Adapter Documentation](src/uagents_adapter/a2a_inbound/README.md).
## Agentverse Integration
### Mailbox Service
By default, agents are created with `mailbox=True`, which enables the agent to use the Agentverse mailbox service. This allows agents to communicate with other agents without requiring a publicly accessible endpoint.
When mailbox is enabled:
- Agents can be reached by their agent address (e.g., `agent1q...`)
- No port forwarding or public IP is required
- Messages are securely handled through the Agentverse infrastructure
### Agentverse Registration
You can optionally register your agent with the Agentverse API, which makes it discoverable and usable by other users in the Agentverse ecosystem:
1. Obtain an API token from [Agentverse.ai](https://agentverse.ai)
2. Include the token when registering your agent:
```python
result = register_tool.invoke({
# ... other parameters
"api_token": "YOUR_AGENTVERSE_API_TOKEN"
})
```
When an agent is registered with Agentverse:
- It connects to the mailbox service automatically
- It appears in the Agentverse directory
- A README with input/output models is automatically generated
- The agent gets an "innovationlab" badge
- Other users can discover and interact with it
- You can monitor its usage and performance through the Agentverse dashboard
Example of auto-generated README for LangChain agents:
```markdown
# Agent Name
Agent Description

**Input Data Model**
```python
class QueryMessage(Model):
query: str
```
**Output Data Model**
```python
class ResponseMessage(Model):
response: str
```
```
Example of auto-generated README for CrewAI agents with parameters:
```markdown
# Agent Name
Agent Description

**Input Data Model**
```python
class ParameterMessage(Model):
topic: str
max_results: int | None = None
```
**Output Data Model**
```python
class ResponseMessage(Model):
response: str
```
**Example Query**
```
Research about artificial intelligence
```
```
## License
Apache 2.0
Raw data
{
"_id": null,
"home_page": null,
"name": "uagents-adapter",
"maintainer": null,
"docs_url": null,
"requires_python": "<4.0,>=3.10",
"maintainer_email": null,
"keywords": "uagents, agents, langchain, crewai, mcp, a2a, fetch.ai",
"author": "Fetch.AI Limited",
"author_email": null,
"download_url": "https://files.pythonhosted.org/packages/07/e4/ec3b900e5e7834e4f9c638063e079f3027b39320217dd070291148fa58d3/uagents_adapter-0.5.0.tar.gz",
"platform": null,
"description": "# uAgents Adapter\n\nThis package provides adapters for integrating [uAgents](https://github.com/fetchai/uAgents) with popular AI libraries:\n\n- **LangChain Adapter**: Convert LangChain agents to uAgents\n- **CrewAI Adapter**: Convert CrewAI crews to uAgents\n- **MCP Server Adapter**: Integrate Model Control Protocol (MCP) servers with uAgents\n- **A2A Outbound Adapter**: Bridges uAgents and A2A servers \n- **A2A Inbound Adapter**: Bridge Agentverse agents to A2A protocol for AI assistants\n\n## Installation\n\n```bash\n# Install the base package\npip install uagents-adapter\n\n# Install with LangChain support\npip install \"uagents-adapter[langchain]\"\n\n# Install with CrewAI support\npip install \"uagents-adapter[crewai]\"\n\n# Install with MCP support\npip install \"uagents-adapter[mcp]\"\n\n# Install with A2A Inbound support\npip install \"uagents-adapter[a2a-inbound]\"\n\n# Install with all extras\npip install \"uagents-adapter[langchain,crewai,mcp,a2a-outbound,\"a2a-inbound\"]\"\n```\n\n## LangChain Adapter\n\nThe LangChain adapter allows you to convert any LangChain agent into a uAgent that can interact with other agents in the Agentverse ecosystem.\n\n```python\nfrom langchain_core.agents import AgentExecutor, create_react_agent\nfrom langchain_core.tools import BaseTool\nfrom langchain_openai import ChatOpenAI\n\nfrom uagents_adapter import LangchainRegisterTool\n\n# Create your LangChain agent\nllm = ChatOpenAI(model_name=\"gpt-4\")\ntools = [...] # Your tools here\nagent = create_react_agent(llm, tools)\nagent_executor = AgentExecutor(agent=agent, tools=tools)\n\n# Create uAgent register tool\nregister_tool = LangchainRegisterTool()\n\n# Register the agent as a uAgent\nresult = register_tool.invoke({\n \"agent_obj\": agent_executor,\n \"name\": \"my_langchain_agent\",\n \"port\": 8000,\n \"description\": \"My LangChain agent as a uAgent\",\n \"mailbox\": True, # Use Agentverse mailbox service\n \"api_token\": \"YOUR_AGENTVERSE_API_TOKEN\", # Optional: for Agentverse registration\n \"return_dict\": True # Return a dictionary instead of a string\n})\n\nprint(f\"Created uAgent '{result['agent_name']}' with address {result['agent_address']} on port {result['agent_port']}\")\n```\n\n## CrewAI Adapter\n\nThe CrewAI adapter allows you to convert any CrewAI crew into a uAgent.\n\n```python\nfrom crewai import Crew, Agent, Task\nfrom uagents_adapter import CrewaiRegisterTool\n\n# Define your CrewAI crew\nagent1 = Agent(\n role=\"Researcher\",\n goal=\"Research thoroughly\",\n backstory=\"You are a skilled researcher\",\n verbose=True,\n allow_delegation=False\n)\n\ntask1 = Task(\n description=\"Research about a topic\",\n agent=agent1\n)\n\ncrew = Crew(\n agents=[agent1],\n tasks=[task1],\n verbose=True\n)\n\n# Create CrewAI register tool\nregister_tool = CrewaiRegisterTool()\n\n# Register the crew as a uAgent\nresult = register_tool.invoke({\n \"crew_obj\": crew,\n \"name\": \"my_crew_agent\",\n \"port\": 8001,\n \"description\": \"My CrewAI crew as a uAgent\",\n \"mailbox\": True, # Use Agentverse mailbox service\n \"api_token\": \"YOUR_AGENTVERSE_API_TOKEN\", # Optional: for Agentverse registration\n \"query_params\": {\n \"topic\": {\n \"type\": \"string\",\n \"description\": \"The topic to research\",\n \"required\": True\n }\n },\n \"example_query\": \"Research about artificial intelligence\",\n \"return_dict\": True # Return a dictionary instead of a string\n})\n\nprint(f\"Created uAgent '{result['agent_name']}' with address {result['agent_address']} on port {result['agent_port']}\")\n```\n\n## MCP Server Adapter\n\nThe MCP Server Adapter allows you to host your MCP Servers on Agentverse and get discovered by ASI:One by enabling Chat Protocol.\n\nFirst, create a FastMCP server implementation in a `server.py` file that exposes the required `list_tools` and `call_tool` async methods. Then, in the following `agent.py`, import the MCP server instance and use it with the MCPServerAdapter:\n\n```python\nfrom uagents import Agent\nfrom uagents_adapter import MCPServerAdapter\nfrom server import mcp\n\n# Create an MCP adapter\nmcp_adapter = MCPServerAdapter(\n mcp_server=mcp,\n asi1_api_key=\"your_asi1_api_key\",\n model=\"asi1-mini\" # Model options: asi1-mini, asi1-extended, asi1-fast\n)\n\n# Create a uAgent\nagent = Agent()\n\n# Add the MCP adapter protocols to the agent\nfor protocol in mcp_adapter.protocols:\n agent.include(protocol)\n\n# Run the MCP adapter with the agent\nmcp_adapter.run(agent)\n```\n\n> **Important**: When creating MCP tools, always include detailed docstrings using triple quotes (`\"\"\"`) to describe what each tool does, when it should be used, and what parameters it expects. These descriptions are critical for ASI:One to understand when and how to use your tools.\n\nFor more detailed instructions and advanced configuration options, see the [MCP Server Adapter Documentation](src/uagents_adapter/mcp/README.md).\n\n## A2A Outbound Adapter\n\nThe A2A Outbound Adapter allows you to connect your uAgents with Chat Protocol to Google A2A Servers.\n\nFirst, create your A2A servers in a directory named `agents` and then import the Agent Executors in your `agent.py` (uagent) file along with the SingleA2AAdapter or MultiA2AAdapter depending on whether you want to connect to a single Google A2A Server or Multiple A2A Servers. You will have to provide the Agent card to the Adapter and the Adapter will run the servers and enable the uagent with Chat Protocol so that it becomes discoverable through ASI:One and you can start interacting with any A2A Server using the A2A Outbound Adapter.\n\n```python\nfrom uagent_adapter import SingleA2AAdapter, A2AAgentConfig, a2a_servers\n\n#Import A2A Server executor from your A2A Server code \nfrom brave.agent import BraveSearchAgentExecutor\n\ndef main():\n\n #Add details of your A2A Server\n agent_config = A2AAgentConfig( \n name=\"brave_search_specialist\", #Name of A2A Server \n description=\"AI Agent for web and news search using Brave Search API\", #Description of A2A Server \n url=\"http://localhost:10020\", #Endpoint where the A2A Server should be running\n port=10020, #port where the A2A Server should be running\n specialties=[\"web search\", \"news\", \"information retrieval\", \"local business\", \"site-specific lookup\"],\n priority=3 \n )\n executor = BraveSearchAgentExecutor()\n a2a_servers([agent_config], {agent_config.name: executor})\n print(f\"AgentCard manifest URL: http://localhost:{agent_config.port}/.well-known/agent.json\")\n adapter = SingleA2AAdapter(\n agent_executor=executor, #Your A2A Server Executor\n name=\"brave\", #Name of uAgent \n description=\"Routes queries to Brave Search AI specialists\", #Description of uAgent \n port=8200, #Port where the uAgent should be running\n a2a_port=10020 #Port where the A2A server should be running\n )\n adapter.run()\n\nif __name__ == \"__main__\":\n main()\n```\n\n#### Notes\n- Use `A2AAgentConfig` for all agent configuration\n- Start A2A servers with `a2a_servers` for manifest and server management\n- Use `SingleA2AAdapter` or `MultiA2AAdapter` for orchestration and chat integration\n- After starting, inspect manifest URLs at `http://localhost:{port}/.well-known/agent.json`\n\n\n\n\nFor more detailed instructions and advanced configuration options, see the [A2A Outbound Adapter Documentation](src/uagents_adapter/a2a-outbound-documentation/README.md).\n\n\n## A2A Inbound Adapter\n\nThe A2A Inbound Adapter allows you to bridge any existing Agentverse agent to the A2A (Agent-to-Agent) ecosystem, making your uAgents accessible through the A2A protocol for AI assistants and other applications.\n\n```python\nfrom uagents_adapter import A2ARegisterTool\n\n# Create A2A register tool\nregister_tool = A2ARegisterTool()\n\n# Choose the agent you want to use from Agentverse.ai, copy its address in the config, add agent details or create a custom agent yourself and add its address in the config\n# Configure your agent bridge\nconfig = {\n \"agent_address\": \"agent1qv4zyd9sta4f5ksyhjp900k8kenp9vczlwqvr00xmmqmj2yetdt4se9ypat\",\n \"name\": \"Finance Analysis Agent\", \n \"description\": \"Financial analysis and market insights agent\",\n \"skill_tags\": [\"finance\", \"analysis\", \"markets\", \"investment\"],\n \"skill_examples\": [\"Analyze AAPL stock performance\", \"Compare crypto portfolios\"],\n \"port\": 10000, # A2A server port (default)\n \"bridge_port\": 9000, # Optional: bridge port (auto-derived if not set)\n \"host\": \"localhost\" # Default host\n}\n\n# Start the A2A bridge server\nresult = register_tool.invoke(config)\n\nprint(f\"A2A server running on {config['host']}:{config['port']}\")\nprint(f\"Bridging to Agentverse agent: {config['agent_address']}\")\n```\n\nFor CLI usage:\n\n```bash\n# Set unique bridge seed for production\nexport UAGENTS_BRIDGE_SEED=\"your_unique_production_seed_2024\"\n\n# Start the A2A bridge\npython -m uagents_adapter.a2a_inbound.cli \\\n --agent-address agent1qv4zyd9sta4f5ksyhjp900k8kenp9vczlwqvr00xmmqmj2yetdt4se9ypat \\\n --agent-name \"Finance Agent\" \\\n --skill-tags \"finance,analysis,markets\" \\\n --port 10000\n```\n\n> **Security Note**: Always set `UAGENTS_BRIDGE_SEED` environment variable for production deployments to ensure consistent bridge agent addresses across restarts and prevent conflicts.\n\nFor more detailed instructions and configuration options, see the [A2A Inbound Adapter Documentation](src/uagents_adapter/a2a_inbound/README.md).\n\n## Agentverse Integration\n\n### Mailbox Service\n\nBy default, agents are created with `mailbox=True`, which enables the agent to use the Agentverse mailbox service. This allows agents to communicate with other agents without requiring a publicly accessible endpoint.\n\nWhen mailbox is enabled:\n- Agents can be reached by their agent address (e.g., `agent1q...`)\n- No port forwarding or public IP is required\n- Messages are securely handled through the Agentverse infrastructure\n\n### Agentverse Registration\n\nYou can optionally register your agent with the Agentverse API, which makes it discoverable and usable by other users in the Agentverse ecosystem:\n\n1. Obtain an API token from [Agentverse.ai](https://agentverse.ai)\n2. Include the token when registering your agent:\n ```python\n result = register_tool.invoke({\n # ... other parameters\n \"api_token\": \"YOUR_AGENTVERSE_API_TOKEN\"\n })\n ```\n\nWhen an agent is registered with Agentverse:\n- It connects to the mailbox service automatically\n- It appears in the Agentverse directory\n- A README with input/output models is automatically generated\n- The agent gets an \"innovationlab\" badge\n- Other users can discover and interact with it\n- You can monitor its usage and performance through the Agentverse dashboard\n\nExample of auto-generated README for LangChain agents:\n```markdown\n# Agent Name\nAgent Description\n\n\n**Input Data Model**\n```python\nclass QueryMessage(Model):\n query: str\n```\n\n**Output Data Model**\n```python\nclass ResponseMessage(Model):\n response: str\n```\n```\n\nExample of auto-generated README for CrewAI agents with parameters:\n```markdown\n# Agent Name\nAgent Description\n\n\n**Input Data Model**\n```python\nclass ParameterMessage(Model):\n topic: str\n max_results: int | None = None\n```\n\n**Output Data Model**\n```python\nclass ResponseMessage(Model):\n response: str\n```\n\n**Example Query**\n```\nResearch about artificial intelligence\n```\n```\n\n## License\n\nApache 2.0",
"bugtrack_url": null,
"license": "Apache 2.0",
"summary": "Adapters for uAgents to integrate with LangChain, CrewAI, MCP, and A2A",
"version": "0.5.0",
"project_urls": null,
"split_keywords": [
"uagents",
" agents",
" langchain",
" crewai",
" mcp",
" a2a",
" fetch.ai"
],
"urls": [
{
"comment_text": "",
"digests": {
"blake2b_256": "b10553114bf50c341c597a1b2750a9830530b72119eb5e2b6bf3af106d063702",
"md5": "71acad6dac14b6598e034564e252adb2",
"sha256": "80e5e20916db4ce85812c5a96fd59e575ec883dfe82ac21266d71d568bc8da5c"
},
"downloads": -1,
"filename": "uagents_adapter-0.5.0-py3-none-any.whl",
"has_sig": false,
"md5_digest": "71acad6dac14b6598e034564e252adb2",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": "<4.0,>=3.10",
"size": 56090,
"upload_time": "2025-07-11T16:10:35",
"upload_time_iso_8601": "2025-07-11T16:10:35.584733Z",
"url": "https://files.pythonhosted.org/packages/b1/05/53114bf50c341c597a1b2750a9830530b72119eb5e2b6bf3af106d063702/uagents_adapter-0.5.0-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "07e4ec3b900e5e7834e4f9c638063e079f3027b39320217dd070291148fa58d3",
"md5": "6a844e4872a2bfa177b792ef50527990",
"sha256": "71cbd51b9f9df4455e3810d7505689adee6827be20c948ef50376d0ddb314e5f"
},
"downloads": -1,
"filename": "uagents_adapter-0.5.0.tar.gz",
"has_sig": false,
"md5_digest": "6a844e4872a2bfa177b792ef50527990",
"packagetype": "sdist",
"python_version": "source",
"requires_python": "<4.0,>=3.10",
"size": 45780,
"upload_time": "2025-07-11T16:10:36",
"upload_time_iso_8601": "2025-07-11T16:10:36.475226Z",
"url": "https://files.pythonhosted.org/packages/07/e4/ec3b900e5e7834e4f9c638063e079f3027b39320217dd070291148fa58d3/uagents_adapter-0.5.0.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2025-07-11 16:10:36",
"github": false,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"lcname": "uagents-adapter"
}