본문으로 건너뛰기

인터페이스: 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': 어댑터가 chatStreamstructured-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