Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
26 changes: 11 additions & 15 deletions docs/src/content/docs/ja/extensions/ai-sdk.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -9,28 +9,28 @@ import aiSdkSetupExample from '../../../../../../examples/docs/extensions/ai-sdk
<Aside type="caution">
このアダプターはまだベータ版です。特に小規模なモデルプロバイダーでは問題が発生する可能性があります。問題があれば
[GitHub issues](https://github.com/openai/openai-agents-js/issues)
に報告してください。迅速に修正します。
から報告してください。迅速に修正します。
</Aside>

Agents SDK は標準で Responses API または Chat Completions API を通じて OpenAI モデルと連携します。別のモデルを使用したい場合は、[Vercel の AI SDK](https://sdk.vercel.ai/) がサポートする幅広いモデルをこのアダプター経由で Agents SDK に取り込めます
Agents SDK は標準で Responses API または Chat Completions API を通じて OpenAI モデルと連携します。ですが、別のモデルを使いたい場合は、[Vercel の AI SDK](https://sdk.vercel.ai/) がサポートする幅広いモデルを、このアダプターを介して Agents SDK で利用できます

## セットアップ

<Steps>

1. 拡張パッケージをインストールして AI SDK アダプターを導入します:
1. extensions パッケージをインストールして AI SDK アダプターを導入します:

```bash
npm install @openai/agents-extensions
```

2. [Vercel の AI SDK](https://ai-sdk.dev/docs/foundations/providers-and-models) から使用したいモデルパッケージを選び、インストールします:
2. [Vercel の AI SDK](https://ai-sdk.dev/docs/foundations/providers-and-models) から目的のモデルパッケージを選び、インストールします:

```bash
npm install @ai-sdk/openai
```

3. アダプターとモデルをインポートし、エージェントに接続します:
3. アダプターとモデルをインポートしてエージェントに接続します:

```typescript
import { openai } from '@ai-sdk/openai';
Expand All @@ -46,23 +46,19 @@ Agents SDK は標準で Responses API または Chat Completions API を通じ
</Steps>

<Aside type="caution">
現在、ai-sdk の model provider v2 モジュール(Vercel AI SDK v5
と互換)がサポート対象です。特別な理由で v1 の model provider
現在、ai-sdk の model provider v2 モジュールに対応しており、これは Vercel AI
SDK v5 と互換性があります。特別な理由で v1 の model providers
を使い続ける必要がある場合は、[examples/ai-sdk-v1](https://github.com/openai/openai-agents-js/tree/main/examples/ai-sdk-v1)
からモジュールをコピーして、プロジェクトに含めてください。
</Aside>

## 例

<Code
lang="typescript"
code={aiSdkSetupExample}
title="AI SDK のセットアップ"
/>
<Code lang="typescript" code={aiSdkSetupExample} title="AI SDK Setup" />

## プロバイダー メタデータの受け渡し

メッセージにプロバイダー固有のオプションを送る必要がある場合は、`providerMetadata` を通して渡してください。値は基盤となる AI SDK のモデルにそのまま転送されます。たとえば、Agents SDK における次の `providerData`
メッセージにプロバイダー固有のオプションを送る必要がある場合は、`providerMetadata` を通して渡します。値は基盤となる AI SDK モデルにそのまま転送されます。たとえば、Agents SDK で次の `providerData`

```ts
providerData: {
Expand All @@ -74,7 +70,7 @@ providerData: {
}
```

は、AI SDK 連携を使用する場合には
は、AI SDK 連携を使用すると

```ts
providerMetadata: {
Expand All @@ -86,4 +82,4 @@ providerMetadata: {
}
```

のようになります
になります
23 changes: 11 additions & 12 deletions docs/src/content/docs/ja/extensions/cloudflare.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -6,14 +6,13 @@ description: Connect your Agents SDK agents from Cloudflare Workers/workerd usin
import { Aside, Steps, Code } from '@astrojs/starlight/components';
import cloudflareBasicExample from '../../../../../../examples/docs/extensions/cloudflare-basic.ts?raw';

Cloudflare Workers とその他の workerd ランタイムでは、グローバルな `WebSocket` コンストラクターを使って外向きの WebSocket を開くことができません。これらの環境から リアルタイムエージェント に接続しやすくするために、extensions パッケージは `fetch()` ベースのアップグレードを内部で実行する専用のトランスポートを提供します。
Cloudflare Workers とその他の workerd ランタイムは、グローバル `WebSocket` コンストラクタを使って外向き WebSocket を開くことができません。これらの環境から リアルタイムエージェント に簡単に接続できるようにするため、extensions パッケージは `fetch()` ベースのアップグレードを内部で実行する専用のトランスポートを提供します。

<Aside type="caution">
このアダプターはまだベータ版です。稀なケースの問題やバグに遭遇する可能性があります。
問題があれば [GitHub
issues](https://github.com/openai/openai-agents-js/issues)
に報告してください。迅速に対応します。Workers で Node.js 風 API
を利用する場合は、`nodejs_compat` の有効化を検討してください。
このアダプターはまだベータ版です。レアケースの問題やバグに遭遇する可能性があります。
問題は [GitHub issues](https://github.com/openai/openai-agents-js/issues)
から報告してください。迅速に修正します。Workers で Node.js 風の API
を使いたい場合は `nodejs_compat` の有効化を検討してください。
</Aside>

## セットアップ
Expand All @@ -26,20 +25,20 @@ Cloudflare Workers とその他の workerd ランタイムでは、グローバ
npm install @openai/agents-extensions
```

2. **トランスポートを作成し、セッションにアタッチします。**
2. **トランスポートを作成してセッションにアタッチします。**

<Code lang="typescript" code={cloudflareBasicExample} />

3. **`RealtimeSession` に接続します。**
3. **`RealtimeSession` を接続します。**

```typescript
await session.connect({ apiKey: 'your-openai-ephemeral-or-server-key' });
```

</Steps>

## 注意点
## 注意事項

- Cloudflare トランスポートは内部的に `Upgrade: websocket` を伴う `fetch()` を使用し、ソケットの `open` イベントを待たずに処理を進めます。workerd API に合わせた挙動です
- このトランスポート使用時も、`RealtimeSession` のすべての機能(ツール、ガードレール など)は通常どおり動作します
- 開発中の詳細ログ確認には `DEBUG=openai-agents*` を使用します
- Cloudflare トランスポートは内部的に `fetch()` と `Upgrade: websocket` を使用し、ソケットの `open` イベント待ちをスキップして workerd API に合わせます
- このトランスポート使用時も、`RealtimeSession` のすべての機能(tools、ガードレール など)は通常どおり動作します
- 開発時の詳細ログ確認には `DEBUG=openai-agents*` を使用します
43 changes: 20 additions & 23 deletions docs/src/content/docs/ja/extensions/twilio.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -7,36 +7,36 @@ import { Aside, Steps, Code } from '@astrojs/starlight/components';
import twilioBasicExample from '../../../../../../examples/docs/extensions/twilio-basic.ts?raw';
import twilioServerExample from '../../../../../../examples/realtime-twilio/index.ts?raw';

Twilio は、電話の通話音声の元オーディオを WebSocket サーバーに送る [Media Streams API](https://www.twilio.com/docs/voice/media-streams) を提供しています。この構成を使って、[音声エージェントの概要](/openai-agents-js/ja/guides/voice-agents) を Twilio に接続できます。デフォルトの Realtime Session のトランスポートを `websocket` モードで使い、Twilio からのイベントを Realtime Session に接続することも可能です。ただし、その場合は適切な音声フォーマットの設定や、Web ベースの会話よりも通話のほうが遅延が大きくなりやすいことを踏まえた割り込みタイミングの調整が必要です
Twilio は、電話の通話音声の 元 オーディオを WebSocket サーバーへ送る [Media Streams API](https://www.twilio.com/docs/voice/media-streams) を提供しています。このセットアップを使って、あなたの [音声エージェントの概要](/openai-agents-js/ja/guides/voice-agents) を Twilio に接続できます。デフォルトの Realtime Session トランスポートを `websocket` モードで使い、Twilio から来るイベントを Realtime Session に接続することも可能です。ただし、その場合は適切なオーディオ形式の設定や、Web ベースの会話よりも通話では遅延が大きくなるため、割り込みタイミングの調整が必要になります

セットアップ体験を改善するため、割り込み処理や音声の転送も含め、Twilio への接続を代わりに処理する専用のトランスポート層を用意しました
セットアップ体験を改善するために、Twilio への接続、割り込み処理、オーディオ転送を代わりに扱う専用のトランスポート層を用意しました

<Aside type="caution">
このアダプターはまだベータ版です。稀なケースで問題やバグに遭遇する可能性があります
このアダプターはまだベータ版です。レアケースの問題やバグに遭遇する可能性があります
問題は [GitHub issues](https://github.com/openai/openai-agents-js/issues)
からご報告ください。迅速に対応します
でご報告ください。迅速に修正します
</Aside>

## セットアップ

<Steps>

1. **Twilio アカウントと Twilio の電話番号を用意します。**
1. **Twilio アカウントと Twilio の電話番号を用意する**

2. **Twilio からのイベントを受け取れる WebSocket サーバーを用意します。**
2. **Twilio からのイベントを受け取れる WebSocket サーバーを用意する**

ローカル開発の場合、[`ngrok`](https://ngrok.io/) や
ローカル開発の場合は、[`ngrok`](https://ngrok.io/) や
[Cloudflare Tunnel](https://developers.cloudflare.com/pages/how-to/preview-with-cloudflare-tunnel/)
のようなローカルトンネルの設定が必要になり、ローカルサーバーを Twilio からアクセス可能にします。`TwilioRealtimeTransportLayer`
などのローカルトンネルを設定して、ローカル サーバーを Twilio からアクセス可能にする必要があります。`TwilioRealtimeTransportLayer`
を使って Twilio に接続できます。

3. **拡張パッケージをインストールして Twilio アダプターを導入します:**
3. **拡張パッケージをインストールして Twilio アダプターを導入する**

```bash
npm install @openai/agents-extensions
```

4. **アダプターとモデルをインポートして `RealtimeSession` に接続します:**
4. **アダプターとモデルをインポートして `RealtimeSession` に接続する**

<Code
lang="typescript"
Expand All @@ -46,36 +46,33 @@ Twilio は、電話の通話音声の元オーディオを WebSocket サーバ
)}
/>

5. **`RealtimeSession` を Twilio に接続します:**
5. **`RealtimeSession` を Twilio に接続する**

```typescript
session.connect({ apiKey: 'your-openai-api-key' });
```

</Steps>

`RealtimeSession` に期待されるすべてのイベントと挙動は、そのまま機能します。ツール呼び出し、ガードレールなども含まれます。`RealtimeSession` を音声エージェントと併用する方法の詳細は、[音声エージェントの概要](/openai-agents-js/ja/guides/voice-agents) を参照してください。
`RealtimeSession` に期待できるイベントや挙動は、ツール呼び出し、ガードレールなどを含め、期待どおりに動作します。`RealtimeSession` を音声エージェントで使う方法の詳細は、[音声エージェントの概要](/openai-agents-js/ja/guides/voice-agents) を参照してください。

## ヒントと考慮事項

1. **速度が最重要です。**
1. **スピードが最重要**

Twilio から必要なイベントと音声をすべて受け取るには、WebSocket 接続の参照を得たらすぐに
`TwilioRealtimeTransportLayer` インスタンスを作成し、直後に `session.connect()` を呼び出してください。
Twilio から必要なイベントとオーディオをすべて受け取るため、WebSocket 接続の参照を取得したらすぐに `TwilioRealtimeTransportLayer` インスタンスを作成し、その直後に `session.connect()` を呼び出してください。

2. **Twilio の元イベントにアクセスします。**
2. **Twilio の 元 イベントへアクセスする**

Twilio が送信する元イベントにアクセスしたい場合は、`RealtimeSession` インスタンスの
`transport_event` をリッスンします。Twilio からのすべてのイベントは `twilio_message` という type と、元のイベントデータを含む `message` プロパティを持ちます。
Twilio から送られてくる 元 イベントにアクセスしたい場合は、`RealtimeSession` インスタンスの `transport_event` を購読します。Twilio の各イベントは `twilio_message` タイプで、 元 イベントデータを含む `message` プロパティを持ちます。

3. **デバッグログを確認します。**
3. **デバッグログを確認する**

状況を詳しく知りたい問題に遭遇することがあります。環境変数 `DEBUG=openai-agents*` を使うと Agents SDK のすべてのデバッグログが表示されます。Twilio アダプターのログだけを有効化する場合は
`DEBUG=openai-agents:extensions:twilio*` を使用します。
何が起きているかを詳しく知りたい場合があります。環境変数 `DEBUG=openai-agents*` を使うと Agents SDK からのすべてのデバッグログが表示されます。あるいは、`DEBUG=openai-agents:extensions:twilio*` を使って Twilio アダプターのデバッグログだけを有効にできます。

## サーバーのフル例
## フルサーバー例

以下は、Twilio からリクエストを受け取り、それを `RealtimeSession` に転送する、エンドツーエンドの WebSocket サーバーの例です
以下は、Twilio からのリクエストを受け取り、それを `RealtimeSession` に転送する WebSocket サーバーのエンドツーエンドの例です

<Code
lang="typescript"
Expand Down
Loading