Astreus

LLM

AstreusのドキュメントでLLMについて学び、エージェントシステムを構築するためのセットアップの手引き、APIのパターン、実践的な例を確認しましょう。 信頼性の高いAstreusエージェントシステムを構築するために必要なセットアップのパターン、API、実践的な例を学びましょう。

自動ルーティングを備えた、複数のLLMプロバイダーのための統一インターフェース

概要

LLM抽象化レイヤーは、複数のAIプロバイダーとのシームレスな統合を提供し、コードを変更することなくOpenAI、Claude、Gemini、Ollamaの間で切り替えられるようにします。プロバイダー固有の実装、メッセージのフォーマット、ストリーミングを処理しながら、すべてのプロバイダーにわたって一貫したAPIを提供します。

サポートされているプロバイダー

Astreusは、自動的なモデルルーティングを備えた4つの主要なLLMプロバイダーをサポートしています。

これらの例ではモデルを明示的に選択します。引き続きサポートされている既存のデフォルト設定は変更されません。ネイティブ API で提供が終了したモデルには、現在利用可能な代替モデルを明示的に指定する必要があります。

OpenAI

直接 API 用の現在のモデル ID:

  • gpt-6-astra
  • gpt-5.6-sol
  • gpt-5.6-terra
  • gpt-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-1
  • claude-opus-5
  • claude-sonnet-5
  • claude-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)

設定

1

環境変数

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
2

エージェントの設定

エージェント作成時にモデルを指定します。

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/free
  • nvidia/nemotron-3.5-lightning:free
  • google/gemma-4-31b-it:free
  • google/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: 関数呼び出し機能を有効にする

プロバイダーの機能

機能OpenAIClaudeGeminiOllama
ストリーミング✅✅✅✅
関数呼び出し✅✅制限あり制限あり
ビジョン✅✅✅✅
埋め込み✅❌✅✅
トークン使用量✅✅制限あり✅
カスタムベースURL✅✅❌✅
ローカルモデル❌❌❌✅

ビジョンモデル

各プロバイダーは、画像解析のために特定のモデルをサポートしています。

OpenAI ビジョン

  • gpt-4o、gpt-4o-mini、gpt-4-turbo、gpt-4-vision-preview
  • gpt-4o-2024-08-06、gpt-4o-2024-05-13

Claude ビジョン

  • claude-3-5-sonnet-20241022、claude-3-5-sonnet-20240620
  • claude-3-opus-20240229、claude-3-sonnet-20240229、claude-3-haiku-20240307

Gemini ビジョン

  • gemini-1.5-pro、gemini-1.5-flash
  • gemini-1.0-pro-vision-latest、gemini-pro-vision

Ollama ビジョン

  • llava、llava:7b、llava:13b、llava:34b
  • llava-llama3、llava-phi3、moondream

埋め込みモデル

ナレッジベースとセマンティック検索のために使用します。

OpenAI 埋め込み

  • text-embedding-3-large(3072次元)
  • text-embedding-3-small(1536次元)
  • text-embedding-ada-002(1536次元)

Gemini 埋め込み

  • text-embedding-004
  • embedding-001

Ollama 埋め込み

  • nomic-embed-text、mxbai-embed-large
  • all-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日