Technical reference

@openclaw/ai パッケージ

@openclaw/ai は、OpenClaw のモデル実行レイヤーを公開可能なライブラリにしたものです。プロバイダーに依存しないメッセージ/ツール/ストリームのコントラクト、検証、診断、イベントストリーム、分離されたランタイムレジストリ、および組み込みの 8 つの API ファミリー(Anthropic Messages、OpenAI Completions、OpenAI Responses、Azure OpenAI Responses、ChatGPT/Codex Responses、Google Generative AI、Google Vertex、Mistral Conversations)用の遅延読み込みアダプターを提供します。

リリースのたびにルートの openclaw パッケージと同時に同じバージョンで公開され、独自の npm-shrinkwrap.json によって推移的依存関係ツリーがインストール時に固定されます。openclaw をインストールすると、対応する @openclaw/ai も自動的にインストールされます。ライブラリ利用者は、OpenClaw のアプリケーションコードを一切使用せず、これを直接依存関係に追加できます。

クイックスタート

js
  const runtime = createLlmRuntime();registerBuiltInApiProviders(runtime.registry); const stream = runtime.streamSimple(model, { messages }, { apiKey });for await (const event of stream) {  if (event.type === "text_delta") process.stdout.write(event.delta);}const result = await stream.result();

実行可能なバージョンは、リポジトリの examples/ai-chat にあります。

設計コントラクト

  • デフォルトでインスタンス単位。 パッケージをインポートしても、グローバルには何も登録されません。createApiRegistry() / createLlmRuntime() は分離されたインスタンスを返します。registerBuiltInApiProviders(registry) を使用すると、指定したレジストリで組み込みトランスポートが有効になります。プロバイダー SDK モジュールは、初回使用時に遅延読み込みされます。
  • ホストポリシーはバンドルされず、注入されます。 リクエストの fetch ガード(たとえば SSRF ポリシー)、ツール結果の再生テキストに含まれるシークレットの秘匿化、OpenAI の厳格なツールのデフォルト設定、および診断ログは、configureAiTransportHost で設定する AiTransportHost ポートです。ライブラリのデフォルト実装は何も行いません。OpenClaw は、ストリームファサードで実際の実装を導入します。
  • 単一のイベントストリーム識別子。 @openclaw/ai/event-stream は、OpenClaw コア、agent-core、および外部の利用者が共有する標準の EventStream コンストラクターです。
  • internal/* サブパスは API ではありません。 これらは OpenClaw アプリケーション自体のために存在し、セマンティックバージョニング上の保証はありません。
  • プロバイダー ID、認証情報、モデルカタログ、再試行、およびフェイルオーバーは、引き続きアプリケーション側で扱います。OpenClaw はこのパッケージの周囲にそれらの機能を重ねます。ライブラリ利用者は、Model オブジェクトとオプションを直接指定します。

サブパスエクスポート

サブパス 内容
. コントラクト、createApiRegistrycreateLlmRuntimeconfigureAiTransportHost
./providers registerBuiltInApiProvidersresetApiProviders
./types モデル/メッセージ/ツール/ストリームの型
./validation ツール引数の検証
./diagnostics 診断コントラクト
./event-stream 共有の EventStream 実装
./internal/* OpenClaw 内部用、セマンティックバージョニング上の保証なし
Was this useful?
On this page

On this page