본문으로 건너뛰기

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

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