LangChainは、大規模言語モデル(LLM)を活用したアプリケーション開発を効率化する強力なフレームワークです。本記事では、LangChain Agentの基本概念から実践的な活用方法まで、API経験が全くない初心者でも理解できるよう丁寧に解説します。
LangChain Agentとは?
LangChain Agentは、大規模言語モデルを「的大脑」として動作させ、各种 инструмент(ツール)を組み合わせることで、复杂なタスクを自律的に处理できる仕組みです。従来のプログラミングでは、すべてのロジックを人間が代码として記述しますが、AgentではLLMが状況に応じて適切なアクションを選択しながら动作します。
比如说,你需要从网上搜集特定信息并进行分析。传统方式需要分别调用搜索引擎API、数据处理ライブラリ等多个サービスを個別に実装しますが、Agentなら「情報を搜集して分析结果を报告」という高レベルな指示だけで、内部で適切なツールを呼び出して执行してくれます。
Agentを支える3つの核心コンポーネント
1. Tool(ツール)
ToolはAgentの外の世界とつながる接口です。Web検索、データベース参照、ファイル読み込み、API呼び出しなど、まるで职员的持つ专业スキルように各种Capabilitiesを提供します。LangChainには事前に用意された多くのToolが利用可能で、独自のToolを作成して拡張することもできます。
2. Agent Core(エージェントコア)
Agent CoreはLLMとToolの桥渡しをする役割を担います。ユーザーの要求を解读し、どのToolを使うべきか、どの顺序で调用するかを决定します。简单言えば、「この作业には谁を手配すべきか」を判断するmanagerのような存在です。
3. Execution Loop(実行ループ)
Execution LoopはAgentの自动化の要です。Toolの実行结果を確認し、必要であれば次のアクションを決定し、最终的な回答に到达するまで处理を繰り返します。この反復プロセスにより、单一のAPI呼び出しでは対応できない复杂なワークフローも处理可能になります。
実践編:HolySheep AIでAgentを動かしてみる
ここからは実際にLangChain Agentを作成してみましょう。今すぐ登録して取得したAPIキーを使用し、HolySheep AIのAPIエンドポイントに接続します。HolySheep AIは1ドルあたり170万トークンを处理できる効率的なAPI提供商で、DeepSeek V3.2の場合わずか0.42ドル(约30円)/100万トークンという破格の安さが特徴です。Webhook対応により实时通知も可能です。
Step 1:環境の准备
まず、必要なライブラリをインストールします。터미널에서 다음 명령어를 실행하세요。
pip install langchain langchain-openai langchain-core langchain-community python-dotenv requests
インストールが完了したら、プロジェクトフォルダ内に.envファイルを作成し、APIキーを安全に管理します。ファイル 내용은以下のようになります。
# .env ファイル
HOLYSHEEP_API_KEY=YOUR_HOLYSHEEP_API_KEY
HOLYSHEEP_API_BASE=https://api.holysheep.ai/v1
Step 2:基本Agentの実装
以下の代码は、LangChainを使用してHolySheep AIのAPIに接続し、简单なToolを使ったAgentを作成する例です。
import os
from dotenv import load_dotenv
from langchain.agents import AgentExecutor, create_react_agent
from langchain_openai import ChatOpenAI
from langchain_core.tools import tool
from langchain import hub
load_dotenv()
api_key = os.getenv("HOLYSHEEP_API_KEY")
api_base = os.getenv("HOLYSHEEP_API_BASE")
llm = ChatOpenAI(
model="gpt-4o",
api_key=api_key,
base_url=api_base,
temperature=0.7,
max_tokens=2000
)
@tool
def calculator(expression: str) -> str:
"""数学計算を実行するツール"""
try:
result = eval(expression, {"__builtins__": {}}, {})
return f"計算結果: {result}"
except Exception as e:
return f"計算エラー: {str(e)}"
@tool
def text_length(text: str) -> str:
"""テキストの文字数をカウントするツール"""
return f"文字数: {len(text)}"
tools = [calculator, text_length]
prompt = hub.pull("hwchase17/react")
agent = create_react_agent(llm, tools, prompt)
agent_executor = AgentExecutor(agent=agent, tools=tools, verbose=True)
result = agent_executor.invoke({
"input": "こんにちは、私の名前は田中です。この名前の文字数と、15掛ける23の計算結果を教えてください。"
})
print(result["output"])
このコードをagent_basic.pyとして保存し、実行すると以下流れで处理されます。まず、Agentは用户の要求を解读し、「text_length」というToolで名前の文字数をカウントし、「calculator」というToolで掛け算を実行します。各Toolの実行结果を確認し、最终的な回答を生成します。
Step 3:自定义Tool实战
次は、実際の应用に近い例として、Web资讯获取と要約を行うAgentを作成します。
import os
from dotenv import load_dotenv
from langchain.agents import AgentExecutor, create_react_agent
from langchain_openai import ChatOpenAI
from langchain_core.tools import tool
from langchain import hub
import requests
load_dotenv()
api_key = os.getenv("HOLYSHEEP_API_KEY")
api_base = os.getenv("HOLYSHEEP_API_BASE")
llm = ChatOpenAI(
model="claude-sonnet-4-20250514",
api_key=api_key,
base_url=api_base,
temperature=0.3,
max_tokens=3000
)
@tool
def fetch_weather(city: str) -> str:
"""指定された都市の天気を取得する"""
weather_data = {
"東京": "晴れ、温度: 25°C、湿度: 60%",
"大阪": "曇り、温度: 23°C、湿度: 75%",
"名古屋": "雨、温度: 20°C、湿度: 85%"
}
return weather_data.get(city, "データがありません")
@tool
def summarize_text(text: str, max_length: int = 50) -> str:
"""長いテキストを要約する"""
words = text.split()
if len(words) <= max_length:
return text
return " ".join(words[:max_length]) + "..."
@tool
def get_current_time() -> str:
"""現在時刻を取得する"""
from datetime import datetime
now = datetime.now()
return now.strftime("%Y年%m月%d日 %H:%M:%S")
tools = [fetch_weather, summarize_text, get_current_time]
prompt = hub.pull("hwchase17/react")
agent = create_react_agent(llm, tools, prompt)
agent_executor = AgentExecutor(agent=agent, tools=tools, verbose=True, max_iterations=10)
result = agent_executor.invoke({
"input": "今日の東京のお天気と、現在時刻を教えてください。"
})
print(result["output"])
この例では3つのToolを定义し、Agentが适切なToolを選択して呼び出す示范をしました。verbose=True设置为することで、Agentの思考过程和各ステップの详细なログが出力され、动作の理解に非常に役に立ちます。
Agentのタイプ選択ガイド
LangChainには复数のAgent类型が用意されており、タスクの性质によって最適なものを選ぶ必要があります。ReAct Agentは最も一般的な类型で、思考と行動を交互に繰り返しながら問題を解決します。OpenAI Functions AgentはOpenAIの函数呼び出し机能を活用した高效なAgentです。Self-Ask Agentは复杂な 질문을小さな部分問題に分割して处理するのに适しています。
初心者にはReAct Agent推荐します。透明性が高く、何を考えながら动いているか理解しやすいため、デバッグや学习に適しています。実績が出たところで、他のAgent类型にも挑戦してみてください。
プロンプトエンジニアリングのコツ
Agentの性能を引き出すには、プロンプトの设计が重要です。まず、タスクの目标を明确に記述