# Which agent frameworks does Provely work with?

> Provely finds LangChain, LangGraph, LlamaIndex, OpenAI Agents, Vercel AI, and the OpenAI and Anthropic SDKs by itself. The measured grid results.

Canonical: https://provely.sh/frameworks  
Last updated: 2026-10-18  

**Provely finds LangChain, LangGraph, LlamaIndex, OpenAI Agents, Vercel AI, OpenAI SDK, Anthropic SDK by itself, in TypeScript and Python. You add two lines. You write no guard call and import no adapter.**

agent.ts

```typescript
import { Provely } from '@provely/sdk';

new Provely();
```

agent.py

```python
from provely import Provely

Provely()
```

Each plugin loads only when its package is present. The core holds no framework code, so an app pays only for the framework it uses.

## What did the grid measure?

The grid runs the same failure cases on 15 paths, in 4 columns. Each column is one language, for the frameworks or for the plain SDKs.

*A case passes in a column only when it passes on every path of that column.*

| Column | Paths | Pass | Fail | Not counted | Not applicable | Head |
| --- | --- | --- | --- | --- | --- | --- |
| TypeScript frameworks | LangChain, LangGraph, LlamaIndex, OpenAI Agents, Vercel AI generateText, Vercel AI streamText | 27 of 27 (1 passes under guard_mode: enforce; observe records only; rules cases not yet measured) | 0 | 0 | 0 | `82acaae6` |
| Python frameworks | LangChain, LangGraph, LlamaIndex, OpenAI Agents | 26 of 27 (1 passes under guard_mode: enforce; observe records only; rules cases counted apart) | 1 | 0 | 0 | `9f9131ba` |
| TypeScript plain SDKs | OpenAI Chat Completions, OpenAI Responses, Anthropic Messages | 24 of 27 (1 passes under guard_mode: enforce; observe records only; rules cases not yet measured) | 3 | 0 | 0 | `d1aa85ea` |
| Python plain SDKs | OpenAI Chat Completions, Anthropic Messages | 23 of 27 (1 passes under guard_mode: enforce; observe records only; rules cases not yet measured) | 4 | 0 | 0 | `d1aa85ea` |

A fail is a case that did not pass on at least one path. "Not counted" is a case where the framework coped alone and Provely made no fix, so it is not a pass. An inapplicable case is left out of the total.

The invented-value case passes under guard_mode: enforce; observe records only. Under observe, the default, Provely records the value and the write runs.

Measured on 2026-10-17 at commit 82acaae6. Measured on 2026-10-17 at commit 9f9131ba. Measured on 2026-10-17 at commit d1aa85ea.

Source: https://provely.sh/frameworks (retrieved 2026-10-17)

## Which rules cases pass?

*Python frameworks, at commit d4fe6faf, 2026-10-17. A case passes only when it passes on every path.*

| Case | py/langchain | py/langgraph | py/llamaindex | py/openai-agents |
| --- | --- | --- | --- | --- |
| ZC-PLAN-01 | pass | pass | pass | pass |
| ZC-PLAN-02 | pass | pass | pass | pass |
| ZC-PLAN-03 | fail | fail | pass | pass |
| ZC-PLAN-04 | pass | pass | pass | pass |
| ZC-PLAN-05 | pass | pass | pass | pass |
| ZC-PLAN-06 | pass | pass | pass | pass |

5 of 6 rules cases pass on every path.

Rules cases: not yet measured at the current heads. This holds for: TypeScript frameworks, TypeScript plain SDKs, Python plain SDKs.

## Read next

- [Add Provely to LangChain](https://provely.sh/frameworks/langchain)
- [Add Provely to LangGraph](https://provely.sh/frameworks/langgraph)
- [Add Provely to LlamaIndex](https://provely.sh/frameworks/llamaindex)
- [Add Provely to OpenAI Agents](https://provely.sh/frameworks/openai-agents)
- [Add Provely to Vercel AI](https://provely.sh/frameworks/vercel-ai)
- [Add Provely to OpenAI SDK](https://provely.sh/frameworks/openai)
- [Add Provely to Anthropic SDK](https://provely.sh/frameworks/anthropic)
