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<TValue>
반환값
TValue
getOptional
getOptional: <TValue>(capability) => TValue | undefined;
정의 위치: packages/ai/src/activities/chat/middleware/types.ts:290
핸들로 기능을 읽고, 제공된 적 없으면 undefined를
제공된 적이 없으면 반환합니다(예외를 발생시키지 않음).
타입 매개변수
TValue
TValue
매개변수
capability
Capability<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<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
구성된 도구의 이름입니다(있는 경우).