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

# TypeScript Integrations

> Supported frameworks and LLM providers for Atla Insights in TypeScript

Atla Insights supports a wide range of LLM providers and AI agent frameworks. All instrumentation methods share a common interface for easy integration.

## LLM Providers

We currently support the following LLM providers:

| Provider   | Instrumentation Function | Notes                 |
| ---------- | ------------------------ | --------------------- |
| **OpenAI** | `instrumentOpenAI`       | Includes Azure OpenAI |

## Agent Frameworks

We currently support the following frameworks:

| Framework         | Instrumentation Function | Notes                                 |
| ----------------- | ------------------------ | ------------------------------------- |
| **LangChain**     | `instrumentLangChain`    | This includes e.g., LangGraph as well |
| **OpenAI Agents** | `instrumentOpenAIAgents` |                                       |

## Can't find your framework or LLM provider?

If you are using a framework or LLM provider without native support, you can manually record LLM generations via our lower-level SDK.

```typescript icon="square-js" lines theme={null}
import { startAsCurrentSpan } from "@atla-ai/insights-sdk-js";

const { span, endSpan } = startAsCurrentSpan("my-llm-generation");
try {
  // Run my LLM generation via an unsupported framework.
  const inputMessages = [{ role: "user", content: "What is the capital of France?" }];
  const tools = [
    {
      type: "function",
      function: {
        name: "get_capital",
        parameters: { type: "object", properties: { country: { type: "string" } } },
      },
    },
  ];
  const result = await myClient.chat.completions.create({ messages: inputMessages, tools });

  // Manually record LLM generation.
  span.recordGeneration({
    inputMessages,
    outputMessages: result.choices.map(choice => choice.message),
    tools,
  });
} finally {
  endSpan();
}
```

Note that all arguments are expected to be in an OpenAI-compatible format.

See the relevant OpenAI documentation for more details:

* [input\_messages](https://platform.openai.com/docs/api-reference/chat/create#chat_create-messages)
* [output\_messages](https://platform.openai.com/docs/api-reference/chat/object#chat/object-choices-message)
* [tools](https://platform.openai.com/docs/api-reference/chat/create#chat_create-tools) (optional but recommended)

Feel free to let us know which frameworks and LLM providers you would like to see supported!
[Schedule a call with the Atla team](https://calendly.com/d/csym-9kk-bbk/insights-ui-onboarding)
