# Supported Agents (https://www.agentenvframework.com/docs/agents/supported-agents)

> Supported agent = An agent AgentEnv Framework ships, ready to deploy into any environment

New to agents? [Agents](https://www.agentenvframework.com/docs/agents.md) explains what an agent is, and [Creating your own
agent](https://www.agentenvframework.com/docs/agents/creating.md) writes one. Every agent below runs on any [sandbox
provider](https://www.agentenvframework.com/docs/sandboxes.md) and calls the model endpoint in [`[model]`](https://www.agentenvframework.com/docs/model-providers.md).

## Supported Agents

| Agent                                                               | Name it as    |
| ------------------------------------------------------------------- | ------------- |
| <ProviderLogo name="claude" />[Claude Code](#claude-code) (default) | `claude-code` |
| <ProviderLogo name="pi" />[pi](#pi)                                 | `pi`          |
| <ProviderLogo name="openhands" />[OpenHands](#openhands)            | `openhands`   |

### Claude Code

```json title="tasks/q3.json"
{"id": "assistant", "type": "deploy_agent", "env_ids": ["email"], "a2a_agent_id": "claude-code"}
```

```toml title=".agentenv/config.toml"
[agents]
default_a2a_agent_id = "claude-code"   # already the default
```

Claude Code is the default agent, so any step that doesn't name an agent deploys it. It needs a
model endpoint that speaks Anthropic's API, such as a LiteLLM gateway, and the [agents
README](https://github.com/scaleapi/agentenv-framework/blob/main/src/agent_env/agents/README.md)
covers the rest.

### pi

```json title="tasks/q3.json"
{"id": "assistant", "type": "deploy_agent", "env_ids": ["email"], "a2a_agent_id": "pi"}
```

```toml title=".agentenv/config.toml"
[agents]
default_a2a_agent_id = "pi"   # every step and agent judge that names no agent
```

pi is Earendil's open-source coding agent, and it works with any model endpoint that speaks the
OpenAI API. Give it a model with `[model] default`, and the [pi
README](https://github.com/scaleapi/agentenv-framework/blob/main/src/agent_env/agents/agents/pi/README.md)
covers the rest.

### OpenHands

```json title="tasks/q3.json"
{"id": "assistant", "type": "deploy_agent", "env_ids": ["email"], "a2a_agent_id": "openhands"}
```

```toml title=".agentenv/config.toml"
[agents]
default_a2a_agent_id = "openhands"   # every step and agent judge that names no agent
```

OpenHands is an open-source coding agent, which AgentEnv runs through the OpenHands SDK, and it calls
its model through a LiteLLM endpoint. Give it a model with `[model] default`, and the
[OpenHands
README](https://github.com/scaleapi/agentenv-framework/blob/main/src/agent_env/agents/agents/openhands/README.md)
covers the rest.