---
title: "Class: PrefactorLangChain"
editUrl: true
head: []
template: doc
sidebar:
  hidden: false
  attrs: {}
pagefind: true
draft: false
---

[**Prefactor TypeScript SDK**](../../../index.md)

***

[Prefactor TypeScript SDK](../../../modules.md) / [@prefactor/langchain](../index.md) / PrefactorLangChain

# Class: PrefactorLangChain

Defined in: [packages/langchain/src/provider.ts:17](https://github.com/prefactordev/typescript-sdk/blob/36c73ff31a0d7edab73280c2f46cb7ce554a63e9/packages/langchain/src/provider.ts#L17)

## Implements

- `PrefactorProvider`\<`AgentMiddleware`\>

## Constructors

### Constructor

> **new PrefactorLangChain**(`options?`): `PrefactorLangChain`

Defined in: [packages/langchain/src/provider.ts:22](https://github.com/prefactordev/typescript-sdk/blob/36c73ff31a0d7edab73280c2f46cb7ce554a63e9/packages/langchain/src/provider.ts#L22)

#### Parameters

##### options?

[`PrefactorLangChainOptions`](../interfaces/PrefactorLangChainOptions.md) = `{}`

#### Returns

`PrefactorLangChain`

## Methods

### createMiddleware()

> **createMiddleware**(`tracer`, `agentManager`, `coreConfig`): `AgentMiddleware`

Defined in: [packages/langchain/src/provider.ts:26](https://github.com/prefactordev/typescript-sdk/blob/36c73ff31a0d7edab73280c2f46cb7ce554a63e9/packages/langchain/src/provider.ts#L26)

Creates provider middleware bound to the core runtime services.

#### Parameters

##### tracer

`Tracer`

Runtime tracer used for span creation.

##### agentManager

`AgentInstanceManager`

Runtime agent instance manager.

##### coreConfig

#### Returns

`AgentMiddleware`

Provider middleware consumed by upstream frameworks.

#### Implementation of

`PrefactorProvider.createMiddleware`

***

### shutdown()

> **shutdown**(): `void`

Defined in: [packages/langchain/src/provider.ts:65](https://github.com/prefactordev/typescript-sdk/blob/36c73ff31a0d7edab73280c2f46cb7ce554a63e9/packages/langchain/src/provider.ts#L65)

Optional provider-level cleanup hook invoked during client shutdown.

#### Returns

`void`

#### Implementation of

`PrefactorProvider.shutdown`

***

### getSdkHeaderEntry()

> **getSdkHeaderEntry**(): `string`

Defined in: [packages/langchain/src/provider.ts:70](https://github.com/prefactordev/typescript-sdk/blob/36c73ff31a0d7edab73280c2f46cb7ce554a63e9/packages/langchain/src/provider.ts#L70)

Returns the SDK header entry to append to HTTP requests created by the core runtime.

#### Returns

`string`

Adapter-specific SDK identifier, or `undefined` to use the core header only.

#### Implementation of

`PrefactorProvider.getSdkHeaderEntry`

***

### normalizeAgentSchema()

> **normalizeAgentSchema**(`agentSchema`): `Record`\<`string`, `unknown`\>

Defined in: [packages/langchain/src/provider.ts:74](https://github.com/prefactordev/typescript-sdk/blob/36c73ff31a0d7edab73280c2f46cb7ce554a63e9/packages/langchain/src/provider.ts#L74)

Normalizes a user- or provider-authored agent schema before core registers it.

#### Parameters

##### agentSchema

`Record`\<`string`, `unknown`\>

Authored agent schema configuration.

#### Returns

`Record`\<`string`, `unknown`\>

Normalized schema, or `undefined` to leave the input unchanged.

#### Implementation of

`PrefactorProvider.normalizeAgentSchema`

***

### getDefaultAgentSchema()

> **getDefaultAgentSchema**(): `Record`\<`string`, `unknown`\> \| `undefined`

Defined in: [packages/langchain/src/provider.ts:80](https://github.com/prefactordev/typescript-sdk/blob/36c73ff31a0d7edab73280c2f46cb7ce554a63e9/packages/langchain/src/provider.ts#L80)

Provides a default agent schema when a user does not supply one.

#### Returns

`Record`\<`string`, `unknown`\> \| `undefined`

Agent schema object, or `undefined` when no default is available.

#### Implementation of

`PrefactorProvider.getDefaultAgentSchema`