コンテンツにスキップ

クイックスタート

  1. プロジェクトを作成し、npm を初期化します。これは一度だけで構いません。

    Terminal window
    mkdir my_project
    cd my_project
    npm init -y
  2. Agents SDK をインストールします。

    Terminal window
    npm install @openai/agents
  3. OpenAI API キーを設定します。キーがない場合は、こちらの手順に従って OpenAI API キーを作成してください。

    Terminal window
    export OPENAI_API_KEY=sk-...

エージェントは instructions と name で定義します。

import { Agent } from '@openai/agents';
const agent = new Agent({
name: 'History Tutor',
instructions:
'You provide assistance with historical queries. Explain important events and context clearly.',
});

run メソッドを使用してエージェントを実行できます。開始したいエージェントと渡したい入力を両方指定して実行します。

これにより、最終出力とその実行中に実行されたアクションを含む result が返されます。

import { Agent, run } from '@openai/agents';
const agent = new Agent({
name: 'History Tutor',
instructions:
'You provide assistance with historical queries. Explain important events and context clearly.',
});
const result = await run(agent, 'When did sharks first appear?');
console.log(result.finalOutput);

エージェントに情報を検索したりアクションを実行したりするためのツールを与えることができます。

import { Agent, tool } from '@openai/agents';
const historyFunFact = tool({
// The name of the tool will be used by the agent to tell what tool to use.
name: 'history_fun_fact',
// The description is used to describe **when** to use the tool by telling it **what** it does.
description: 'Give a fun fact about a historical event',
execute: async () => {
// The output will be returned back to the Agent to use
return 'Sharks are older than trees.';
},
});
const agent = new Agent({
name: 'History Tutor',
instructions:
'You provide assistance with historical queries. Explain important events and context clearly.',
// Adding the tool to the agent
tools: [historyFunFact],
});

追加のエージェントを同様に定義して、問題をより小さな部分に分割し、各エージェントが現在のタスクに集中できるようにします。また、エージェントごとにモデルを指定することで、異なる問題に対して異なるモデルを使用できます。

const historyTutorAgent = new Agent({
name: 'History Tutor',
instructions:
'You provide assistance with historical queries. Explain important events and context clearly.',
});
const mathTutorAgent = new Agent({
name: 'Math Tutor',
instructions:
'You provide help with math problems. Explain your reasoning at each step and include examples',
});

複数のエージェントをオーケストレーションするために、エージェントに handoffs を定義できます。これにより、実行中に自動的に次のエージェントへ会話を引き継げるようになります。

// Using the Agent.create method to ensures type safety for the final output
const triageAgent = Agent.create({
name: 'Triage Agent',
instructions:
"You determine which agent to use based on the user's homework question",
handoffs: [historyTutorAgent, mathTutorAgent],
});

実行後、result の finalAgent プロパティを確認すると、最終応答を生成したエージェントがわかります。

エージェントオーケストレーションの実行

Section titled “エージェントオーケストレーションの実行”

Runner は各エージェントの実行、ハンドオフ、ツール実行を処理します。

import { run } from '@openai/agents';
async function main() {
const result = await run(triageAgent, 'What is the capital of France?');
console.log(result.finalOutput);
}
main().catch((err) => console.error(err));

すべてを一つにまとめた完全な例を示します。index.js に貼り付けて実行してください。

Quickstart
import { Agent, run } from '@openai/agents';
const historyTutorAgent = new Agent({
name: 'History Tutor',
instructions:
'You provide assistance with historical queries. Explain important events and context clearly.',
});
const mathTutorAgent = new Agent({
name: 'Math Tutor',
instructions:
'You provide help with math problems. Explain your reasoning at each step and include examples',
});
const triageAgent = new Agent({
name: 'Triage Agent',
instructions:
"You determine which agent to use based on the user's homework question",
handoffs: [historyTutorAgent, mathTutorAgent],
});
async function main() {
const result = await run(triageAgent, 'What is the capital of France?');
console.log(result.finalOutput);
}
main().catch((err) => console.error(err));

Agents SDK はトレースを自動生成します。これにより、エージェントがどのように動作したか、どのツールを呼び出したか、どのエージェントにハンドオフしたかを確認できます。

エージェントの実行内容を確認するには、OpenAI ダッシュボードの Trace ビューアにアクセスしてください。

より複雑なエージェントフローの構築方法を学びましょう: