Skip to content

API 레퍼런스

import { Agent } from "@schift-io/sdk";
new Agent(options: AgentOptions)
옵션타입기본값필수 여부
namestring필수
instructionsstring필수
modelModelId | string"gpt-4o-mini"선택
transportTransporttransport 또는 baseUrl 중 하나
baseUrlstringtransport 또는 baseUrl 중 하나
apiKeystring선택
toolsAgentTool[][]선택
ragRAG선택
memoryMemoryConfig{ maxMessages: 50 }선택
maxStepsnumber10선택
메서드반환값설명
run(input: string)Promise<AgentRunResult>사용자 메시지로 에이전트를 실행합니다
toolCountnumber등록된 도구 수 (getter)

import { RAG } from "@schift-io/sdk";
new RAG(config: RAGConfig, transport: Transport)
옵션타입기본값
bucketstring필수
topKnumber5
메서드반환값설명
search(query: string)Promise<SearchResultItem[]>버킷에서 시맨틱 검색을 수행합니다
chat(query: string)Promise<ChatResult>검색 후 LLM 답변을 생성합니다
asTool(name?: string)AgentTool에이전트 도구로 변환합니다

import { WebSearch } from "@schift-io/sdk";
new WebSearch(config?: WebSearchConfig, transport?: Transport)
옵션타입기본값
maxResultsnumber5
providerWebSearchProvider"schift"
providerApiKeystring
메서드반환값설명
search(query: string)Promise<WebSearchResultItem[]>웹 검색을 수행합니다
asTool(name?: string)AgentTool에이전트 도구로 변환합니다

import { DeepResearch } from "@schift-io/sdk";
new DeepResearch(config?: DeepResearchConfig, llm: LLMFn, transport?: Transport)
옵션타입기본값
maxIterationsnumber3
resultsPerSearchnumber5
queriesPerIterationnumber2
queryModelModelId | string"gpt-4o-mini"
synthesisModelModelId | string"gpt-4o-mini"
webSearchWebSearchConfig
메서드반환값설명
run(question: string)Promise<ResearchReport>심층 리서치를 실행합니다
asTool(name?: string)AgentTool에이전트 도구로 변환합니다

import { ConversationMemory } from "@schift-io/sdk";
new ConversationMemory(config?: MemoryConfig)
옵션타입기본값
maxMessagesnumber50
메서드반환값설명
add(message: ChatMessage)void메시지를 히스토리에 추가합니다
getMessages()ChatMessage[]전체 메시지 목록을 반환합니다
clear()void시스템 메시지를 제외한 메시지를 초기화합니다
lengthnumber메시지 수 (getter)

import { Schift } from "@schift-io/sdk";
new Schift(config: SchiftConfig)
옵션타입기본값
apiKeystring필수
baseUrlstring"https://api.schift.io"
timeoutnumber60000
속성타입설명
transportTransportAgent/RAG용 HTTP 트랜스포트
workflowsWorkflowClient워크플로우 서브 클라이언트
modelsModelsClient모델 카탈로그
dbDBClient버킷/문서 관리
toolsSchiftTools도구 정의 헬퍼
메서드반환값설명
embed(request)Promise<EmbedResponse>임베딩을 생성합니다
embedBatch(request)Promise<EmbedBatchResponse>배치 임베딩을 생성합니다
search(request)Promise<SearchResult>벡터 검색을 수행합니다
chat(request)Promise<ChatResponse>RAG 채팅을 수행합니다
webSearch(query, options?)Promise<WebSearchResultItem[]>웹 검색을 수행합니다

interface AgentTool {
name: string; // Must match /^[a-zA-Z_][a-zA-Z0-9_]*$/
description: string;
parameters?: JSONSchema;
handler: (args: Record<string, unknown>) => Promise<ToolResult>;
}
interface ToolResult {
success: boolean;
data: unknown;
error?: string;
}
interface AgentRunResult {
steps: AgentStep[];
output: string;
totalDurationMs: number;
}
interface AgentStep {
id: string;
type: "think" | "tool_call" | "tool_result" | "final_answer" | "error";
content?: string;
toolName?: string;
toolArgs?: Record<string, unknown>;
toolResult?: ToolResult;
durationMs: number;
}
interface ChatMessage {
role: "system" | "user" | "assistant" | "tool";
content: string;
toolCallId?: string;
toolName?: string;
}
import { OpenAIModel, GeminiModel, ClaudeModel } from "@schift-io/sdk";
// OpenAI
OpenAIModel.GPT_5_4 // "gpt-5.4"
OpenAIModel.GPT_4O_MINI // "gpt-4o-mini"
OpenAIModel.O3 // "o3"
// Google
GeminiModel.GEMINI_3_1_PRO // "gemini-3.1-pro"
GeminiModel.GEMINI_2_5_FLASH // "gemini-2.5-flash"
// Anthropic
ClaudeModel.OPUS_4_6 // "claude-opus-4-6"
ClaudeModel.SONNET_4_6 // "claude-sonnet-4-6"
ClaudeModel.HAIKU_4_5 // "claude-haiku-4-5-20251001"
import {
SchiftError, // 기본 에러 (status, code)
AuthError, // 401 - 잘못된 API 키
QuotaError, // 402 - 할당량 초과
AgentError, // 에이전트 실패 (stepId)
ToolError, // 도구 실행 실패 (toolName)
MaxStepsError, // 최대 ReAct 반복 횟수 초과
} from "@schift-io/sdk";