> ## Documentation Index
> Fetch the complete documentation index at: https://docs.orxhestra.com/llms.txt
> Use this file to discover all available pages before exploring further.

> Expose orxhestra agents as A2A protocol endpoints or connect to remote A2A agents.

# SKILL

# A2A Integration

## A2A Server — expose an agent

```python theme={null}
from orxhestra import LlmAgent, InMemorySessionService
from orxhestra.a2a import A2AServer, AgentSkill

agent = LlmAgent(name="MyAgent", model=model, tools=[...])

server = A2AServer(
    agent=agent,
    session_service=InMemorySessionService(),
    app_name="my-agent-service",
    skills=[
        AgentSkill(
            id="qa", name="Q&A",
            description="Answers general questions.",
            tags=["general"],
        ),
    ],
)

app = server.as_fastapi_app()
# uvicorn my_module:app --host 0.0.0.0 --port 8000
```

### Endpoints

| Method | Endpoint                  | Description           |
| ------ | ------------------------- | --------------------- |
| `GET`  | `/.well-known/agent.json` | Agent Card discovery  |
| `POST` | `/`                       | JSON-RPC 2.0 dispatch |

### JSON-RPC methods

| Method           | Description                          |
| ---------------- | ------------------------------------ |
| `message/send`   | Send message, receive completed Task |
| `message/stream` | Send message, receive SSE stream     |
| `tasks/get`      | Retrieve task by ID                  |
| `tasks/cancel`   | Cancel a running task                |

## A2A Agent — connect to a remote agent

```python theme={null}
from orxhestra.agents.a2a_agent import A2AAgent

remote = A2AAgent(
    name="RemoteAgent",
    description="A remote research agent.",
    url="http://localhost:9000",
)

async for event in remote.astream("What is quantum computing?"):
    print(event.text)
```

## In YAML Composer

```yaml theme={null}
agents:
  remote_researcher:
    type: a2a
    description: "Remote research agent"
    url: "http://localhost:9000"

  orchestrator:
    type: llm
    tools:
      - agent: remote_researcher

main_agent: orchestrator
```
