このハンズオンで作るもの
Web検索と計算ツールを持つ「リサーチAgent」を構築します。ユーザーの質問に対してWeb検索を実行し、情報を収集して回答するAgent です。
前提条件
- Python 3.10以上
- OpenAI APIキー
セットアップ
pip install openai-agents duckduckgo-search
export OPENAI_API_KEY="your-api-key"
ツールの定義
from agents import Agent, Runner, function_tool
from duckduckgo_search import DDGS
@function_tool
def web_search(query: str) -> str:
"""Web検索を実行して結果を返す"""
with DDGS() as ddgs:
results = list(ddgs.text(query, max_results=3))
return "\n".join([f"{r['title']}: {r['body']}" for r in results])
@function_tool
def calculate(expression: str) -> str:
"""数式を計算する(例: 2+2, 100*0.08)"""
try:
result = eval(expression, {"__builtins__": {}}, {})
return str(result)
except Exception as e:
return f"計算エラー: {e}"
Agentの作成
research_agent = Agent(
name="リサーチAgent",
instructions="""
あなたはリサーチの専門家です。
ユーザーの質問に対してWeb検索で情報を収集し、
必要であれば計算を行って正確な回答を提供してください。
回答は日本語で、箇条書きで要点をまとめてください。
""",
tools=[web_search, calculate],
model="gpt-4o-mini",
)
実行
import asyncio
async def main():
result = await Runner.run(
research_agent,
"2026年のAI Agent市場規模を調べて、年成長率も計算してください"
)
print(result.final_output)
asyncio.run(main())
実行例
[web_search実行] "AI Agent market size 2026"
[calculate実行] "156 / 45 * 100"
調査結果:
- 2026年AI Agent市場規模: 約$156億(予測)
- 2025年比成長率: 約247%
- 主要牽引要因: 企業のAI投資増加、LLMコスト低下
- 日本市場: グローバル市場の約8%を占める見込み
会話履歴の管理
# 会話を継続する場合
result = await Runner.run(
research_agent,
"その中で日本企業の事例を調べてください",
context=result.context # 前の会話を引き継ぐ
)
次のステップ
- メモリ追加: 過去の会話を記憶するVector DB連携
- マルチエージェント: 複数のAgentを連携させる
- Webアプリ化: Next.jsでフロントエンドを追加
- デプロイ: VercelやRailwayで本番公開
AI Agentの基礎が完成しました!次は本サービスの「Agent Builder」で、独自のAgentをローコードで作成してみてください。