ドキュメント

エージェントを作る

Schift エージェントは 3 つの層構造で定義されます。Knowledge(知識)、Rules(ルール)、Tasks(タスク)。

良く設計されたエージェントは、実行前に 3 つの質問に答えられる必要があります。各層はそれぞれ別の筏を担当します。

主な質問Schift プリミティブ
Knowledgeエージェントは何を知っているか?バケット、RAG、ドキュメントアップロード、セマンティック検索
Rulesエージェントはどう応答するか?システムプロンプト、モデル選択、メモリ、最大ステップ数
Tasksエージェントは何をできるか?ToolRegistry、WebSearch、DeepResearch、カスタム関数

Step 1 — Knowledge (知識)

ドキュメントをバケットにアップロードすると、Schift が OCR、チャンキング、埋め込みを自動で処理します。エージェントはその後、インデックスされたすべてのコンテンツを検索できます。

typescriptimport { Schift, RAG } from '@schift-io/sdk';

const schift = new Schift({ apiKey: process.env.SCHIFT_API_KEY });

// ドキュメントをアップロード — Schift が自動でインデックス
await schift.buckets.upload('your-bucket-id', './support-docs/');

// バケットを検索可能な知識ソースとしてラップ
const rag = new RAG(schift, { bucketId: 'your-bucket-id' });

バケットを知識ベースとして

1 つのバケットに大量のドキュメントを格納できます。RAG 検索はそのバケット内に限定されるため、エージェントはあなたがアップロードしたコンテンツのみを検索します。

Step 2 — Rules (ルール)

エージェントがどのように推論し応答するかを設定します。システムプロンプトはエージェントの役割を定義し、モデルは性能とコストを調整し、メモリ設定は保持するコンテキスト長を決めます。

typescriptimport { Agent } from '@schift-io/sdk';

const agent = new Agent(schift, {
  model: 'gpt-4.1',
  systemPrompt: 'あなたは親切なカスタマーサポートエージェントです。提供されたドキュメントを元に質問に答えてください。回答が見つからない場合は明確にそう伝えてください。',
  maxSteps: 5,
  memory: { enabled: true, windowSize: 10 },
});
ルール制御対象
model各ステップを処理する LLM。品質、レイテンシ、コストに影響。
systemPromptエージェントのキャラクター、制約、ドメインフォーカスを定義。
maxSteps最終回答前の最大推論ステップ数。
memory.windowSizeマルチターン会話でコンテキストに保持する直近のターン数。

Step 3 — Tasks (タスク)

ツールを登録すると、エージェントは質問への回答以上の能力を持ちます。RAG ソースをツールとして登録したり、リアルタイム情報のための Web 検索を追加したり、外部システムと連携するカスタム関数を書いたりできます。

typescriptimport { WebSearch } from '@schift-io/sdk';

// エージェントに知識ベースへのアクセス権を付与
agent.addTool(rag.asTool());

// リアルタイム情報のための Web 検索を追加
agent.addTool(new WebSearch(schift).asTool());

// 外部連携のためのカスタムツール
agent.addTool({
  name: 'createTicket',
  description: '未解決の問題があるときにサポートチケットを作成',
  parameters: { subject: 'string', priority: 'low | medium | high' },
  run: async ({ subject, priority }) => {
    // チケットシステムを呼び出す
    return { ticketId: 'TKT-001' };
  },
});

まとめてコード例

3 層すべてを 1 つのファイルにまとめた完成例:

typescriptimport { Schift, Agent, RAG, WebSearch } from '@schift-io/sdk';

const schift = new Schift({ apiKey: process.env.SCHIFT_API_KEY });

// Layer 1 — Knowledge
const rag = new RAG(schift, { bucketId: 'your-bucket-id' });

// Layer 2 — Rules
const agent = new Agent(schift, {
  model: 'gpt-4.1',
  systemPrompt: 'あなたは親切なカスタマーサポートエージェントです...',
  maxSteps: 5,
});

// Layer 3 — Tasks
agent.addTool(rag.asTool());
agent.addTool(new WebSearch(schift).asTool());

// 実行
const response = await agent.run('請求の設定方法を教えてください。');
console.log(response.text);

小さく始める

3 層すべてを一度に構築する必要はありません。まず Knowledge と Rules だけでドキュメントグラウンディング Q&A エージェントを作り、必要になったときに Tasks を追加しましょう。