본문으로 건너뛰기

인터페이스: TextOptions<TProviderOptionsSuperset, TProviderOptionsForModel, TContext>

정의 위치: packages/ai/src/types.ts:969

SDK에 전달되고 AI provider로 추가 전달되는 옵션입니다.

타입 매개변수​

TProviderOptionsSuperset​

TProviderOptionsSuperset extends Record<string, any> = Record<string, any>

TProviderOptionsForModel​

TProviderOptionsForModel = TProviderOptionsSuperset

TContext​

TContext = unknown

속성​

abortController?​

optional abortController?: AbortController;

정의 위치: packages/ai/src/types.ts:1069

요청 취소를 위한 AbortController입니다.

AbortController를 사용하여 진행 중인 요청을 취소할 수 있습니다. 타임아웃이나 사용자가 시작한 취소를 구현할 때 유용합니다.

예제​

const abortController = new AbortController();
setTimeout(() => abortController.abort(), 5000); // Cancel after 5 seconds
await chat({ ..., abortController });

참고​

https://developer.mozilla.org/en-US/docs/Web/API/AbortController


agentLoopStrategy?​

optional agentLoopStrategy?: AgentLoopStrategy;

정의 위치: packages/ai/src/types.ts:997


approvals?​

optional approvals?: ReadonlyMap<string, boolean>;

정의 위치: packages/ai/src/types.ts:1121

이 실행에 대한 클라이언트 승인 결정이며, approval id를 키로 사용합니다. 엔진은 수신 메시지에 포함된 승인에서 이 값을 채웁니다. Harness 어댑터는 이를 참조하여 ask 정책 권한 요청을 해결합니다(에이전트가 위험한 작업에서 일시 중지되고, 클라이언트가 여기에 기록된 결정을 사용해 다시 실행합니다). chat 엔진 외부에서 어댑터를 직접 사용하는 경우에는 정의되지 않습니다.


capabilities?​

optional capabilities?: CapabilityContext;

정의 위치: packages/ai/src/types.ts:1112

이 실행을 위한 미들웨어 capability 컨텍스트입니다. 엔진은 이를 현재 미들웨어 컨텍스트로 채우므로, requires: [SomeCapability]를 선언한 Harness 어댑터는 chatStream 내부에서 제공된 capability를 읽을 수 있습니다(예: getSandbox(options.capabilities)). capability는 어댑터가 실행되기 전에 미들웨어 setup에서 프로비저닝됩니다. chat 엔진 외부에서 어댑터를 직접 사용하는 경우에는 정의되지 않습니다.


context?​

optional context?: TContext;

정의 위치: packages/ai/src/types.ts:981

호출자가 제공하고 미들웨어 및 서버 측 도구 구현에 전달하는 런타임 컨텍스트입니다.


conversationId?​

optional conversationId?: string;

정의 위치: packages/ai/src/types.ts:1055

더 이상 권장되지 않음​

대신 threadId를 사용합니다. conversationId는 동일한 개념(클라이언트/서버 devtools 이벤트를 연관시키는 대화별 안정적인 식별자)의 AG-UI 이전 이름입니다. conversationId를 생략하면 런타임이 자동으로 threadId로 대체하므로, 대부분의 호출자는 threadId를 전달하거나 chatParamsFromRequest에 의존하여 params에 노출되도록 하면 됩니다.

향후 메이저 릴리스에서 제거됩니다.


lazyToolsConfig?​

optional lazyToolsConfig?: LazyToolsConfig;

정의 위치: packages/ai/src/types.ts:1003

지연 도구 검색(lazy: true로 표시된 도구)을 위한 선택적 구성입니다. 검색 카탈로그에 각 지연 도구의 설명을 얼마나 표시할지 조정합니다. 선택 사항이며 기본값은 { includeDescription: 'none' }입니다.


logger​

logger: InternalLogger;

정의 위치: packages/ai/src/types.ts:1076

chat 진입점에서 전달되는 내부 로거입니다. 어댑터 구현은 SDK 호출 전에 logger.request()를 호출하고, 수신한 각 청크에 대해 logger.provider()를 호출하며, catch 블록에서 logger.errors()를 호출해야 합니다.


messages​

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

정의 위치: packages/ai/src/types.ts:975


metadata?​

optional metadata?: Record<string, any>;

정의 위치: packages/ai/src/types.ts:1014

이 호출에 연결된 관측 가능성 메타데이터입니다. 미들웨어, devtools, 이벤트 클라이언트에 노출되며 값은 임의로 구조화할 수 있습니다(객체, 배열). 어댑터는 이 필드를 provider 와이어 요청에 전달하지 않습니다.

provider 측 요청 메타데이터를 보내려면 provider가 지원하는 경우 provider의 modelOptions 필드를 사용합니다(예: OpenAI와 OpenRouter의 metadata는 모두 Record<string, string>입니다).


model​

model: string;

정의 위치: packages/ai/src/types.ts:974


modelOptions?​

optional modelOptions?: TProviderOptionsForModel;

정의 위치: packages/ai/src/types.ts:1015


outputSchema?​

optional outputSchema?: SchemaInput;

정의 위치: packages/ai/src/types.ts:1044

구조화된 출력을 위한 스키마입니다.

서로 다른 두 사용 위치:

  1. 사용자 대상 (activity 계층): SchemaInput — Zod, ArkType, Valibot 또는 원시 JSON Schema를 허용합니다. activity 계층은 전달하기 전에 JSON Schema로 변환합니다.

  2. 어댑터 방향 (chatStream 호출): 엔진은 어댑터가 supportsCombinedToolsAndSchema(modelOptions) === true로 선언한 경우에만 사전 변환된 JSON 스키마를 오직 여기에 채웁니다. 어댑터는 그 다음 스키마를 상류 요청에 연결해야 합니다 (예: response_format: { type: 'json_schema', ... }, text.format, output_format, --json-schema) 및 tools과 함께.

    그 후 엔진이 객체를 취하는 방식은 combinedStructuredOutputSource()에 따라 달라집니다.

    • 'text' (기본값): 최종 턴의 assistant 텍스트가 JSON입니다.
    • 'event': 어댑터가 chatStream 중 structured-output.complete를 내보냅니다. 누적된 산문은 파싱하지 않습니다.

    이 capability를 선언하지 않은 어댑터에는 이 필드가 절대 채워지지 않으며, 엔진은 대신 에이전트 루프 후 structuredOutput / structuredOutputStream을 호출합니다.


parentRunId?​

optional parentRunId?: string;

정의 위치: packages/ai/src/types.ts:1093

AG-UI 프로토콜의 중첩 실행을 연관시키기 위한 상위 실행 ID입니다. 관측 가능성/미들웨어에 노출되며 LLM 호출에서는 사용되지 않습니다.


request?​

optional request?: Request | RequestInit;

정의 위치: packages/ai/src/types.ts:1016


resume?​

optional resume?: RunAgentResumeItem[];

정의 위치: packages/ai/src/types.ts:1102

후속 실행에서 클라이언트가 제공하는 AG-UI 인터럽트 재개 응답입니다. first-party 일반 항목은 metadata에 원래 요청을 포함합니다.


runId?​

optional runId?: string;

정의 위치: packages/ai/src/types.ts:1088

AG-UI 프로토콜 실행 연관을 위한 실행 ID입니다. 제공하면 RunStartedEvent와 RunFinishedEvent에서 사용됩니다. 제공하지 않으면 고유 ID가 생성됩니다.


state?​

optional state?: unknown;

정의 위치: packages/ai/src/types.ts:1096

인터럽트 종료 전에 STATE_SNAPSHOT에 미러링되는 애플리케이션 상태입니다.


systemPrompts?​

optional systemPrompts?: SystemPrompt[];

정의 위치: packages/ai/src/types.ts:996

요청에 포함할 시스템 프롬프트입니다.

일반 문자열(일반적인 경우) 또는 provider가 프롬프트마다 타입이 지정된 메타데이터(예: 프롬프트 캐싱을 위한 Anthropic의 cache_control)를 연결할 수 있는 { content, metadata } 객체를 허용합니다. chat 호출 지점에서 어댑터는 ~types['systemPromptMetadata']를 통해 metadata 타입을 좁힙니다. 이를 선언하지 않은 provider의 기본값은 never이므로 이 필드에는 의미 있는 값이 없으며(TypeScript는 여기서 undefined만 허용함), provider와 무관한 메타데이터가 JS / as any를 통해 어댑터에 도달하면 조용히 삭제되고 wire에 기록되지 않습니다.

참고​

SystemPrompt


threadId?​

optional threadId?: string;

정의 위치: packages/ai/src/types.ts:1082

AG-UI 프로토콜 실행 연관을 위한 스레드 ID입니다. 제공하면 RunStartedEvent와 RunFinishedEvent에서 사용됩니다.


tools?​

optional tools?: AnyTool[];

정의 위치: packages/ai/src/types.ts:976