Network Search Agent
一个符合 LangGraph Studio 标准的网络搜索 Agent 项目,使用 DeepAgents 框架和 Tavily 搜索 API。
📁 项目结构
NetworkSearchAgent/
├── agent.py # ⭐ LangGraph 入口 (定义 agent)
├── langgraph.json # ⭐ LangGraph 配置
├── pyproject.toml # 依赖管理
├── .env.example # 环境变量模板
├── README.md # 完整文档
└── network_search_agent/ # Agent 包
├── __init__.py # 包初始化
├── tools.py # 工具: internet_search
└── prompts.py # 提示词: SYSTEM_PROMPT
✨ 功能特性
保留的核心功能
- ✅ 网络搜索工具 (
internet_search) - 使用 Tavily API - ✅ DeepSeek 模型集成 - 作为推理引擎
- ✅ 系统提示词 - 定义 Agent 行为
- ✅ LangGraph Studio 兼容 - 可在 Studio 中可视化调试
移除的功能
- ❌ Sub Agent (子代理)
- ❌ Think Tool (思考工具)
- ❌ 其他高级特性
🚀 快速开始
1. 安装依赖
使用 pip 安装:
cd NetworkSearchAgent
pip install -e .
或使用 uv (推荐):
cd NetworkSearchAgent
uv pip install -e .
2. 配置环境变量
复制环境变量模板:
cp .env.example .env
编辑 .env 文件,填入你的 API 密钥:
DEEPSEEK_API_KEY=your_deepseek_api_key_here
DEEPSEEK_BASE_URL=https://api.deepseek.com
TAVILY_API_KEY=your_tavily_api_key_here
获取 API 密钥
- DeepSeek: 访问 https://www.deepseek.com/
- Tavily: 访问 https://tavily.com/
3. 使用 LangGraph CLI 运行
启动开发服务器
langgraph dev
这将启动 LangGraph Studio 服务器,你可以在浏览器中访问可视化界面。
测试 Agent
langgraph test
🎯 使用 LangGraph Studio
启动 Studio
cd NetworkSearchAgent
langgraph dev
启动后,访问浏览器打开的 Studio 界面,你可以:
- 📊 可视化查看 Agent 的执行流程
- 🔍 调试每一步的输入输出
- 🧪 交互式测试 Agent 功能
- 📝 查看工具调用详情
Studio 特性
- 实时可视化: 查看 Agent 的思考过程和工具调用
- 断点调试: 在关键节点暂停并检查状态
- 历史记录: 回顾之前的对话和执行流程
- 性能分析: 查看每步的耗时和资源使用
📝 代码说明
核心文件
1. langgraph.json
LangGraph 配置文件,定义 Agent 入口:
{
"dependencies": ["."],
"graphs": {
"simple_agent": "./agent.py:agent"
},
"env": ".env"
}
2. agent.py
主 Agent 定义文件:
from langchain.chat_models import init_chat_model
from deepagents import create_deep_agent
from network_search_agent.prompts import SYSTEM_PROMPT
from network_search_agent.tools import internet_search
# 初始化模型
model = init_chat_model(
model="deepseek:deepseek-chat",
temperature=0.0
)
# 创建 Agent (仅包含基础工具,无 sub-agent)
agent = create_deep_agent(
model=model,
tools=[internet_search],
system_prompt=SYSTEM_PROMPT,
)
3. network_search_agent/tools.py
工具定义:
def internet_search(
query: str,
max_results: int = 5,
topic: Literal["general", "news", "finance"] = "general",
include_raw_content: bool = False,
):
"""网络搜索工具"""
result = tavily_client.search(...)
return result
4. network_search_agent/prompts.py
系统提示词定义:
SYSTEM_PROMPT = """你是一个智能助手...
"""
🔧 自定义配置
更换模型
编辑 agent.py 中的模型配置:
# 使用 OpenAI
model = init_chat_model(
model="openai:gpt-4",
temperature=0.0
)
# 使用 Anthropic
model = init_chat_model(
model="anthropic:claude-3-5-sonnet-20241022",
temperature=0.0
)
添加新工具
- 在
network_search_agent/tools.py中定义新工具:
def my_new_tool(param: str):
"""My new tool description"""
# 工具实现
return result
- 在
agent.py中添加到工具列表:
agent = create_deep_agent(
model=model,
tools=[internet_search, my_new_tool], # 添加新工具
system_prompt=SYSTEM_PROMPT,
)
- 在
network_search_agent/__init__.py中导出:
from network_search_agent.tools import internet_search, my_new_tool
__all__ = ["internet_search", "my_new_tool", ...]
自定义提示词
编辑 network_search_agent/prompts.py:
SYSTEM_PROMPT = """你的自定义提示词...
"""
📚 LangGraph Studio 文档
详细文档请参考:
🆚 与完整版的区别
| 特性 | 简化版 (本项目) | 完整版 |
|---|---|---|
| 网络搜索 | ✅ | ✅ |
| 基础对话 | ✅ | ✅ |
| 系统提示词 | ✅ | ✅ |
| LangGraph Studio | ✅ | ✅ |
| Sub Agent | ❌ | ✅ |
| Think Tool | ❌ | ✅ |
| 复杂工作流 | ❌ | ✅ |
🐛 常见问题
Q: 如何查看 Agent 执行日志?
启动时使用 langgraph dev --verbose 查看详细日志。
Q: 如何在 Studio 中测试?
- 运行
langgraph dev - 打开浏览器访问显示的 URL
- 在界面中输入测试问题
Q: 依赖安装失败?
确保 Python 版本 >= 3.11,使用 uv 或创建虚拟环境:
python -m venv venv
source venv/bin/activate # Linux/Mac
pip install -e .
Q: 如何部署到生产环境?
📄 许可证
MIT License
🔄 更新日志
v0.1.0 (2025-12-02)
- ✅ 初始版本
- ✅ 符合 LangGraph Studio 标准结构
- ✅ 实现基础 Agent 功能
- ✅ 集成网络搜索工具
- ✅ 移除 sub-agent 和 think tool
Description
Languages
Jupyter Notebook
84.2%
Python
15.8%