update readme.md

This commit is contained in:
martin.legrand
2025-09-13 22:34:05 +02:00
parent 28d255b8e9
commit 60dd8a597f
6 changed files with 2263 additions and 1436 deletions
+359 -223
View File
@@ -4,7 +4,7 @@
<img align="center" src="./media/agentic_seek_logo.png" width="300" height="300" alt="Agentic Seek Logo">
<p>
[English](./README.md) | 中文 | [繁體中文](./README_CHT.md) | [Français](./README_FR.md) | [日本語](./README_JP.md) | [Português (Brasil)](./README_PTBR.md)
English | [中文](./README_CHS.md) | [繁體中文](./README_CHT.md) | [Français](./README_FR.md) | [日本語](./README_JP.md) | [Português (Brasil)](./README_PTBR.md) | [Español](./README_ES.md)
*一个**100%本地运行的 Manus AI 替代品**,支持语音的 AI 助手,可自主浏览网页、编写代码、规划任务,所有数据仅保存在你的设备上。专为本地推理模型设计,完全在你的硬件上运行,确保隐私无忧,无需云端依赖。*
@@ -38,11 +38,15 @@ https://github.com/user-attachments/assets/b8ca60e9-7b3b-4533-840e-08f9ac426316
## 前置条件
请确保已安装 chrome driver、docker 和 python3.10。
开始前,请确保已安装以下软件:
如遇 chrome driver 相关问题,请参见 **Chromedriver** 部分。
* **Git:** 用于克隆仓库。[下载 Git](https://git-scm.com/downloads)
* **Python 3.10.x:** 强烈推荐使用 Python 3.10.x 版本。使用其他版本可能导致依赖错误。[下载 Python 3.10](https://www.python.org/downloads/release/python-3100/)(选择 3.10.x 版本)。
* **Docker Engine & Docker Compose:** 用于运行捆绑服务如 SearxNG。
* 安装 Docker Desktop(包含 Docker Compose V2):[Windows](https://docs.docker.com/desktop/install/windows-install/) | [Mac](https://docs.docker.com/desktop/install/mac-install/) | [Linux](https://docs.docker.com/desktop/install/linux-install/)
* 或者在 Linux 上分别安装 Docker Engine 和 Docker Compose[Docker Engine](https://docs.docker.com/engine/install/) | [Docker Compose](https://docs.docker.com/compose/install/)(确保安装 Compose V2,例如 `sudo apt-get install docker-compose-plugin`)。
### 1. **克隆仓库并初始化**
### 1. **克隆仓库并设置**
```sh
git clone https://github.com/Fosowl/agenticSeek.git
@@ -53,7 +57,7 @@ mv .env.example .env
### 2. 修改 .env 文件内容
```sh
SEARXNG_BASE_URL="http://127.0.0.1:8080"
SEARXNG_BASE_URL="http://searxng:8080" # 如果在主机上运行 CLI 模式,使用 http://127.0.0.1:8080
REDIS_BASE_URL="redis://redis:6379/0"
WORK_DIR="/Users/mlg/Documents/workspace_for_ai"
OLLAMA_PORT="11434"
@@ -67,195 +71,241 @@ GOOGLE_API_KEY='optional'
ANTHROPIC_API_KEY='optional'
```
**API Key 完全可选,若你选择本地运行 LLM(本项目主要目的),可留空,只要硬件足够。**
以下环境变量用于配置应用的连接和 API 密钥。
根据需要更新 `.env` 文件:
- **SEARXNG_BASE_URL**保持不变
- **REDIS_BASE_URL**保持不变
- **WORK_DIR**本地工作目录路径AgenticSeek 可读取和操作这些文件
- **OLLAMA_PORT**Ollama 服务端口
- **LM_STUDIO_PORT**LM Studio 服务端口
- **CUSTOM_ADDITIONAL_LLM_PORT**自定义 LLM 服务端口
- **SEARXNG_BASE_URL**: 除非在主机上运行 CLI 模式,否则保持不变
- **REDIS_BASE_URL**: 保持不变
- **WORK_DIR**: 本地工作目录路径AgenticSeek 可读取和操作这些文件
- **OLLAMA_PORT**: Ollama 服务端口号。
- **LM_STUDIO_PORT**: LM Studio 服务端口号。
- **CUSTOM_ADDITIONAL_LLM_PORT**: 任何额外自定义 LLM 服务端口
下方所有 API 密钥环境变量均为**可选**,仅在你打算使用外部 API 而非本地 LLM 时填写。
**API 密钥对于选择本地运行 LLM 的用户完全可选,这也是本项目的主要目的。如果硬件足够,请留空。**
### 3. **启动 Docker**
确保已安装并运行 Docker。可通过以下命令启动
确保 Docker 已安装并在系统上运行。可以使用以下命令启动 Docker
- **Linux/macOS**
打开终端运行:
```sh
sudo systemctl start docker
```
或在应用菜单启动 Docker Desktop。
- **Linux/macOS:**
打开终端运行:
```sh
sudo systemctl start docker
```
或者如果已安装,从应用程序菜单启动 Docker Desktop。
- **Windows**
开始菜单启动 Docker Desktop。
验证 Docker 是否运行:
- **Windows:**
开始菜单启动 Docker Desktop。
可以通过执行以下命令验证 Docker 是否运行:
```sh
docker info
```
看到 Docker 信息,则运行正常。
看到 Docker 安装信息,则表示运行正常。
请参阅下面的[本地提供商列表](#本地提供商列表)了解摘要。
下一步:[本地运行 AgenticSeek](#启动服务并运行)
*如果遇到问题,请参阅[故障排除](#故障排除)部分。*
*如果硬件无法本地运行 LLM,请参阅[使用 API 运行设置](#使用-api-运行设置)。*
*有关详细 `config.ini` 说明,请参阅[配置部分](#配置)。*
---
## 本地运行 LLM 的设置
## 在您的机器上本地运行 LLM 的设置
**硬件要求:**
本地运行 LLM 需有足够硬件。至少需支持 Qwen/Deepseek 14B 的 GPU。详细模型/性能建议 FAQ。
本地运行 LLM,您需要足够硬件。至少需要能够运行 Magistral、QwenDeepseek 14B 的 GPU。有关详细模型/性能建议,请参阅 FAQ。
**启动本地 provider**
**设置您的本地提供商**
以 ollama 为例,启动本地 provider
启动您的本地提供商,例如使用 ollama
```sh
ollama serve
```
下方有本地支持的 provider 列表。
请参阅下面的本地支持提供商列表。
**修改 config.ini**
**更新 config.ini**
config.ini 文件中的 provider_name 设置为支持的 providerprovider_model 设置为 provider 支持的 LLM。推荐推理模型如 *Qwen* 或 *Deepseek*。
更改 config.ini 文件,将 provider_name 设置为支持的提供商provider_model 设置为您的提供商支持的 LLM。我们推荐推理模型如 *Magistral* 或 *Deepseek*。
详细硬件要求见 README 末尾 FAQ。
有关所需硬件,请参阅 README 末尾的 **FAQ**
```sh
[MAIN]
is_local = True # 是否本地运行
provider_name = ollama # 或 lm-studio、openai 等
provider_model = deepseek-r1:14b # 选择适合硬件的模型
is_local = True # 无论您是本地运行还是使用远程提供商。
provider_name = ollama # 或 lm-studio、openai 等
provider_model = deepseek-r1:14b # 选择适合硬件的模型
provider_server_address = 127.0.0.1:11434
agent_name = Jarvis # AI 名称
recover_last_session = True # 是否恢复上会话
save_session = True # 是否保存当前会话
speak = False # 语音输出
listen = False # 语音输入,仅 CLI,实验性
jarvis_personality = False # 是否使用 Jarvis格(实验性)
languages = en zh # 语言列表,语音默认第一个
agent_name = Jarvis # 您的 AI 名称
recover_last_session = True # 是否恢复上一个会话
save_session = True # 是否记住当前会话
speak = False # 文本转语音
listen = False # 语音转文本,仅 CLI,实验性
jarvis_personality = False # 是否使用更"Jarvis"风格的性格(实验性)
languages = en zh # 语言列表,文本转语音默认使用列表中的第一种语言
[BROWSER]
headless_browser = True # 除非 CLI,否则保持不变
stealth_mode = True # 使用 undetected selenium 降低被检测概率
headless_browser = True # 除非在主机上使用 CLI,否则保持不变
stealth_mode = True # 使用不可检测的 selenium 减少浏览器检测
```
**警告**
**警告**
- `config.ini` 不支持注释。不要直接复制示例配置,否则注释会导致错误。请手动修改 config.ini,去除注释。
- `config.ini` 文件格式不支持注释。
不要直接复制粘贴示例配置,因为注释会导致错误。相反,手动修改 `config.ini` 文件,使用您所需的设置,排除任何注释。
- 用 LM-studio 运行 LLMprovider_name 不要设为 `openai`,应设为 `lm-studio`。
- 如果使用 LM-studio 运行 LLM请*不要*将 provider_name 设为 `openai`。将其设置为 `lm-studio`。
- 某些 provider(如 lm-studio)要求 IP 前加 `http://`如 `http://127.0.0.1:1234`
- 某些提供商(例如:lm-studio)要求您在 IP 前加 `http://`。例如 `http://127.0.0.1:1234`
**本地 provider 列表**
**本地提供商列表**
| Provider | 本地? | 说明 |
|-----------|--------|----------------------------------------------------|
| ollama | 是 | 使用 ollama 本地运行 LLM |
| lm-studio | 是 | 使用 LM studio 本地运行 LLMprovider_name 设为 lm-studio|
| openai | 是 | 使用 openai 兼容 APIllama.cpp server |
| 提供商 | 本地? | 描述 |
|-----------|--------|-----------------------------------------------------------|
| ollama | 是 | 使用 ollama 作为 LLM 提供商轻松本地运行 LLM |
| lm-studio | 是 | 使用 LM studio 本地运行 LLM将 `provider_name``lm-studio`|
| openai | 是 | 使用 openai 兼容 API例如:llama.cpp 服务器) |
下一步:[启动服务并运行 AgenticSeek](#Start-services-and-Run)
下一步:[启动服务并运行 AgenticSeek](#启动服务并运行)
*如遇问题见**已知问题**部分*
*硬件无法本地运行 deepseek 时见**API 运行**部分*
*详细配置说明见**Config**部分*
---
*如果遇到问题,请参阅[故障排除](#故障排除)部分*
*如果硬件无法本地运行 LLM,请参阅[使用 API 运行设置](#使用-api-运行设置)。*
*有关详细 `config.ini` 说明,请参阅[配置部分](#配置)。*
## 使用 API 运行设置
**API 运行为可选,见上方本地运行方法。**
此设置使用外部、基于云的 LLM 提供商。您需要从所选服务获取 API 密钥。
在 `config.ini` 设置所需 provider。API provider 列表如下。
**1. 选择 API 提供商并获取 API 密钥:**
```sh
请参阅下面的[API 提供商列表](#api-提供商列表)。访问他们的网站注册并获取 API 密钥。
**2. 将您的 API 密钥设置为环境变量:**
* **Linux/macOS:**
打开终端并使用 `export` 命令。最好将其添加到 shell 的配置文件中(例如 `~/.bashrc`、`~/.zshrc`)以保持持久性。
```sh
export PROVIDER_API_KEY="your_api_key_here"
# 将 PROVIDER_API_KEY 替换为特定的变量名,例如 OPENAI_API_KEY、GOOGLE_API_KEY
```
TogetherAI 示例:
```sh
export TOGETHER_API_KEY="xxxxxxxxxxxxxxxxxxxxxx"
```
* **Windows:**
* **命令提示符(当前会话临时):**
```cmd
set PROVIDER_API_KEY=your_api_key_here
```
* **PowerShell(当前会话临时):**
```powershell
$env:PROVIDER_API_KEY="your_api_key_here"
```
* **永久性:** 在 Windows 搜索栏中搜索"环境变量",点击"编辑系统环境变量",然后点击"环境变量..."按钮。添加一个新的用户变量,使用适当的名称(例如 `OPENAI_API_KEY`)和您的密钥作为值。
*(有关更多详细信息,请参阅 FAQ:[如何设置 API 密钥?](#如何设置-api-密钥))。*
**3. 更新 `config.ini`**
```ini
[MAIN]
is_local = False
provider_name = google
provider_model = gemini-2.0-flash
provider_server_address = 127.0.0.1:5000 # 无关紧要
provider_name = openai # 或 google、deepseek、togetherAI、huggingface
provider_model = gpt-3.5-turbo # 或 gemini-1.5-flash、deepseek-chat、mistralai/Mixtral-8x7B-Instruct-v0.1 等。
provider_server_address = # 当 is_local = False 时,对于大多数 API 通常被忽略或可以留空
# ... 其他设置 ...
```
警告:确保 config 中无多余空格。
*警告:* 确保 `config.ini` 值中没有尾随空格。
导出 API key`export <<PROVIDER>>_API_KEY="xxx"`
**API 提供商列表**
示例:`export TOGETHER_API_KEY="xxxxx"`
| 提供商 | `provider_name` | 本地? | 描述 | API 密钥链接(示例) |
|--------------|-----------------|--------|---------------------------------------------------|---------------------------------------------|
| OpenAI | `openai` | 否 | 通过 OpenAI 的 API 使用 ChatGPT 模型。 | [platform.openai.com/signup](https://platform.openai.com/signup) |
| Google Gemini| `google` | 否 | 通过 Google AI Studio 使用 Google Gemini 模型。 | [aistudio.google.com/keys](https://aistudio.google.com/keys) |
| Deepseek | `deepseek` | 否 | 通过他们的 API 使用 Deepseek 模型。 | [platform.deepseek.com](https://platform.deepseek.com) |
| Hugging Face | `huggingface` | 否 | 使用 Hugging Face Inference API 中的模型。 | [huggingface.co/settings/tokens](https://huggingface.co/settings/tokens) |
| TogetherAI | `togetherAI` | 否 | 通过 TogetherAI API 使用各种开源模型。| [api.together.ai/settings/api-keys](https://api.together.ai/settings/api-keys) |
**API provider 列表**
| Provider | 本地? | 说明 |
|-----------|--------|----------------------------------------------------|
| openai | 视情况 | 使用 ChatGPT API |
| deepseek | 否 | Deepseek API(非私有) |
| huggingface| 否 | Hugging-Face API(非私有) |
| togetherAI | 否 | 使用 together AI API(非私有) |
| google | 否 | 使用 google gemini API(非私有) |
*注意:*
* 我们不建议将 `gpt-4o` 或其他 OpenAI 模型用于复杂的网页浏览和任务规划,因为当前的提示优化针对 Deepseek 等模型。
* 编码/bash 任务可能会遇到 Gemini 的问题,因为它可能不严格遵循针对 Deepseek 优化的格式化提示。
* 当 `is_local = False` 时,`config.ini` 中的 `provider_server_address` 通常不使用,因为 API 端点通常在相应提供商的库中硬编码。
注意:使用 gemini 时代码/bash 可能失败,模型对格式提示不敏感,优化针对 deepseek r1。gpt-4o 在本项目 prompt 下表现也较差。
下一步:[启动服务并运行 AgenticSeek](#启动服务并运行)
下一步:[启动服务并运行 AgenticSeek](#Start-services-and-Run)
*如果遇到问题,请参阅**已知问题**部分*
*如遇问题见**已知问题**部分*
*详细配置说明见**Config**部分*
*有关详细配置文件说明,请参阅**配置**部分*
---
## 启动服务并运行
启动所需服务。此操作会启动 docker-compose.yml 中的所有服务,包括:
- searxng
- redissearxng 依赖)
- frontend
- backend(如用 `full`
默认情况下,AgenticSeek 完全在 Docker 中运行。
**选项 1:** 在 Docker 中运行,使用 Web 界面:
启动所需服务。这将启动 docker-compose.yml 中的所有服务,包括:
- searxng
- redissearxng 所需)
- frontend
- backend(如果使用 Web 界面时使用 `full`
```sh
./start_services.sh full # MacOS
start start_services.cmd full # Windows
```
**警告:** 此步骤下载并加载所有 Docker 镜像,可能需 30 分钟。启动后请等待 backend 服务完全运行(日志中出现 backend: <info>),再发送消息。backend 启动比其他服务慢
**警告:** 此步骤下载并加载所有 Docker 镜像,可能需要长达 30 分钟。启动服务后,请等待后端服务完全运行(您应该在日志中看到 **backend: "GET /health HTTP/1.1" 200 OK**)后再发送任何消息。首次运行时,后端服务可能需要 5 分钟才能启动
访问 `http://localhost:3000/`即可看到网页界面。
转到 `http://localhost:3000/`您应该会看到 Web 界面。
**可选:使用 CLI 界面运行:**
*服务启动故障排除:* 如果这些脚本失败,请确保 Docker Engine 正在运行并且 Docker ComposeV2`docker compose`)已正确安装。检查终端输出中的错误消息。请参阅 [FAQ:帮助!运行 AgenticSeek 或其脚本时出现错误。](#faq-故障排除)
如需 CLI 界面,需在主机安装依赖
**选项 2:** CLI 模式
要使用 CLI 界面运行,您必须在主机上安装软件包:
```sh
./install.sh
./install.bat # windows
```
启动服务
然后您必须将 `config.ini` 中的 SEARXNG_BASE_URL 更改为
```sh
SEARXNG_BASE_URL="http://localhost:8080"
```
启动所需服务。这将启动 docker-compose.yml 中的一些服务,包括:
- searxng
- redissearxng 所需)
- frontend
```sh
./start_services.sh # MacOS
start start_services.cmd # Windows
```
然后运行:`uv run cli.py`
运行:uv run: `uv run python -m ensurepip` 以确保 uv 已启用 pip。
使用 CLI`uv run cli.py`
---
## 使用方法
确保服务已通过 `./start_services.sh full` 启动,并访问 `localhost:3000` 使用网页界面。
确保服务已通过 `./start_services.sh full` 启动并运行,然后转到 `localhost:3000` 使用 Web 界面。
CLI 模式下可通过设置 `listen = True` 用语音转文本。
您也可以通过设置 `listen = True` 来使用语音转文本。仅限 CLI 模式。
退出,只需说/输入 `goodbye`。
退出,只需说/输入 `goodbye`。
以下为示例用法
以下是一些使用示例
> *用 python 写一个贪吃蛇游戏!*
@@ -271,60 +321,60 @@ CLI 模式下可通过设置 `listen = True` 启用语音转文本。
> *周五,搜索免费股票价格 API,用 supersuper7434567@gmail.com 注册,然后写 Python 脚本每日获取特斯拉股价,结果保存到 stock_prices.csv*
*表单填写功能仍为实验性,可能失败。*
*请注意,表单填写功能仍为实验性,可能失败。*
输入查询后,AgenticSeek 会自动分配最佳代理执行任务。
输入查询后,AgenticSeek 分配最佳代理执行任务。
由于目前为早期原型,代理路由系统可能无法总是正确分配代理。
由于这是早期原型,代理路由系统可能无法总是根据您的查询分配正确的代理。
因此,建议明确表达需求及 AI 执行方式。例如需网页搜索,不要说:
因此,您应该非常明确表达您想要什么以及 AI 可能如何进行,例如如果您希望它进行网页搜索,不要说:
`你知道哪些适合独自旅行的国家吗?`
而应说:
`进行网页搜索,找出最适合独自旅行的国家`
`进行网页搜索,找出最适合独自旅行的国家`
---
## **在自服务器运行 LLM 的设置**
## **在自己的服务器运行 LLM 的设置**
有高性能电脑或服务器,可用自定义 llm server 远程运行 LLM。
果您有功能强大的计算机或可以使用的服务器,但想从笔记本电脑使用它,您可以选择使用我们的自定义 llm 服务器在远程服务器上运行 LLM。
在运行 AI 模型的服务器”上获取 IP 地址
运行 AI 模型的"服务器"上,获取 IP 地址
```sh
ip a | grep "inet " | grep -v 127.0.0.1 | awk '{print $2}' | cut -d/ -f1 # 本地 IP
curl https://ipinfo.io/ip # 公 IP
curl https://ipinfo.io/ip # 公 IP
```
Windows/macOS用 ipconfig 或 ifconfig 查 IP。
意:对于 WindowsmacOS,分别使用 ipconfig 或 ifconfig 查 IP 地址
克隆仓库并进入 `server/` 文件夹
克隆仓库并进入 `server/` 文件夹
```sh
git clone --depth 1 https://github.com/Fosowl/agenticSeek.git
cd agenticSeek/llm_server/
```
安装服务器依赖
安装服务器特定要求
```sh
pip3 install -r requirements.txt
```
运行服务器脚本
运行服务器脚本
```sh
python3 app.py --provider ollama --port 3333
```
可选择 `ollama` `llamacpp` 作为 LLM 服务。
您可以选择使用 `ollama` `llamacpp` 作为 LLM 服务。
在你的个人电脑上:
现在在您的个人计算机上:
改 `config.ini`,将 `provider_name` 设为 `server``provider_model` 设为 `deepseek-r1:xxb`。
`provider_server_address` 设运行模型机器的 IP。
改 `config.ini` 文件,将 `provider_name` 设为 `server``provider_model` 设为 `deepseek-r1:xxb`。
`provider_server_address` 设置为将运行模型机器的 IP 地址
```sh
[MAIN]
@@ -334,40 +384,40 @@ provider_model = deepseek-r1:70b
provider_server_address = http://x.x.x.x:3333
```
下一步:[启动服务并运行 AgenticSeek](#Start-services-and-Run)
下一步:[启动服务并运行 AgenticSeek](#启动服务并运行)
---
## 语音转文本
警告:目前仅 CLI 模式支持语音转文本。
警告:目前语音转文本仅适用于 CLI 模式
目前仅支持英文语音转文本
请注意,目前语音转文本仅适用于英语
默认关闭语音转文本。启用方法:在 config.ini 设置 listen 为 True
语音转文本功能默认禁用。要启用它,请在 config.ini 文件中将 listen 选项设置为 True
```
listen = True
```
启用后,语音转文本会监听触发词(即 agent 名称),再开始处理输入。可通过修改 *config.ini* 的 `agent_name` 自定义:
启用后,语音转文本功能会监听触发关键字,即代理的名称,然后开始处理您的输入。您可以通过更新 *config.ini* 文件中的 `agent_name` 值来自定义代理的名称
```
agent_name = Friday
```
建议使用常见英文名如 "John" 或 "Emma" 作为 agent 名称。
为了获得最佳识别效果,我们建议使用常见英文名称,如 "John" 或 "Emma" 作为代理名称。
看到转录开始出现后,呼叫 agent 名称唤醒(如“Friday)。
一旦您看到转录开始出现,请大声说出代理的名称唤醒它(例如,"Friday")。
清晰说出你的请求
清晰说出您的查询
确认短语结尾,表示系统继续处理。例如
确认短语结束您的请求,以指示系统继续。确认短语的示例包括
```
"do it", "go ahead", "execute", "run", "start", "thanks", "would ya", "please", "okay?", "proceed", "continue", "go on", "do that", "go it", "do you understand?"
```
## 配置说明
## 配置
配置示例:
```
@@ -375,162 +425,249 @@ agent_name = Friday
is_local = True
provider_name = ollama
provider_model = deepseek-r1:32b
provider_server_address = 127.0.0.1:11434
provider_server_address = http://127.0.0.1:11434 # Ollama 示例;LM-Studio 使用 http://127.0.0.1:1234
agent_name = Friday
recover_last_session = False
save_session = False
speak = False
listen = False
jarvis_personality = False
languages = en zh
languages = en zh # TTS 和潜在路由的语言列表。
[BROWSER]
headless_browser = False
stealth_mode = False
```
**说明**
**`config.ini` 设置说明**
- is_local -> 本地运行(True)或远程服务器(False)
* **`[MAIN]` 部分:**
* `is_local`: 如果使用本地 LLM 提供商(Ollama、LM-Studio、本地 OpenAI 兼容服务器)或自托管服务器选项,则为 `True`。如果使用基于云的 API(OpenAI、Google 等),则为 `False`。
* `provider_name`: 指定 LLM 提供商。
* 本地选项:`ollama`、`lm-studio`、`openai`(用于本地 OpenAI 兼容服务器)、`server`(用于自托管服务器设置)。
* API 选项:`openai`、`google`、`deepseek`、`huggingface`、`togetherAI`。
* `provider_model`: 所选提供商的特定模型名称或 ID(例如,Ollama 的 `deepseekcoder:6.7b`OpenAI API 的 `gpt-3.5-turbo`TogetherAI 的 `mistralai/Mixtral-8x7B-Instruct-v0.1`)。
* `provider_server_address`: 您的 LLM 提供商的地址。
* 对于本地提供商:例如,Ollama 的 `http://127.0.0.1:11434`LM-Studio 的 `http://127.0.0.1:1234`。
* 对于 `server` 提供商类型:您的自托管 LLM 服务器的地址(例如 `http://your_server_ip:3333`)。
* 对于云 API`is_local = False`):这通常被忽略或可以留空,因为 API 端点通常由客户端库处理。
* `agent_name`: AI 助手的名称(例如 Friday)。如果启用,用作语音转文本的触发词。
* `recover_last_session`: `True` 尝试恢复上一个会话的状态,`False` 重新开始。
* `save_session`: `True` 保存当前会话的状态以供潜在恢复,`False` 否则。
* `speak`: `True` 启用文本转语音语音输出,`False` 禁用。
* `listen`: `True` 启用语音转文本语音输入(仅限 CLI 模式),`False` 禁用。
* `work_dir`: **关键:** AgenticSeek 将读取/写入文件的目录。**确保此路径在您的系统上有效且可访问。**
* `jarvis_personality`: `True` 使用更"Jarvis-like"的系统提示(实验性),`False` 使用标准提示。
* `languages`: 逗号分隔的语言列表(例如 `en, zh, fr`)。用于 TTS 语音选择(默认为第一个),并可以协助 LLM 路由器。为避免路由器效率低下,避免使用过多或非常相似的语言。
* **`[BROWSER]` 部分:**
* `headless_browser`: `True` 在没有可见窗口的情况下运行自动化浏览器(推荐用于 Web 界面或非交互式使用)。`False` 显示浏览器窗口(对于 CLI 模式或调试有用)。
* `stealth_mode`: `True` 启用使浏览器自动化更难检测的措施。可能需要手动安装浏览器扩展,如 anticaptcha。
- provider_name -> 使用的 provider(如:`ollama`、`server`、`lm-studio`、`deepseek-api`
本节总结了支持的 LLM 提供商类型。在 `config.ini` 中配置它们。
- provider_model -> 使用的模型,如 deepseek-r1:32b
**本地提供商(在您自己的硬件上运行):**
- provider_server_address -> 服务器地址,如 127.0.0.1:11434(本地),API 可随意
| config.ini 中的提供商名称 | `is_local` | 描述 | 设置部分 |
|-------------------------------|------------|-----------------------------------------------------------------------------|------------------------------------------------------------------|
| `ollama` | `True` | 使用 Ollama 轻松提供本地 LLM。 | [在您的机器上本地运行 LLM 的设置](#在您的机器上本地运行-llm-的设置) |
| `lm-studio` | `True` | 使用 LM-Studio 提供本地 LLM。 | [在您的机器上本地运行 LLM 的设置](#在您的机器上本地运行-llm-的设置) |
| `openai`(用于本地服务器) | `True` | 连接到暴露 OpenAI 兼容 API 的本地服务器(例如,llama.cpp)。 | [在您的机器上本地运行 LLM 的设置](#在您的机器上本地运行-llm-的设置) |
| `server` | `False` | 连接到在另一台机器上运行的 AgenticSeek 自托管 LLM 服务器。 | [在自己的服务器上运行 LLM 的设置](#在自己的服务器上运行-llm-的设置) |
- agent_name -> 代理名称,如 Friday,语音唤醒词
**API 提供商(基于云):**
- recover_last_session -> 是否恢复上次会话(True/False
| config.ini 中的提供商名称 | `is_local` | 描述 | 设置部分 |
|-------------------------------|------------|--------------------------------------------------|-----------------------------------------------------|
| `openai` | `False` | 使用 OpenAI 的官方 API(例如,GPT-3.5、GPT-4)。 | [使用 API 运行设置](#使用-api-运行设置) |
| `google` | `False` | 通过 API 使用 Google 的 Gemini 模型。 | [使用 API 运行设置](#使用-api-运行设置) |
| `deepseek` | `False` | 使用 Deepseek 的官方 API。 | [使用 API 运行设置](#使用-api-运行设置) |
| `huggingface` | `False` | 使用 Hugging Face Inference API。 | [使用 API 运行设置](#使用-api-运行设置) |
| `togetherAI` | `False` | 使用 TogetherAI 的 API 获取各种开放模型。 | [使用 API 运行设置](#使用-api-运行设置) |
- save_session -> 是否保存会话数据(True/False)
---
## 故障排除
- speak -> 是否启用语音输出(True/False
- listen -> 是否启用语音输入(True/False
- jarvis_personality -> 是否使用 JARVIS 风格(True/False),仅更换 prompt
- languages -> 支持语言列表,供 LLM 路由使用,建议不要太多或太相似
- headless_browser -> 是否无头浏览器(True/False
- stealth_mode -> 是否降低被检测概率,需手动安装 anticaptcha 扩展
- languages -> 支持语言列表,代理路由系统需用,列表越长下载模型越多
## Provider 列表
下表为可用 provider
| Provider | 本地? | 说明 |
|-----------|--------|----------------------------------------------------|
| ollama | 是 | 使用 ollama 本地运行 LLM |
| server | 是 | 在其他机器托管模型,本机调用 |
| lm-studio | 是 | 使用 LM studio 本地运行 LLMprovider_name 设为 lm-studio|
| openai | 视情况 | 使用 ChatGPT API(非私有)或 openai 兼容 API |
| deepseek-api | 否 | Deepseek API(非私有) |
| huggingface| 否 | Hugging-Face API(非私有) |
| togetherAI | 否 | 使用 together AI API(非私有) |
| google | 否 | 使用 google gemini API(非私有) |
选择 provider 时修改 config.ini
```
is_local = True
provider_name = ollama
provider_model = deepseek-r1:32b
provider_server_address = 127.0.0.1:5000
```
`is_local`:本地 LLM 设为 True,否则 False。
`provider_name`:选择 provider 名称,见上表。
`provider_model`:设置代理使用的模型。
`provider_server_address`:如非 server provider,可随意。
如果遇到问题,本节提供指导。
# 已知问题
## Chromedriver 问题
## ChromeDriver 问题
**已知错误 #1** *chromedriver 不匹配*
**错误示例:** `SessionNotCreatedException: Message: session not created: This version of ChromeDriver only supports Chrome version XXX`
### 根本原因
ChromeDriver 版本不兼容发生在:
1. 您安装的 ChromeDriver 版本与 Chrome 浏览器版本不匹配
2. 在 Docker 环境中,`undetected_chromedriver` 可能会下载自己的 ChromeDriver 版本,绕过挂载的二进制文件
### 解决步骤
#### 1. 检查您的 Chrome 版本
打开 Google Chrome → `设置 > 关于 Chrome` 查找您的版本(例如,"版本 134.0.6998.88"
#### 2. 下载匹配的 ChromeDriver
**对于 Chrome 115 及更新版本:** 使用 [Chrome for Testing API](https://googlechromelabs.github.io/chrome-for-testing/)
- 访问 Chrome for Testing 可用性仪表板
- 找到您的 Chrome 版本或最接近的可用匹配
- 为您的操作系统下载 ChromeDriverDocker 环境使用 Linux64
**对于旧版 Chrome** 使用 [旧版 ChromeDriver 下载](https://chromedriver.chromium.org/downloads)
![从 Chrome for Testing 下载 ChromeDriver](./media/chromedriver_readme.png)
#### 3. 安装 ChromeDriver(选择一种方法)
**方法 A:项目根目录(Docker 推荐)**
```bash
# 将下载的 chromedriver 二进制文件放在项目根目录
cp path/to/downloaded/chromedriver ./chromedriver
chmod +x ./chromedriver # 在 Linux/macOS 上使其可执行
```
**方法 B:系统 PATH**
```bash
# Linux/macOS
sudo mv chromedriver /usr/local/bin/
sudo chmod +x /usr/local/bin/chromedriver
# Windows:将 chromedriver.exe 放在 PATH 中的文件夹中
```
#### 4. 验证安装
```bash
# 测试 ChromeDriver 版本
./chromedriver --version
# 或者在 PATH 中:
chromedriver --version
```
### Docker 特定说明
⚠️ **Docker 用户重要:**
- Docker 卷挂载方法可能不适用于隐身模式(`undetected_chromedriver`
- **解决方案:** 将 ChromeDriver 放在项目根目录中作为 `./chromedriver`
- 应用程序将自动检测并使用此二进制文件
- 您应该在日志中看到:`"Using ChromeDriver from project root: ./chromedriver"`
### 故障排除提示
1. **仍然遇到版本不匹配?**
- 验证 ChromeDriver 是否可执行:`ls -la ./chromedriver`
- 检查 ChromeDriver 版本:`./chromedriver --version`
- 确保它与您的 Chrome 浏览器版本匹配
2. **Docker 容器问题?**
- 检查后端日志:`docker logs backend`
- 查找消息:`"Using ChromeDriver from project root"`
- 如果未找到,请验证文件是否存在且可执行
3. **Chrome for Testing 版本**
- 尽可能使用完全匹配的版本
- 对于版本 134.0.6998.88,使用 ChromeDriver 134.0.6998.165(最接近的可用版本)
- 主要版本号必须匹配(134 = 134)
### 版本兼容性矩阵
| Chrome 版本 | ChromeDriver 版本 | 状态 |
|----------------|---------------------|---------|
| 134.0.6998.x | 134.0.6998.165 | ✅ 可用 |
| 133.0.6943.x | 133.0.6943.141 | ✅ 可用 |
| 132.0.6834.x | 132.0.6834.159 | ✅ 可用 |
*有关最新兼容性,请查看 [Chrome for Testing 仪表板](https://googlechromelabs.github.io/chrome-for-testing/)*
`Exception: Failed to initialize browser: Message: session not created: This version of ChromeDriver only supports Chrome version 113
Current browser version is 134.0.6998.89 with binary path`
出现此问题是浏览器 chromedriver 版本不匹配。
如果您的浏览器 chromedriver 版本不匹配,会发生这种情况
下载最新版本:
您需要导航到下载最新版本:
https://developer.chrome.com/docs/chromedriver/downloads
如用 Chrome 115 及以上,访问
果您使用 Chrome 版本 115 或更新版本,请转到
https://googlechromelabs.github.io/chrome-for-testing/
下载与操作系统匹配的 chromedriver。
下载与您的操作系统匹配的 chromedriver 版本
![alt text](./media/chromedriver_readme.png)
本节不全请提交 issue
果此部分不完整,请提出问题
## 连接适配器问题
## 连接适配器问题
```
Exception: Provider lm-studio failed: HTTP request failed: No connection adapters were found for '127.0.0.1:11434/v1/chat/completions'
Exception: Provider lm-studio failed: HTTP request failed: No connection adapters were found for '127.0.0.1:1234/v1/chat/completions'`(注意:端口可能不同)
```
请确保 provider IP 前加 `http://`
* **原因:** `config.ini` 中 `lm-studio`(或其他类似的本地 OpenAI 兼容服务器)的 `provider_server_address` 缺少 `http://` 前缀或指向错误的端口。
* **解决方案:**
* 确保地址包含 `http://`。LM-Studio 通常默认为 `http://127.0.0.1:1234`。
* 正确的 `config.ini``provider_server_address = http://127.0.0.1:1234`(或您的实际 LM-Studio 服务器端口)。
`provider_server_address = http://127.0.0.1:11434`
## SearxNG base URL 必须提供
## SearxNG 基本 URL 未提供
```
raise ValueError("SearxNG base URL must be provided either as an argument or via the SEARXNG_BASE_URL environment variable.")
ValueError: SearxNG base URL must be provided either as an argument or via the SEARXNG_BASE_URL environment variable.
ValueError: SearxNG base URL must be provided either as an argument or via the SEARXNG_BASE_URL environment variable.`
```
可能未将 `.env.example` 重命名为 `.env`?也可导出 SEARXNG_BASE_URL
如果您使用错误的 searxng 基本 URL 运行 CLI 模式,可能会出现这种情况。
`export SEARXNG_BASE_URL="http://127.0.0.1:8080"`
SEARXNG_BASE_URL 应根据您是在 Docker 中运行还是在主机上运行而有所不同:
**在主机上运行**`SEARXNG_BASE_URL="http://localhost:8080"`
**完全在 Docker 中运行(Web 界面)**`SEARXNG_BASE_URL="http://searxng:8080"`
## FAQ
**Q: 需要什么硬件?**
**问:我需要什么硬件?**
| 模型规模 | GPU | 说明 |
|-----------|--------|----------------------------------------------------|
| 7B | 8GB 显存 | ⚠️ 不推荐。性能差,幻觉,规划代理易失败。 |
| 14B | 12GB 显存(如 RTX 3060 | ✅ 简单任务可用,网页浏览和规划任务可能吃力。|
| 32B | 24GB+ 显存(如 RTX 4090) | 🚀 大多数任务成功,复杂规划仍有难度。 |
| 70B+ | 48GB+ 显存(如 mac studio) | 💪 推荐,高级用例表现优异。 |
| 模型大小 | GPU | 评论 |
|-----------|--------|-----------------------------------------------------------|
| 7B | 8GB 显存 | ⚠️ 不推荐。性能差,频繁出现幻觉,规划代理可能会失败。 |
| 14B | 12 GB VRAM(例如 RTX 3060 | ✅ 可用于简单任务。可能在网页浏览和规划任务方面有困难。 |
| 32B | 24+ GB VRAM(例如 RTX 4090) | 🚀 大多数任务成功,可能仍然在任务规划方面有困难 |
| 70B+ | 48+ GB 显存 | 💪 优秀。推荐用于高级用例。 |
**Q: 为什么选 Deepseek R1**
**问:我遇到错误该怎么办**
Deepseek R1 在推理和工具调用方面表现优异。我们认为它非常适合本项目,其他模型也可用,但 Deepseek 是首选
确保本地正在运行(`ollama serve`),您的 `config.ini` 与您的提供商匹配,并且依赖项已安装。如果都不起作用,请随时提出问题
**Q: 运行 `cli.py` 报错怎么办?**
**问:它真的可以 100% 本地运行吗?**
确保本地服务(`ollama serve`)已启动,`config.ini` 配置正确,依赖已安装。如仍有问题欢迎提交 issue
是的,使用 Ollama、lm-studio 或服务器提供商,所有语音转文本、LLM 和文本转语音模型都在本地运行。非本地选项(OpenAI 或其他 API)是可选的
**Q: 真能 100% 本地运行吗**
**问:当我有 Manus 时,为什么应该使用 AgenticSeek**
是的,使用 Ollama、lm-studio 或 server provider 时,语音、LLM、语音转文本均本地运行。非本地(OpenAI 等 API)为可选
与 Manus 不同,AgenticSeek 优先考虑独立于外部系统,给您更多控制、隐私和避免 API 成本
**Q: 有 Manus 为什么还要用 AgenticSeek**
**问:谁是这个项目的幕后推手**
本项目起初只是兴趣驱动的副业。特别之处在于主打本地模型,避免 API
灵感来自 Jarvis 和 Friday(钢铁侠),功能上更接近 Manus,因为大家最想要的是本地 manus 替代品。
与 Manus 不同,AgenticSeek 更注重独立性、隐私和避免 API 成本
这个项目是由我创建的,还有两个朋友作为维护者和 GitHub 上开源社区的贡献者。我们只是一群充满热情的个人,不是初创公司,也不隶属于任何组织
X 上除了我的个人账户(https://x.com/Martin993886460)之外的任何 AgenticSeek 账户都是冒充的
## 贡献
我们欢迎开发者改进 AgenticSeek查看 open issues 或讨论
我们正在寻找开发人员来改进 AgenticSeek!查看开放的问题或讨论。
[贡献指南](./docs/CONTRIBUTING.md)
[![Star History Chart](https://api.star-history.com/svg?repos=Fosowl/agenticSeek&type=Date)](https://www.star-history.com/#Fosowl/agenticSeek&Date)
## 赞助商:
想要通过航班搜索、旅行规划或抢购最佳购物优惠等功能来提升 AgenticSeek 的能力?考虑使用 SerpApi 制作自定义工具,以解锁更多 Jarvis 般的功能。使用 SerpApi,您可以为专业任务加速您的代理,同时保持完全控制。
<a href="https://serpapi.com/"><img src="./media/banners/sponsor_banner_serpapi.png" height="350" alt="SerpApi Banner" ></a>
查看 [Contributing.md](./docs/CONTRIBUTING.md) 了解如何集成自定义工具!
### **赞助商**
- [tatra-labs](https://github.com/tatra-labs)
## 维护者:
@@ -538,9 +675,8 @@ Deepseek R1 在推理和工具调用方面表现优异。我们认为它非常
> [antoineVIVIES](https://github.com/antoineVIVIES) | 台北时间
> [steveh8758](https://github.com/steveh8758) | 台北时间
## 特别感谢:
> [tcsenpai](https://github.com/tcsenpai) 和 [plitc](https://github.com/plitc) 协助后端 docker 化
> [tcsenpai](https://github.com/tcsenpai) 和 [plitc](https://github.com/plitc) 协助后端 Docker 化
[![Star History Chart](https://api.star-history.com/svg?repos=Fosowl/agenticSeek&type=Date)](https://www.star-history.com/#Fosowl/agenticSeek&Date)