网络搜索代理
为双子座终端代理提供网络搜索功能,处理并发请求和内容提取,以实时提供网络信息。
服务介绍
Gemini 终端代理
一个强大的基于终端的代理,使用 Google 的 Gemini 模型并具有网络搜索功能。这个代理让你可以通过终端与 Gemini 交互,并利用实时网络搜索获取最新信息。
功能
- 🤖 对话式 AI 界面 - 直接从你的终端与 Google 的 Gemini 模型交谈
- 🔍 网络搜索集成 - 从网络获取实时信息
- 💬 对话历史 - 在整个对话中保持上下文
- 🛠️ 高级搜索选项 - 按域名过滤、排除站点等
- 📝 简洁、模块化的架构 - 结构良好且易于扩展的代码库
安装
前提条件
- Python 3.9+
- 用于 Gemini 模型的 Google API 密钥
- Google 自定义搜索引擎 (CSE) API 密钥和 ID
设置
-
克隆仓库:
git clone https://github.com/yourusername/gemini-terminal-agent.git cd gemini-terminal-agent -
创建虚拟环境(推荐):
python -m venv venv source venv/bin/activate # 在 Windows 上: venv\Scripts\activate -
安装依赖:
pip install -r requirements.txt -
在项目根目录下创建
.env文件,并填入你的 API 密钥:GOOGLE_GENAI_API_KEY=your_gemini_api_key_here SEARCH_ENGINE_API_KEY=your_google_api_key_here SEARCH_ENGINE_CSE_ID=your_cse_id_here DEFAULT_MODEL=gemini-2.5-flash-preview-04-17
配置 Google 搜索引擎
要使用网络搜索功能,你需要设置一个 Google 自定义搜索引擎:
-
获取 Google API 密钥:
- 访问 Google Cloud 控制台
- 创建一个新项目或选择现有项目
- 导航至 "APIs & Services" > "Library"
- 搜索 "Custom Search API" 并启用它
- 转到 "APIs & Services" > "Credentials"
- 创建一个 API 密钥并复制它(这将是你的
SEARCH_ENGINE_API_KEY)
-
创建自定义搜索引擎:
- 访问 可编程搜索引擎
- 单击 "Create a Programmable Search Engine"
- 添加要搜索的站点(使用
*.com来搜索整个网络) - 给你的搜索引擎命名
- 在 "Customize" > "Basics" 中,启用 "Search the entire web"
- 从 "Setup" > "Basics" 页面获取你的搜索引擎 ID(这将是你的
SEARCH_ENGINE_CSE_ID)
-
获取 Gemini API 密钥:
- 访问 Google AI Studio
- 使用你的 Google 账户登录
- 转到 "API Keys" 并创建一个新的 API 密钥
- 复制该 API 密钥(这将是你的
GOOGLE_GENAI_API_KEY)
使用
从终端运行代理:
python main.py
命令
- 输入你的问题或提示以与代理互动
- 输入
help查看可用工具和命令 - 输入
clear清除对话历史 - 输入
exit,quit, 或q退出程序
示例查询
>>> What is the capital of France?
Paris is the capital of France. It is located in the north-central part of the country on the Seine River.
>>> search for recent developments in quantum computing
Searching the web for recent developments in quantum computing...
[Agent response with up-to-date information]
>>> help
🔍 Available Tools:
- search: Search for information online based on a query
- advanced_search: Perform an advanced search with domain filtering and time range options
⌨️ Terminal Commands:
- help: Show this help message
- clear: Clear conversation history
- exit/quit/q: Exit the program
项目结构
gemini-terminal-agent/
│
├── main.py # Main entry point
├── search_server.py # Search server entry point
├── .env # Environment variables (not versioned)
│
├── agent/ # Agent implementation
│ ├── __init__.py
│ ├── terminal_agent.py # Core agent implementation
│ └── config.py # Agent configuration
│
├── search/ # Search functionality
│ ├── __init__.py
│ ├── server.py # MCP search server
│ ├── engine.py # Search engine implementation
│ └── content.py # Web content extraction
│
└── utils/ # Shared utilities
├── __init__.py
├── config.py # Global configuration
└── logging.py # Logging setup
高级配置
您可以通过修改.env文件中的设置来自定义代理的行为:
# Model settings
DEFAULT_MODEL=gemini-2.5-flash-preview-04-17
# Other models: gemini-1.5-pro, gemini-1.5-flash
# Search settings
MAX_CONCURRENT_REQUESTS=5
CONNECTION_TIMEOUT=10
CONTENT_TIMEOUT=15
MAX_CONTENT_LENGTH=5000
CACHE_TTL=3600
贡献
欢迎贡献!请随时提交 Pull Request。
- 叉分仓库
- 创建您的功能分支 (
git checkout -b feature/amazing-feature) - 提交您的更改 (
git commit -m 'Add some amazing feature') - 推送到分支 (
git push origin feature/amazing-feature) - 打开 Pull Request
许可证
本项目采用 MIT 许可证 - 详情请参阅 LICENSE 文件。
致谢
- 本项目使用 LangChain 作为代理框架
- 网页搜索功能由 Google 自定义搜索引擎提供支持
- 使用 Google 的 Gemini 模型构建