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

# Agent Adapters

Adapters tell Charm how to call your agent code.

Different frameworks expose different runtime objects, so the adapter bridges your code to the Charm runner.

## Supported Adapter Types

| Type        | Best For                       | Entry Point Style |
| ----------- | ------------------------------ | ----------------- |
| `custom`    | Plain Python functions/classes | `module:object`   |
| `langchain` | LangChain chains/runnables     | `module:chain`    |
| `langgraph` | LangGraph graphs               | `module:graph`    |
| `crewai`    | CrewAI crews                   | `module:crew`     |
| `openclaw`  | OpenClaw/browser-tool agents   | OpenClaw host     |

## Configure an Adapter

```yaml theme={"theme":{"light":"min-light","dark":"min-dark"}}
runtime:
  adapter:
    type: "custom"
    entry_point: "src.main:agent"
```

## Choosing an Adapter

* Use `custom` for Python agent that do not use any frameworks.
* Use `langchain`, `langgraph`, or `crewai` when you already use that framework.
* Use `openclaw` for OpenClaw based agents.

## Third-party adapter plugins

Any pip package can register additional `runtime.adapter.type` values via `[project.entry-points."charm.adapters"]`. These require a [custom runtime image](/guides/custom-runtimes) on the cloud runner. See [Extensibility Overview](/guides/extensibility) and [Custom Adapters](/guides/custom-adapters).

## Adapter Pages

* [Custom](/adapters/custom)
* [LangChain](/adapters/langchain)
* [LangGraph](/adapters/langgraph)
* [CrewAI](/adapters/crewai)
* [OpenClaw](/adapters/openclaw)
