LLM
AstreusのドキュメントでLLMについて学び、エージェントシステムを構築するためのセットアップの手引き、APIのパターン、実践的な例を確認しましょう。 信頼性の高いAstreusエージェントシステムを構築するために必要なセットアップのパターン、API、実践的な例を学びましょう。
自動ルーティングを備えた、複数のLLMプロバイダーのための統一インターフェース
概要
LLM抽象化レイヤーは、複数のAIプロバイダーとのシームレスな統合を提供し、コードを変更することなくOpenAI、Claude、Gemini、Ollamaの間で切り替えられるようにします。プロバイダー固有の実装、メッセージのフォーマット、ストリーミングを処理しながら、すべてのプロバイダーにわたって一貫したAPIを提供します。
サポートされているプロバイダー
Astreusは、自動的なモデルルーティングを備えた4つの主要なLLMプロバイダーをサポートしています。
これらの例ではモデルを明示的に選択します。引き続きサポートされている既存のデフォルト設定は変更されません。ネイティブ API で提供が終了したモデルには、現在利用可能な代替モデルを明示的に指定する必要があります。
OpenAI
直接 API 用の現在のモデル ID:
gpt-6-astragpt-5.6-solgpt-5.6-terragpt-5.6-luna- APIキー:
OPENAI_API_KEY環境変数を設定
OpenAI への直接リクエストでは、GPT-6 Astra のツール呼び出しに Responses API が必要です。アダプターがこのプロトコルを処理し、設定された OpenAI 互換ゲートウェイでは Chat Completions を使います。GPT-6 Astra には temperature と top_p を設定しないでください。OpenAI モデルガイドを参照してください。
Anthropic Claude
直接 API 用の現在のモデル ID:
claude-fable-5-1claude-opus-5claude-sonnet-5claude-haiku-4-5-20251001- APIキー:
ANTHROPIC_API_KEY環境変数を設定
Google Gemini
サポートされている12種類のモデルすべて:
- 最新:
gemini-2.5-pro、gemini-2.5-pro-deep-think、gemini-2.5-flash、gemini-2.5-flash-lite - 安定版:
gemini-2.0-flash、gemini-2.0-flash-thinking、gemini-2.0-flash-lite、gemini-2.0-pro-experimental、gemini-1.5-pro、gemini-1.5-flash、gemini-1.5-flash-8b、gemini-pro - APIキー:
GEMINI_API_KEY環境変数を設定
Ollama(ローカル)
サポートされている31種類のモデルすべて:
- 最新:
deepseek-r1、deepseek-v3、deepseek-v2.5、deepseek-coder、deepseek-coder-v2、qwen3、qwen2.5-coder、llama3.3、gemma3、phi4 - 人気:
mistral-small、codellama、llama3.2、llama3.1、qwen2.5、gemma2、phi3、mistral、codegemma、wizardlm2 - その他:
dolphin-mistral、openhermes、deepcoder、stable-code、wizardcoder、magicoder、solar、yi、zephyr、orca-mini、vicuna - 設定:
OLLAMA_BASE_URLを設定(デフォルト:http://localhost:11434)
設定
環境変数
APIキーと設定をセットアップします。
使用するプロバイダーの認証情報だけを、シェルの環境変数またはシークレット管理サービスで設定してください。以下のコマンドは設定済みの環境変数を読み取ります。API キー自体は含まれていません。
# OpenAI
export OPENAI_API_KEY="${OPENAI_API_KEY:?Set OPENAI_API_KEY in your environment}"
export OPENAI_BASE_URL="https://api.openai.com/v1" # Optional
# Anthropic Claude
export ANTHROPIC_API_KEY="${ANTHROPIC_API_KEY:?Set ANTHROPIC_API_KEY in your environment}"
export ANTHROPIC_BASE_URL="https://api.anthropic.com" # Optional
# Google Gemini
export GEMINI_API_KEY="${GEMINI_API_KEY:?Set GEMINI_API_KEY in your environment}"
# Ollama (Local)
export OLLAMA_BASE_URL="http://localhost:11434" # Optionalエージェントの設定
エージェント作成時にモデルを指定します。
import { Agent } from '@astreus-ai/astreus';
const agent = await Agent.create({
name: 'MyAgent',
model: 'gpt-6-astra', // Explicit selection, not a default change
maxTokens: 2000
});OpenRouter 経由の無料ホスト型モデル
OpenRouter は既存の openai アダプターを使用し、5 番目のプロバイダーではありません。エージェントや LLM インスタンスを作成する前に、ゲートウェイの URL と対応するキーを設定してください。OPENROUTER_API_KEY は利用者が設定する環境変数で、アダプターの OPENAI_API_KEY に割り当てます。
export OPENAI_BASE_URL="https://openrouter.ai/api/v1"
export OPENAI_API_KEY="${OPENROUTER_API_KEY:?Set OPENROUTER_API_KEY in your environment}"2026-09-13 時点の OpenRouter モデルカタログでは、以下の ID について入力・出力トークン料金がゼロで、ツール対応が記載されていました。
openrouter/freenvidia/nemotron-3.5-lightning:freegoogle/gemma-4-31b-it:freegoogle/gemma-4-26b-a4b-it:free
import { Agent } from '@astreus-ai/astreus';
const agent = await Agent.create({
name: 'HostedFreeAgent',
model: 'openrouter/free',
maxTokens: 1000
});
const response = await agent.ask('Explain how a hash table works.');
console.log(response);無料ホスト型サービスにはレート制限と可用性の制約があり、無制限ではありません。無料モデルが利用できない場合は、エラーを処理するか、別の無料モデルを明示的に選択してください。Astreus が自動的に有料モデルへ切り替えることはありません。フレームワークの無料ライセンスはホスト型 API の無料利用を意味しません。また、ローカルの Ollama にもハードウェアと電力が必要です。
これらの名前空間付き ID には OpenRouter のエンドポイントが必要です。OpenAI への直接接続に戻す場合は、OPENAI_BASE_URL=https://api.openai.com/v1 と OpenAI 発行のキーを両方戻してください。ベース URL の変更は、そのアダプターインスタンスを使うすべてのリクエストに影響します。
認証情報なしでモデルを調べる
getModelsByProvider は、API 認証情報や認証済みクライアントなしでフレームワークのローカルカタログを読み取ります。アカウントのアクセス権やホスト型モデルの現在の可用性を保証するものではありません。
import { getModelsByProvider } from '@astreus-ai/astreus';
const modelIds = getModelsByProvider('openai');
console.log(modelIds);使用例
基本的なLLMの使い方
import { getLLM } from '@astreus-ai/astreus';
const llm = getLLM();
// Generate response
const response = await llm.generateResponse({
model: 'claude-sonnet-5',
messages: [{ role: 'user', content: 'Explain quantum computing' }],
maxTokens: 1000
});
console.log(response.content);ストリーミングレスポンス
// Stream response in real-time
for await (const chunk of llm.generateStreamResponse({
model: 'gpt-6-astra',
messages: [{ role: 'user', content: 'Write a story about AI' }],
stream: true
})) {
if (!chunk.done) {
process.stdout.write(chunk.content);
}
}関数呼び出し
const response = await llm.generateResponse({
model: 'gpt-6-astra',
messages: [{ role: 'user', content: 'What\'s the weather in Tokyo?' }],
tools: [{
type: 'function',
function: {
name: 'get_weather',
description: 'Get current weather information',
parameters: {
type: 'object',
properties: {
location: {
type: 'string',
description: 'City name'
}
},
required: ['location']
}
}
}]
});
// Handle tool calls
if (response.toolCalls) {
response.toolCalls.forEach(call => {
console.log(`Tool: ${call.function.name}`);
console.log(`Args: ${call.function.arguments}`);
});
}LLMのオプション
以下のオプションでLLMの挙動を設定します。
interface LLMRequestOptions {
model: string; // Required: Model identifier
messages: LLMMessage[]; // Required: Conversation history
temperature?: number; // Model-dependent; omit for GPT-6 Astra
maxTokens?: number; // Max output tokens (default: 4096)
stream?: boolean; // Enable streaming responses
systemPrompt?: string; // System instructions
tools?: Tool[]; // Function calling tools
}パラメータの詳細
- temperature: 省略可能で、モデルに依存します。GPT-6 Astra では省略してください。すべてのモデルがサンプリング設定に対応しているわけではありません。
- maxTokens: レスポンスの最大トークン数(モデルにより異なる)
- stream: 長いレスポンスのためのリアルタイムストリーミングを有効にする
- systemPrompt: モデルの挙動とコンテキストを設定する
- tools: 関数呼び出し機能を有効にする
プロバイダーの機能
| 機能 | OpenAI | Claude | Gemini | Ollama |
|---|---|---|---|---|
| ストリーミング | ✅ | ✅ | ✅ | ✅ |
| 関数呼び出し | ✅ | ✅ | 制限あり | 制限あり |
| ビジョン | ✅ | ✅ | ✅ | ✅ |
| 埋め込み | ✅ | ❌ | ✅ | ✅ |
| トークン使用量 | ✅ | ✅ | 制限あり | ✅ |
| カスタムベースURL | ✅ | ✅ | ❌ | ✅ |
| ローカルモデル | ❌ | ❌ | ❌ | ✅ |
ビジョンモデル
各プロバイダーは、画像解析のために特定のモデルをサポートしています。
OpenAI ビジョン
gpt-4o、gpt-4o-mini、gpt-4-turbo、gpt-4-vision-previewgpt-4o-2024-08-06、gpt-4o-2024-05-13
Claude ビジョン
claude-3-5-sonnet-20241022、claude-3-5-sonnet-20240620claude-3-opus-20240229、claude-3-sonnet-20240229、claude-3-haiku-20240307
Gemini ビジョン
gemini-1.5-pro、gemini-1.5-flashgemini-1.0-pro-vision-latest、gemini-pro-vision
Ollama ビジョン
llava、llava:7b、llava:13b、llava:34bllava-llama3、llava-phi3、moondream
埋め込みモデル
ナレッジベースとセマンティック検索のために使用します。
OpenAI 埋め込み
text-embedding-3-large(3072次元)text-embedding-3-small(1536次元)text-embedding-ada-002(1536次元)
Gemini 埋め込み
text-embedding-004embedding-001
Ollama 埋め込み
nomic-embed-text、mxbai-embed-largeall-minilm、snowflake-arctic-embed
注記: Claude/Anthropicは埋め込みをサポートしていません。埋め込み生成にはOpenAIまたはGeminiを使用してください。
その他の環境変数
# Dedicated embedding API keys (optional)
OPENAI_EMBEDDING_API_KEY="your-embedding-key"
OPENAI_EMBEDDING_BASE_URL="https://api.openai.com/v1"
GEMINI_EMBEDDING_API_KEY="your-gemini-embedding-key"
# Dedicated vision API keys (optional)
OPENAI_VISION_API_KEY="your-vision-key"
OPENAI_VISION_BASE_URL="https://api.openai.com/v1"
ANTHROPIC_VISION_API_KEY="your-anthropic-vision-key"
ANTHROPIC_VISION_BASE_URL="https://api.anthropic.com"
GEMINI_VISION_API_KEY="your-gemini-vision-key"モデル選択ガイド
コード生成向け
- 最良:
gpt-4o、claude-3-5-sonnet-20241022、deepseek-coder - 高速:
gpt-4o-mini、claude-3-5-haiku-20241022
推論タスク向け
- 最良:
claude-opus-4-20250514、gpt-6-astra、o3 - バランス:
claude-sonnet-4-20250514、gpt-4o
クリエイティブライティング向け
- 最良:
gpt-6-astra、claude-3-opus-20240229 - 高速:
gemini-2.5-pro、gpt-4o-mini
プライバシー/ローカル利用向け
- 最良:
deepseek-r1、llama3.3、qwen3 - コード:
deepseek-coder、codellama
最終更新日: 2026年9月13日
このセクション内
はじめに
実世界のタスクを効果的に解決する自律システムを構築するための、オープンソースAIエージェントフレームワーク。 信頼性の高いAstreusエージェントシステムを構築するために必要なセットアップのパターン、API、実践的な例を学びましょう。
インストール
npm、yarn、pnpmでAstreusをインストールし、必要なNode.jsのバージョンを確認して、フレームワークでAIエージェントを構築するためのローカルプロジェクトを準備します。
クイックスタート
Astreusのドキュメントでクイックスタートについて学び、エージェントシステムを構築するためのセットアップの手引き、APIのパターン、実践的な例を確認しましょう。 信頼性の高いAstreusエージェントシステムを構築するために必要なセットアップのパターン、API、実践的な例を学びましょう。
エージェント
Astreusのドキュメントでエージェントについて学び、エージェントシステムを構築するためのセットアップの手引き、APIのパターン、実践的な例を確認しましょう。 信頼性の高いAstreusエージェントシステムを構築するために必要なセットアップのパターン、API、実践的な例を学びましょう。