コンテンツにスキップ

APIリファレンス

import { Agent } from "@schift-io/sdk";
new Agent(options: AgentOptions)
オプションデフォルト必須
namestringYes
instructionsstringYes
modelModelId | string"gpt-4o-mini"No
transportTransportOne of transport or baseUrl
baseUrlstringOne of transport or baseUrl
apiKeystringNo
toolsAgentTool[][]No
ragRAGNo
memoryMemoryConfigNo
maxStepsnumber10No
toolTimeoutMsnumber30000No
maxToolCallsnumbermaxSteps * 5No
parallelToolExecutionbooleanfalseNo
skillsSkillsConfigNo
extensionsArray<ExtensionInitFn | string>No
mcpMCPServerConfig[]No
メソッド戻り値説明
run(input, options?)Promise<AgentRunResult>ユーザーメッセージでエージェントを実行します
on(type, handler)() => voidイベントにサブスクライブします。解除関数を返します
off(type, handler)voidイベントのサブスクリプションを解除します
toolCountnumber登録されたツールの数(ゲッター)
import { RAG } from "@schift-io/sdk";
new RAG(config: RAGConfig, transport: Transport)
オプションデフォルト
bucketstringrequired
topKnumber7
プロパティ
MAX_QUERY_LENGTHnumber8000
メソッド戻り値説明
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
transformContext(messages: ChatMessage[]) => ChatMessage[]
メソッド戻り値説明
add(message: ChatMessage)voidメッセージを履歴に追加します
getMessages()ChatMessage[]すべてのメッセージを取得します
clear()void非システムメッセージをクリアします
lengthnumberメッセージ数(ゲッター)
import { ToolRegistry } from "@schift-io/sdk";
メソッド戻り値説明
register(tool: AgentTool)voidツールを登録します
get(name: string)AgentTool | undefined名前でツールを取得します
has(name: string)booleanツールが存在するか確認します
list()AgentTool[]すべてのツールをリストします
execute(name, args)Promise<ToolResult>名前でツールを実行します
filtered(allowedNames: Set<string>)ToolRegistry許可されたツールのみを含む新しいレジストリを作成します
without(blockedNames: Set<string>)ToolRegistryブロックされたツールを除外した新しいレジストリを作成します
toOpenAI()ArrayOpenAI互換のツール定義を生成します
toAnthropic()ArrayAnthropic互換のツール定義を生成します
import { AgentEventEmitter } from "@schift-io/sdk";
メソッド戻り値説明
on(type, handler)() => voidイベントに登録します。解除関数を返します
on("*", handler)() => voidすべてのイベントに登録します
off(type, handler)voidイベントから解除します
emit(event)voidイベントを発火します
removeAll()voidすべてのハンドラを削除します
import { SkillLoader, loadSkills } from "@schift-io/sdk";
new SkillLoader(skillsDir: string)
メソッド戻り値説明
loadAll(options?)Promise<SkillSummary[]>すべてのスキルファイルを読み込みます
get(name: string)Promise<Skill | undefined>名前でスキルを取得します
getAll()Promise<Skill[]>読み込まれたすべてのスキルを取得します
reload(name: string)Promise<Skill | undefined>特定のスキルを再読み込みします
const loader = await loadSkills("./skills");
// Equivalent to: new SkillLoader("./skills") + loadAll()
import { SkillResolver } from "@schift-io/sdk";
new SkillResolver(loader: SkillLoader)
メソッド戻り値説明
resolve(query)Promise<Skill[]>すべてのスキルを取得します
resolvePrimary(query)Promise<ResolvedSkill | undefined>クエリに対する最適なスキルを取得します
buildPromptSection(skills){ promptText, allowedTools }プロンプトインジェクションセクションを構築します

import { PolicyEngine, policyViolation } from "@schift-io/sdk";
new PolicyEngine(contract: SkillContract)
メソッド戻り値説明
beforeTool(input)PolicyDecisionツール呼び出しが許可されているか確認します
afterTool(input)PolicyDecisionツールの結果を検証します
policyViolation(reason: string): ToolResult
// Returns { success: false, data: null, error: "POLICY_VIOLATION:reason" }
import { ExtensionHost } from "@schift-io/sdk";
メソッド戻り値説明
load(extension)Promise<void>拡張機能(関数またはモジュールパス)を読み込みます。

サーバーサイドの管理されたエージェント — Schift Cloud APIを介してエージェントを作成、構成、実行します。

const client = schift.agents;
メソッド戻り値説明
create(req: CreateAgentRequest)Promise<AgentResponse>管理されたエージェントを作成します
list()Promise<AgentResponse[]>すべてのエージェントを一覧表示します
get(id: string)Promise<AgentResponse>IDでエージェントを取得します
update(id, req)Promise<AgentResponse>エージェントを更新します
delete(id: string)Promise<void>エージェントを削除します
runs(agentId: string)RunsClientエージェントのためのランクライアントを取得します
const runs = schift.agents.runs("agt_abc123");
メソッド戻り値説明
create(req: CreateRunRequest)Promise<RunResponse>ランを開始します
list()Promise<RunResponse[]>すべてのランを一覧表示します
get(runId: string)Promise<RunResponse>IDでランを取得します
streamEvents(runId, afterSeq?)AsyncGenerator<RunEvent>ランイベントをストリームします

import { WorkspaceClient } from "@schift-io/sdk";
new WorkspaceClient(config: SchiftConfig)
オプションデフォルト
apiKeystring必須 (sch_で始まる必要があります)
baseUrlstringホストされたAPIオリジン
timeoutnumber60000
プロパティ説明
transportHttpTransportエージェント/RAG用のHTTPトランスポート
workflowsWorkflowClientワークフローサブクライアント
agentsAgentsClient管理されたエージェントのサブクライアント
modelsModelsClientモデルカタログ
dbDBClientバケット/ドキュメント管理
toolsSchiftToolsツール定義ヘルパー
メソッド戻り値説明
embed(request)Promise<EmbedResponse>エンベディングを生成
embedBatch(request)Promise<EmbedBatchResponse>バッチエンベディング
search(request)Promise<SearchResult[]>ベクトル検索
chat(request)Promise<ChatResponse>RAGチャット
chatStream(request)AsyncGenerator<ChatStreamEvent>SSEストリーミング付きRAGチャット
webSearch(query, maxResults?)Promise<WebSearchResultItem[]>ウェブ検索
aggregate(request)Promise<AggregateResponse>メタデータ集計
rerank(request)Promise<RerankResult>ドキュメントを再ランク付け
similarity(request)Promise<{ score: number }>テキスト類似度スコア
cluster(request)Promise<ClusterResult>テキストクラスタリング
classify(request)Promise<ClassifyResult>ゼロショット分類
メソッド戻り値説明
listBuckets()Promise<Bucket[]>すべてのバケットを一覧表示
createBucket(request)Promise<Bucket>バケットを作成
deleteBucket(nameOrId)Promise<void>バケットを削除
bucketSearch(nameOrId, request)Promise<SearchResult>バケットを検索
bucketGraph(nameOrId, query?, topK?)Promise<GraphResult>バケットのグラフクエリ
db.upload(bucket, options)Promise<BucketUploadResult>バケットにファイルをアップロード
メソッド戻り値説明
addEdges(nameOrId, edges)Promise<{ count: number }>グラフエッジを追加
listEdges(nameOrId, nodeId, options?)Promise<EdgeListResult>ノードのエッジを一覧表示
deleteEdge(nameOrId, source, target, relation?)Promise<void>エッジを削除
メソッド戻り値説明
listCollections()Promise<Collection[]>コレクションを一覧表示
getCollection(id)Promise<Collection>IDでコレクションを取得
createCollection(request)Promise<Collection>コレクションを作成
deleteCollection(id)Promise<void>コレクションを削除
collectionStats(id)Promise<Stats>コレクション統計を取得
collectionAdd(collection, request)Promise<Result>コレクションにドキュメントを追加
collectionSearch(collection, request)Promise<SearchResult>コレクションを検索
upsertVectors(collection, vectors)Promise<Result>生のベクトルをアップサート
deleteVectors(collection, ids)Promise<Result>IDでベクトルを削除
upsertDocuments(collection, documents, model)Promise<Result>エンベディング付きでドキュメントをアップサート
メソッド戻り値説明
chatCompletion(request)Promise<ChatCompletionResult>OpenAI互換チャット完了
listModels()Promise<Model[]>利用可能なLLMモデルを一覧表示
getRouting()Promise<RoutingConfig>現在のルーティング設定を取得
setRouting(request)Promise<RoutingConfig>ルーティング設定を設定
メソッド戻り値説明
usage()Promise<Usage>現在の使用状況を取得
usageSummary()Promise<UsageSummary>使用状況の要約を取得
getJob(jobId)Promise<Job>ジョブステータスを取得
listJobs(options?)Promise<Job[]>ジョブを一覧表示
cancelJob(jobId)Promise<Job>ジョブをキャンセル
reprocessJob(jobId)Promise<Job>失敗したジョブを再処理

プロバイダー固有のツール定義を生成するツール呼び出しヘルパーです。schift.toolsで自動的に作成されます。

// OpenAI format
const tools = schift.tools.openai();
// Anthropic format
const tools = schift.tools.anthropic();
// Vercel AI SDK format
const tools = schift.tools.vercelAI();
// Handle any tool call (auto-detects format)
const result = await schift.tools.handle(toolCall);
メソッド戻り値説明
openai()object[]OpenAI互換のツール定義
anthropic()object[]Anthropic互換のツール定義
vercelAI()Record<string, object>Vercel AI SDKツール定義
handle(toolCall)Promise<string>任意のプロバイダーからツール呼び出しを実行
interface AgentTool {
name: string; // Must match /^[a-zA-Z_][a-zA-Z0-9_]*$/
description: string;
parameters?: JSONSchema;
handler: (args: Record<string, unknown>) => Promise<ToolResult>;
maxCallsPerRun?: number; // 実行ごとの呼び出し制限
}
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 RunOptions {
requestId?: string;
signal?: AbortSignal;
}
interface ChatMessage {
role: "system" | "user" | "assistant" | "tool";
content: string;
toolCallId?: string;
toolName?: string;
}
interface SkillsConfig {
loader: SkillLoader;
autoResolve?: boolean; // デフォルト: true
}
interface SkillContract {
skillName: string;
model?: string;
allowedTools?: string[];
blockedTools?: string[];
procedures?: string[];
constraints?: string[];
}
interface SkillFrontmatter {
name: string;
description: string;
model?: string;
"allowed-tools"?: string[];
"blocked-tools"?: string[];
procedures?: string[];
constraints?: string[];
rag?: string;
}
interface PolicyDecision {
allowed: boolean;
stage: "before_tool" | "after_tool" | "procedure" | "constraint";
reason?: string;
}
interface ExtensionAPI {
registerTool(tool: AgentTool): void;
on<K extends AgentEventType>(type: K, handler: (event: AgentEventMap[K]) => void): () => void;
off<K extends AgentEventType>(type: K, handler: (event: AgentEventMap[K]) => void): void;
readonly agentName: string;
}
interface MCPServerConfig {
transport: "stdio" | "sse";
command?: string;
args?: string[];
url?: string;
toolPrefix?: string;
}

管理されたエージェントタイプ

Section titled “管理されたエージェントタイプ”
interface CreateAgentRequest {
name: string;
model?: string;
instructions?: string;
tools?: AgentToolDef[];
ragConfig?: RagConfig;
metadata?: Record<string, unknown>;
}
interface AgentResponse {
id: string;
orgId: string;
name: string;
model: string;
instructions: string;
tools: AgentToolDef[];
ragConfig: RagConfig;
metadata: Record<string, unknown>;
createdAt: string;
updatedAt: string;
}
interface RunResponse {
id: string;
agentId: string;
orgId: string;
status: "pending" | "running" | "success" | "error" | "timeout";
inputText: string;
outputText?: string;
error?: string;
tokensUsed: number;
durationMs?: number;
createdAt: string;
finishedAt?: string;
}
interface RunEvent {
seq: number;
eventType: string;
[key: string]: unknown;
}
type AgentEventType =
| "agent_start"
| "turn_start"
| "tool_call"
| "tool_result"
| "message_delta"
| "agent_end"
| "error"
| "policy_violation";

各イベントには typerunId、および timestamp が含まれます。追加フィールドはイベントタイプによって異なります:

イベント追加フィールド
agent_startinput
turn_startturnIndex
tool_calltoolName, toolArgs, callId
tool_resulttoolName, callId, result, durationMs
message_deltacontent
agent_endoutput, totalDurationMs
errorerror
policy_violationskillName, stage, reason, toolName?
const WebSearchProvider = {
SCHIFT: "schift",
TAVILY: "tavily",
SERPER: "serper",
BRAVE: "brave",
} as const;
import { OpenAIModel, GeminiModel, ClaudeModel } from "@schift-io/sdk";
// OpenAI
OpenAIModel.GPT_5_5_PRO // "gpt-5.5-pro"
OpenAIModel.GPT_5_5 // "gpt-5.5"
OpenAIModel.GPT_5_4 // "gpt-5.4"
OpenAIModel.GPT_5_4_MINI // "gpt-5.4-mini"
OpenAIModel.GPT_5_4_NANO // "gpt-5.4-nano"
OpenAIModel.GPT_4_1 // "gpt-4.1"
OpenAIModel.GPT_4_1_MINI // "gpt-4.1-mini"
OpenAIModel.GPT_4_1_NANO // "gpt-4.1-nano"
OpenAIModel.GPT_4O // "gpt-4o"
OpenAIModel.GPT_4O_MINI // "gpt-4o-mini"
OpenAIModel.O3 // "o3"
OpenAIModel.O3_MINI // "o3-mini"
OpenAIModel.O3_PRO // "o3-pro"
OpenAIModel.O4_MINI // "o4-mini"
// Google
GeminiModel.GEMINI_3_1_PRO // "gemini-3.1-pro"
GeminiModel.GEMINI_3_1_FLASH // "gemini-3.1-flash"
GeminiModel.GEMINI_3_1_FLASH_LITE // "gemini-3.1-flash-lite"
GeminiModel.GEMINI_2_5_PRO // "gemini-2.5-pro"
GeminiModel.GEMINI_2_5_FLASH // "gemini-2.5-flash"
GeminiModel.GEMINI_2_5_FLASH_LITE // "gemini-2.5-flash-lite"
// Anthropic
ClaudeModel.OPUS_4_8 // "claude-opus-4-8"
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 - クォータ超過
EntitlementError, // 403 - アップグレードが必要
AgentError, // エージェントの失敗 (stepId)
ToolError, // ツール実行の失敗 (toolName)
MaxStepsError, // 最大ReAct反復回数に達しました
} from "@schift-io/sdk";