Metadata-Version: 2.4
Name: agentgrid-py
Version: 0.1.0
Summary: Task routing layer for production AI agents — dispatch to the right agent by capability, health, and policy
Project-URL: Homepage, https://github.com/naveenkumarbaskaran/agentgrid
Project-URL: Repository, https://github.com/naveenkumarbaskaran/agentgrid
Project-URL: Issues, https://github.com/naveenkumarbaskaran/agentgrid/issues
Author: Naveen Kumar Baskaran
License: Apache-2.0
Keywords: agents,dispatch,enterprise,grid,llm,routing
Classifier: Development Status :: 4 - Beta
Classifier: Intended Audience :: Developers
Classifier: License :: OSI Approved :: Apache Software License
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Programming Language :: Python :: 3.13
Classifier: Topic :: Scientific/Engineering :: Artificial Intelligence
Classifier: Typing :: Typed
Requires-Python: >=3.11
Provides-Extra: all
Requires-Dist: agentmesh-bus>=0.1.0; extra == 'all'
Requires-Dist: agentplane-py>=0.1.0; extra == 'all'
Requires-Dist: agentregistry-py>=0.1.0; extra == 'all'
Provides-Extra: dev
Requires-Dist: mypy>=1.10; extra == 'dev'
Requires-Dist: pytest-asyncio>=0.23; extra == 'dev'
Requires-Dist: pytest-cov>=5.0; extra == 'dev'
Requires-Dist: pytest>=8.0; extra == 'dev'
Requires-Dist: ruff>=0.5; extra == 'dev'
Provides-Extra: mesh
Requires-Dist: agentmesh-bus>=0.1.0; extra == 'mesh'
Provides-Extra: plane
Requires-Dist: agentplane-py>=0.1.0; extra == 'plane'
Provides-Extra: registry
Requires-Dist: agentregistry-py>=0.1.0; extra == 'registry'
Description-Content-Type: text/markdown

# agentgrid-py

Task routing for production AI agents. Given a task, AgentGrid finds the right agent from your registry based on capabilities, health, and policy — then dispatches.

## Install

```bash
pip install agentgrid-py
pip install "agentgrid-py[registry]"   # with agentregistry-py
pip install "agentgrid-py[all]"        # with registry + mesh + policy
```

## Quickstart

```python
import asyncio
from agentgrid import AgentGrid
from agentregistry import AgentRegistry, AgentManifest

async def main():
    registry = AgentRegistry()
    registry.publish(AgentManifest(
        id="acme.search-agent", version="1.0.0",
        capabilities=["search", "summarize"],
        framework="langgraph",
    ))

    grid = AgentGrid(registry=registry)

    # Register handler for local dispatch
    async def search_handler(task: str, payload: dict) -> dict:
        return {"output": f"search results for: {task}"}
    grid.register("acme.search-agent", search_handler)

    # Route task to best agent
    result = await grid.route("find quarterly revenue", requires=["search"])
    print(f"Routed to: {result.agent_id} (score={result.score:.2f})")
    print(f"Response: {result.response}")

asyncio.run(main())
```

## Routing Strategies

```python
from agentgrid import RoutingStrategy

# Best capability match (default)
result = await grid.route(task, strategy=RoutingStrategy.BEST_MATCH)

# Round-robin across eligible agents
result = await grid.route(task, strategy=RoutingStrategy.ROUND_ROBIN)

# Least loaded agent
result = await grid.route(task, strategy=RoutingStrategy.LEAST_LOADED)

# Broadcast to all eligible agents
results = await grid.broadcast(task, requires=["handle_event"])
```

## Stack

```
agentgrid    → routing       which agent handles what task
agentmesh    → events        connects agents via pub/sub
agentplane   → policy        governs agent behaviour
agentregistry → discovery    what agents exist and their capabilities
```

---

Apache 2.0 · [PyPI](https://pypi.org/project/agentgrid-py/)
