본문으로 건너뛰기

Interface: ChatMiddlewareContext<TContext>

정의 위치: packages/ai/src/activities/chat/middleware/types.ts:184

모든 미들웨어 훅에 전달되는 안정적인 컨텍스트 객체입니다. chat() 호출마다 한 번 생성되며 모든 훅에서 공유됩니다.

타입 매개변수​

TContext​

TContext = unknown

속성​

abort​

abort: (reason?) => void;

정의 위치: packages/ai/src/activities/chat/middleware/types.ts:215

이유와 함께 채팅 실행을 중단합니다.

매개변수​

reason?​

string

반환값​

void


accumulatedContent​

accumulatedContent: string;

정의 위치: packages/ai/src/activities/chat/middleware/types.ts:266

현재 반복에서 누적된 텍스트 콘텐츠입니다.


activity​

activity: "chat";

정의 위치: packages/ai/src/activities/chat/middleware/types.ts:233

이 컨텍스트가 설명하는 활동으로, 항상 'chat'입니다. 다음 목적을 위해 존재합니다. 채팅 컨텍스트가 기본 GenerationMiddlewareContext를 구조적으로 만족하게 하여, 기본 타입을 기준으로 작성된 관찰 전용 미들웨어(예: otelMiddleware)가 채팅 활동과 미디어 활동 모두에서 실행될 수 있습니다.


capabilities​

capabilities: CapabilityRegistry;

정의 위치: packages/ai/src/activities/chat/middleware/types.ts:280

이 요청의 기능 추적 정보입니다. 미들웨어 setup 훅이 (provide 접근자를 통해) 채우고 이후 미들웨어가 (get 접근자를 통해) 읽습니다. 이를 직접 사용하기보다 createCapability가 반환하는 접근자를 우선 사용합니다. context(사용자 런타임 컨텍스트)와는 별개입니다.


chunkIndex​

chunkIndex: number;

정의 위치: packages/ai/src/activities/chat/middleware/types.ts:211

지금까지 생성된 청크의 누적 개수입니다.


context​

context: TContext;

정의 위치: packages/ai/src/activities/chat/middleware/types.ts:217

chat() 옵션으로 제공된 런타임 컨텍스트입니다.


conversationId?​

optional conversationId?: string;

정의 위치: packages/ai/src/activities/chat/middleware/types.ts:205

더 이상 권장되지 않음​

대신 threadId를 사용합니다. 다음을 위해 별칭으로 유지됩니다. threadId의 별칭이므로 AG-UI 이름 변경 전에 작성된 미들웨어가 변경 없이 작동합니다. 향후 메이저 릴리스에서 제거됩니다.


createId​

createId: (prefix) => string;

정의 위치: packages/ai/src/activities/chat/middleware/types.ts:273

지정된 접두사로 고유 ID를 생성합니다.

매개변수​

prefix​

string

반환값​

string


currentMessageId​

currentMessageId: string | null;

정의 위치: packages/ai/src/activities/chat/middleware/types.ts:264

현재 어시스턴트 메시지 ID입니다(반복마다 변경됨).


defer​

defer: (promise) => void;

정의 위치: packages/ai/src/activities/chat/middleware/types.ts:223

비차단 부수 효과 프로미스를 지연합니다. 지연된 프로미스는 스트리밍을 차단하지 않으며 종료 훅(onFinish/onAbort/onError) 이후에 대기합니다.

매개변수​

promise​

Promise<unknown>

반환값​

void


get​

get: <TValue>(capability) => TValue;

정의 위치: packages/ai/src/activities/chat/middleware/types.ts:285

핸들로 제공된 기능을 읽습니다. 핸들 자체의 get 접근자(getX(ctx))와 동일하며, 기능이 제공된 적 없으면 예외를 발생시킵니다.

타입 매개변수​

TValue​

TValue

매개변수​

capability​

Capability&lt;TValue>

반환값​

TValue


getOptional​

getOptional: <TValue>(capability) => TValue | undefined;

정의 위치: packages/ai/src/activities/chat/middleware/types.ts:290

핸들로 기능을 읽고, 제공된 적 없으면 undefined를 제공된 적이 없으면 반환합니다(예외를 발생시키지 않음).

타입 매개변수​

TValue​

TValue

매개변수​

capability​

Capability&lt;TValue>

반환값​

TValue | undefined


hasTools​

hasTools: boolean;

정의 위치: packages/ai/src/activities/chat/middleware/types.ts:259

도구가 구성되었는지 여부입니다.


iteration​

iteration: number;

정의 위치: packages/ai/src/activities/chat/middleware/types.ts:209

현재 에이전트 루프 반복입니다(0부터 시작).


messageCount​

messageCount: number;

정의 위치: packages/ai/src/activities/chat/middleware/types.ts:257

요청 시작 시점의 메시지 수입니다.


messages​

messages: readonly ModelMessage<
| string
| ContentPart<unknown, unknown, unknown, unknown, unknown>[]
| null>[];

정의 위치: packages/ai/src/activities/chat/middleware/types.ts:271

현재 메시지 배열입니다(읽기 전용 뷰).


model​

model: string;

정의 위치: packages/ai/src/activities/chat/middleware/types.ts:237

모델 식별자입니다(예: 'gpt-5.5').


modelOptions?​

optional modelOptions?: Record<string, unknown>;

정의 위치: packages/ai/src/activities/chat/middleware/types.ts:252

Provider별 모델 옵션입니다.


options?​

optional options?: Record<string, unknown>;

정의 위치: packages/ai/src/activities/chat/middleware/types.ts:250

평탄화된 생성 옵션입니다(메타데이터).


parentRunId?​

optional parentRunId?: string;

정의 위치: packages/ai/src/activities/chat/middleware/types.ts:192

이 연속 실행과 연결된 인터럽트된 실행 또는 상위 실행입니다.


phase​

phase: ChatMiddlewarePhase;

정의 위치: packages/ai/src/activities/chat/middleware/types.ts:207

현재 생명 주기 단계입니다.


provide​

provide: <TValue>(capability, value) => void;

정의 위치: packages/ai/src/activities/chat/middleware/types.ts:295

기능 값을 제공합니다. 핸들 자체의 provide 접근자(provideX(ctx, value))와 동일합니다. 일반적으로 setup에서 호출합니다.

타입 매개변수​

TValue​

TValue

매개변수​

capability​

Capability&lt;TValue>

value​

TValue

반환값​

void


provider​

provider: string;

정의 위치: packages/ai/src/activities/chat/middleware/types.ts:235

Provider 이름입니다(예: 'openai', 'anthropic').


requestId​

requestId: string;

정의 위치: packages/ai/src/activities/chat/middleware/types.ts:186

이 채팅 요청의 고유 식별자입니다.


runId​

runId: string;

정의 위치: packages/ai/src/activities/chat/middleware/types.ts:190

클라이언트와 서버 이벤트를 연결하기 위한 AG-UI 실행 식별자입니다.


signal?​

optional signal?: AbortSignal;

정의 위치: packages/ai/src/activities/chat/middleware/types.ts:213

채팅 요청의 중단 시그널입니다.


source​

source: "server" | "client";

정의 위치: packages/ai/src/activities/chat/middleware/types.ts:239

채팅 호출의 출처입니다. 서버 측 채팅에서는 항상 'server'입니다.


streamId​

streamId: string;

정의 위치: packages/ai/src/activities/chat/middleware/types.ts:188

이 스트림의 고유 식별자입니다.


streaming​

streaming: boolean;

정의 위치: packages/ai/src/activities/chat/middleware/types.ts:241

채팅이 스트리밍 중인지 여부입니다.


systemPrompts​

systemPrompts: SystemPrompt[];

정의 위치: packages/ai/src/activities/chat/middleware/types.ts:246

이 채팅에 구성된 시스템 프롬프트입니다.


threadId​

threadId: string;

정의 위치: packages/ai/src/activities/chat/middleware/types.ts:199

AG-UI 스레드 식별자입니다. 클라이언트와 서버 개발자 도구 이벤트를 연결하는 클라이언트와 서버 개발자 도구 이벤트를 연결합니다. 호출자가 제공한 threadId(또는 레거시 conversationId)로 결정되며, 둘 다 제공되지 않으면 자동 생성된 값을 사용합니다.


toolNames?​

optional toolNames?: string[];

정의 위치: packages/ai/src/activities/chat/middleware/types.ts:248

구성된 도구의 이름입니다(있는 경우).