File: README.md
AgenticSeek: Private, Local Manus Alternative.
English | 中文 | 繁體中文 | Français | 日本語 | Português (Brasil) | Español | Türkçe
A 100% local alternative to Manus AI, this voice-enabled AI assistant autonomously browses the web, writes code, and plans tasks while keeping all data on your device. Tailored for local reasoning models, it runs entirely on your hardware, ensuring complete privacy and zero cloud dependency.
Why AgenticSeek ?
🔒 Fully Local & Private - Everything runs on your machine — no cloud, no data sharing. Your files, conversations, and searches stay private.
🌐 Smart Web Browsing - AgenticSeek can browse the internet by itself — search, read, extract info, fill web form — all hands-free.
💻 Autonomous Coding Assistant - Need code? It can write, debug, and run programs in Python, C, Go, Java, and more — all without supervision.
🧠 Smart Agent Selection - You ask, it figures out the best agent for the job automatically. Like having a team of experts ready to help.
📋 Plans & Executes Complex Tasks - From trip planning to complex projects — it can split big tasks into steps and get things done using multiple AI agents.
🎙️ Voice-Enabled - Clean, fast, futuristic voice and speech to text allowing you to talk to it like it's your personal AI from a sci-fi movie. (In progress)
**Demo**
Can you search for the agenticSeek project, learn what skills are required, then open the CV_candidates.zip and then tell me which match best the project
https://github.com/user-attachments/assets/b8ca60e9-7b3b-4533-840e-08f9ac426316
Disclaimer: This demo, including all the files that appear (e.g: CV_candidates.zip), are entirely fictional. We are not a corporation, we seek open-source contributors not candidates.
🙏 This project started as a side-project and has zero roadmap and zero funding. It's grown way beyond what I expected by ending in GitHub Trending. Contributions, feedback, and patience are deeply appreciated.
Prerequisites
Before you begin, ensure you have the following software installed:
- Git: For cloning the repository. Download Git
- Python 3.10.x: We strongly recommend using Python version 3.10.x. Using other versions might lead to dependency errors. Download Python 3.10 (pick a 3.10.x version).
- Docker Engine & Docker Compose: For running bundled services like SearxNG.
- Install Docker Desktop (which includes Docker Compose V2): Windows | Mac | Linux
- Alternatively, install Docker Engine and Docker Compose separately on Linux: Docker Engine | Docker Compose (ensure you install Compose V2, e.g.,
sudo apt-get install docker-compose-plugin).
1. **Clone the repository and setup**
git clone https://github.com/Fosowl/agenticSeek.git
cd agenticSeek
mv .env.example .env2. Change the .env file content
SEARXNG_BASE_URL="http://searxng:8080" # value depends on where the backend runs — see the SEARXNG note below
SEARXNG_PORT=8080
REDIS_BASE_URL="redis://redis:6379/0"
WORK_DIR="/Users/mlg/Documents/workspace_for_ai"
OLLAMA_PORT="11434"
LM_STUDIO_PORT="1234"
CUSTOM_ADDITIONAL_LLM_PORT="11435"
OPENAI_API_KEY='optional'
DEEPSEEK_API_KEY='optional'
OPENROUTER_API_KEY='optional'
TOGETHER_API_KEY='optional'
GOOGLE_API_KEY='optional'
ANTHROPIC_API_KEY='optional'Update the .env file with your own values as needed:
- SEARXNG_PORT: The host port Docker publishes SearXNG on. If port
8080is already taken on your machine, set another one (e.g.8001). Inside Docker the container always listens on8080— this variable never changes that. - SEARXNG_BASE_URL: The address the backend uses to reach SearXNG. It is set here in
.env(not inconfig.ini) and depends only on where the backend runs:
| How you run AgenticSeek | SEARXNG_BASE_URL |
|---|---|
Web interface — backend in Docker (./start_services.sh full) |
http://searxng:8080 — always port 8080, even if you changed SEARXNG_PORT |
CLI mode — backend on host (uv run cli.py) |
http://localhost:8080 — if you changed SEARXNG_PORT, use that port instead (e.g. http://localhost:8001). http://searxng:... does not work here: that hostname only exists inside Docker |
To check SearXNG in a browser, always use the host port:
http://localhost:<SEARXNG_PORT>. After changing.env, restart the backend — the file is only read at process start.
- REDIS_BASE_URL: Leave unchanged
- WORK_DIR: Path to your working directory on your local machine. AgenticSeek will be able to read and interact with these files.
- OLLAMA_PORT: Port number for the Ollama service.
- LM_STUDIO_PORT: Port number for the LM Studio service.
- CUSTOM_ADDITIONAL_LLM_PORT: Port for any additional custom LLM service.
API Key are totally optional for user who choose to run LLM locally. Which is the primary purpose of this project. Leave empty if you have sufficient hardware
3. **Start Docker**
Make sure Docker is installed and running on your system. You can start Docker using the following commands:
On Linux/macOS:
Open a terminal and run:shsudo systemctl start dockerOr launch Docker Desktop from your applications menu if installed.
On Windows:
Start Docker Desktop from the Start menu.
You can verify Docker is running by executing:
docker infoIf you see information about your Docker installation, it is running correctly.
See the table of Local Providers below for a summary.
Next step: Run AgenticSeek locally
See the Troubleshooting section if you are having issues.
If your hardware can't run LLMs locally, see Setup to run with an API.
For detailed config.ini explanations, see Config Section.
Setup for running LLM locally on your machine
Hardware Requirements:
To run LLMs locally, you'll need sufficient hardware. At a minimum, a GPU capable of running Magistral, Qwen or Deepseek 14B is required. See the FAQ for detailed model/performance recommendations.
Setup your local provider
Start your local provider (for example with ollama):
Unless you wish to to run AgenticSeek on host (CLI mode), export or set the provider listen address:
export OLLAMA_HOST=0.0.0.0:11434Then, start you provider:
ollama serveSee below for a list of local supported provider.
Update the config.ini
Change the config.ini file to set the provider_name to a supported provider and provider_model to a LLM supported by your provider. We recommend reasoning model such as Magistral or Deepseek.
See the FAQ at the end of the README for required hardware.
[MAIN]
is_local = True # Whenever you are running locally or with remote provider.
provider_name = ollama # or lm-studio, openai, etc..
provider_model = deepseek-r1:14b # choose a model that fit your hardware
provider_server_address = 127.0.0.1:11434
agent_name = Jarvis # name of your AI
recover_last_session = True # whenever to recover the previous session
save_session = True # whenever to remember the current session
speak = False # text to speech
listen = False # Speech to text, only for CLI, experimental
jarvis_personality = False # Whenever to use a more "Jarvis" like personality (experimental)
languages = en zh # The list of languages, Text to speech will default to the first language on the list
[BROWSER]
headless_browser = True # leave unchanged unless using CLI on host.
stealth_mode = True # Use undetected selenium to reduce browser detectionWarning:
The
config.inifile format does not support comments.
Do not copy and paste the example configuration directly, as comments will cause errors. Instead, manually modify theconfig.inifile with your desired settings, excluding any comments.Do NOT set provider_name to
openaiif using LM-studio for running LLMs. Set it tolm-studio.Some provider (eg: lm-studio) require you to have
http://in front of the IP. For examplehttp://127.0.0.1:1234
List of local providers
| Provider | Local? | Description |
|---|---|---|
| ollama | Yes | Run LLMs locally with ease using ollama as a LLM provider |
| lm-studio | Yes | Run LLM locally with LM studio (set provider_name to lm-studio) |
| openai | Yes | Use openai compatible API (eg: llama.cpp server) |
Next step: Start services and run AgenticSeek
See the Troubleshooting section if you are having issues.
If your hardware can't run LLMs locally, see Setup to run with an API.
For detailed config.ini explanations, see Config Section.
Setup to run with an API
This setup uses external, cloud-based LLM providers. You'll need an API key from your chosen service.
1. Choose an API Provider and Get an API Key:
Refer to the List of API Providers below. Visit their websites to sign up and obtain an API key.
2. Set Your API Key as an Environment Variable:
Linux/macOS:
Open your terminal and use theexportcommand. It's best to add this to your shell's profile file (e.g.,~/.bashrc,~/.zshrc) for persistence.shexport PROVIDER_API_KEY="your_api_key_here" # Replace PROVIDER_API_KEY with the specific variable name, e.g., OPENAI_API_KEY, GOOGLE_API_KEYExample for TogetherAI:
shexport TOGETHER_API_KEY="xxxxxxxxxxxxxxxxxxxxxx"Windows:
- Command Prompt (Temporary for current session):cmd
set PROVIDER_API_KEY=your_api_key_here - PowerShell (Temporary for current session):powershell
$env:PROVIDER_API_KEY="your_api_key_here" - Permanently: Search for "environment variables" in the Windows search bar, click "Edit the system environment variables," then click the "Environment Variables..." button. Add a new User variable with the appropriate name (e.g.,
OPENAI_API_KEY) and your key as the value.
(See FAQ: How do I set API keys? for more details).
- Command Prompt (Temporary for current session):
3. Update config.ini:
[MAIN]
is_local = False
provider_name = openai # Or google, deepseek, togetherAI, huggingface
provider_model = gpt-3.5-turbo # Or gemini-1.5-flash, deepseek-chat, mistralai/Mixtral-8x7B-Instruct-v0.1 etc.
provider_server_address = # Typically ignored or can be left blank when is_local = False for most APIs
# ... other settings ...Warning: Make sure there are no trailing spaces in the config.ini values.
List of API Providers
| Provider | provider_name |
Local? | Description | API Key Link (Examples) |
|---|---|---|---|---|
| OpenAI | openai |
No | Use ChatGPT models via OpenAI's API. | platform.openai.com/signup |
| Google Gemini | google |
No | Use Google Gemini models via Google AI Studio. | aistudio.google.com/keys |
| Deepseek | deepseek |
No | Use Deepseek models via their API. | platform.deepseek.com |
| Hugging Face | huggingface |
No | Use models from Hugging Face Inference API. | huggingface.co/settings/tokens |
| TogetherAI | togetherAI |
No | Use various open-source models via TogetherAI API. | api.together.ai/settings/api-keys |
| OpenRouter | openrouter |
No | Use OpenRouter Models | https://openrouter.ai/ |
| MiniMax | minimax |
No | Use MiniMax models (e.g., MiniMax-M3, MiniMax-M2.7). | platform.minimax.io |
Note:
- We advise against using
gpt-4oor other OpenAI models for complex web browsing and task planning as current prompt optimizations are geared towards models like Deepseek. - Coding/bash tasks might encounter issues with Gemini, as it may not strictly follow formatting prompts optimized for Deepseek.
- The
provider_server_addressinconfig.iniis generally not used whenis_local = Falseas the API endpoint is usually hardcoded in the respective provider's library.
Next step: Start services and run AgenticSeek
See the Known issues section if you are having issues
See the Config section for detailed config file explanation.
Start services and Run
By default AgenticSeek is run fully in docker.
Option 1: Run in Docker, use web interface:
Start required services. This will start all services from the docker-compose.yml, including:
- searxng
- redis (required by searxng)
- frontend
- backend (if using full when using the web interface)
./start_services.sh full # MacOS
start start_services.cmd full # WindowWarning: This step will download and load all Docker images, which may take up to 30 minutes. After starting the services, please wait until the backend service is fully running (you should see backend: "GET /health HTTP/1.1" 200 OK in the log) before sending any messages. The backend services might take 5 minute to start on first run.
Go to http://localhost:3000/ and you should see the web interface.
Troubleshooting service start: If these scripts fail, ensure Docker Engine is running and Docker Compose (V2, docker compose) is correctly installed. Check the output in the terminal for error messages. See FAQ: Help! I get an error when running AgenticSeek or its scripts.
Option 2: CLI mode:
To run with CLI interface you would have to install package on host:
./install.sh
./install.bat # windowsThen you must change SEARXNG_BASE_URL in your .env file (not config.ini) to the host-mapped address, because in CLI mode the backend runs on your machine, outside Docker:
SEARXNG_BASE_URL="http://localhost:8080"If you changed
SEARXNG_PORTin.env, use that port here instead (e.g.http://localhost:8001). Restartcli.pyafter editing.env— the value is read at startup.
Start required services. This will start some services from the docker-compose.yml, including:
- searxng
- redis (required by searxng)
- frontend
./start_services.sh # MacOS
start start_services.cmd # WindowRun: uv run: uv run python -m ensurepip to ensure uv has pip enabled.
Use the CLI: uv run cli.py
Usage
Make sure the services are up and running with ./start_services.sh full and go to localhost:3000 for web interface.
You can also use speech to text by setting listen = True in the config. Only for CLI mode.
To exit, simply say/type goodbye.
Here are some example usage:
Make a snake game in python!
Search the web for top cafes in Rennes, France, and save a list of three with their addresses in rennes_cafes.txt.
Write a Go program to calculate the factorial of a number, save it as factorial.go in your workspace
Search my summer_pictures folder for all JPG files, rename them with today’s date, and save a list of renamed files in photos_list.txt
Search online for popular sci-fi movies from 2024 and pick three to watch tonight. Save the list in movie_night.txt.
Search the web for the latest AI news articles from 2025, select three, and write a Python script to scrape their titles and summaries. Save the script as news_scraper.py and the summaries in ai_news.txt in /home/projects
Friday, search the web for a free stock price API, register with [email protected] then write a Python script to fetch using the API daily prices for Tesla, and save the results in stock_prices.csv
Note that form filling capabilities are still experimental and might fail.
After you type your query, AgenticSeek will allocate the best agent for the task.
Because this is an early prototype, the agent routing system might not always allocate the right agent based on your query.
Therefore, you should be very explicit in what you want and how the AI might proceed for example if you want it to conduct a web search, do not say:
Do you know some good countries for solo-travel?
Instead, ask:
Do a web search and find out which are the best country for solo-travel
**Setup to run the LLM on your own server**
If you have a powerful computer or a server that you can use, but you want to use it from your laptop, you can run the LLM on the remote machine with a standard LLM server (Ollama, or any OpenAI-compatible server such as llama.cpp's llama-server) and point AgenticSeek at it over the network. No AgenticSeek-specific code needs to run on the server.
On your "server" that will run the AI model, get the ip address
ip a | grep "inet " | grep -v 127.0.0.1 | awk '{print $2}' | cut -d/ -f1 # local ip
curl https://ipinfo.io/ip # public ipNote: For Windows or macOS, use ipconfig or ifconfig respectively to find the IP address.
Option 1: Ollama (recommended)
On the server, install Ollama, start it so it accepts connections from your network, and pull your model:
OLLAMA_HOST=0.0.0.0 ollama serve
ollama pull deepseek-r1:14bOn your personal computer, change config.ini:
[MAIN]
is_local = False
provider_name = ollama
provider_model = deepseek-r1:14b
provider_server_address = x.x.x.x:11434is_local must be False here: with True, AgenticSeek looks for Ollama on the machine it runs on and ignores the address.
Option 2: llama.cpp or any other OpenAI-compatible server
On the server, start llama.cpp's llama-server with your GGUF model (LM-Studio, vLLM or any other server exposing an OpenAI-compatible API works the same way):
llama-server -m your-model.gguf --host 0.0.0.0 --port 8080On your personal computer, use the lm-studio provider — it speaks the plain OpenAI-compatible /v1/chat/completions API without requiring an API key:
[MAIN]
is_local = False
provider_name = lm-studio
provider_model = your-model
provider_server_address = http://x.x.x.x:8080Legacy: custom AgenticSeek LLM server (deprecated)
Earlier versions shipped a custom Flask-based wrapper in llm_server/, used with provider_name = server. It is deprecated: it handles one request at a time, does not stream, offers no authentication, and the standard servers above do everything it did. It remains in the repository only for existing setups and may be removed in a future release.
Next step: Start services and run AgenticSeek
Speech to Text
Warning: speech to text only work in CLI mode at the moment.
Please note that currently speech to text only work in english.
The speech-to-text functionality is disabled by default. To enable it, set the listen option to True in the config.ini file:
listen = TrueWhen enabled, the speech-to-text feature listens for a trigger keyword, which is the agent's name, before it begins processing your input. You can customize the agent's name by updating the agent_name value in the config.ini file:
agent_name = FridayFor optimal recognition, we recommend using a common English name like "John" or "Emma" as the agent name
Once you see the transcript start to appear, say the agent's name aloud to wake it up (e.g., "Friday").
Speak your query clearly.
End your request with a confirmation phrase to signal the system to proceed. Examples of confirmation phrases include:
"do it", "go ahead", "execute", "run", "start", "thanks", "would ya", "please", "okay?", "proceed", "continue", "go on", "do that", "go it", "do you understand?"Config
Example config:
[MAIN]
is_local = True
provider_name = ollama
provider_model = deepseek-r1:32b
provider_server_address = http://127.0.0.1:11434 # Example for Ollama; use http://127.0.0.1:1234 for LM-Studio
agent_name = Friday
recover_last_session = False
save_session = False
speak = False
listen = False
jarvis_personality = False
languages = en zh # List of languages for TTS and potentially routing.
[BROWSER]
headless_browser = False
stealth_mode = FalseExplanation of config.ini Settings:
[MAIN]Section:is_local:Trueif using a local LLM provider (Ollama, LM-Studio, local OpenAI-compatible server) or the self-hosted server option.Falseif using a cloud-based API (OpenAI, Google, etc.).provider_name: Specifies the LLM provider.- Local options:
ollama,lm-studio,openai(for local OpenAI-compatible servers).serveris deprecated — see Setup to run the LLM on your own server. - API options:
openai,google,deepseek,huggingface,togetherAI.
- Local options:
provider_model: The specific model name or ID for the chosen provider (e.g.,deepseekcoder:6.7bfor Ollama,gpt-3.5-turbofor OpenAI API,mistralai/Mixtral-8x7B-Instruct-v0.1for TogetherAI).provider_server_address: The address of your LLM provider.- For local providers: e.g.,
http://127.0.0.1:11434for Ollama,http://127.0.0.1:1234for LM-Studio. - For an LLM server on another machine: e.g.,
x.x.x.x:11434for remote Ollama,http://x.x.x.x:8080for a remote OpenAI-compatible server (see Setup to run the LLM on your own server). - For cloud APIs (
is_local = False): This is often ignored or can be left blank, as the API endpoint is usually handled by the client library.
- For local providers: e.g.,
agent_name: Name of the AI assistant (e.g., Friday). Used as a trigger word for speech-to-text if enabled.recover_last_session:Trueto attempt to restore the previous session's state,Falseto start fresh.save_session:Trueto save the current session's state for potential recovery,Falseotherwise.speak:Trueto enable text-to-speech voice output,Falseto disable.listen:Trueto enable speech-to-text voice input (CLI mode only),Falseto disable.work_dir: Crucial: The directory where AgenticSeek will read/write files. Ensure this path is valid and accessible on your system.jarvis_personality:Trueto use a more "Jarvis-like" system prompt (experimental),Falsefor the standard prompt.languages: A comma-separated list of languages (e.g.,en, zh, fr). Used for TTS voice selection (defaults to the first) and can assist the LLM router. Avoid too many or very similar languages for router efficiency.
[BROWSER]Section:headless_browser:Trueto run the automated browser without a visible window (recommended for web interface or non-interactive use).Falseto show the browser window (useful for CLI mode or debugging).stealth_mode:Trueto enable measures to make browser automation harder to detect. May require manual installation of browser extensions like anticaptcha.
This section summarizes the supported LLM provider types. Configure them in config.ini.
Local Providers (Run on Your Own Hardware):
Provider Name in config.ini |
is_local |
Description | Setup Section |
|---|---|---|---|
ollama |
True |
Use Ollama to serve local LLMs. | Setup for running LLM locally |
lm-studio |
True |
Use LM-Studio to serve local LLMs. | Setup for running LLM locally |
openai (for local server) |
True |
Connect to a local server that exposes an OpenAI-compatible API (e.g., llama.cpp). | Setup for running LLM locally |
server (deprecated) |
False |
Legacy AgenticSeek self-hosted LLM server. Use remote Ollama or an OpenAI-compatible server instead. | Setup to run the LLM on your own server |
API Providers (Cloud-Based):
Provider Name in config.ini |
is_local |
Description | Setup Section |
|---|---|---|---|
openai |
False |
Use OpenAI's official API (e.g., GPT-3.5, GPT-4). | Setup to run with an API |
google |
False |
Use Google's Gemini models via API. | Setup to run with an API |
deepseek |
False |
Use Deepseek's official API. | Setup to run with an API |
huggingface |
False |
Use Hugging Face Inference API. | Setup to run with an API |
togetherAI |
False |
Use TogetherAI's API for various open models. | Setup to run with an API |
Troubleshooting
If you encounter issues, this section provides guidance.
Known Issues
ChromeDriver Issues
Error Example: SessionNotCreatedException: Message: session not created: This version of ChromeDriver only supports Chrome version XXX
Root Cause
ChromeDriver version incompatibility occurs when:
- Your installed ChromeDriver version doesn't match your Chrome browser version
- In Docker environments,
undetected_chromedrivermay download its own ChromeDriver version, bypassing the mounted binary
Solution Steps
1. Check Your Chrome Version
Open Google Chrome → Settings > About Chrome to find your version (e.g., "Version 134.0.6998.88")
2. Download Matching ChromeDriver
For Chrome 115 and newer: Use the Chrome for Testing API
- Visit the Chrome for Testing availability dashboard
- Find your Chrome version or the closest available match
- Download the ChromeDriver for your OS (Linux64 for Docker environments)
For older Chrome versions: Use the legacy ChromeDriver downloads
3. Install ChromeDriver (Choose One Method)
Method A: Project Root Directory (Recommended for Docker)
# Place the downloaded chromedriver binary in your project root
cp path/to/downloaded/chromedriver ./chromedriver
chmod +x ./chromedriver # Make executable on Linux/macOSMethod B: System PATH
# Linux/macOS
sudo mv chromedriver /usr/local/bin/
sudo chmod +x /usr/local/bin/chromedriver
# Windows: Place chromedriver.exe in a folder that's in your PATH4. Verify Installation
# Test the ChromeDriver version
./chromedriver --version
# OR if in PATH:
chromedriver --versionDocker-Specific Notes
⚠️ Important for Docker Users:
- The Docker volume mount approach may not work with stealth mode (
undetected_chromedriver) - Solution: Place ChromeDriver in the project root directory as
./chromedriver - The application will automatically detect and use this binary
- You should see:
"Using ChromeDriver from project root: ./chromedriver"in the logs
Troubleshooting Tips
Still getting version mismatch?
- Verify the ChromeDriver is executable:
ls -la ./chromedriver - Check the ChromeDriver version:
./chromedriver --version - Ensure it matches your Chrome browser version
- Verify the ChromeDriver is executable:
Docker container issues?
- Check backend logs:
docker logs backend - Look for the message:
"Using ChromeDriver from project root" - If not found, verify the file exists and is executable
- Check backend logs:
Chrome for Testing versions
- Use the exact version match when possible
- For version 134.0.6998.88, use ChromeDriver 134.0.6998.165 (closest available)
- Major version numbers must match (134 = 134)
Version Compatibility Matrix
| Chrome Version | ChromeDriver Version | Status |
|---|---|---|
| 134.0.6998.x | 134.0.6998.165 | ✅ Works |
| 133.0.6943.x | 133.0.6943.141 | ✅ Works |
| 132.0.6834.x | 132.0.6834.159 | ✅ Works |
For the latest compatibility, check the Chrome for Testing dashboard
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
This happen if there is a mismatch between your browser and chromedriver version.
You need to navigate to download the latest version:
https://developer.chrome.com/docs/chromedriver/downloads
If you're using Chrome version 115 or newer go to:
https://googlechromelabs.github.io/chrome-for-testing/
And download the chromedriver version matching your OS.
If this section is incomplete please raise an issue.
Ollama connection failed from Docker backend
An error occurred: Provider ollama failed:
Ollama connection failed at http://host.docker.internal:11434. Check if the server is running.The frontend shows Error: Unable to get a response. and the backend returns HTTP 500 on /query.
Cause: When AgenticSeek runs in Docker, the backend reaches your host's Ollama via
host.docker.internal. Only the port ofprovider_server_addressis used in Docker mode; the host part is replaced byDOCKER_INTERNAL_URLfrom.env. So the failure is not a config typo — it's that Ollama on the host is only bound to127.0.0.1:11434and refuses connections coming in over the Docker bridge.Do NOT change
provider_server_address = 127.0.0.1:11434inconfig.ini— the host portion is ignored inside the container.Solution: Bind Ollama to all interfaces by setting
OLLAMA_HOST=0.0.0.0:11434on the host:Manual
ollama serve:bashOLLAMA_HOST=0.0.0.0:11434 ollama serveDefinitive solution:
systemd (Linux):
bashsudo systemctl edit ollamaAdd:
text[Service] Environment="OLLAMA_HOST=0.0.0.0:11434"Then:
bashsudo systemctl daemon-reload sudo systemctl restart ollamamacOS (Ollama.app):
bashlaunchctl setenv OLLAMA_HOST "0.0.0.0:11434"Then quit and relaunch the Ollama app.
Verify from inside the backend container:
bashdocker compose exec backend curl -sS http://host.docker.internal:11434/api/tagsYou should get a JSON list of models.
Linux-only caveat:
host.docker.internalonly resolves inside the container if docker-compose maps it. Make sure the backend service indocker-compose.ymlincludes:yamlextra_hosts: - "host.docker.internal:host-gateway"On Docker Desktop (macOS / Windows) this works out of the box.
Firewall: if
ufw/firewalldis active, allow the Docker bridge to reach 11434:bashsudo ufw allow from 172.16.0.0/12 to any port 11434
connection adapters Issues
Exception: Provider lm-studio failed: HTTP request failed: No connection adapters were found for '127.0.0.1:1234/v1/chat/completions'` (Note: port may vary)- Cause: The
provider_server_addressinconfig.iniforlm-studio(or other similar local OpenAI-compatible servers) is missing thehttp://prefix or is pointing to the wrong port. - Solution:
- Ensure the address includes
http://. LM-Studio typically defaults tohttp://127.0.0.1:1234. - Correct
config.ini:provider_server_address = http://127.0.0.1:1234(or your actual LM-Studio server port).
- Ensure the address includes
SearxNG Base URL Not Provided
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.`This might arise if you are running the CLI mode with the wrong base url for searxng.
SEARXNG_BASE_URL is set in .env and depends only on where the backend runs:
Backend on host (CLI mode): SEARXNG_BASE_URL="http://localhost:8080" — if you changed SEARXNG_PORT, use that port instead (e.g. http://localhost:8001). http://searxng:... does not work here: that hostname only resolves inside Docker.
Backend in Docker (web interface, full profile): SEARXNG_BASE_URL="http://searxng:8080" — always port 8080, even if you changed SEARXNG_PORT; that variable only remaps the host side.
Note on port conflicts: If port
8080is already in use on your host, setSEARXNG_PORT(e.g.8001) in.env, then:
- Web interface (backend in Docker): keep
SEARXNG_BASE_URL="http://searxng:8080"— the internal Docker port does not change.- CLI mode (backend on host): set
SEARXNG_BASE_URL="http://localhost:8001"— it must matchSEARXNG_PORT.- Browser checks: open
http://localhost:<SEARXNG_PORT>— whatever answers on the old port8080is some other application, not AgenticSeek's SearXNG.After changing
.env, restart the backend (api.pyorcli.py) — the file is only read at process start.
FAQ
Q: What hardware do I need?
| Model Size | GPU | Comment |
|---|---|---|
| 7B | 8GB Vram | ⚠️ Not recommended. Performance is poor, frequent hallucinations, and planner agents will likely fail. |
| 14B | 12 GB VRAM (e.g. RTX 3060) | ✅ Usable for simple tasks. May struggle with web browsing and planning tasks. |
| 32B | 24+ GB VRAM (e.g. RTX 4090) | 🚀 Success with most tasks, might still struggle with task planning |
| 70B+ | 48+ GB Vram | 💪 Excellent. Recommended for advanced use cases. |
Q: I get an error what do I do?
Ensure local is running (ollama serve), your config.ini matches your provider, and dependencies are installed. If none work feel free to raise an issue.
Q: Can it really run 100% locally?
Yes with Ollama, lm-studio or server providers, all speech to text, LLM and text to speech model run locally. Non-local options (OpenAI or others API) are optional.
Q: Why should I use AgenticSeek when I have Manus?
Unlike Manus, AgenticSeek prioritizes independence from external systems, giving you more control, privacy and avoid api cost.
Q: Who is behind the project ?
The project was created by me, along with two friends who serve as maintainers and contributors from the open-source community on GitHub. We’re just a group of passionate individuals, not a startup or affiliated with any organization.
Any AgenticSeek account on X other than my personal account (https://x.com/Martin993886460) is an impersonation.
Contribute
We’re looking for developers to improve AgenticSeek! Check out open issues or discussion.
Sponsors:
MangoProxy
Mango Proxy provides residential, ISP, mobile, and datacenter proxies that can be used with agenticSeek when websites require IP rotation or additional network flexibility. This can help reduce anti-bot challenges, improve reliability across different targets, and support large-scale web automation workflows.
Use promo code FOSOWL to get 8% off Static ISP Proxies.
SerpAPI
Want to level up AgenticSeek capabilities with features like flight search, trip planning, or snagging the best shopping deals? Consider crafting a custom tool with SerpApi to unlock more Jarvis-like capabilities. With SerpApi, you can turbocharge your agent for specialized tasks while staying in full control.
See Contributing.md to learn how to integrate custom tools!
Maintainers:
Fosowl | Paris Time
Special Thanks:
File: docs/CODE_OF_CONDUCT.md
Contributor Covenant Code of Conduct
Our Pledge
We as members, contributors, and leaders pledge to make participation in our
community a harassment-free experience for everyone, regardless of age, body
size, visible or invisible disability, ethnicity, sex characteristics, gender
identity and expression, level of experience, education, socio-economic status,
nationality, personal appearance, race, caste, color, religion, or sexual
identity and orientation.
We pledge to act and interact in ways that contribute to an open, welcoming,
diverse, inclusive, and healthy community.
Our Standards
Examples of behavior that contributes to a positive environment for our
community include:
- Demonstrating empathy and kindness toward other people
- Being respectful of differing opinions, viewpoints, and experiences
- Giving and gracefully accepting constructive feedback
- Accepting responsibility and apologizing to those affected by our mistakes,
and learning from the experience - Focusing on what is best not just for us as individuals, but for the overall
community
Examples of unacceptable behavior include:
- The use of sexualized language or imagery, and sexual attention or advances of
any kind - Trolling, insulting or derogatory comments, and personal or political attacks
- Public or private harassment
- Publishing others' private information, such as a physical or email address,
without their explicit permission - Other conduct which could reasonably be considered inappropriate in a
professional setting
Enforcement Responsibilities
Community leaders are responsible for clarifying and enforcing our standards of
acceptable behavior and will take appropriate and fair corrective action in
response to any behavior that they deem inappropriate, threatening, offensive,
or harmful.
Community leaders have the right and responsibility to remove, edit, or reject
comments, commits, code, wiki edits, issues, and other contributions that are
not aligned to this Code of Conduct, and will communicate reasons for moderation
decisions when appropriate.
Scope
This Code of Conduct applies within all community spaces, and also applies when
an individual is officially representing the community in public spaces.
Examples of representing our community include using an official email address,
posting via an official social media account, or acting as an appointed
representative at an online or offline event.
Enforcement
Instances of abusive, harassing, or otherwise unacceptable behavior may be
reported to the community leaders responsible for enforcement:
you need to send a private message to fossowl or mow8758 on discord.
All complaints will be reviewed and investigated promptly and fairly.
All community leaders are obligated to respect the privacy and security of the
reporter of any incident.
Enforcement Guidelines
Community leaders will follow these Community Impact Guidelines in determining
the consequences for any action they deem in violation of this Code of Conduct:
1. Correction
Community Impact: Use of inappropriate language or other behavior deemed
unprofessional or unwelcome in the community.
Consequence: A private, written warning from community leaders, providing
clarity around the nature of the violation and an explanation of why the
behavior was inappropriate. A public apology may be requested.
2. Warning
Community Impact: A violation through a single incident or series of
actions.
Consequence: A warning with consequences for continued behavior. No
interaction with the people involved, including unsolicited interaction with
those enforcing the Code of Conduct, for a specified period of time. This
includes avoiding interactions in community spaces as well as external channels
like social media. Violating these terms may lead to a temporary or permanent
ban.
3. Temporary Ban
Community Impact: A serious violation of community standards, including
sustained inappropriate behavior.
Consequence: A temporary ban from any sort of interaction or public
communication with the community for a specified period of time. No public or
private interaction with the people involved, including unsolicited interaction
with those enforcing the Code of Conduct, is allowed during this period.
Violating these terms may lead to a permanent ban.
4. Permanent Ban
Community Impact: Demonstrating a pattern of violation of community
standards, including sustained inappropriate behavior, harassment of an
individual, or aggression toward or disparagement of classes of individuals.
Consequence: A permanent ban from any sort of public interaction within the
community.
Attribution
This Code of Conduct is adapted from the Contributor Covenant,
version 2.1, available at
https://www.contributor-covenant.org/version/2/1/code_of_conduct.html.
Community Impact Guidelines were inspired by
Mozilla's code of conduct enforcement ladder.
For answers to common questions about this code of conduct, see the FAQ at
https://www.contributor-covenant.org/faq. Translations are available at
https://www.contributor-covenant.org/translations.
File: docs/CONTRIBUTING.md
Contributors guide
Prerequisites
- Python 3.10 or higher.
- Docker or Orbstack or Podman.
- Ollama with some deepseek-r1 variant installed or similar local reasoning model.
- Basic familiarity with Python and AI models.
- Join the discord (optional): https://discord.gg/8hGDaME3TC
Contribution Guidelines
We welcome contributions in the following areas:
- Code Improvements: Optimize existing code, fix bugs, or add new features.
- Documentation: Improve the README, write tutorials, or add inline comments.
- Testing: Write unit tests, integration tests, or help with debugging.
- New Features: Implement new tools, agents, or integrations.
Steps to Contribute
Fork the project to your GitHub account.
Create a Branch:
git checkout -b feature/your-feature-nameMake Your Changes.
Write your code, add documentation, or fix bugs.
Test Your Changes.
Ensure your changes work as expected and do not break existing functionality.
Push your changes to your fork and submit a pull request to the main branch of this repository. Provide a clear description of your changes and reference any related issues.
Good practice
Privacy First, Always Local
- All core functionality must be able to run 100% locally
- Cloud services should only be optional alternatives, clearly defined with a warning message.
- remote APIs are only allowed for specific tools (weather api, MCP, flight search, etc...)
- User data privacy is non-negotiable
Agent-Based Architecture
- Each agent should have a clear, single responsibility
- Agents should be modular and independently testable
- New agents should solve specific use cases
Tool-Based Extensibility
- Tools should be self-contained and follow the Tools base class
- Each tool should do one thing well
- Tools should provide clear feedback on success/failure
User Experience
- Provide meaningful feedback for all operations
- Support multiple languages
- Text to speech with short response.
- Keep responses concise
Code Quality
- Write clear, self-documenting code
- Include type hints and docstrings
- Follow existing patterns in the codebase
- Add a if name == "main" at the bottom of each class file for individual testing.
- Ideally had automated tests.
Error Handling
- Fail gracefully with meaningful messages
- Include recovery mechanisms where possible
- Log errors appropriately without exposing sensitive data
Areas Needing Help
Here are some tasks and areas where we need contributions:
- Web Browsing: Improve the autonomous web browsing capabilities for the assistant.
- Graphical interface, a web graphical interface. (please ask first)
- Multi-Agent System: Enhance the planner agent for divide and conqueer for task (please ask first).
- New Tools: Add support for additional programming languages or APIs.
- MCP: Add MCP protocol compatibility (possibly as a special type tool).
- Multi-language support: for Text to speech & speech to text
- Prompt engineering: improve prompts, compare results with different prompts for a identical query. Iterate until you find better prompt.
- Bug hunt: Hunt and fix bugs.
- Crossplatform: enhance cross-platform support.
- Testing: Write comprehensive tests for existing features.
Implementing and using Tools
Tools are extensions that enable agents to perform specific actions, such as running Python code, making API calls, or conducting web searches. All tools inherit from the Tools base class, which provides methods for parsing and executing tool instructions.
Understand Tools parsing
Agents invoke tools using a standardized format called a block. A block consists of the tool name followed by the content (e.g., code, query, or parameters) to execute. When creating a prompt for an Agent, you must explicitly tell them to use this format.
The format looks like this:
BECAUSE WE USE MARKDOWN QUOTE FORMAT, READING WILL BE BROKEN ON GITHUB PLEASE START READING THE FILE AS RAW: https://raw.githubusercontent.com/Fosowl/agenticSeek/refs/heads/dev/docs/CONTRIBUTING.md
<code or query to execute>Or:
What to do in Taipei?we call these "blocks".
The Tools class provides the load_exec_block method to extract and parse blocks from an agent's response. This method identifies the tool name and content, enabling the system to execute the appropriate action.
How to handle multiple arguments then ?
Good question! Each tool is free to handle argument in it's own way within the block, but we provide a common parsing logic:
from=Paris
to=ToulouseTo extract these parameters, use the get_parameter_value method provided by the Tools class. Each tool can define its own parameter-handling logic, but the Tools class ensures consistent parsing.
Again if a tool need a specific format, you could implement a specific method for parsing a block. Using get_parameter_value is optional.
The content of blocks can also be saved using :path, for instance:
print("Hello world")Will save the code in toto.py file within the work_folder defined in the config.ini
Tools Implementation
When developing a tool, you must implement three abstract methods defined in the Tools class to handle execution, failure detection, and feedback to the agent. These methods ensure consistent behavior across tools and enable robust interaction with the LLM.
1. Execute method
@abstractmethod
def execute(self, blocks: [str], safety: bool) -> str:This method defines how the tool processes the provided block(s) and produces a result.
2. execution_failure_check
@abstractmethod
def execution_failure_check(self, output: str) -> bool:This method analyzes the tool’s output to determine if the execution was successful or failed.
3. interpreter_feedback
@abstractmethod
def interpreter_feedback(self, output: str) -> str:This method generates a feedback message for the LLM, helping it understand the tool’s execution outcome and adjust its behavior if needed.
Recap:
- load_exec_block: Extracts and parses tool blocks from the agent's response.
- get_parameter_value: Retrieves parameter values from a block's content.
- File handling: Supports saving block content to files when a :path is specified.
Prompting an Agent for Tools usage
Consider an example where you want to add a flight search tool to the casual agent, you will need to modify the prompt file for the CasualAgent (e.g., casual_agent.txt) to instruct the LLM to use the a simple flight_search tool. you could add to the prompt:
You can search for flights using the flight_search tool. Example:
RY7481You simply need to enter the flight number, you will then various informations about the flight if it exist, such as : Airline, Status, Departure time, Arrival Time
Add the tool to your agent
To add a tool to an agent you simply need to:
- Import a tool.
- Add the tool class to the tools dictionnary.
- Update the agent prompt.
from sources.tools.flightSearch import FlightSearch
class CasualAgent(Agent):
def __init__(self, name, prompt_path, provider, verbose=False):
super().__init__(name, prompt_path, provider, verbose, None)
self.tools = {
"flight_search": FlightSearch(),
}
self.role = "en"
self.type = "casual_agent"Implementing and using Agents
Agents are classes that define how an LLM interacts with users and processes inputs. They can use tools (e.g., for executing code or querying APIs) and maintain a memory of the conversation to provide context-aware responses. All agents inherit from the base Agent class, which provides core functionality like memory management and LLM communication.
The simplest agent example is the casual agent:
class CasualAgent(Agent):
def __init__(self, name, prompt_path, provider, verbose=False):
"""
The casual agent is a special for casual talk to the user without specific tasks.
"""
super().__init__(name, prompt_path, provider, verbose, None)
self.tools = {
} # No tools for the casual agent
self.role = "en"
self.type = "casual_agent"
def process(self, prompt, speech_module) -> str:
self.memory.push('user', prompt)
animate_thinking("Thinking...", color="status")
answer, reasoning = self.llm_request()
self.last_answer = answer
return answer, reasoningAgent have several parameters that should be sets:
tools: A dictionary of tools the agent can use. Each tool must inherit from the Tools class. For example, a CasualAgent has no tools ({}), while a coding agent might include a Python execution tool.
role:A dictionary defining the agent's role, used by the routing system to select the appropriate agent.
`type: the agent type, a fixed name to identify the unique agent type.
Every agent must implement the process method, which defines how it handles user input and generates a response.
Workflow:
Push the user's prompt to the agent's memory using self.memory.push('user', prompt).
Call self.llm_request() to generate a response and reasoning based on the memory context.
Store and return the response and reasoning.
Note the memory logic. You only need to push the 'user' message. The llm_request method take care of pushing the assistant message.
This separation of user and assistant memory handling may be inconsistent and could be refactored for clarity in the near future.
Tool blocks execution
Each agent might return block of tool to execute, as explained in the Implementing and using Tools section.
In a single text returned by an agent, a succession of block might be present for example, the coding agent answer could be:
I will create a work folder:
mkdir myAGII will enter the folder.
cd myAGII will create a python code.
The execute_modules method allow to automatically find, parse and execute all tools from a LLM prompt.
It will look in the agent answer for any tool "block" execute the appropriate tool and return a (success, feedback) tuple.
def execute_modules(self, answer: str) -> Tuple[bool, str]:Architecture Overview
1. Agent selection logic
The agent selection is done in 4 steps:
- determine query language and translate to english for the zero-shot model and llm_router.
- Estimate the task complexity and best agent.
- If HIGH complexity: return the planner agent.
- If LOW complexity: Determine the best agent for the task using a vote system between 2 classification models.
- Process high complexity query.
- If task was high complexity, planner agent will create a json plan to divide and conqueer the task with multiple agent.
- Proceed with task(s)
2. Agents
File/Code agents
The File and Code agents operate similarly: when a prompt is submitted, they initiate a loop between the LLM and a code interpreter. This loop continues executing commands or code until the execution is successful or the maximum number of attempts is reached.
Web agent
The Web agent controls a Selenium-driven browser. Upon receiving a query, it begins by generating an optimized search prompt and executing the web_search tool. It then enters a navigation loop, during which it:
- Analyzes the content and interactive elements of the current page.
- Decides which link to follow, either from the current page or the web_search results.
- Determines if it should navigate back if so, it re-evaluates the original web_search results.
- Identifies and interacts with web forms, extracting or filling them as needed.
- Signals completion by requesting to exit once it considers the task fulfilled.
Code of Conduct
See CODE_OF_CONDUCT.md
Thank You!
File: frontend/README.md
Getting Started with Create React App
This project was bootstrapped with Create React App.
Available Scripts
In the project directory, you can run:
`npm start`
Runs the app in the development mode.
Open http://localhost:3000 to view it in your browser.
The page will reload when you make changes.
You may also see any lint errors in the console.
`npm test`
Launches the test runner in the interactive watch mode.
See the section about running tests for more information.
`npm run build`
Builds the app for production to the build folder.
It correctly bundles React in production mode and optimizes the build for the best performance.
The build is minified and the filenames include the hashes.
Your app is ready to be deployed!
See the section about deployment for more information.
`npm run eject`
Note: this is a one-way operation. Once you eject, you can't go back!
If you aren't satisfied with the build tool and configuration choices, you can eject at any time. This command will remove the single build dependency from your project.
Instead, it will copy all the configuration files and the transitive dependencies (webpack, Babel, ESLint, etc) right into your project so you have full control over them. All of the commands except eject will still work, but they will point to the copied scripts so you can tweak them. At this point you're on your own.
You don't have to ever use eject. The curated feature set is suitable for small and middle deployments, and you shouldn't feel obligated to use this feature. However we understand that this tool wouldn't be useful if you couldn't customize it when you are ready for it.
Learn More
You can learn more in the Create React App documentation.
To learn React, check out the React documentation.
Code Splitting
This section has moved here: https://facebook.github.io/create-react-app/docs/code-splitting
Analyzing the Bundle Size
This section has moved here: https://facebook.github.io/create-react-app/docs/analyzing-the-bundle-size
Making a Progressive Web App
This section has moved here: https://facebook.github.io/create-react-app/docs/making-a-progressive-web-app
Advanced Configuration
This section has moved here: https://facebook.github.io/create-react-app/docs/advanced-configuration
Deployment
This section has moved here: https://facebook.github.io/create-react-app/docs/deployment
`npm run build` fails to minify
This section has moved here: https://facebook.github.io/create-react-app/docs/troubleshooting#npm-run-build-fails-to-minify
File: README_CHS.md
AgenticSeek:私有、本地的 Manus 替代方案
English | 中文 | 繁體中文 | Français | 日本語 | Português (Brasil) | Español | Türkçe
一个*100%本地运行的 Manus AI 替代品,支持语音的 AI 助手,可自主浏览网页、编写代码、规划任务,所有数据仅保存在你的设备上。专为本地推理模型设计,完全在你的硬件上运行,确保隐私无忧,无需云端依赖。*
为什么选择 AgenticSeek?
🔒 完全本地 & 私有 —— 所有内容都在你的电脑上运行,无云端、无数据共享。你的文件、对话和搜索都保持私密。
🌐 智能网页浏览 —— AgenticSeek 可自主浏览互联网:搜索、阅读、提取信息、填写网页表单,全程免手动。
💻 自动化编程助手 —— 需要代码?它能编写、调试并运行 Python、C、Go、Java 等程序,无需监督。
🧠 智能代理选择 —— 你提问,它自动判断最合适的代理来完成任务。就像有一支专家团队随时待命。
📋 规划并执行复杂任务 —— 从旅行规划到复杂项目,可将大任务拆分为步骤,调用多个 AI 代理协作完成。
🎙️ 语音支持 —— 干净、快速、未来感的语音与语音转文本功能,让你像科幻电影中的 AI 一样与它对话。(开发中)
**演示**
你能搜索 agenticSeek 项目,了解需要哪些技能,然后打开 CV_candidates.zip 并告诉我哪些最匹配该项目吗?
https://github.com/user-attachments/assets/b8ca60e9-7b3b-4533-840e-08f9ac426316
免责声明:本演示及出现的所有文件(如 CV_candidates.zip)均为虚构。我们不是公司,只寻求开源贡献者而非候选人。
🛠⚠️️ 项目正在积极开发中
🙏 本项目起初只是一个副业,没有路线图也没有资金支持。它意外地登上了 GitHub Trending。非常感谢大家的贡献、反馈与耐心。
前置条件
开始前,请确保已安装以下软件:
- Git: 用于克隆仓库。下载 Git
- Python 3.10.x: 强烈推荐使用 Python 3.10.x 版本。使用其他版本可能导致依赖错误。下载 Python 3.10(选择 3.10.x 版本)。
- Docker Engine & Docker Compose: 用于运行捆绑服务如 SearxNG。
- 安装 Docker Desktop(包含 Docker Compose V2):Windows | Mac | Linux
- 或者在 Linux 上分别安装 Docker Engine 和 Docker Compose:Docker Engine | Docker Compose(确保安装 Compose V2,例如
sudo apt-get install docker-compose-plugin)。
1. **克隆仓库并设置**
git clone https://github.com/Fosowl/agenticSeek.git
cd agenticSeek
mv .env.example .env2. 修改 .env 文件内容
SEARXNG_BASE_URL="http://searxng:8080" # 取值取决于后端在哪里运行 — 参见下方的 SEARXNG 说明
SEARXNG_PORT=8080
REDIS_BASE_URL="redis://redis:6379/0"
WORK_DIR="/Users/mlg/Documents/workspace_for_ai"
OLLAMA_PORT="11434"
LM_STUDIO_PORT="1234"
CUSTOM_ADDITIONAL_LLM_PORT="11435"
OPENAI_API_KEY='optional'
DEEPSEEK_API_KEY='optional'
OPENROUTER_API_KEY='optional'
TOGETHER_API_KEY='optional'
GOOGLE_API_KEY='optional'
ANTHROPIC_API_KEY='optional'根据需要更新 .env 文件:
- SEARXNG_PORT: Docker 将 SearXNG 发布到主机上的端口。如果您机器上的端口
8080已被占用,请设置为其他端口(例如8001)。在 Docker 内部,容器始终监听8080— 该变量永远不会改变这一点。 - SEARXNG_BASE_URL: 后端用来访问 SearXNG 的地址。它在
.env中设置(而不是在config.ini中),并且只取决于后端在哪里运行:
| AgenticSeek 的运行方式 | SEARXNG_BASE_URL |
|---|---|
Web 界面 — 后端在 Docker 中(./start_services.sh full) |
http://searxng:8080 — 始终是端口 8080,即使您修改了 SEARXNG_PORT |
CLI 模式 — 后端在主机上(uv run cli.py) |
http://localhost:8080 — 如果您修改了 SEARXNG_PORT,请改用该端口(例如 http://localhost:8001)。http://searxng:... 在这里不可用:该主机名只存在于 Docker 内部 |
要在浏览器中检查 SearXNG,请始终使用主机端口:
http://localhost:<SEARXNG_PORT>。修改.env后请重启后端 — 该文件只在进程启动时读取。
- REDIS_BASE_URL: 保持不变
- WORK_DIR: 本地工作目录路径。AgenticSeek 可读取和操作这些文件。
- OLLAMA_PORT: Ollama 服务端口号。
- LM_STUDIO_PORT: LM Studio 服务端口号。
- CUSTOM_ADDITIONAL_LLM_PORT: 任何额外自定义 LLM 服务的端口。
API 密钥对于选择本地运行 LLM 的用户完全可选,这也是本项目的主要目的。如果硬件足够,请留空。
3. **启动 Docker**
确保 Docker 已安装并在系统上运行。可以使用以下命令启动 Docker:
Linux/macOS:
打开终端运行:shsudo systemctl start docker或者如果已安装,从应用程序菜单启动 Docker Desktop。
Windows:
从开始菜单启动 Docker Desktop。
可以通过执行以下命令验证 Docker 是否运行:
docker info如果看到 Docker 安装信息,则表示运行正常。
请参阅下面的本地提供商列表了解摘要。
下一步:本地运行 AgenticSeek
如果遇到问题,请参阅故障排除部分。
如果硬件无法本地运行 LLM,请参阅使用 API 运行设置。
有关详细 config.ini 说明,请参阅配置部分。
在您的机器上本地运行 LLM 的设置
硬件要求:
要本地运行 LLM,您需要足够的硬件。至少需要能够运行 Magistral、Qwen 或 Deepseek 14B 的 GPU。有关详细的模型/性能建议,请参阅 FAQ。
设置您的本地提供商
启动您的本地提供商,例如使用 ollama:
ollama serve请参阅下面的本地支持提供商列表。
更新 config.ini
更改 config.ini 文件,将 provider_name 设置为支持的提供商,provider_model 设置为您的提供商支持的 LLM。我们推荐推理模型,如 Magistral 或 Deepseek。
有关所需硬件,请参阅 README 末尾的 FAQ。
[MAIN]
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 # 语言列表,文本转语音将默认使用列表中的第一种语言
[BROWSER]
headless_browser = True # 除非在主机上使用 CLI,否则保持不变。
stealth_mode = True # 使用不可检测的 selenium 减少浏览器检测警告:
config.ini文件格式不支持注释。
不要直接复制粘贴示例配置,因为注释会导致错误。相反,手动修改config.ini文件,使用您所需的设置,排除任何注释。如果使用 LM-studio 运行 LLM,请不要将 provider_name 设置为
openai。将其设置为lm-studio。某些提供商(例如:lm-studio)要求您在 IP 前加上
http://。例如http://127.0.0.1:1234
本地提供商列表
| 提供商 | 本地? | 描述 |
|---|---|---|
| ollama | 是 | 使用 ollama 作为 LLM 提供商轻松本地运行 LLM |
| lm-studio | 是 | 使用 LM studio 本地运行 LLM(将 provider_name 设置为 lm-studio) |
| openai | 是 | 使用 openai 兼容 API(例如:llama.cpp 服务器) |
如果遇到问题,请参阅故障排除部分。
如果硬件无法本地运行 LLM,请参阅使用 API 运行设置。
有关详细 config.ini 说明,请参阅配置部分。
使用 API 运行设置
此设置使用外部、基于云的 LLM 提供商。您需要从所选服务获取 API 密钥。
1. 选择 API 提供商并获取 API 密钥:
请参阅下面的API 提供商列表。访问他们的网站注册并获取 API 密钥。
2. 将您的 API 密钥设置为环境变量:
Linux/macOS:
打开终端并使用export命令。最好将其添加到 shell 的配置文件中(例如~/.bashrc、~/.zshrc)以保持持久性。shexport PROVIDER_API_KEY="your_api_key_here" # 将 PROVIDER_API_KEY 替换为特定的变量名,例如 OPENAI_API_KEY、GOOGLE_API_KEYTogetherAI 示例:
shexport 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 密钥?)。
- 命令提示符(当前会话临时):
3. 更新 config.ini:
[MAIN]
is_local = False
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.ini 值中没有尾随空格。
API 提供商列表
| 提供商 | provider_name |
本地? | 描述 | API 密钥链接(示例) |
|---|---|---|---|---|
| OpenAI | openai |
否 | 通过 OpenAI 的 API 使用 ChatGPT 模型。 | platform.openai.com/signup |
| Google Gemini | google |
否 | 通过 Google AI Studio 使用 Google Gemini 模型。 | aistudio.google.com/keys |
| Deepseek | deepseek |
否 | 通过他们的 API 使用 Deepseek 模型。 | platform.deepseek.com |
| Hugging Face | huggingface |
否 | 使用 Hugging Face Inference API 中的模型。 | huggingface.co/settings/tokens |
| TogetherAI | togetherAI |
否 | 通过 TogetherAI API 使用各种开源模型。 | api.together.ai/settings/api-keys |
| OpenRouter | openrouter |
No | 通过 OpenRouter 使用各种开源模型 | https://openrouter.ai/ |
| MiniMax | minimax |
否 | 使用 MiniMax 模型(如 MiniMax-M3、MiniMax-M2.7)。 | platform.minimax.io |
注意:
- 我们不建议将
gpt-4o或其他 OpenAI 模型用于复杂的网页浏览和任务规划,因为当前的提示优化针对 Deepseek 等模型。 - 编码/bash 任务可能会遇到 Gemini 的问题,因为它可能不严格遵循针对 Deepseek 优化的格式化提示。
- 当
is_local = False时,config.ini中的provider_server_address通常不使用,因为 API 端点通常在相应提供商的库中硬编码。
如果遇到问题,请参阅已知问题部分
有关详细配置文件说明,请参阅配置部分。
启动服务并运行
默认情况下,AgenticSeek 完全在 Docker 中运行。
选项 1: 在 Docker 中运行,使用 Web 界面:
启动所需服务。这将启动 docker-compose.yml 中的所有服务,包括:
- searxng
- redis(searxng 所需)
- frontend
- backend(如果使用 Web 界面时使用 full)
./start_services.sh full # MacOS
start start_services.cmd full # Windows警告: 此步骤将下载并加载所有 Docker 镜像,可能需要长达 30 分钟。启动服务后,请等待后端服务完全运行(您应该在日志中看到 backend: "GET /health HTTP/1.1" 200 OK)后再发送任何消息。首次运行时,后端服务可能需要 5 分钟才能启动。
转到 http://localhost:3000/,您应该会看到 Web 界面。
服务启动故障排除: 如果这些脚本失败,请确保 Docker Engine 正在运行并且 Docker Compose(V2,docker compose)已正确安装。检查终端输出中的错误消息。请参阅 FAQ:帮助!运行 AgenticSeek 或其脚本时出现错误。
选项 2: CLI 模式:
要使用 CLI 界面运行,您必须在主机上安装软件包:
./install.sh
./install.bat # windows然后您必须将 .env 文件(不是 config.ini)中的 SEARXNG_BASE_URL 更改为主机映射地址,因为在 CLI 模式下后端运行在您的机器上、Docker 之外:
SEARXNG_BASE_URL="http://localhost:8080"如果您在
.env中修改了SEARXNG_PORT,请在这里改用该端口(例如http://localhost:8001)。编辑.env后请重启cli.py— 该值在启动时读取。
启动所需服务。这将启动 docker-compose.yml 中的一些服务,包括:
- searxng
- redis(searxng 所需)
- frontend
./start_services.sh # MacOS
start start_services.cmd # Windows运行:uv run: uv run python -m ensurepip 以确保 uv 已启用 pip。
使用 CLI:uv run cli.py
使用方法
确保服务已通过 ./start_services.sh full 启动并运行,然后转到 localhost:3000 使用 Web 界面。
您也可以通过设置 listen = True 来使用语音转文本。仅限 CLI 模式。
要退出,只需说/输入 goodbye。
以下是一些使用示例:
用 python 写一个贪吃蛇游戏!
搜索法国雷恩的最佳咖啡馆,并将三家及其地址保存到 rennes_cafes.txt。
写一个 Go 程序计算阶乘,保存为 factorial.go 到你的工作区
在 summer_pictures 文件夹中查找所有 JPG 文件,用今天日期重命名,并将重命名文件列表保存到 photos_list.txt
在线搜索 2024 年热门科幻电影,挑选三部今晚观看,保存到 movie_night.txt。
搜索 2025 年最新 AI 新闻文章,选三篇,写 Python 脚本抓取标题和摘要,脚本保存为 news_scraper.py,摘要保存到 ai_news.txt(/home/projects)
周五,搜索免费股票价格 API,用 [email protected] 注册,然后写 Python 脚本每日获取特斯拉股价,结果保存到 stock_prices.csv
请注意,表单填写功能仍为实验性,可能失败。
输入查询后,AgenticSeek 将分配最佳代理执行任务。
由于这是早期原型,代理路由系统可能无法总是根据您的查询分配正确的代理。
因此,您应该非常明确地表达您想要什么以及 AI 可能如何进行,例如如果您希望它进行网页搜索,不要说:
你知道哪些适合独自旅行的国家吗?
而应说:
进行网页搜索,找出最适合独自旅行的国家
**在自己的服务器上运行 LLM 的设置**
如果您有功能强大的计算机或可以使用的服务器,但想从笔记本电脑使用它,您可以选择使用我们的自定义 llm 服务器在远程服务器上运行 LLM。
在将运行 AI 模型的"服务器"上,获取 IP 地址
ip a | grep "inet " | grep -v 127.0.0.1 | awk '{print $2}' | cut -d/ -f1 # 本地 IP
curl https://ipinfo.io/ip # 公共 IP注意:对于 Windows 或 macOS,分别使用 ipconfig 或 ifconfig 查找 IP 地址。
克隆仓库并进入 server/ 文件夹。
git clone --depth 1 https://github.com/Fosowl/agenticSeek.git
cd agenticSeek/llm_server/安装服务器特定要求:
pip3 install -r requirements.txt运行服务器脚本。
python3 app.py --provider ollama --port 3333您可以选择使用 ollama 和 llamacpp 作为 LLM 服务。
现在在您的个人计算机上:
更改 config.ini 文件,将 provider_name 设置为 server,provider_model 设置为 deepseek-r1:xxb。
将 provider_server_address 设置为将运行模型的机器的 IP 地址。
[MAIN]
is_local = False
provider_name = server
provider_model = deepseek-r1:70b
provider_server_address = http://x.x.x.x:3333语音转文本
警告:目前语音转文本仅适用于 CLI 模式。
请注意,目前语音转文本仅适用于英语。
语音转文本功能默认禁用。要启用它,请在 config.ini 文件中将 listen 选项设置为 True:
listen = True启用后,语音转文本功能会监听触发关键字,即代理的名称,然后开始处理您的输入。您可以通过更新 config.ini 文件中的 agent_name 值来自定义代理的名称:
agent_name = Friday为了获得最佳识别效果,我们建议使用常见的英文名称,如 "John" 或 "Emma" 作为代理名称。
一旦您看到转录开始出现,请大声说出代理的名称以唤醒它(例如,"Friday")。
清晰地说出您的查询。
用确认短语结束您的请求,以指示系统继续。确认短语的示例包括:
"do it", "go ahead", "execute", "run", "start", "thanks", "would ya", "please", "okay?", "proceed", "continue", "go on", "do that", "go it", "do you understand?"配置
配置示例:
[MAIN]
is_local = True
provider_name = ollama
provider_model = deepseek-r1:32b
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 # TTS 和潜在路由的语言列表。
[BROWSER]
headless_browser = False
stealth_mode = Falseconfig.ini 设置说明:
[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 端点通常由客户端库处理。
- 对于本地提供商:例如,Ollama 的
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。
本节总结了支持的 LLM 提供商类型。在 config.ini 中配置它们。
本地提供商(在您自己的硬件上运行):
| config.ini 中的提供商名称 | is_local |
描述 | 设置部分 |
|---|---|---|---|
ollama |
True |
使用 Ollama 轻松提供本地 LLM。 | 在您的机器上本地运行 LLM 的设置 |
lm-studio |
True |
使用 LM-Studio 提供本地 LLM。 | 在您的机器上本地运行 LLM 的设置 |
openai(用于本地服务器) |
True |
连接到暴露 OpenAI 兼容 API 的本地服务器(例如,llama.cpp)。 | 在您的机器上本地运行 LLM 的设置 |
server |
False |
连接到在另一台机器上运行的 AgenticSeek 自托管 LLM 服务器。 | 在自己的服务器上运行 LLM 的设置 |
API 提供商(基于云):
| config.ini 中的提供商名称 | is_local |
描述 | 设置部分 |
|---|---|---|---|
openai |
False |
使用 OpenAI 的官方 API(例如,GPT-3.5、GPT-4)。 | 使用 API 运行设置 |
google |
False |
通过 API 使用 Google 的 Gemini 模型。 | 使用 API 运行设置 |
deepseek |
False |
使用 Deepseek 的官方 API。 | 使用 API 运行设置 |
huggingface |
False |
使用 Hugging Face Inference API。 | 使用 API 运行设置 |
togetherAI |
False |
使用 TogetherAI 的 API 获取各种开放模型。 | 使用 API 运行设置 |
故障排除
如果遇到问题,本节提供指导。
已知问题
ChromeDriver 问题
错误示例: SessionNotCreatedException: Message: session not created: This version of ChromeDriver only supports Chrome version XXX
根本原因
ChromeDriver 版本不兼容发生在:
- 您安装的 ChromeDriver 版本与 Chrome 浏览器版本不匹配
- 在 Docker 环境中,
undetected_chromedriver可能会下载自己的 ChromeDriver 版本,绕过挂载的二进制文件
解决步骤
1. 检查您的 Chrome 版本
打开 Google Chrome → 设置 > 关于 Chrome 查找您的版本(例如,"版本 134.0.6998.88")
2. 下载匹配的 ChromeDriver
对于 Chrome 115 及更新版本: 使用 Chrome for Testing API
- 访问 Chrome for Testing 可用性仪表板
- 找到您的 Chrome 版本或最接近的可用匹配
- 为您的操作系统下载 ChromeDriver(Docker 环境使用 Linux64)
对于旧版 Chrome: 使用 旧版 ChromeDriver 下载
3. 安装 ChromeDriver(选择一种方法)
方法 A:项目根目录(Docker 推荐)
# 将下载的 chromedriver 二进制文件放在项目根目录
cp path/to/downloaded/chromedriver ./chromedriver
chmod +x ./chromedriver # 在 Linux/macOS 上使其可执行方法 B:系统 PATH
# Linux/macOS
sudo mv chromedriver /usr/local/bin/
sudo chmod +x /usr/local/bin/chromedriver
# Windows:将 chromedriver.exe 放在 PATH 中的文件夹中4. 验证安装
# 测试 ChromeDriver 版本
./chromedriver --version
# 或者在 PATH 中:
chromedriver --versionDocker 特定说明
⚠️ Docker 用户重要:
- Docker 卷挂载方法可能不适用于隐身模式(
undetected_chromedriver) - 解决方案: 将 ChromeDriver 放在项目根目录中作为
./chromedriver - 应用程序将自动检测并使用此二进制文件
- 您应该在日志中看到:
"Using ChromeDriver from project root: ./chromedriver"
故障排除提示
仍然遇到版本不匹配?
- 验证 ChromeDriver 是否可执行:
ls -la ./chromedriver - 检查 ChromeDriver 版本:
./chromedriver --version - 确保它与您的 Chrome 浏览器版本匹配
- 验证 ChromeDriver 是否可执行:
Docker 容器问题?
- 检查后端日志:
docker logs backend - 查找消息:
"Using ChromeDriver from project root" - 如果未找到,请验证文件是否存在且可执行
- 检查后端日志:
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 仪表板
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 版本不匹配,会发生这种情况。
您需要导航到下载最新版本:
https://developer.chrome.com/docs/chromedriver/downloads
如果您使用 Chrome 版本 115 或更新版本,请转到:
https://googlechromelabs.github.io/chrome-for-testing/
并下载与您的操作系统匹配的 chromedriver 版本。
如果此部分不完整,请提出问题。
连接适配器问题
Exception: Provider lm-studio failed: HTTP request failed: No connection adapters were found for '127.0.0.1:1234/v1/chat/completions'`(注意:端口可能不同)- 原因:
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 服务器端口)。
- 确保地址包含
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.`如果您使用错误的 searxng 基本 URL 运行 CLI 模式,可能会出现这种情况。
SEARXNG_BASE_URL 在 .env 中设置,并且只取决于后端在哪里运行:
后端在主机上(CLI 模式):SEARXNG_BASE_URL="http://localhost:8080" — 如果您修改了 SEARXNG_PORT,请改用该端口(例如 http://localhost:8001)。http://searxng:... 在这里不可用:该主机名只在 Docker 内部可解析。
后端在 Docker 中(Web 界面,full 配置):SEARXNG_BASE_URL="http://searxng:8080" — 始终是端口 8080,即使您修改了 SEARXNG_PORT;该变量只重新映射主机侧的端口。
端口冲突说明:如果您主机上的端口
8080已被占用,请在.env中设置SEARXNG_PORT(例如8001),然后:
- Web 界面(后端在 Docker 中):保持
SEARXNG_BASE_URL="http://searxng:8080"— Docker 内部端口不会改变。- CLI 模式(后端在主机上):设置
SEARXNG_BASE_URL="http://localhost:8001"— 它必须与SEARXNG_PORT一致。- 浏览器检查:打开
http://localhost:<SEARXNG_PORT>— 在旧端口8080上响应的是其他应用程序,而不是 AgenticSeek 的 SearXNG。修改
.env后,请重启后端(api.py或cli.py)— 该文件只在进程启动时读取。
FAQ
问:我需要什么硬件?
| 模型大小 | GPU | 评论 |
|---|---|---|
| 7B | 8GB 显存 | ⚠️ 不推荐。性能差,频繁出现幻觉,规划代理可能会失败。 |
| 14B | 12 GB VRAM(例如 RTX 3060) | ✅ 可用于简单任务。可能在网页浏览和规划任务方面有困难。 |
| 32B | 24+ GB VRAM(例如 RTX 4090) | 🚀 大多数任务成功,可能仍然在任务规划方面有困难 |
| 70B+ | 48+ GB 显存 | 💪 优秀。推荐用于高级用例。 |
问:我遇到错误该怎么办?
确保本地正在运行(ollama serve),您的 config.ini 与您的提供商匹配,并且依赖项已安装。如果都不起作用,请随时提出问题。
问:它真的可以 100% 本地运行吗?
是的,使用 Ollama、lm-studio 或服务器提供商,所有语音转文本、LLM 和文本转语音模型都在本地运行。非本地选项(OpenAI 或其他 API)是可选的。
问:当我有 Manus 时,为什么应该使用 AgenticSeek?
与 Manus 不同,AgenticSeek 优先考虑独立于外部系统,给您更多控制、隐私和避免 API 成本。
问:谁是这个项目的幕后推手?
这个项目是由我创建的,还有两个朋友作为维护者和 GitHub 上开源社区的贡献者。我们只是一群充满热情的个人,不是初创公司,也不隶属于任何组织。
X 上除了我的个人账户(https://x.com/Martin993886460)之外的任何 AgenticSeek 账户都是冒充的。
贡献
我们正在寻找开发人员来改进 AgenticSeek!查看开放的问题或讨论。
赞助商:
想要通过航班搜索、旅行规划或抢购最佳购物优惠等功能来提升 AgenticSeek 的能力?考虑使用 SerpApi 制作自定义工具,以解锁更多 Jarvis 般的功能。使用 SerpApi,您可以为专业任务加速您的代理,同时保持完全控制。
查看 Contributing.md 了解如何集成自定义工具!
维护者:
Fosowl | 巴黎时间
特别感谢:
File: README_CHT.md
AgenticSeek:私有、本地的 Manus 替代方案
English | 中文 | 繁體中文 | Français | 日本語 | Português (Brasil) | Español | Türkçe
一個*100%本地運行的 Manus AI 替代品,支援語音的 AI 助手,可自主瀏覽網頁、編寫代碼、規劃任務,所有數據僅保存在你的設備上。專為本地推理模型設計,完全在你的硬件上運行,確保隱私無憂,無需雲端依賴。*
為什麼選擇 AgenticSeek?
🔒 完全本地 & 私有 —— 所有內容都在你的電腦上運行,無雲端、無數據共享。你的文件、對話和搜索都保持私密。
🌐 智能網頁瀏覽 —— AgenticSeek 可自主瀏覽互聯網:搜索、閱讀、提取信息、填寫網頁表單,全程免手動。
💻 自動化編程助手 —— 需要代碼?它能編寫、調試並運行 Python、C、Go、Java 等程序,無需監督。
🧠 智能代理選擇 —— 你提問,它自動判斷最合適的代理來完成任務。就像有一支專家團隊隨時待命。
📋 規劃並執行複雜任務 —— 從旅行規劃到複雜項目,可將大任務拆分為步驟,調用多個 AI 代理協作完成。
🎙️ 語音支持 —— 乾淨、快速、未來感的語音與語音轉文本功能,讓你像科幻電影中的 AI 一樣與它對話。(開發中)
**演示**
你能搜索 agenticSeek 項目,了解需要哪些技能,然後打開 CV_candidates.zip 並告訴我哪些最匹配該項目嗎?
https://github.com/user-attachments/assets/b8ca60e9-7b3b-4533-840e-08f9ac426316
免責聲明:本演示及出現的所有文件(如 CV_candidates.zip)均為虛構。我們不是公司,只尋求開源貢獻者而非候選人。
🛠⚠️️ 項目正在積極開發中
🙏 本項目起初只是一個副業,沒有路線圖也沒有資金支持。它意外地登上了 GitHub Trending。非常感謝大家的貢獻、反饋與耐心。
前置條件
開始前,請確保已安裝以下軟件:
- Git: 用於克隆倉庫。下載 Git
- Python 3.10.x: 強烈推薦使用 Python 3.10.x 版本。使用其他版本可能導致依賴錯誤。下載 Python 3.10(選擇 3.10.x 版本)。
- Docker Engine & Docker Compose: 用於運行捆綁服務如 SearxNG。
- 安裝 Docker Desktop(包含 Docker Compose V2):Windows | Mac | Linux
- 或者在 Linux 上分別安裝 Docker Engine 和 Docker Compose:Docker Engine | Docker Compose(確保安裝 Compose V2,例如
sudo apt-get install docker-compose-plugin)。
1. **克隆倉庫並設置**
git clone https://github.com/Fosowl/agenticSeek.git
cd agenticSeek
mv .env.example .env2. 修改 .env 文件內容
SEARXNG_BASE_URL="http://searxng:8080" # 此值取決於後端在哪裡運行 — 請參閱下方的 SEARXNG 說明
SEARXNG_PORT=8080
REDIS_BASE_URL="redis://redis:6379/0"
WORK_DIR="/Users/mlg/Documents/workspace_for_ai"
OLLAMA_PORT="11434"
LM_STUDIO_PORT="1234"
CUSTOM_ADDITIONAL_LLM_PORT="11435"
OPENAI_API_KEY='optional'
DEEPSEEK_API_KEY='optional'
OPENROUTER_API_KEY='optional'
TOGETHER_API_KEY='optional'
GOOGLE_API_KEY='optional'
ANTHROPIC_API_KEY='optional'根據需要更新 .env 文件:
- SEARXNG_PORT: Docker 對外發佈 SearXNG 所用的主機埠號。如果您機器上的埠號
8080已被佔用,請設置為其他埠號(例如8001)。在 Docker 內部,容器始終監聽8080— 這個變數永遠不會改變這一點。 - SEARXNG_BASE_URL: 後端用來連接 SearXNG 的地址。它在
.env中設置(而不是在config.ini中),且只取決於後端在哪裡運行:
| AgenticSeek 的運行方式 | SEARXNG_BASE_URL |
|---|---|
Web 界面 — 後端在 Docker 中運行(./start_services.sh full) |
http://searxng:8080 — 始終是埠號 8080,即使您更改了 SEARXNG_PORT |
CLI 模式 — 後端在主機上運行(uv run cli.py) |
http://localhost:8080 — 如果您更改了 SEARXNG_PORT,請改用該埠號(例如 http://localhost:8001)。http://searxng:... 在這裡不適用:該主機名只存在於 Docker 內部 |
若要在瀏覽器中檢查 SearXNG,請始終使用主機埠號:
http://localhost:<SEARXNG_PORT>。更改.env後,請重啟後端 — 該文件只在進程啟動時讀取。
- REDIS_BASE_URL: 保持不變
- WORK_DIR: 本地工作目錄路徑。AgenticSeek 可讀取和操作這些文件。
- OLLAMA_PORT: Ollama 服務端口號。
- LM_STUDIO_PORT: LM Studio 服務端口號。
- CUSTOM_ADDITIONAL_LLM_PORT: 任何額外自定義 LLM 服務的端口。
API 密鑰對於選擇本地運行 LLM 的用戶完全可選,這也是本項目的主要目的。如果硬件足夠,請留空。
3. **啟動 Docker**
確保 Docker 已安裝並在系統上運行。可以使用以下命令啟動 Docker:
Linux/macOS:
打開終端運行:shsudo systemctl start docker或者如果已安裝,從應用程序菜單啟動 Docker Desktop。
Windows:
從開始菜單啟動 Docker Desktop。
可以通過執行以下命令驗證 Docker 是否運行:
docker info如果看到 Docker 安裝信息,則表示運行正常。
請參閱下面的本地提供商列表了解摘要。
下一步:本地運行 AgenticSeek
如果遇到問題,請參閱故障排除部分。
如果硬件無法本地運行 LLM,請參閱使用 API 運行設置。
有關詳細 config.ini 說明,請參閱配置部分。
在您的機器上本地運行 LLM 的設置
硬件要求:
要本地運行 LLM,您需要足夠的硬件。至少需要能夠運行 Magistral、Qwen 或 Deepseek 14B 的 GPU。有關詳細的模型/性能建議,請參閱 FAQ。
設置您的本地提供商
啟動您的本地提供商,例如使用 ollama:
ollama serve請參閱下面的本地支持提供商列表。
更新 config.ini
更改 config.ini 文件,將 provider_name 設置為支持的提供商,provider_model 設置為您的提供商支持的 LLM。我們推薦推理模型,如 Magistral 或 Deepseek。
有關所需硬件,請參閱 README 末尾的 FAQ。
[MAIN]
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 # 語言列表,文本轉語音將默認使用列表中的第一種語言
[BROWSER]
headless_browser = True # 除非在主機上使用 CLI,否則保持不變。
stealth_mode = True # 使用不可檢測的 selenium 減少瀏覽器檢測警告:
config.ini文件格式不支持註釋。
不要直接複製粘貼示例配置,因為註釋會導致錯誤。相反,手動修改config.ini文件,使用您所需的設置,排除任何註釋。如果使用 LM-studio 運行 LLM,請不要將 provider_name 設置為
openai。將其設置為lm-studio。某些提供商(例如:lm-studio)要求您在 IP 前加上
http://。例如http://127.0.0.1:1234
本地提供商列表
| 提供商 | 本地? | 描述 |
|---|---|---|
| ollama | 是 | 使用 ollama 作為 LLM 提供商輕鬆本地運行 LLM |
| lm-studio | 是 | 使用 LM studio 本地運行 LLM(將 provider_name 設置為 lm-studio) |
| openai | 是 | 使用 openai 兼容 API(例如:llama.cpp 服務器) |
如果遇到問題,請參閱故障排除部分。
如果硬件無法本地運行 LLM,請參閱使用 API 運行設置。
有關詳細 config.ini 說明,請參閱配置部分。
使用 API 運行設置
此設置使用外部、基於雲的 LLM 提供商。您需要從所選服務獲取 API 密鑰。
1. 選擇 API 提供商並獲取 API 密鑰:
請參閱下面的API 提供商列表。訪問他們的網站註冊並獲取 API 密鑰。
2. 將您的 API 密鑰設置為環境變量:
Linux/macOS:
打開終端並使用export命令。最好將其添加到 shell 的配置文件中(例如~/.bashrc、~/.zshrc)以保持持久性。shexport PROVIDER_API_KEY="your_api_key_here" # 將 PROVIDER_API_KEY 替換為特定的變量名,例如 OPENAI_API_KEY、GOOGLE_API_KEYTogetherAI 示例:
shexport 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 密鑰?)。
- 命令提示符(當前會話臨時):
3. 更新 config.ini:
[MAIN]
is_local = False
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.ini 值中沒有尾隨空格。
API 提供商列表
| 提供商 | provider_name |
本地? | 描述 | API 密鑰鏈接(示例) |
|---|---|---|---|---|
| OpenAI | openai |
否 | 通過 OpenAI 的 API 使用 ChatGPT 模型。 | platform.openai.com/signup |
| Google Gemini | google |
否 | 通過 Google AI Studio 使用 Google Gemini 模型。 | aistudio.google.com/keys |
| Deepseek | deepseek |
否 | 通過他們的 API 使用 Deepseek 模型。 | platform.deepseek.com |
| Hugging Face | huggingface |
否 | 使用 Hugging Face Inference API 中的模型。 | huggingface.co/settings/tokens |
| TogetherAI | togetherAI |
否 | 通過 TogetherAI API 使用各種開源模型。 | api.together.ai/settings/api-keys |
| OpenRouter | openrouter |
No | 通过 OpenRouter 使用各种开源模型 | https://openrouter.ai/ |
注意:
- 我們不建議將
gpt-4o或其他 OpenAI 模型用於複雜的網頁瀏覽和任務規劃,因為當前的提示優化針對 Deepseek 等模型。 - 編碼/bash 任務可能會遇到 Gemini 的問題,因為它可能不嚴格遵循針對 Deepseek 優化的格式化提示。
- 當
is_local = False時,config.ini中的provider_server_address通常不使用,因為 API 端點通常在相應提供商的庫中硬編碼。
如果遇到問題,請參閱已知問題部分
有關詳細配置文件說明,請參閱配置部分。
啟動服務並運行
默認情況下,AgenticSeek 完全在 Docker 中運行。
選項 1: 在 Docker 中運行,使用 Web 界面:
啟動所需服務。這將啟動 docker-compose.yml 中的所有服務,包括:
- searxng
- redis(searxng 所需)
- frontend
- backend(如果使用 Web 界面時使用 full)
./start_services.sh full # MacOS
start start_services.cmd full # Windows警告: 此步驟將下載並加載所有 Docker 鏡像,可能需要長達 30 分鐘。啟動服務後,請等待後端服務完全運行(您應該在日誌中看到 backend: "GET /health HTTP/1.1" 200 OK)後再發送任何消息。首次運行時,後端服務可能需要 5 分鐘才能啟動。
轉到 http://localhost:3000/,您應該會看到 Web 界面。
服務啟動故障排除: 如果這些腳本失敗,請確保 Docker Engine 正在運行並且 Docker Compose(V2,docker compose)已正確安裝。檢查終端輸出中的錯誤消息。請參閱 FAQ:幫助!運行 AgenticSeek 或其腳本時出現錯誤。
選項 2: CLI 模式:
要使用 CLI 界面運行,您必須在主機上安裝軟件包:
./install.sh
./install.bat # windows然後您必須將 .env 文件(不是 config.ini)中的 SEARXNG_BASE_URL 更改為主機映射的地址,因為在 CLI 模式下後端在您的機器上運行,位於 Docker 之外:
SEARXNG_BASE_URL="http://localhost:8080"如果您在
.env中更改了SEARXNG_PORT,這裡請改用該埠號(例如http://localhost:8001)。編輯.env後請重啟cli.py— 該值在啟動時讀取。
啟動所需服務。這將啟動 docker-compose.yml 中的一些服務,包括:
- searxng
- redis(searxng 所需)
- frontend
./start_services.sh # MacOS
start start_services.cmd # Windows運行:uv run: uv run python -m ensurepip 以確保 uv 已啟用 pip。
使用 CLI:uv run cli.py
使用方法
確保服務已通過 ./start_services.sh full 啟動並運行,然後轉到 localhost:3000 使用 Web 界面。
您也可以通過設置 listen = True 來使用語音轉文本。僅限 CLI 模式。
要退出,只需說/輸入 goodbye。
以下是一些使用示例:
用 python 寫一個貪吃蛇遊戲!
搜索法國雷恩的最佳咖啡館,並將三家及其地址保存到 rennes_cafes.txt。
寫一個 Go 程序計算階乘,保存為 factorial.go 到你的工作區
在 summer_pictures 文件夾中查找所有 JPG 文件,用今天日期重命名,並將重命名文件列表保存到 photos_list.txt
在線搜索 2024 年熱門科幻電影,挑選三部今晚觀看,保存到 movie_night.txt。
搜索 2025 年最新 AI 新聞文章,選三篇,寫 Python 腳本抓取標題和摘要,腳本保存為 news_scraper.py,摘要保存到 ai_news.txt(/home/projects)
周五,搜索免費股票價格 API,用 [email protected] 註冊,然後寫 Python 腳本每日獲取特斯拉股價,結果保存到 stock_prices.csv
請注意,表單填寫功能仍為實驗性,可能失敗。
輸入查詢後,AgenticSeek 將分配最佳代理執行任務。
由於這是早期原型,代理路由系統可能無法總是根據您的查詢分配正確的代理。
因此,您應該非常明確地表達您想要什麼以及 AI 可能如何進行,例如如果您希望它進行網頁搜索,不要說:
你知道哪些適合獨自旅行的國家嗎?
而應說:
進行網頁搜索,找出最適合獨自旅行的國家
**在自己的服務器上運行 LLM 的設置**
如果您有功能強大的計算機或可以使用的服務器,但想從筆記本電腦使用它,您可以選擇使用我們的自定義 llm 服務器在遠程服務器上運行 LLM。
在將運行 AI 模型的"服務器"上,獲取 IP 地址
ip a | grep "inet " | grep -v 127.0.0.1 | awk '{print $2}' | cut -d/ -f1 # 本地 IP
curl https://ipinfo.io/ip # 公共 IP注意:對於 Windows 或 macOS,分別使用 ipconfig 或 ifconfig 查找 IP 地址。
克隆倉庫並進入 server/ 文件夾。
git clone --depth 1 https://github.com/Fosowl/agenticSeek.git
cd agenticSeek/llm_server/安裝服務器特定要求:
pip3 install -r requirements.txt運行服務器腳本。
python3 app.py --provider ollama --port 3333您可以選擇使用 ollama 和 llamacpp 作為 LLM 服務。
現在在您的個人計算機上:
更改 config.ini 文件,將 provider_name 設置為 server,provider_model 設置為 deepseek-r1:xxb。
將 provider_server_address 設置為將運行模型的機器的 IP 地址。
[MAIN]
is_local = False
provider_name = server
provider_model = deepseek-r1:70b
provider_server_address = http://x.x.x.x:3333語音轉文本
警告:目前語音轉文本僅適用於 CLI 模式。
請注意,目前語音轉文本僅適用於英語。
語音轉文本功能默認禁用。要啟用它,請在 config.ini 文件中將 listen 選項設置為 True:
listen = True啟用後,語音轉文本功能會監聽觸發關鍵字,即代理的名稱,然後開始處理您的輸入。您可以通過更新 config.ini 文件中的 agent_name 值來自定義代理的名稱:
agent_name = Friday為了獲得最佳識別效果,我們建議使用常見的英文名稱,如 "John" 或 "Emma" 作為代理名稱。
一旦您看到轉錄開始出現,請大聲說出代理的名稱以喚醒它(例如,"Friday")。
清晰地說出您的查詢。
用確認短語結束您的請求,以指示系統繼續。確認短語的示例包括:
"do it", "go ahead", "execute", "run", "start", "thanks", "would ya", "please", "okay?", "proceed", "continue", "go on", "do that", "go it", "do you understand?"配置
配置示例:
[MAIN]
is_local = True
provider_name = ollama
provider_model = deepseek-r1:32b
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 # TTS 和潛在路由的語言列表。
[BROWSER]
headless_browser = False
stealth_mode = Falseconfig.ini 設置說明:
[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 端點通常由客戶端庫處理。
- 對於本地提供商:例如,Ollama 的
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。
本節總結了支持的 LLM 提供商類型。在 config.ini 中配置它們。
本地提供商(在您自己的硬件上運行):
| config.ini 中的提供商名稱 | is_local |
描述 | 設置部分 |
|---|---|---|---|
ollama |
True |
使用 Ollama 輕鬆提供本地 LLM。 | 在您的機器上本地運行 LLM 的設置 |
lm-studio |
True |
使用 LM-Studio 提供本地 LLM。 | 在您的機器上本地運行 LLM 的設置 |
openai(用於本地服務器) |
True |
連接到暴露 OpenAI 兼容 API 的本地服務器(例如,llama.cpp)。 | 在您的機器上本地運行 LLM 的設置 |
server |
False |
連接到在另一台機器上運行的 AgenticSeek 自託管 LLM 服務器。 | 在自己的服務器上運行 LLM 的設置 |
API 提供商(基於雲):
| config.ini 中的提供商名稱 | is_local |
描述 | 設置部分 |
|---|---|---|---|
openai |
False |
使用 OpenAI 的官方 API(例如,GPT-3.5、GPT-4)。 | 使用 API 運行設置 |
google |
False |
通過 API 使用 Google 的 Gemini 模型。 | 使用 API 運行設置 |
deepseek |
False |
使用 Deepseek 的官方 API。 | 使用 API 運行設置 |
huggingface |
False |
使用 Hugging Face Inference API。 | 使用 API 運行設置 |
togetherAI |
False |
使用 TogetherAI 的 API 獲取各種開放模型。 | 使用 API 運行設置 |
故障排除
如果遇到問題,本節提供指導。
已知問題
ChromeDriver 問題
錯誤示例: SessionNotCreatedException: Message: session not created: This version of ChromeDriver only supports Chrome version XXX
根本原因
ChromeDriver 版本不兼容發生在:
- 您安裝的 ChromeDriver 版本與 Chrome 瀏覽器版本不匹配
- 在 Docker 環境中,
undetected_chromedriver可能會下載自己的 ChromeDriver 版本,繞過掛載的二進制文件
解決步驟
1. 檢查您的 Chrome 版本
打開 Google Chrome → 設置 > 關於 Chrome 查找您的版本(例如,"版本 134.0.6998.88")
2. 下載匹配的 ChromeDriver
對於 Chrome 115 及更新版本: 使用 Chrome for Testing API
- 訪問 Chrome for Testing 可用性儀表板
- 找到您的 Chrome 版本或最接近的可用匹配
- 為您的操作系統下載 ChromeDriver(Docker 環境使用 Linux64)
對於舊版 Chrome: 使用 舊版 ChromeDriver 下載
3. 安裝 ChromeDriver(選擇一種方法)
方法 A:項目根目錄(Docker 推薦)
# 將下載的 chromedriver 二進制文件放在項目根目錄
cp path/to/downloaded/chromedriver ./chromedriver
chmod +x ./chromedriver # 在 Linux/macOS 上使其可執行方法 B:系統 PATH
# Linux/macOS
sudo mv chromedriver /usr/local/bin/
sudo chmod +x /usr/local/bin/chromedriver
# Windows:將 chromedriver.exe 放在 PATH 中的文件夾中4. 驗證安裝
# 測試 ChromeDriver 版本
./chromedriver --version
# 或者在 PATH 中:
chromedriver --versionDocker 特定說明
⚠️ Docker 用戶重要:
- Docker 卷掛載方法可能不適用於隱身模式(
undetected_chromedriver) - 解決方案: 將 ChromeDriver 放在項目根目錄中作為
./chromedriver - 應用程序將自動檢測並使用此二進制文件
- 您應該在日誌中看到:
"Using ChromeDriver from project root: ./chromedriver"
故障排除提示
仍然遇到版本不匹配?
- 驗證 ChromeDriver 是否可執行:
ls -la ./chromedriver - 檢查 ChromeDriver 版本:
./chromedriver --version - 確保它與您的 Chrome 瀏覽器版本匹配
- 驗證 ChromeDriver 是否可執行:
Docker 容器問題?
- 檢查後端日誌:
docker logs backend - 查找消息:
"Using ChromeDriver from project root" - 如果未找到,請驗證文件是否存在且可執行
- 檢查後端日誌:
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 儀表板
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 版本不匹配,會發生這種情況。
您需要導航到下載最新版本:
https://developer.chrome.com/docs/chromedriver/downloads
如果您使用 Chrome 版本 115 或更新版本,請轉到:
https://googlechromelabs.github.io/chrome-for-testing/
並下載與您的操作系統匹配的 chromedriver 版本。
如果此部分不完整,請提出問題。
連接適配器問題
Exception: Provider lm-studio failed: HTTP request failed: No connection adapters were found for '127.0.0.1:1234/v1/chat/completions'`(注意:端口可能不同)- 原因:
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 服務器端口)。
- 確保地址包含
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.`如果您使用錯誤的 searxng 基本 URL 運行 CLI 模式,可能會出現這種情況。
SEARXNG_BASE_URL 在 .env 中設置,且只取決於後端在哪裡運行:
後端在主機上運行(CLI 模式):SEARXNG_BASE_URL="http://localhost:8080" — 如果您更改了 SEARXNG_PORT,請改用該埠號(例如 http://localhost:8001)。http://searxng:... 在這裡不適用:該主機名只在 Docker 內部解析。
後端在 Docker 中運行(Web 界面,full 配置):SEARXNG_BASE_URL="http://searxng:8080" — 始終是埠號 8080,即使您更改了 SEARXNG_PORT;該變數只重新映射主機端的埠號。
端口衝突說明:如果您主機上的埠號
8080已被佔用,請在.env中設置SEARXNG_PORT(例如8001),然後:
- Web 界面(後端在 Docker 中):保持
SEARXNG_BASE_URL="http://searxng:8080"— Docker 內部埠號不會改變。- CLI 模式(後端在主機上):設置
SEARXNG_BASE_URL="http://localhost:8001"— 它必須與SEARXNG_PORT一致。- 瀏覽器檢查:打開
http://localhost:<SEARXNG_PORT>— 在舊埠號8080上回應的是其他應用程序,而不是 AgenticSeek 的 SearXNG。更改
.env後,請重啟後端(api.py或cli.py)— 該文件只在進程啟動時讀取。
FAQ
問:我需要什麼硬件?
| 模型大小 | GPU | 評論 |
|---|---|---|
| 7B | 8GB 顯存 | ⚠️ 不推薦。性能差,頻繁出現幻覺,規劃代理可能會失敗。 |
| 14B | 12 GB VRAM(例如 RTX 3060) | ✅ 可用於簡單任務。可能在網頁瀏覽和規劃任務方面有困難。 |
| 32B | 24+ GB VRAM(例如 RTX 4090) | 🚀 大多數任務成功,可能仍然在任務規劃方面有困難 |
| 70B+ | 48+ GB 顯存 | 💪 優秀。推薦用於高級用例。 |
問:我遇到錯誤該怎麼辦?
確保本地正在運行(ollama serve),您的 config.ini 與您的提供商匹配,並且依賴項已安裝。如果都不起作用,請隨時提出問題。
問:它真的可以 100% 本地運行嗎?
是的,使用 Ollama、lm-studio 或服務器提供商,所有語音轉文本、LLM 和文本轉語音模型都在本地運行。非本地選項(OpenAI 或其他 API)是可選的。
問:當我有 Manus 時,為什麼應該使用 AgenticSeek?
與 Manus 不同,AgenticSeek 優先考慮獨立於外部系統,給您更多控制、隱私和避免 API 成本。
問:誰是這個項目的幕後推手?
這個項目是由我創建的,還有兩個朋友作為維護者和 GitHub 上開源社區的貢獻者。我們只是一群充滿熱情的個人,不是初創公司,也不隸屬於任何組織。
X 上除了我的個人賬戶(https://x.com/Martin993886460)之外的任何 AgenticSeek 賬戶都是冒充的。
貢獻
我們正在尋找開發人員來改進 AgenticSeek!查看開放的問題或討論。
贊助商:
想要通過航班搜索、旅行規劃或搶購最佳購物優惠等功能來提升 AgenticSeek 的能力?考慮使用 SerpApi 製作自定義工具,以解鎖更多 Jarvis 般的功能。使用 SerpApi,您可以為專業任務加速您的代理,同時保持完全控制。
查看 Contributing.md 了解如何集成自定義工具!
維護者:
Fosowl | 巴黎時間
特別感謝:
File: README_FR.md
AgenticSeek : Une Alternative Privée et Locale à Manus
English | 中文 | 繁體中文 | Français | 日本語 | Português (Brasil) | Español | Türkçe
Un assistant IA avec reconnaissance vocale qui est une alternative 100% locale à Manus AI, navigue de manière autonome sur le web, écrit du code et planifie des tâches tout en gardant toutes les données sur votre appareil. Conçu pour des modèles de raisonnement locaux, il fonctionne entièrement sur votre matériel, garantissant une confidentialité totale et zéro dépendance au cloud.
Pourquoi choisir AgenticSeek ?
🔒 Totalement Local & Privé - Tout fonctionne sur votre machine, sans cloud, sans partage de données. Vos fichiers, conversations et recherches restent privés.
🌐 Navigation Web Intelligente - AgenticSeek peut naviguer sur Internet de manière autonome : rechercher, lire, extraire des informations, remplir des formulaires web, le tout sans intervention manuelle.
💻 Assistant de Programmation Autonome - Besoin de code ? Il peut écrire, déboguer et exécuter des programmes en Python, C, Go, Java et plus encore, sans supervision.
🧠 Sélection Intelligente d'Agents - Vous demandez, il choisit automatiquement le meilleur agent pour la tâche. Comme avoir une équipe d'experts toujours disponible.
📋 Planifie et Exécute des Tâches Complexes - De la planification de voyage aux projets complexes, il peut décomposer de grandes tâches en étapes et les compléter en utilisant plusieurs agents IA.
🎙️ Prise en Charge Vocale - Voix claire, rapide et futuriste avec reconnaissance vocale, vous permettant de converser comme avec votre IA personnelle de film de science-fiction. (En développement)
**Démo**
Peux-tu rechercher le projet agenticSeek, apprendre quelles compétences sont nécessaires, puis ouvrir CV_candidates.zip et me dire lesquels correspondent le mieux au projet ?
https://github.com/user-attachments/assets/b8ca60e9-7b3b-4533-840e-08f9ac426316
Avertissement : Cette démonstration et tous les fichiers qui apparaissent (ex: CV_candidates.zip) sont entièrement fictifs. Nous ne sommes pas une entreprise, nous recherchons des contributeurs open source, pas des candidats.
🛠⚠️️ Travail Actif en Cours
🙏 Ce projet a commencé comme un projet parallèle et n'a ni feuille de route ni financement. Il a grandi bien au-delà des attentes en apparaissant dans GitHub Trending. Les contributions, commentaires et de la patience sont profondément appréciés.
Prérequis
Avant de commencer, assurez-vous d'avoir installé :
- Git: Pour cloner le dépôt. Télécharger Git
- Python 3.10.x: Python 3.10.x est fortement recommandé. D'autres versions peuvent causer des erreurs de dépendance. Télécharger Python 3.10 (sélectionnez la version 3.10.x).
- Docker Engine & Docker Compose: Pour exécuter des services empaquetés comme SearxNG.
- Installer Docker Desktop (inclut Docker Compose V2): Windows | Mac | Linux
- Ou installer Docker Engine et Docker Compose séparément sur Linux: Docker Engine | Docker Compose (assurez-vous d'installer Compose V2, par exemple
sudo apt-get install docker-compose-plugin).
1. **Cloner le dépôt et configurer**
git clone https://github.com/Fosowl/agenticSeek.git
cd agenticSeek
mv .env.example .env2. Modifier le contenu du fichier .env
SEARXNG_BASE_URL="http://searxng:8080" # La valeur dépend de l'endroit où s'exécute le backend — voir la note SEARXNG ci-dessous
SEARXNG_PORT=8080
REDIS_BASE_URL="redis://redis:6379/0"
WORK_DIR="/Users/mlg/Documents/workspace_for_ai"
OLLAMA_PORT="11434"
LM_STUDIO_PORT="1234"
CUSTOM_ADDITIONAL_LLM_PORT="11435"
OPENAI_API_KEY='optional'
DEEPSEEK_API_KEY='optional'
OPENROUTER_API_KEY='optional'
TOGETHER_API_KEY='optional'
GOOGLE_API_KEY='optional'
ANTHROPIC_API_KEY='optional'Mettez à jour le fichier .env selon vos besoins :
- SEARXNG_PORT: Le port hôte sur lequel Docker publie SearXNG. Si le port
8080est déjà occupé sur votre machine, définissez-en un autre (par exemple8001). À l'intérieur de Docker, le conteneur écoute toujours sur le port8080— cette variable ne change jamais cela. - SEARXNG_BASE_URL: L'adresse que le backend utilise pour joindre SearXNG. Elle se définit ici dans
.env(et non dansconfig.ini) et dépend uniquement de l'endroit où s'exécute le backend :
| Comment vous exécutez AgenticSeek | SEARXNG_BASE_URL |
|---|---|
Interface web — backend dans Docker (./start_services.sh full) |
http://searxng:8080 — toujours le port 8080, même si vous avez modifié SEARXNG_PORT |
Mode CLI — backend sur l'hôte (uv run cli.py) |
http://localhost:8080 — si vous avez modifié SEARXNG_PORT, utilisez ce port à la place (par exemple http://localhost:8001). http://searxng:... ne fonctionne pas ici : ce nom d'hôte n'existe qu'à l'intérieur de Docker |
Pour vérifier SearXNG dans un navigateur, utilisez toujours le port hôte :
http://localhost:<SEARXNG_PORT>. Après avoir modifié.env, redémarrez le backend — le fichier n'est lu qu'au démarrage du processus.
- REDIS_BASE_URL: Gardez inchangé
- WORK_DIR: Chemin vers le répertoire de travail local. AgenticSeek pourra lire et interagir avec ces fichiers.
- OLLAMA_PORT: Numéro de port pour le service Ollama.
- LM_STUDIO_PORT: Numéro de port pour le service LM Studio.
- CUSTOM_ADDITIONAL_LLM_PORT: Port pour tout service LLM personnalisé supplémentaire.
Les clés API sont complètement optionnelles pour ceux qui choisissent d'exécuter LLM localement, ce qui est l'objectif principal de ce projet. Laissez-les vides si vous avez du matériel suffisant.
3. **Démarrer Docker**
Assurez-vous que Docker est installé et fonctionne sur votre système. Vous pouvez démarrer Docker avec les commandes suivantes :
Linux/macOS:
Ouvrez un terminal et exécutez :shsudo systemctl start dockerOu démarrez Docker Desktop depuis le menu des applications, s'il est installé.
Windows:
Démarrez Docker Desktop depuis le menu Démarrer.
Vous pouvez vérifier si Docker fonctionne en exécutant :
docker infoSi vous voyez des informations sur votre installation Docker, cela fonctionne correctement.
Consultez la Liste des fournisseurs locaux ci-dessous pour un résumé.
Prochaine étape: Exécuter AgenticSeek localement
Si vous rencontrez des problèmes, consultez la section Dépannage.
Si votre matériel ne peut pas exécuter LLM localement, consultez Configuration pour exécuter avec une API.
Pour des explications détaillées de config.ini, consultez la section Configuration.
Configuration pour exécuter LLM localement sur votre machine
Exigences matérielles:
Pour exécuter LLM localement, vous aurez besoin de matériel suffisant. Au minimum, une GPU capable d'exécuter Magistral, Qwen ou Deepseek 14B est requise. Consultez la FAQ pour des recommandations détaillées de modèle/performance.
Configurez votre fournisseur local
Démarrez votre fournisseur local, par exemple avec ollama:
ollama serveConsultez la liste des fournisseurs locaux pris en charge ci-dessous.
Mettre à jour config.ini
Changez le fichier config.ini pour définir provider_name sur un fournisseur pris en charge et provider_model sur un LLM pris en charge par votre fournisseur. Nous recommandons des modèles de raisonnement comme Magistral ou Deepseek.
Consultez la FAQ à la fin du README pour le matériel nécessaire.
[MAIN]
is_local = True # Que vous exécutiez localement ou avec un fournisseur distant.
provider_name = ollama # ou lm-studio, openai, etc.
provider_model = deepseek-r1:14b # choisissez un modèle compatible avec votre matériel
provider_server_address = 127.0.0.1:11434
agent_name = Jarvis # le nom de votre IA
recover_last_session = True # récupérer la session précédente
save_session = True # mémoriser la session actuelle
speak = False # texte vers parole
listen = False # parole vers texte, uniquement pour CLI, expérimental
jarvis_personality = False # utiliser une personnalité plus "Jarvis" (expérimental)
languages = en zh # Liste des langues, TTS utilisera la première de la liste par défaut
[BROWSER]
headless_browser = True # garder inchangé sauf si vous utilisez CLI sur l'hôte.
stealth_mode = True # Utilise selenium indétectable pour réduire la détection du navigateurAvertissement:
Le format du fichier
config.inine prend pas en charge les commentaires.
Ne copiez et collez pas directement la configuration d'exemple, car les commentaires causeront des erreurs. Modifiez plutôt manuellement le fichierconfig.iniavec votre configuration souhaitée, sans commentaires.NE définissez PAS provider_name sur
openaisi vous utilisez LM-studio pour exécuter LLM. Utilisezlm-studio.Certains fournisseurs (ex: lm-studio) nécessitent
http://avant l'IP. Exemple:http://127.0.0.1:1234
Liste des fournisseurs locaux
| Fournisseur | Local ? | Description |
|---|---|---|
| ollama | Oui | Exécute LLM localement facilement en utilisant ollama |
| lm-studio | Oui | Exécute LLM localement avec LM studio (définir provider_name = lm-studio) |
| openai | Oui | Utilise une API compatible avec openai (ex: serveur llama.cpp) |
Prochaine étape: Démarrer les services et exécuter AgenticSeek
Si vous rencontrez des problèmes, consultez la section Dépannage.
Si votre matériel ne peut pas exécuter LLM localement, consultez Configuration pour exécuter avec une API.
Pour des explications détaillées de config.ini, consultez la section Configuration.
Configuration pour exécuter avec une API
Cette configuration utilise des fournisseurs de LLM externes basés sur le cloud. Vous devrez obtenir des clés API du service choisi.
1. Choisissez un fournisseur d'API et obtenez une clé API:
Consultez la Liste des fournisseurs d'API ci-dessous. Visitez leurs sites web pour vous inscrire et obtenir des clés API.
2. Définissez votre clé API comme variable d'environnement:
Linux/macOS:
Ouvrez un terminal et utilisez la commandeexport. Il est préférable de l'ajouter au fichier de configuration de votre shell (ex:~/.bashrc,~/.zshrc) pour qu'elle soit persistante.shexport PROVIDER_API_KEY="your_api_key_here" # Remplacez PROVIDER_API_KEY par le nom de variable spécifique, ex: OPENAI_API_KEY, GOOGLE_API_KEYExemple TogetherAI:
shexport TOGETHER_API_KEY="xxxxxxxxxxxxxxxxxxxxxx"Windows:
- Invite de commandes (temporaire pour la session actuelle):cmd
set PROVIDER_API_KEY=your_api_key_here - PowerShell (temporaire pour la session actuelle):powershell
$env:PROVIDER_API_KEY="your_api_key_here" - Permanent: Recherchez "variables d'environnement" dans la barre de recherche Windows, cliquez sur "Modifier les variables d'environnement système", puis sur le bouton "Variables d'environnement...". Ajoutez une nouvelle variable utilisateur avec le nom approprié (ex:
OPENAI_API_KEY) et votre clé comme valeur.
(Pour plus de détails, consultez la FAQ: Comment configurer une clé API ?).
- Invite de commandes (temporaire pour la session actuelle):
3. Mettez à jour config.ini:
[MAIN]
is_local = False
provider_name = openai # ou google, deepseek, togetherAI, huggingface
provider_model = gpt-3.5-turbo # ou gemini-1.5-flash, deepseek-chat, mistralai/Mixtral-8x7B-Instruct-v0.1, etc.
provider_server_address = # Lorsque is_local = False, généralement ignoré ou peut être laissé vide pour la plupart des API
# ... autres configurations ...Avertissement: Assurez-vous qu'il n'y a pas d'espaces à la fin des valeurs dans config.
Liste des fournisseurs d'API
| Fournisseur | provider_name |
Local ? | Description | Lien de clé API (exemple) |
|---|---|---|---|---|
| OpenAI | openai |
Non | Utilise les modèles ChatGPT via l'API OpenAI. | platform.openai.com/signup |
| Google Gemini | google |
Non | Utilise les modèles Google Gemini via Google AI Studio. | aistudio.google.com/keys |
| Deepseek | deepseek |
Non | Utilise les modèles Deepseek via leur API. | platform.deepseek.com |
| Hugging Face | huggingface |
Non | Utilise les modèles du Hugging Face Inference API. | huggingface.co/settings/tokens |
| TogetherAI | togetherAI |
Non | Utilise divers modèles open source via l'API TogetherAI. | api.together.ai/settings/api-keys |
Note:
- Nous ne recommandons pas d'utiliser
gpt-4oou d'autres modèles OpenAI pour la navigation web complexe et la planification de tâches, car l'optimisation actuelle des prompts cible des modèles comme Deepseek. - Les tâches de codage/bash peuvent échouer avec Gemini, car il a tendance à ignorer notre format de prompt optimisé pour Deepseek r1.
- Lorsque
is_local = False,provider_server_addressdansconfig.inin'est généralement pas utilisé, car les endpoints d'API sont généralement gérés par les bibliothèques du fournisseur correspondant.
Prochaine étape: Démarrer les services et exécuter AgenticSeek
Si vous rencontrez des problèmes, consultez la section Problèmes connus
Pour des explications détaillées du fichier de configuration, consultez la section Configuration.
Démarrer les services et exécuter
Par défaut, AgenticSeek s'exécute entièrement dans Docker.
Option 1: Exécuter dans Docker avec interface web:
Démarrez les services nécessaires. Cela démarrera tous les services du docker-compose.yml, y compris:
- searxng
- redis (requis pour searxng)
- frontend
- backend (si vous utilisez full pour l'interface web)
./start_services.sh full # MacOS
start start_services.cmd full # WindowsAvertissement: Cette étape téléchargera et chargera toutes les images Docker, ce qui peut prendre jusqu'à 30 minutes. Après avoir démarré les services, attendez que le service backend soit complètement opérationnel (vous devriez voir backend: "GET /health HTTP/1.1" 200 OK dans les logs) avant d'envoyer des messages. Lors du premier démarrage, le service backend peut prendre 5 minutes pour démarrer.
Allez à http://localhost:3000/ et vous devriez voir l'interface web.
Dépannage du démarrage des services: Si ces scripts échouent, assurez-vous que Docker Engine fonctionne et que Docker Compose (V2, docker compose) est correctement installé. Vérifiez les messages d'erreur dans la sortie du terminal. Consultez FAQ: Aide ! J'obtiens des erreurs lors de l'exécution d'AgenticSeek ou de ses scripts.
Option 2: Mode CLI:
Pour exécuter avec l'interface CLI, vous devez installer les packages sur l'hôte:
./install.sh
./install.bat # windowsEnsuite, vous devez changer SEARXNG_BASE_URL dans votre fichier .env (pas dans config.ini) vers l'adresse mappée sur l'hôte, car en mode CLI le backend s'exécute sur votre machine, en dehors de Docker :
SEARXNG_BASE_URL="http://localhost:8080"Si vous avez modifié
SEARXNG_PORTdans.env, utilisez ce port ici à la place (par exemplehttp://localhost:8001). Redémarrezcli.pyaprès avoir modifié.env— la valeur est lue au démarrage.
Démarrez les services nécessaires. Cela démarrera certains services du docker-compose.yml, y compris:
- searxng
- redis (requis pour searxng)
- frontend
./start_services.sh # MacOS
start start_services.cmd # WindowsExécutez: uv run: uv run python -m ensurepip pour vous assurer que uv a pip activé.
Utilisez CLI: uv run cli.py
Utilisation
Assurez-vous que les services fonctionnent avec ./start_services.sh full puis allez à localhost:3000 pour l'interface web.
Vous pouvez également utiliser la parole vers texte en définissant listen = True. Uniquement pour le mode CLI.
Pour quitter, dites/tapez simplement goodbye.
Quelques exemples d'utilisation:
Fais un jeu de serpent en python !
Recherche sur le web les meilleurs cafés à Rennes, France, et sauvegarde une liste de trois avec leurs adresses dans rennes_cafes.txt.
Écris un programme Go pour calculer la factorielle d'un nombre, sauvegarde-le comme factorial.go dans ton workspace
Recherche dans le dossier summer_pictures tous les fichiers JPG, renomme-les avec la date d'aujourd'hui et sauvegarde la liste des fichiers renommés dans photos_list.txt
Recherche en ligne les films de science-fiction populaires de 2024 et choisis-en trois à regarder ce soir. Sauvegarde la liste dans movie_night.txt.
Recherche sur le web les derniers articles d'actualité sur l'IA de 2025, sélectionne-en trois et écris un script Python pour extraire les titres et résumés. Sauvegarde le script comme news_scraper.py et les résumés dans ai_news.txt dans /home/projects
Vendredi, recherche sur le web une API gratuite de prix d'actions, inscris-toi avec [email protected] et écris un script Python pour obtenir les prix quotidiens de Tesla en utilisant l'API, en sauvegardant les résultats dans stock_prices.csv
Notez que le remplissage de formulaires est toujours expérimental et peut échouer.
Après avoir saisi votre requête, AgenticSeek attribuera le meilleur agent pour la tâche.
Comme il s'agit d'un prototype initial, le système de routage des agents peut ne pas toujours attribuer l'agent correct à votre requête.
Par conséquent, soyez très explicite sur ce que vous voulez et comment l'IA pourrait procéder, par exemple si vous voulez qu'elle effectue une recherche web, ne dites pas:
Connais-tu de bons pays pour voyager seul ?
Dites plutôt:
Effectue une recherche web et découvre quels sont les meilleurs pays pour voyager seul
**Configuration pour exécuter LLM sur votre propre serveur**
Si vous avez un ordinateur puissant ou un serveur auquel vous pouvez accéder, mais que vous voulez l'utiliser depuis votre ordinateur portable, vous pouvez choisir d'exécuter le LLM sur un serveur distant en utilisant notre serveur llm personnalisé.
Sur votre "serveur" qui exécutera le modèle d'IA, obtenez l'adresse IP
ip a | grep "inet " | grep -v 127.0.0.1 | awk '{print $2}' | cut -d/ -f1 # IP locale
curl https://ipinfo.io/ip # IP publiqueNote: Pour Windows ou macOS, utilisez ipconfig ou ifconfig pour trouver l'adresse IP.
Clonez le dépôt et entrez dans le dossier server/.
git clone --depth 1 https://github.com/Fosowl/agenticSeek.git
cd agenticSeek/llm_server/Installez les exigences spécifiques au serveur:
pip3 install -r requirements.txtExécutez le script du serveur.
python3 app.py --provider ollama --port 3333Vous pouvez choisir d'utiliser ollama et llamacpp comme service LLM.
Maintenant sur votre ordinateur personnel:
Changez le fichier config.ini pour définir provider_name sur server et provider_model sur deepseek-r1:xxb.
Définissez provider_server_address sur l'adresse IP de la machine qui exécutera le modèle.
[MAIN]
is_local = False
provider_name = server
provider_model = deepseek-r1:70b
provider_server_address = http://x.x.x.x:3333Prochaine étape: Démarrer les services et exécuter AgenticSeek
Parole vers Texte
Avertissement: La speech-to-text ne fonctionne qu'en mode CLI pour le moment.
Notez que la parole vers texte ne fonctionne qu'en anglais pour le moment.
La fonctionnalité de parole vers texte est désactivée par défaut. Pour l'activer, définissez listen sur True dans le fichier config.ini:
listen = TrueLorsqu'elle est activée, la fonction de parole vers texte écoute un mot-clé de déclenchement, qui est le nom de l'agent, avant de traiter votre entrée. Vous pouvez personnaliser le nom de l'agent en mettant à jour la valeur agent_name dans config.ini:
agent_name = FridayPour une meilleure reconnaissance, nous recommandons d'utiliser un nom commun en anglais comme "John" ou "Emma" comme nom d'agent.
Une fois que vous voyez la transcription commencer à apparaître, dites le nom de l'agent à haute voix pour le réveiller (ex: "Friday").
Dites votre requête clairement.
Terminez votre demande par une phrase de confirmation pour indiquer au système de continuer. Les exemples de phrases de confirmation incluent:
"do it", "go ahead", "execute", "run", "start", "thanks", "would ya", "please", "okay?", "proceed", "continue", "go on", "do that", "go it", "do you understand?"Configuration
Exemple de configuration:
[MAIN]
is_local = True
provider_name = ollama
provider_model = deepseek-r1:32b
provider_server_address = http://127.0.0.1:11434 # Exemple Ollama; LM-Studio utilise 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 # Liste des langues pour TTS et routage potentiel.
[BROWSER]
headless_browser = False
stealth_mode = FalseExplication des paramètres de config.ini:
- Section
[MAIN]:is_local:Truesi vous utilisez des fournisseurs de LLM locaux (Ollama, LM-Studio, serveur local compatible OpenAI) ou l'option de serveur auto-hébergé.Falsesi vous utilisez des API basées sur le cloud (OpenAI, Google, etc.).provider_name: Spécifie le fournisseur de LLM.- Options locales:
ollama,lm-studio,openai(pour serveur local compatible OpenAI),server(pour configuration de serveur auto-hébergé). - Options d'API:
openai,google,deepseek,huggingface,togetherAI.
- Options locales:
provider_model: Nom ou ID spécifique du modèle du fournisseur sélectionné (ex:deepseekcoder:6.7bpour Ollama,gpt-3.5-turbopour API OpenAI,mistralai/Mixtral-8x7B-Instruct-v0.1pour TogetherAI).provider_server_address: L'adresse de votre fournisseur de LLM.- Pour les fournisseurs locaux: ex:
http://127.0.0.1:11434pour Ollama,http://127.0.0.1:1234pour LM-Studio. - Pour le type de fournisseur
server: L'adresse de votre serveur LLM auto-hébergé (ex:http://your_server_ip:3333). - Pour les API cloud (
is_local = False): Ceci est généralement ignoré ou peut être laissé vide, car les endpoints d'API sont généralement gérés par les bibliothèques clientes.
- Pour les fournisseurs locaux: ex:
agent_name: Le nom de l'assistant IA (ex: Friday). Si activé, utilisé comme mot de déclenchement pour la parole vers texte.recover_last_session:Truepour tenter de récupérer l'état de la session précédente,Falsepour recommencer.save_session:Truepour sauvegarder l'état de la session actuelle pour une récupération potentielle,Falsesinon.speak:Truepour activer la sortie vocale de texte vers parole,Falsepour désactiver.listen:Truepour activer l'entrée vocale de parole vers texte (uniquement mode CLI),Falsepour désactiver.work_dir: Critique: Le répertoire où AgenticSeek lira/écrira des fichiers. Assurez-vous que ce chemin est valide et accessible sur votre système.jarvis_personality:Truepour utiliser des invites système plus "Jarvis-like" (expérimental),Falsepour utiliser des invites standard.languages: Liste de langues séparées par des virgules (ex:en, zh, fr). Utilisé pour la sélection de voix TTS (première par défaut) et peut aider le routeur LLM. Pour éviter les inefficacités du routeur, évitez d'utiliser trop de langues ou des langues très similaires.
- Section
[BROWSER]:headless_browser:Truepour exécuter le navigateur automatisé sans fenêtre visible (recommandé pour l'interface web ou l'utilisation non interactive).Falsepour afficher la fenêtre du navigateur (utile pour le mode CLI ou le débogage).stealth_mode:Truepour activer des mesures qui rendent plus difficile la détection de l'automatisation du navigateur. Peut nécessiter l'installation manuelle d'extensions de navigateur comme anticaptcha.
Cette section résume les types de fournisseurs de LLM pris en charge. Configurez-les dans config.ini.
Fournisseurs locaux (fonctionnant sur votre propre matériel):
| Nom du fournisseur dans config.ini | is_local |
Description | Section de configuration |
|---|---|---|---|
ollama |
True |
Fournit LLM localement facilement en utilisant Ollama. | Configuration pour exécuter LLM localement sur votre machine |
lm-studio |
True |
Fournit LLM localement avec LM-Studio. | Configuration pour exécuter LLM localement sur votre machine |
openai (pour serveur local) |
True |
Connectez-vous à un serveur local exposant une API compatible OpenAI (ex: llama.cpp). | Configuration pour exécuter LLM localement sur votre machine |
server |
False |
Connectez-vous au serveur LLM auto-hébergé d'AgenticSeek fonctionnant sur une autre machine. | Configuration pour exécuter LLM sur votre propre serveur |
Fournisseurs d'API (basés sur le cloud):
| Nom du fournisseur dans config.ini | is_local |
Description | Section de configuration |
|---|---|---|---|
openai |
False |
Utilise l'API officielle d'OpenAI (ex: GPT-3.5, GPT-4). | Configuration pour exécuter avec une API |
google |
False |
Utilise les modèles Google Gemini via API. | Configuration pour exécuter avec une API |
deepseek |
False |
Utilise l'API officielle de Deepseek. | Configuration pour exécuter avec une API |
huggingface |
False |
Utilise Hugging Face Inference API. | Configuration pour exécuter avec une API |
togetherAI |
False |
Utilise divers modèles ouverts via l'API TogetherAI. | Configuration pour exécuter avec une API |
Dépannage
Si vous rencontrez des problèmes, cette section fournit des conseils.
Problèmes connus
Problèmes de ChromeDriver
Exemple d'erreur: SessionNotCreatedException: Message: session not created: This version of ChromeDriver only supports Chrome version XXX
Cause racine
L'incompatibilité de version de ChromeDriver se produit lorsque:
- La version de ChromeDriver que vous avez installée ne correspond pas à la version du navigateur Chrome
- Dans les environnements Docker,
undetected_chromedriverpeut télécharger sa propre version de ChromeDriver, contournant les binaires montés
Étapes de résolution
1. Vérifiez votre version de Chrome
Ouvrez Google Chrome → Paramètres > À propos de Chrome pour trouver votre version (ex: "Version 134.0.6998.88")
2. Téléchargez ChromeDriver correspondant
Pour Chrome 115 et versions ultérieures: Utilisez Chrome for Testing API
- Visitez le tableau de disponibilité de Chrome for Testing
- Trouvez votre version de Chrome ou la correspondance disponible la plus proche
- Téléchargez ChromeDriver pour votre système d'exploitation (utilisez Linux64 pour les environnements Docker)
Pour les anciennes versions de Chrome: Utilisez Téléchargements hérités de ChromeDriver
3. Installez ChromeDriver (choisissez une méthode)
Méthode A: Répertoire racine du projet (recommandé pour Docker)
# Placez le binaire chromedriver téléchargé dans le répertoire racine du projet
cp path/to/downloaded/chromedriver ./chromedriver
chmod +x ./chromedriver # Rendez-le exécutable sur Linux/macOSMéthode B: PATH système
# Linux/macOS
sudo mv chromedriver /usr/local/bin/
sudo chmod +x /usr/local/bin/chromedriver
# Windows: Placez chromedriver.exe dans un dossier du PATH4. Vérifiez l'installation
# Testez la version de ChromeDriver
./chromedriver --version
# Ou s'il est dans PATH:
chromedriver --versionInstructions spécifiques à Docker
⚠️ Important pour les utilisateurs de Docker:
- La méthode de montage de volumes Docker peut ne pas fonctionner avec le mode furtif (
undetected_chromedriver) - Solution: Placez ChromeDriver dans le répertoire racine du projet en tant que
./chromedriver - L'application le détectera automatiquement et utilisera ce binaire
- Vous devriez voir dans les logs:
"Using ChromeDriver from project root: ./chromedriver"
Conseils de dépannage
Toujours une incompatibilité de version ?
- Vérifiez que ChromeDriver est exécutable:
ls -la ./chromedriver - Vérifiez la version de ChromeDriver:
./chromedriver --version - Assurez-vous qu'elle correspond à votre version du navigateur Chrome
- Vérifiez que ChromeDriver est exécutable:
Problèmes avec le conteneur Docker ?
- Vérifiez les logs du backend:
docker logs backend - Recherchez le message:
"Using ChromeDriver from project root" - S'il n'est pas trouvé, vérifiez que le fichier existe et est exécutable
- Vérifiez les logs du backend:
Versions de Chrome for Testing
- Utilisez une correspondance exacte lorsque possible
- Pour la version 134.0.6998.88, utilisez ChromeDriver 134.0.6998.165 (la version disponible la plus proche)
- Le numéro de version principal doit correspondre (134 = 134)
Matrice de compatibilité des versions
| Version de Chrome | Version de ChromeDriver | Statut |
|---|---|---|
| 134.0.6998.x | 134.0.6998.165 | ✅ Disponible |
| 133.0.6943.x | 133.0.6943.141 | ✅ Disponible |
| 132.0.6834.x | 132.0.6834.159 | ✅ Disponible |
Pour la compatibilité la plus récente, consultez le Tableau de 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
Cela se produit si votre navigateur et la version de chromedriver ne correspondent pas.
Vous devez naviguer pour télécharger la dernière version:
https://developer.chrome.com/docs/chromedriver/downloads
Si vous utilisez Chrome version 115 ou supérieure, allez à:
https://googlechromelabs.github.io/chrome-for-testing/
et téléchargez la version de chromedriver correspondant à votre système d'exploitation.
Si cette section est incomplète, ouvrez un issue.
Problèmes d'adaptateurs de connexion
Exception: Provider lm-studio failed: HTTP request failed: No connection adapters were found for '127.0.0.1:1234/v1/chat/completions'` (note: le port peut varier)- Cause: Il manque le préfixe
http://dansprovider_server_addresspourlm-studio(ou un autre serveur local compatible OpenAI similaire) dansconfig.ini, ou il pointe vers le mauvais port. - Solution:
- Assurez-vous que l'adresse inclut
http://. LM-Studio utilise généralementhttp://127.0.0.1:1234par défaut. config.inicorrect:provider_server_address = http://127.0.0.1:1234(ou votre port réel du serveur LM-Studio).
- Assurez-vous que l'adresse inclut
URL de base de SearxNG non fournie
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.`Cela peut se produire si vous exécutez le mode CLI avec une URL de base de searxng incorrecte.
SEARXNG_BASE_URL se définit dans .env et dépend uniquement de l'endroit où s'exécute le backend :
Backend sur l'hôte (mode CLI) : SEARXNG_BASE_URL="http://localhost:8080" — si vous avez modifié SEARXNG_PORT, utilisez ce port à la place (par exemple http://localhost:8001). http://searxng:... ne fonctionne pas ici : ce nom d'hôte ne se résout qu'à l'intérieur de Docker.
Backend dans Docker (interface web, profil full) : SEARXNG_BASE_URL="http://searxng:8080" — toujours le port 8080, même si vous avez modifié SEARXNG_PORT ; cette variable ne remappe que le côté hôte.
Note sur les conflits de ports : Si le port
8080est déjà utilisé sur votre hôte, définissezSEARXNG_PORT(par exemple8001) dans.env, puis :
- Interface web (backend dans Docker) : gardez
SEARXNG_BASE_URL="http://searxng:8080"— le port interne Docker ne change pas.- Mode CLI (backend sur l'hôte) : définissez
SEARXNG_BASE_URL="http://localhost:8001"— il doit correspondre àSEARXNG_PORT.- Vérifications dans le navigateur : ouvrez
http://localhost:<SEARXNG_PORT>— ce qui répond sur l'ancien port8080est une autre application, pas le SearXNG d'AgenticSeek.Après avoir modifié
.env, redémarrez le backend (api.pyoucli.py) — le fichier n'est lu qu'au démarrage du processus.
FAQ
Q: De quel matériel ai-je besoin ?
| Taille du modèle | GPU | Commentaires |
|---|---|---|
| 7B | 8GB VRAM | ⚠️ Non recommandé. Performances médiocres, hallucinations fréquentes, les agents de planification peuvent échouer. |
| 14B | 12 GB VRAM (ex: RTX 3060) | ✅ Utilisable pour des tâches simples. Peut avoir des difficultés avec la navigation web et la planification de tâches. |
| 32B | 24+ GB VRAM (ex: RTX 4090) | 🚀 Réussit la plupart des tâches, peut encore avoir des difficultés avec la planification de tâches |
| 70B+ | 48+ GB VRAM | 💪 Excellent. Recommandé pour les cas d'utilisation avancés. |
Q: Que faire si je rencontre des erreurs ?
Assurez-vous que le local fonctionne (ollama serve), que votre config.ini correspond à votre fournisseur et que les dépendances sont installées. Si rien ne fonctionne, n'hésitez pas à ouvrir un issue.
Q: Peut-il vraiment fonctionner à 100% localement ?
Oui, avec les fournisseurs Ollama, lm-studio ou server, tous les modèles de parole vers texte, LLM et texte vers parole fonctionnent localement. Les options non locales (OpenAI ou autres API) sont optionnelles.
Q: Pourquoi devrais-je utiliser AgenticSeek quand j'ai Manus ?
Contrairement à Manus, AgenticSeek privilégie l'indépendance des systèmes externes, vous donnant plus de contrôle, de confidentialité et évitant les coûts d'API.
Q: Qui est derrière ce projet ?
Ce projet a été créé par moi, avec deux amis comme mainteneurs et des contributeurs de la communauté open source sur GitHub. Nous sommes juste des individus passionnés, pas une startup, ni affiliés à aucune organisation.
Tout compte AgenticSeek sur X autre que mon compte personnel (https://x.com/Martin993886460) est un imposteur.
Contribuer
Nous recherchons des développeurs pour améliorer AgenticSeek ! Consultez les problèmes ouverts ou les discussions.
Sponsors:
Vous voulez améliorer les capacités d'AgenticSeek avec des fonctionnalités comme la recherche de vols, la planification de voyages ou l'obtention des meilleures offres d'achat ? Envisagez d'utiliser SerpApi pour créer des outils personnalisés qui débloquent plus de fonctionnalités de type Jarvis. Avec SerpApi, vous pouvez accélérer votre agent pour des tâches professionnelles tout en gardant le contrôle total.
Consultez Contributing.md pour apprendre comment intégrer des outils personnalisés !
Mainteneurs:
Fosowl | Heure de Paris
Remerciements spéciaux:
tcsenpai et plitc pour avoir aidé à la dockerisation du backend
File: README_JP.md
AgenticSeek: Manusのプライベートでローカルな代替品
English | 中文 | 繁體中文 | Français | 日本語 | Português (Brasil) | Español | Türkçe
*音声対応のAIアシスタントで、100%ローカルで動作するManus AIの代替品です。自律的にウェブを閲覧し、コードを書き、タスクを計画し、すべてのデータをデバイス上に保持します。ローカル推論モデル向けに設計されており、完全にあなたのハードウェア上で動作し、プライバシーを保証し、クラウドへの依存をゼロにします。*
なぜAgenticSeekを選ぶのか?
🔒 完全にローカル&プライベート - すべてがあなたのマシン上で動作し、クラウドなし、データ共有なし。あなたのファイル、会話、検索はプライベートのままです。
🌐 インテリジェントなウェブブラウジング - AgenticSeekは自律的にインターネットを閲覧できます:検索、読み取り、情報抽出、ウェブフォーム入力、すべて手動操作なしで。
💻 自律的なプログラミングアシスタント - コードが必要ですか?Python、C、Go、Javaなどのプログラムを監督なしで書き、デバッグし、実行できます。
🧠 インテリジェントなエージェント選択 - あなたが要求すると、自動的に最適なエージェントがタスクに割り当てられます。常に利用可能な専門家チームを持っているようなものです。
📋 複雑なタスクの計画と実行 - 旅行計画から複雑なプロジェクトまで、大きなタスクをステップに分解し、複数のAIエージェントを使用して完了できます。
🎙️ 音声サポート - クリーンで高速で未来的な音声と音声認識機能により、SF映画のようなパーソナルAIと会話できます。(開発中)
**デモ**
agenticSeekプロジェクトを検索して必要なスキルを学び、CV_candidates.zipを開いて、どの候補がプロジェクトに最も適しているか教えてくれますか?
https://github.com/user-attachments/assets/b8ca60e9-7b3b-4533-840e-08f9ac426316
免責事項:このデモと表示されるすべてのファイル(例:CV_candidates.zip)は完全に架空のものです。私たちは企業ではなく、候補者ではなくオープンソースの貢献者を求めています。
🛠⚠️️ アクティブな開発中
🙏 このプロジェクトはサイドプロジェクトとして始まり、ロードマップも資金もありませんでした。GitHub Trendingに登場して予想以上に成長しました。貢献、フィードバック、忍耐に深く感謝します。
前提条件
始める前に、以下がインストールされていることを確認してください:
- Git: リポジトリをクローンするため。Gitをダウンロード
- Python 3.10.x: Python 3.10.xを強く推奨します。他のバージョンでは依存関係エラーが発生する可能性があります。Python 3.10をダウンロード(3.10.xバージョンを選択)。
- Docker Engine & Docker Compose: SearxNGなどのパッケージ化されたサービスを実行するため。
- Docker Desktopをインストール(Docker Compose V2を含む):Windows | Mac | Linux
- またはLinuxでDocker EngineとDocker Composeを別々にインストール:Docker Engine | Docker Compose(Compose V2をインストールしていることを確認、例:
sudo apt-get install docker-compose-plugin)。
1. **リポジトリをクローンして設定**
git clone https://github.com/Fosowl/agenticSeek.git
cd agenticSeek
mv .env.example .env2. .envファイルの内容を変更
SEARXNG_BASE_URL="http://searxng:8080" # 値はバックエンドをどこで実行するかによって異なります — 下記のSEARXNGに関する注意を参照
SEARXNG_PORT=8080
REDIS_BASE_URL="redis://redis:6379/0"
WORK_DIR="/Users/mlg/Documents/workspace_for_ai"
OLLAMA_PORT="11434"
LM_STUDIO_PORT="1234"
CUSTOM_ADDITIONAL_LLM_PORT="11435"
OPENAI_API_KEY='optional'
DEEPSEEK_API_KEY='optional'
OPENROUTER_API_KEY='optional'
TOGETHER_API_KEY='optional'
GOOGLE_API_KEY='optional'
ANTHROPIC_API_KEY='optional'必要に応じて.envファイルを更新してください:
- SEARXNG_PORT: DockerがSearXNGを公開するホスト側のポート。マシン上でポート
8080が既に使用されている場合は、別のポート(例:8001)を設定してください。Docker内部ではコンテナは常に8080でリッスンしており、この変数がそれを変えることはありません。 - SEARXNG_BASE_URL: バックエンドがSearXNGへアクセスするために使用するアドレス。ここ
.envで設定します(config.iniではありません)。値はバックエンドをどこで実行するかだけで決まります:
| AgenticSeekの実行方法 | SEARXNG_BASE_URL |
|---|---|
Webインターフェース — バックエンドをDockerで実行(./start_services.sh full) |
http://searxng:8080 — SEARXNG_PORT を変更していても常にポート 8080 |
CLIモード — バックエンドをホストで実行(uv run cli.py) |
http://localhost:8080 — SEARXNG_PORT を変更した場合はそのポートを使用してください(例:http://localhost:8001)。http://searxng:... はここでは使えません:このホスト名はDocker内部にしか存在しません |
ブラウザでSearXNGを確認する場合は、常にホスト側のポート
http://localhost:<SEARXNG_PORT>を使用してください。.envを変更した後はバックエンドを再起動してください — このファイルはプロセスの起動時にしか読み込まれません。
- REDIS_BASE_URL: 変更しないでください
- WORK_DIR: ローカル作業ディレクトリへのパス。AgenticSeekはこれらのファイルを読み取り、操作できます。
- OLLAMA_PORT: Ollamaサービスのポート番号。
- LM_STUDIO_PORT: LM Studioサービスのポート番号。
- CUSTOM_ADDITIONAL_LLM_PORT: 追加のカスタムLLMサービスのポート。
APIキーは、ローカルでLLMを実行することを選択するユーザーには完全にオプションであり、これがこのプロジェクトの主な目的です。ハードウェアが十分にある場合は空のままにしてください。
3. **Dockerを起動**
Dockerがインストールされ、システム上で実行されていることを確認してください。以下のコマンドでDockerを起動できます:
Linux/macOS:
ターミナルを開いて実行:shsudo systemctl start dockerまたは、インストールされている場合はアプリケーションメニューからDocker Desktopを起動。
Windows:
スタートメニューからDocker Desktopを起動。
Dockerが実行されているかは以下で確認できます:
docker infoDockerインストール情報が表示されれば正常に動作しています。
要約については以下のローカルプロバイダーリストを参照してください。
次のステップ:ローカルでAgenticSeekを実行
問題が発生した場合は、トラブルシューティングセクションを参照してください。
ハードウェアがローカルでLLMを実行できない場合は、APIを使用した実行設定を参照してください。
詳細なconfig.iniの説明については、設定セクションを参照してください。
マシン上でローカルにLLMを実行する設定
ハードウェア要件:
LLMをローカルで実行するには、十分なハードウェアが必要です。少なくともMagistral、Qwen、またはDeepseek 14Bを実行できるGPUが必要です。詳細なモデル/パフォーマンスの推奨事項についてはFAQを参照してください。
ローカルプロバイダーを設定
例えばollamaを使用してローカルプロバイダーを起動:
ollama serveサポートされているローカルプロバイダーのリストは以下を参照してください。
config.iniを更新
config.iniファイルを変更して、provider_nameをサポートされているプロバイダーに、provider_modelをプロバイダーがサポートするLLMに設定します。MagistralやDeepseekなどの推論モデルをお勧めします。
必要なハードウェアについては、READMEの最後にあるFAQを参照してください。
[MAIN]
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 # 言語リスト、TTSはデフォルトでリストの最初を使用
[BROWSER]
headless_browser = True # ホストでCLIを使用する場合を除き変更しない
stealth_mode = True # 検出されにくいseleniumを使用してブラウザ検出を減らす警告:
config.iniファイル形式はコメントをサポートしていません。
コメントがエラーを引き起こすため、サンプル設定を直接コピー&ペーストしないでください。代わりに、コメントなしで希望の設定でconfig.iniファイルを手動で変更してください。LM-studioを使用してLLMを実行する場合、provider_nameを
openaiに設定しないでください。lm-studioとして使用してください。一部のプロバイダー(例:lm-studio)では、IPの前に
http://が必要です。例:http://127.0.0.1:1234
ローカルプロバイダーリスト
| プロバイダー | ローカル? | 説明 |
|---|---|---|
| ollama | はい | ollamaを使用して簡単にローカルでLLMを実行 |
| lm-studio | はい | LM studioでローカルにLLMを実行(provider_name = lm-studioに設定) |
| openai | はい | OpenAI互換API(例:llama.cppサーバー)を使用 |
次のステップ:サービスを起動してAgenticSeekを実行
問題が発生した場合は、トラブルシューティングセクションを参照してください。
ハードウェアがローカルでLLMを実行できない場合は、APIを使用した実行設定を参照してください。
詳細なconfig.iniの説明については、設定セクションを参照してください。
APIを使用した実行設定
この設定では、外部のクラウドベースのLLMプロバイダーを使用します。選択したサービスからAPIキーを取得する必要があります。
1. APIプロバイダーを選択し、APIキーを取得:
以下のAPIプロバイダーリストを参照してください。ウェブサイトにアクセスして登録し、APIキーを取得してください。
2. APIキーを環境変数として設定:
Linux/macOS:
ターミナルを開き、exportコマンドを使用します。永続的にするにはシェルの設定ファイル(例:~/.bashrc、~/.zshrc)に追加するのがベストです。shexport PROVIDER_API_KEY="your_api_key_here" # PROVIDER_API_KEYを特定の変数名に置き換えてください、例:OPENAI_API_KEY、GOOGLE_API_KEYTogetherAIの例:
shexport 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キーを設定する方法?)。
- コマンドプロンプト(現在のセッション限定):
3. config.iniを更新:
[MAIN]
is_local = False
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の値に末尾のスペースがないことを確認してください。
APIプロバイダーリスト
| プロバイダー | provider_name |
ローカル? | 説明 | APIキーリンク(例) |
|---|---|---|---|---|
| OpenAI | openai |
いいえ | OpenAIのAPIを通じてChatGPTモデルを使用。 | platform.openai.com/signup |
| Google Gemini | google |
いいえ | Google AI Studioを通じてGoogle Geminiモデルを使用。 | aistudio.google.com/keys |
| Deepseek | deepseek |
いいえ | 彼らのAPIを通じてDeepseekモデルを使用。 | platform.deepseek.com |
| Hugging Face | huggingface |
いいえ | Hugging Face Inference APIのモデルを使用。 | huggingface.co/settings/tokens |
| TogetherAI | togetherAI |
いいえ | TogetherAI APIを通じて様々なオープンソースモデルを使用。 | api.together.ai/settings/api-keys |
| OpenRouter | openrouter |
いいえ | OpenRouter APIを通じて様々なオープンソースモデルを使用。 | openrouter.api |
注:
- 複雑なウェブブラウジングとタスクプランニングには
gpt-4oや他のOpenAIモデルの使用は推奨しません。現在のプロンプト最適化はDeepseekなどのモデルを対象としているためです。 - コーディング/bashタスクはGeminiで失敗する可能性があります。Deepseek r1用に最適化されたプロンプト形式を無視する傾向があるためです。
is_local = Falseの場合、config.iniのprovider_server_addressは通常使用されません。APIエンドポイントは通常、対応するプロバイダーのライブラリで処理されるためです。
次のステップ:サービスを起動してAgenticSeekを実行
*問題が発生した場合は、既知の問題セクションを参照してください*
*詳細な設定ファイルの説明については、設定セクションを参照してください。*
サービスを起動して実行
デフォルトでは、AgenticSeekは完全にDocker内で実行されます。
オプション1: DockerでWebインターフェースを使用して実行:
必要なサービスを起動します。これにより、docker-compose.ymlのすべてのサービスが起動します:
- searxng
- redis(searxngに必要)
- frontend
- backend(Webインターフェースにfullを使用する場合)
./start_services.sh full # MacOS
start start_services.cmd full # Windows警告: このステップではすべてのDockerイメージがダウンロードされロードされます。最大30分かかる場合があります。サービスを起動した後、メッセージを送信する前にバックエンドサービスが完全に実行されていることを確認してください(ログにbackend: "GET /health HTTP/1.1" 200 OKが表示されるはずです)。初回実行時、バックエンドサービスは起動に5分かかる場合があります。
http://localhost:3000/にアクセスすると、Webインターフェースが表示されます。
サービス起動のトラブルシューティング: これらのスクリプトが失敗する場合は、Docker Engineが実行中でDocker Compose(V2、docker compose)が正しくインストールされていることを確認してください。ターミナル出力のエラーメッセージを確認してください。FAQ: ヘルプ!AgenticSeekまたはそのスクリプトを実行するとエラーが発生しますを参照してください。
オプション2: CLIモード:
CLIインターフェースで実行するには、ホストにパッケージをインストールする必要があります:
./install.sh
./install.bat # windows次に、.env ファイル(config.ini ではありません)のSEARXNG_BASE_URLをホスト側にマッピングされたアドレスに変更する必要があります。CLIモードではバックエンドがDockerの外、つまりあなたのマシン上で実行されるためです:
SEARXNG_BASE_URL="http://localhost:8080"
.envでSEARXNG_PORTを変更した場合は、ここではそのポートを使用してください(例:http://localhost:8001)。.envを編集した後はcli.pyを再起動してください — この値は起動時に読み込まれます。
必要なサービスを起動します。これにより、docker-compose.ymlの一部のサービスが起動します:
- searxng
- redis(searxngに必要)
- frontend
./start_services.sh # MacOS
start start_services.cmd # Windows実行:uv run: uv run python -m ensurepip でuvがpipを有効にしていることを確認します。
CLIを使用:uv run cli.py
使用方法
サービスが./start_services.sh fullで実行されていることを確認し、localhost:3000にアクセスしてWebインターフェースを使用します。
listen = Trueを設定することで音声認識も使用できます。CLIモードのみ。
終了するには、単にgoodbyeと言う/入力します。
使用例:
Pythonでスネークゲームを作って!
ウェブでフランスのレンヌの最高のカフェを検索し、3つとその住所をrennes_cafes.txtに保存して
階乗を計算するGoプログラムを書き、factorial.goとしてワークスペースに保存して
summer_picturesフォルダ内のすべてのJPGファイルを検索し、今日の日付で名前を変更し、名前変更されたファイルのリストをphotos_list.txtに保存して
オンラインで2024年の人気SF映画を検索し、今夜見るために3つ選び、movie_night.txtに保存して
ウェブで2025年の最新AIニュース記事を検索し、3つ選び、タイトルと要約を抽出するPythonスクリプトを書き、スクリプトをnews_scraper.pyとして保存し、要約をai_news.txtに保存(/home/projects)
金曜日、無料の株価APIをウェブ検索し、[email protected]で登録し、APIを使用してテスラの日次株価を取得するPythonスクリプトを書き、結果をstock_prices.csvに保存して
フォーム入力はまだ実験的であり、失敗する可能性があることに注意してください。
クエリを入力すると、AgenticSeekが最適なエージェントをタスクに割り当てます。
これは初期プロトタイプであるため、エージェントルーティングシステムは常にクエリに正しいエージェントを割り当てられるとは限りません。
したがって、あなたが何を望んでいるか、そしてAIがどのように進めるかを非常に明確に表現する必要があります。例えば、ウェブ検索をしてほしい場合は、次のように言わないでください:
一人旅に適した国を知っていますか?
代わりに、次のように言ってください:
ウェブ検索を実行し、一人旅に最適な国を見つけてください
**独自のサーバーでLLMを実行する設定**
強力なコンピューターやアクセス可能なサーバーを持っているが、ラップトップから使用したい場合は、カスタムllmサーバーを使用してリモートサーバーでLLMを実行することを選択できます。
AIモデルを実行する「サーバー」で、IPアドレスを取得します
ip a | grep "inet " | grep -v 127.0.0.1 | awk '{print $2}' | cut -d/ -f1 # ローカルIP
curl https://ipinfo.io/ip # パブリックIP注:WindowsまたはmacOSでは、IPアドレスを見つけるためにipconfigまたはifconfigを使用してください。
リポジトリをクローンし、server/フォルダに移動します。
git clone --depth 1 https://github.com/Fosowl/agenticSeek.git
cd agenticSeek/llm_server/サーバー固有の要件をインストールします:
pip3 install -r requirements.txtサーバースクリプトを実行します。
python3 app.py --provider ollama --port 3333LLMサービスとしてollamaとllamacppのどちらを使用するか選択できます。
次に、あなたのパーソナルコンピューターで:
config.iniファイルを変更して、provider_nameをserverに、provider_modelをdeepseek-r1:xxbに設定します。provider_server_addressをモデルを実行するマシンのIPアドレスに設定します。
[MAIN]
is_local = False
provider_name = server
provider_model = deepseek-r1:70b
provider_server_address = http://x.x.x.x:3333次のステップ:サービスを起動してAgenticSeekを実行
音声認識
警告:現在、音声認識はCLIモードでのみ機能します。
現在、音声認識は英語でのみ機能することに注意してください。
音声認識機能はデフォルトで無効になっています。有効にするには、config.iniファイルでlistenオプションをTrueに設定します:
listen = True有効にすると、音声認識機能はトリガーワード、つまりエージェントの名前をリッスンし、その後入力を処理し始めます。config.iniファイルのagent_name値を更新することでエージェントの名前をカスタマイズできます:
agent_name = Friday最高の認識のためには、エージェント名として「John」や「Emma」などの一般的な英語名を使用することをお勧めします。
文字起こしが表示され始めたら、エージェントの名前を大声で言って起動します(例:「Friday」)。
クエリを明確に言います。
確認フレーズでリクエストを終了して、システムに続行するように指示します。確認フレーズの例:
"do it", "go ahead", "execute", "run", "start", "thanks", "would ya", "please", "okay?", "proceed", "continue", "go on", "do that", "go it", "do you understand?"設定
設定例:
[MAIN]
is_local = True
provider_name = ollama
provider_model = deepseek-r1:32b
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 # TTSおよび潜在的なルーティングの言語リスト。
[BROWSER]
headless_browser = False
stealth_mode = Falseconfig.ini設定の説明:
[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エンドポイントは通常クライアントライブラリで処理されるためです。
- ローカルプロバイダー用:例:Ollamaの
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などのブラウザ拡張機能の手動インストールが必要な場合があります。
このセクションはサポートされているLLMプロバイダータイプをまとめています。config.iniで設定します。
ローカルプロバイダー(独自のハードウェアで実行):
| config.iniのプロバイダー名 | is_local |
説明 | 設定セクション |
|---|---|---|---|
ollama |
True |
Ollamaを使用してローカルでLLMを簡単に提供。 | マシン上でローカルにLLMを実行する設定 |
lm-studio |
True |
LM-StudioでローカルにLLMを提供。 | マシン上でローカルにLLMを実行する設定 |
openai(ローカルサーバー用) |
True |
OpenAI互換APIを公開するローカルサーバー(例:llama.cpp)に接続。 | マシン上でローカルにLLMを実行する設定 |
server |
False |
別のマシンで実行されているAgenticSeekセルフホストLLMサーバーに接続。 | 独自のサーバーでLLMを実行する設定 |
APIプロバイダー(クラウドベース):
| config.iniのプロバイダー名 | is_local |
説明 | 設定セクション |
|---|---|---|---|
openai |
False |
OpenAIの公式API(例:GPT-3.5、GPT-4)を使用。 | APIを使用した実行設定 |
google |
False |
APIを通じてGoogleのGeminiモデルを使用。 | APIを使用した実行設定 |
deepseek |
False |
Deepseekの公式APIを使用。 | APIを使用した実行設定 |
huggingface |
False |
Hugging Face Inference APIを使用。 | APIを使用した実行設定 |
togetherAI |
False |
TogetherAIのAPIを通じて様々なオープンモデルを使用。 | APIを使用した実行設定 |
トラブルシューティング
問題が発生した場合、このセクションはガイダンスを提供します。
既知の問題
ChromeDriverの問題
エラー例: SessionNotCreatedException: Message: session not created: This version of ChromeDriver only supports Chrome version XXX
根本原因
ChromeDriverのバージョン非互換性は以下で発生します:
- インストールしたChromeDriverのバージョンがChromeブラウザのバージョンと一致しない
- Docker環境では、
undetected_chromedriverが独自のChromeDriverバージョンをダウンロードし、マウントされたバイナリを回避する可能性がある
解決手順
1. Chromeのバージョンを確認
Google Chromeを開く → 設定 > Chromeについてでバージョンを確認(例:「バージョン 134.0.6998.88」)
2. 一致するChromeDriverをダウンロード
Chrome 115以降の場合: Chrome for Testing APIを使用
- Chrome for Testingの可用性ダッシュボードにアクセス
- あなたのChromeバージョンまたは最も近い利用可能な一致を見つける
- オペレーティングシステム用のChromeDriverをダウンロード(Docker環境ではLinux64を使用)
古いChromeバージョンの場合: レガシーChromeDriverダウンロードを使用
3. ChromeDriverをインストール(方法を選択)
方法A:プロジェクトルートディレクトリ(Docker推奨)
# ダウンロードしたchromedriverバイナリをプロジェクトルートディレクトリに配置
cp path/to/downloaded/chromedriver ./chromedriver
chmod +x ./chromedriver # Linux/macOSで実行可能にする方法B:システムPATH
# Linux/macOS
sudo mv chromedriver /usr/local/bin/
sudo chmod +x /usr/local/bin/chromedriver
# Windows: chromedriver.exeをPATH内のフォルダに配置4. インストールを確認
# ChromeDriverのバージョンをテスト
./chromedriver --version
# またはPATHにある場合:
chromedriver --versionDocker固有の指示
⚠️ Dockerユーザーへの重要:
- Dockerボリュームマウント方法はステルスモード(
undetected_chromedriver)では機能しない可能性があります - 解決策: ChromeDriverをプロジェクトルートディレクトリに
./chromedriverとして配置 - アプリケーションが自動的に検出し、このバイナリを使用します
- ログに次のメッセージが表示されるはずです:
"Using ChromeDriver from project root: ./chromedriver"
トラブルシューティングのヒント
まだバージョンの不一致が発生しますか?
- ChromeDriverが実行可能か確認:
ls -la ./chromedriver - ChromeDriverのバージョンを確認:
./chromedriver --version - Chromeブラウザのバージョンと一致することを確認
- ChromeDriverが実行可能か確認:
Dockerコンテナの問題ですか?
- バックエンドログを確認:
docker logs backend - メッセージを探す:
"Using ChromeDriver from project root" - 見つからない場合は、ファイルが存在し実行可能であることを確認
- バックエンドログを確認:
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ダッシュボードを確認
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のバージョンが一致しない場合に発生します。
最新バージョンをダウンロードする必要があります:
https://developer.chrome.com/docs/chromedriver/downloads
Chromeバージョン115以降を使用している場合は、以下にアクセス:
https://googlechromelabs.github.io/chrome-for-testing/
オペレーティングシステムに一致するchromedriverバージョンをダウンロードします。
このセクションが不完全な場合は、issueを開いてください。
接続アダプターの問題
Exception: Provider lm-studio failed: HTTP request failed: No connection adapters were found for '127.0.0.1:1234/v1/chat/completions'`(注:ポートは異なる場合があります)- 原因:
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サーバーポート)。
- アドレスに
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.`間違ったsearxngベースURLでCLIモードを実行すると発生する可能性があります。
SEARXNG_BASE_URL は .env で設定され、バックエンドをどこで実行するかだけで決まります:
バックエンドをホストで実行(CLIモード): SEARXNG_BASE_URL="http://localhost:8080" — SEARXNG_PORT を変更した場合はそのポートを使用してください(例:http://localhost:8001)。http://searxng:... はここでは使えません:このホスト名はDocker内部でしか解決されません。
バックエンドをDockerで実行(Webインターフェース、full プロファイル): SEARXNG_BASE_URL="http://searxng:8080" — SEARXNG_PORT を変更していても常にポート 8080 です。この変数はホスト側のポートを付け替えるだけです。
ポート競合に関する注意: ホスト上でポート
8080が既に使用されている場合は、.envでSEARXNG_PORT(例:8001)を設定し、その上で:
- Webインターフェース(バックエンドをDockerで実行):
SEARXNG_BASE_URL="http://searxng:8080"のままにしてください — Docker内部のポートは変わりません。- CLIモード(バックエンドをホストで実行):
SEARXNG_BASE_URL="http://localhost:8001"に設定してください —SEARXNG_PORTと一致している必要があります。- ブラウザでの確認:
http://localhost:<SEARXNG_PORT>を開いてください — 変更前のポート8080で応答するものがあれば、それはAgenticSeekのSearXNGではなく別のアプリケーションです。
.envを変更した後はバックエンド(api.pyまたはcli.py)を再起動してください — このファイルはプロセスの起動時にしか読み込まれません。
FAQ
Q: どのようなハードウェアが必要ですか?
| モデルサイズ | GPU | コメント |
|---|---|---|
| 7B | 8GB VRAM | ⚠️ 非推奨。パフォーマンスが低く、頻繁な幻覚、計画エージェントが失敗する可能性があります。 |
| 14B | 12 GB VRAM(例:RTX 3060) | ✅ 単純なタスクに使用可能。ウェブブラウジングとタスク計画に困難がある可能性があります。 |
| 32B | 24+ GB VRAM(例:RTX 4090) | 🚀 ほとんどのタスクで成功、タスク計画にまだ困難がある可能性があります |
| 70B+ | 48+ GB VRAM | 💪 優れています。高度な使用例に推奨。 |
Q: エラーが発生したらどうすればよいですか?
ローカルが実行されていること(ollama serve)、config.iniがプロバイダーと一致していること、依存関係がインストールされていることを確認してください。どれも機能しない場合は、遠慮なくissueを開いてください。
Q: 本当に100%ローカルで実行できますか?
はい、Ollama、lm-studio、またはserverプロバイダーを使用すると、すべての音声認識、LLM、テキスト読み上げモデルがローカルで実行されます。非ローカルオプション(OpenAI或其他API)はオプションです。
Q: Manusがあるのに、なぜAgenticSeekを使用する必要がありますか?
Manusとは異なり、AgenticSeekは外部システムからの独立性を優先し、より多くの制御、プライバシー、APIコストの回避を提供します。
Q: このプロジェクトの背後には誰がいますか?
このプロジェクトは私によって作成され、2人の友人がメンテナーとして、GitHub上のオープンソースコミュニティの貢献者と共に運営されています。私たちは単なる情熱的な個人であり、スタートアップではなく、どの組織にも所属していません。
私の個人アカウント(https://x.com/Martin993886460)以外のX上のAgenticSeekアカウントはすべて偽物です。
貢献
AgenticSeekを改善する開発者を探しています!オープンなissueやディスカッションを確認してください。
スポンサー:
フライト検索、旅行計画、または最高の買い物のお得な情報の取得などの機能でAgenticSeekの能力を向上させたいですか?SerpApiを使用してカスタムツールを作成し、より多くのJarvisのような機能を解放することを検討してください。SerpApiを使用すると、プロフェッショナルなタスクのためにエージェントを加速させながら、完全な制御を維持できます。
Contributing.mdをチェックして、カスタムツールを統合する方法を学びましょう!
メンテナー:
Fosowl | パリ時間
特別な感謝:
File: README_PTBR.md
AgenticSeek: Uma Alternativa Privada e Local ao Manus
English | 中文 | 繁體中文 | Français | 日本語 | Português (Brasil) | Español | Türkçe
Um assistente de IA com reconhecimento de voz que é uma alternativa 100% local ao Manus AI, navega autonomamente na web, escreve código e planeja tarefas enquanto mantém todos os dados no seu dispositivo. Projetado para modelos de raciocínio local, funciona inteiramente no seu hardware, garantindo total privacidade e zero dependência de nuvem.
Por que escolher o AgenticSeek?
🔒 Totalmente Local & Privado - Tudo funciona na sua máquina, sem nuvem, sem compartilhamento de dados. Seus arquivos, conversas e pesquisas permanecem privados.
🌐 Navegação Web Inteligente - O AgenticSeek pode navegar na Internet autonomamente: pesquisar, ler, extrair informações, preencher formulários web, tudo sem intervenção manual.
💻 Assistente de Programação Autônomo - Precisa de código? Ele pode escrever, depurar e executar programas em Python, C, Go, Java e muito mais, sem supervisão.
🧠 Seleção Inteligente de Agentes - Você pergunta, ele escolhe automaticamente o melhor agente para a tarefa. Como ter uma equipe de especialistas sempre disponível.
📋 Planeja e Executa Tarefas Complexas - Desde o planejamento de viagens até projetos complexos, ele pode decompor grandes tarefas em etapas e completá-las usando múltiplos agentes de IA.
🎙️ Suporte de Voz - Voz clara, rápida e futurista com reconhecimento de voz, permitindo que você converse como com sua IA pessoal de filme de ficção científica. (Em desenvolvimento)
**Demo**
Você pode pesquisar o projeto agenticSeek, aprender quais habilidades são necessárias e, em seguida, abrir CV_candidates.zip e me dizer quais correspondem melhor ao projeto?
https://github.com/user-attachments/assets/b8ca60e9-7b3b-4533-840e-08f9ac426316
Aviso: Esta demonstração e todos os arquivos que aparecem (ex: CV_candidates.zip) são totalmente fictícios. Não somos uma empresa, estamos procurando contribuidores de código aberto, não candidatos.
🛠⚠️️ Trabalho Ativo em Andamento
🙏 Este projeto começou como um projeto paralelo e não tem roadmap nem financiamento. Cresceu muito além das expectativas ao aparecer no GitHub Trending. Contribuições, comentários e paciência são profundamente apreciados.
Pré-requisitos
Antes de começar, certifique-se de ter instalado:
- Git: Para clonar o repositório. Baixar Git
- Python 3.10.x: Python 3.10.x é altamente recomendado. Outras versões podem causar erros de dependência. Baixar Python 3.10 (selecione a versão 3.10.x).
- Docker Engine & Docker Compose: Para executar serviços empacotados como SearxNG.
- Instalar Docker Desktop (inclui Docker Compose V2): Windows | Mac | Linux
- Ou instalar Docker Engine e Docker Compose separadamente no Linux: Docker Engine | Docker Compose (certifique-se de instalar Compose V2, por exemplo
sudo apt-get install docker-compose-plugin).
1. **Clonar o repositório e configurar**
git clone https://github.com/Fosowl/agenticSeek.git
cd agenticSeek
mv .env.example .env2. Modificar o conteúdo do arquivo .env
SEARXNG_BASE_URL="http://searxng:8080" # o valor depende de onde o backend é executado — veja a nota sobre SEARXNG abaixo
SEARXNG_PORT=8080
REDIS_BASE_URL="redis://redis:6379/0"
WORK_DIR="/Users/mlg/Documents/workspace_for_ai"
OLLAMA_PORT="11434"
LM_STUDIO_PORT="1234"
CUSTOM_ADDITIONAL_LLM_PORT="11435"
OPENAI_API_KEY='optional'
DEEPSEEK_API_KEY='optional'
OPENROUTER_API_KEY='optional'
TOGETHER_API_KEY='optional'
GOOGLE_API_KEY='optional'
ANTHROPIC_API_KEY='optional'Atualize o arquivo .env conforme necessário:
- SEARXNG_PORT: A porta do host na qual o Docker publica o SearXNG. Se a porta
8080já estiver ocupada na sua máquina, defina outra (por exemplo,8001). Dentro do Docker, o contêiner sempre escuta na porta8080— esta variável nunca altera isso. - SEARXNG_BASE_URL: O endereço que o backend usa para acessar o SearXNG. Ele é definido aqui no
.env(não noconfig.ini) e depende apenas de onde o backend é executado:
| Como você executa o AgenticSeek | SEARXNG_BASE_URL |
|---|---|
Interface web — backend no Docker (./start_services.sh full) |
http://searxng:8080 — sempre a porta 8080, mesmo que você tenha alterado SEARXNG_PORT |
Modo CLI — backend no host (uv run cli.py) |
http://localhost:8080 — se você alterou SEARXNG_PORT, use essa porta no lugar (por exemplo, http://localhost:8001). http://searxng:... não funciona aqui: esse hostname só existe dentro do Docker |
Para verificar o SearXNG em um navegador, use sempre a porta do host:
http://localhost:<SEARXNG_PORT>. Depois de alterar o.env, reinicie o backend — o arquivo só é lido na inicialização do processo.
- REDIS_BASE_URL: Mantenha inalterado
- WORK_DIR: Caminho para o diretório de trabalho local. O AgenticSeek poderá ler e interagir com esses arquivos.
- OLLAMA_PORT: Número da porta para o serviço Ollama.
- LM_STUDIO_PORT: Número da porta para o serviço LM Studio.
- CUSTOM_ADDITIONAL_LLM_PORT: Porta para qualquer serviço LLM personalizado adicional.
As chaves de API são completamente opcionais para aqueles que optam por executar LLM localmente, que é o objetivo principal deste projeto. Deixe-as vazias se você tiver hardware suficiente.
3. **Iniciar o Docker**
Certifique-se de que o Docker está instalado e funcionando no seu sistema. Você pode iniciar o Docker com os seguintes comandos:
Linux/macOS:
Abra um terminal e execute:shsudo systemctl start dockerOu inicie o Docker Desktop a partir do menu de aplicativos, se instalado.
Windows:
Inicie o Docker Desktop a partir do menu Iniciar.
Você pode verificar se o Docker está funcionando executando:
docker infoSe você vir informações sobre sua instalação do Docker, ele está funcionando corretamente.
Consulte a Lista de provedores locais abaixo para um resumo.
Próxima etapa: Executar o AgenticSeek localmente
Se você encontrar problemas, consulte a seção Solução de problemas.
Se seu hardware não puder executar LLM localmente, consulte Configuração para executar com uma API.
Para explicações detalhadas do config.ini, consulte a seção Configuração.
Configuração para executar LLM localmente na sua máquina
Requisitos de hardware:
Para executar LLM localmente, você precisará de hardware suficiente. No mínimo, uma GPU capaz de executar Magistral, Qwen ou Deepseek 14B é necessária. Consulte o FAQ para recomendações detalhadas de modelo/desempenho.
Configure seu provedor local
Inicie seu provedor local, por exemplo com ollama:
ollama serveConsulte a lista de provedores locais suportados abaixo.
Atualizar config.ini
Altere o arquivo config.ini para definir provider_name como um provedor suportado e provider_model como um LLM suportado pelo seu provedor. Recomendamos modelos de raciocínio como Magistral ou Deepseek.
Consulte o FAQ no final do README para o hardware necessário.
[MAIN]
is_local = True # Se você está executando localmente ou com um provedor remoto.
provider_name = ollama # ou lm-studio, openai, etc.
provider_model = deepseek-r1:14b # escolha um modelo compatível com seu hardware
provider_server_address = 127.0.0.1:11434
agent_name = Jarvis # o nome da sua IA
recover_last_session = True # recuperar a sessão anterior
save_session = True # memorizar a sessão atual
speak = False # texto para fala
listen = False # fala para texto, apenas para CLI, experimental
jarvis_personality = False # usar uma personalidade mais "Jarvis" (experimental)
languages = en zh # Lista de idiomas, TTS usará o primeiro da lista por padrão
[BROWSER]
headless_browser = True # mantenha inalterado, a menos que use CLI no host.
stealth_mode = True # Use selenium indetectável para reduzir a detecção do navegadorAviso:
O formato do arquivo
config.ininão suporta comentários.
Não copie e cole diretamente a configuração de exemplo, pois os comentários causarão erros. Em vez disso, modifique manualmente o arquivoconfig.inicom sua configuração desejada, sem comentários.NÃO defina provider_name como
openaise você estiver usando LM-studio para executar LLM. Use-o comolm-studio.Alguns provedores (ex: lm-studio) exigem
http://antes do IP. Exemplo:http://127.0.0.1:1234
Lista de provedores locais
| Provedor | Local ? | Descrição |
|---|---|---|
| ollama | Sim | Executa LLM localmente facilmente usando ollama |
| lm-studio | Sim | Executa LLM localmente com LM studio (defina provider_name = lm-studio) |
| openai | Sim | Use uma API compatível com openai (ex: servidor llama.cpp) |
Próxima etapa: Iniciar os serviços e executar o AgenticSeek
Se você encontrar problemas, consulte a seção Solução de problemas.
Se seu hardware não puder executar LLM localmente, consulte Configuração para executar com uma API.
Para explicações detalhadas do config.ini, consulte a seção Configuração.
Configuração para executar com uma API
Esta configuração usa provedores de LLM externos baseados em nuvem. Você precisará obter chaves de API do serviço escolhido.
1. Escolha um provedor de API e obtenha uma chave de API:
Consulte a Lista de provedores de API abaixo. Visite seus sites para se inscrever e obter chaves de API.
2. Defina sua chave de API como variável de ambiente:
Linux/macOS:
Abra um terminal e use o comandoexport. É melhor adicioná-lo ao arquivo de configuração do seu shell (ex:~/.bashrc,~/.zshrc) para que seja persistente.shexport PROVIDER_API_KEY="your_api_key_here" # Substitua PROVIDER_API_KEY pelo nome de variável específico, ex: OPENAI_API_KEY, GOOGLE_API_KEYExemplo TogetherAI:
shexport TOGETHER_API_KEY="xxxxxxxxxxxxxxxxxxxxxx"Windows:
- Prompt de comando (temporário para a sessão atual):cmd
set PROVIDER_API_KEY=your_api_key_here - PowerShell (temporário para a sessão atual):powershell
$env:PROVIDER_API_KEY="your_api_key_here" - Permanente: Pesquise "variáveis de ambiente" na barra de pesquisa do Windows, clique em "Editar variáveis de ambiente do sistema" e depois no botão "Variáveis de ambiente...". Adicione uma nova variável de usuário com o nome apropriado (ex:
OPENAI_API_KEY) e sua chave como valor.
(Para mais detalhes, consulte o FAQ: Como configurar uma chave de API?).
- Prompt de comando (temporário para a sessão atual):
3. Atualize config.ini:
[MAIN]
is_local = False
provider_name = openai # ou google, deepseek, togetherAI, huggingface
provider_model = gpt-3.5-turbo # ou gemini-1.5-flash, deepseek-chat, mistralai/Mixtral-8x7B-Instruct-v0.1, etc.
provider_server_address = # Quando is_local = False, geralmente ignorado ou pode ser deixado vazio para a maioria das APIs
# ... outras configurações ...Aviso: Certifique-se de que não há espaços no final dos valores no config.
Lista de provedores de API
| Provedor | provider_name |
Local ? | Descrição | Link da chave de API (exemplo) |
|---|---|---|---|---|
| OpenAI | openai |
Não | Use os modelos ChatGPT via API OpenAI. | platform.openai.com/signup |
| Google Gemini | google |
Não | Use os modelos Google Gemini via Google AI Studio. | aistudio.google.com/keys |
| Deepseek | deepseek |
Não | Use os modelos Deepseek via sua API. | platform.deepseek.com |
| Hugging Face | huggingface |
Não | Use modelos do Hugging Face Inference API. | huggingface.co/settings/tokens |
| TogetherAI | togetherAI |
Não | Use vários modelos open source via API TogetherAI. | api.together.ai/settings/api-keys |
Nota:
- Não recomendamos usar
gpt-4oou outros modelos OpenAI para navegação web complexa e planejamento de tarefas, pois a otimização atual de prompts visa modelos como Deepseek. - Tarefas de codificação/bash podem falhar com Gemini, pois tende a ignorar nosso formato de prompt otimizado para Deepseek r1.
- Quando
is_local = False,provider_server_addressnoconfig.inigeralmente não é usado, pois os endpoints de API são geralmente gerenciados pelas bibliotecas do provedor correspondente.
Próxima etapa: Iniciar os serviços e executar o AgenticSeek
Se você encontrar problemas, consulte a seção Problemas conhecidos
Para explicações detalhadas do arquivo de configuração, consulte a seção Configuração.
Iniciar os serviços e executar
Por padrão, o AgenticSeek é executado inteiramente no Docker.
Opção 1: Executar no Docker com interface web:
Inicie os serviços necessários. Isso iniciará todos os serviços do docker-compose.yml, incluindo:
- searxng
- redis (necessário para searxng)
- frontend
- backend (se você usar full para a interface web)
./start_services.sh full # MacOS
start start_services.cmd full # WindowsAviso: Esta etapa baixará e carregará todas as imagens do Docker, o que pode levar até 30 minutos. Depois de iniciar os serviços, aguarde até que o serviço backend esteja totalmente operacional (você deve ver backend: "GET /health HTTP/1.1" 200 OK nos logs) antes de enviar mensagens. Na primeira inicialização, o serviço backend pode levar 5 minutos para iniciar.
Vá para http://localhost:3000/ e você deve ver a interface web.
Solução de problemas de inicialização de serviços: Se esses scripts falharem, certifique-se de que o Docker Engine está funcionando e que o Docker Compose (V2, docker compose) está instalado corretamente. Verifique as mensagens de erro na saída do terminal. Consulte FAQ: Ajuda! Estou recebendo erros ao executar o AgenticSeek ou seus scripts.
Opção 2: Modo CLI:
Para executar com a interface CLI, você precisa instalar os pacotes no host:
./install.sh
./install.bat # windowsEm seguida, você precisa alterar SEARXNG_BASE_URL no seu arquivo .env (não no config.ini) para o endereço mapeado no host, porque no modo CLI o backend é executado na sua máquina, fora do Docker:
SEARXNG_BASE_URL="http://localhost:8080"Se você alterou
SEARXNG_PORTno.env, use essa porta aqui no lugar (por exemplo,http://localhost:8001). Reinicie ocli.pydepois de editar o.env— o valor é lido na inicialização.
Inicie os serviços necessários. Isso iniciará alguns serviços do docker-compose.yml, incluindo:
- searxng
- redis (necessário para searxng)
- frontend
./start_services.sh # MacOS
start start_services.cmd # WindowsExecute: uv run: uv run python -m ensurepip para garantir que o uv tenha o pip ativado.
Use CLI: uv run cli.py
Uso
Certifique-se de que os serviços estão funcionando com ./start_services.sh full e vá para localhost:3000 para a interface web.
Você também pode usar fala para texto definindo listen = True. Apenas para o modo CLI.
Para sair, basta dizer/digitar goodbye.
Alguns exemplos de uso:
Faça um jogo da cobra em python!
Pesquise na web os melhores cafés em Rennes, França, e salve uma lista de três com seus endereços em rennes_cafes.txt.
Escreva um programa Go para calcular o fatorial de um número, salve-o como factorial.go em seu workspace
Pesquise na pasta summer_pictures todos os arquivos JPG, renomeie-os com a data de hoje e salve a lista de arquivos renomeados em photos_list.txt
Pesquise online os filmes de ficção científica populares de 2024 e escolha três para assistir esta noite. Salve a lista em movie_night.txt.
Pesquise na web os últimos artigos de notícias sobre IA de 2025, selecione três e escreva um script Python para extrair os títulos e resumos. Salve o script como news_scraper.py e os resumos em ai_news.txt em /home/projects
Sexta-feira, pesquise na web uma API gratuita de preços de ações, inscreva-se com [email protected] e escreva um script Python para obter os preços diários da Tesla usando a API, salvando os resultados em stock_prices.csv
Observe que o preenchimento de formulários ainda é experimental e pode falhar.
Depois de inserir sua consulta, o AgenticSeek atribuirá o melhor agente para a tarefa.
Como este é um protótipo inicial, o sistema de roteamento de agentes pode nem sempre atribuir o agente correto à sua consulta.
Portanto, seja muito explícito sobre o que você quer e como a IA pode proceder, por exemplo, se você quiser que ela faça uma pesquisa na web, não diga:
Você conhece bons países para viajar sozinho?
Em vez disso, diga:
Execute uma pesquisa na web e descubra quais são os melhores países para viajar sozinho
**Configuração para executar LLM em seu próprio servidor**
Se você tem um computador poderoso ou um servidor que pode acessar, mas quer usá-lo do seu laptop, você pode optar por executar o LLM em um servidor remoto usando nosso servidor llm personalizado.
No seu "servidor" que executará o modelo de IA, obtenha o endereço IP
ip a | grep "inet " | grep -v 127.0.0.1 | awk '{print $2}' | cut -d/ -f1 # IP local
curl https://ipinfo.io/ip # IP públicoNota: Para Windows ou macOS, use ipconfig ou ifconfig para encontrar o endereço IP.
Clone o repositório e entre na pasta server/.
git clone --depth 1 https://github.com/Fosowl/agenticSeek.git
cd agenticSeek/llm_server/Instale os requisitos específicos do servidor:
pip3 install -r requirements.txtExecute o script do servidor.
python3 app.py --provider ollama --port 3333Você pode escolher usar ollama e llamacpp como serviço LLM.
Agora no seu computador pessoal:
Altere o arquivo config.ini para definir provider_name como server e provider_model como deepseek-r1:xxb.
Defina provider_server_address como o endereço IP da máquina que executará o modelo.
[MAIN]
is_local = False
provider_name = server
provider_model = deepseek-r1:70b
provider_server_address = http://x.x.x.x:3333Próxima etapa: Iniciar os serviços e executar o AgenticSeek
Fala para Texto
Aviso: Fala para texto funciona apenas no modo CLI no momento.
Observe que a fala para texto funciona apenas em inglês no momento.
A funcionalidade de fala para texto está desativada por padrão. Para ativá-la, defina listen como True no arquivo config.ini:
listen = TrueQuando ativada, a funcionalidade de fala para texto ouve uma palavra-chave de gatilho, que é o nome do agente, antes de processar sua entrada. Você pode personalizar o nome do agente atualizando o valor agent_name em config.ini:
agent_name = FridayPara melhor reconhecimento, recomendamos usar um nome comum em inglês como "John" ou "Emma" como nome do agente.
Assim que você vir a transcrição começar a aparecer, diga o nome do agente em voz alta para acordá-lo (ex: "Friday").
Diga sua consulta claramente.
Termine sua solicitação com uma frase de confirmação para indicar ao sistema para continuar. Exemplos de frases de confirmação incluem:
"do it", "go ahead", "execute", "run", "start", "thanks", "would ya", "please", "okay?", "proceed", "continue", "go on", "do that", "go it", "do you understand?"Configuração
Exemplo de configuração:
[MAIN]
is_local = True
provider_name = ollama
provider_model = deepseek-r1:32b
provider_server_address = http://127.0.0.1:11434 # Exemplo Ollama; LM-Studio usa 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 # Lista de idiomas para TTS e roteamento potencial.
[BROWSER]
headless_browser = False
stealth_mode = FalseExplicação das configurações de config.ini:
- Seção
[MAIN]:is_local:Truese você estiver usando provedores de LLM locais (Ollama, LM-Studio, servidor local compatível com OpenAI) ou a opção de servidor auto-hospedado.Falsese você estiver usando APIs baseadas em nuvem (OpenAI, Google, etc.).provider_name: Especifica o provedor de LLM.- Opções locais:
ollama,lm-studio,openai(para servidor local compatível com OpenAI),server(para configuração de servidor auto-hospedado). - Opções de API:
openai,google,deepseek,huggingface,togetherAI.
- Opções locais:
provider_model: Nome ou ID específico do modelo do provedor selecionado (ex:deepseekcoder:6.7bpara Ollama,gpt-3.5-turbopara API OpenAI,mistralai/Mixtral-8x7B-Instruct-v0.1para TogetherAI).provider_server_address: O endereço do seu provedor de LLM.- Para provedores locais: ex:
http://127.0.0.1:11434para Ollama,http://127.0.0.1:1234para LM-Studio. - Para o tipo de provedor
server: O endereço do seu servidor LLM auto-hospedado (ex:http://your_server_ip:3333). - Para APIs em nuvem (
is_local = False): Isso geralmente é ignorado ou pode ser deixado em branco, pois os endpoints da API são geralmente gerenciados pelas bibliotecas do provedor correspondente.
- Para provedores locais: ex:
agent_name: O nome do assistente de IA (ex: Friday). Se ativado, usado como palavra de gatilho para fala para texto.recover_last_session:Truepara tentar recuperar o estado da sessão anterior,Falsepara começar do zero.save_session:Truepara salvar o estado da sessão atual para possível recuperação,Falsecaso contrário.speak:Truepara ativar a saída de voz de texto para fala,Falsepara desativar.listen:Truepara ativar a entrada de voz de fala para texto (apenas modo CLI),Falsepara desativar.work_dir: Crítico: O diretório onde o AgenticSeek lerá/escreverá arquivos. Certifique-se de que este caminho é válido e acessível no seu sistema.jarvis_personality:Truepara usar prompts de sistema mais "Jarvis-like" (experimental),Falsepara usar prompts padrão.languages: Lista de idiomas separados por vírgulas (ex:en, zh, fr). Usado para seleção de voz TTS (primeira por padrão) e pode ajudar o roteador LLM. Para evitar ineficiências do roteador, evite usar muitos idiomas ou idiomas muito semelhantes.
- Seção
[BROWSER]:headless_browser:Truepara executar o navegador automatizado sem janela visível (recomendado para interface web ou uso não interativo).Falsepara exibir a janela do navegador (útil para modo CLI ou depuração).stealth_mode:Truepara ativar medidas que tornam mais difícil a detecção da automação do navegador. Pode exigir instalação manual de extensões de navegador como anticaptcha.
Esta seção resume os tipos de provedores de LLM suportados. Configure-os em config.ini.
Provedores locais (executando em seu próprio hardware):
| Nome do provedor em config.ini | is_local |
Descrição | Seção de configuração |
|---|---|---|---|
ollama |
True |
Fornece LLM localmente facilmente usando Ollama. | Configuração para executar LLM localmente na sua máquina |
lm-studio |
True |
Fornece LLM localmente com LM-Studio. | Configuração para executar LLM localmente na sua máquina |
openai (para servidor local) |
True |
Conecte-se a um servidor local expondo uma API compatível com OpenAI (ex: llama.cpp). | Configuração para executar LLM localmente na sua máquina |
server |
False |
Conecte-se ao servidor LLM auto-hospedado do AgenticSeek em execução em outra máquina. | Configuração para executar LLM em seu próprio servidor |
Provedores de API (baseados em nuvem):
| Nome do provedor em config.ini | is_local |
Descrição | Seção de configuração |
|---|---|---|---|
openai |
False |
Use a API oficial da OpenAI (ex: GPT-3.5, GPT-4). | Configuração para executar com uma API |
google |
False |
Use os modelos Google Gemini via API. | Configuração para executar com uma API |
deepseek |
False |
Use a API oficial da Deepseek. | Configuração para executar com uma API |
huggingface |
False |
Use Hugging Face Inference API. | Configuração para executar com uma API |
togetherAI |
False |
Use vários modelos abertos via API TogetherAI. | Configuração para executar com uma API |
Solução de problemas
Se você encontrar problemas, esta seção fornece orientações.
Problemas conhecidos
Problemas do ChromeDriver
Exemplo de erro: SessionNotCreatedException: Message: session not created: This version of ChromeDriver only supports Chrome version XXX
Causa raiz
A incompatibilidade de versão do ChromeDriver ocorre quando:
- A versão do ChromeDriver que você instalou não corresponde à versão do navegador Chrome
- Em ambientes Docker,
undetected_chromedriverpode baixar sua própria versão do ChromeDriver, contornando os binários montados
Etapas de solução
1. Verifique sua versão do Chrome
Abra o Google Chrome → Configurações > Sobre o Chrome para encontrar sua versão (ex: "Versão 134.0.6998.88")
2. Baixe o ChromeDriver correspondente
Para Chrome 115 e superior: Use Chrome for Testing API
- Visite o painel de disponibilidade do Chrome for Testing
- Encontre sua versão do Chrome ou a correspondência disponível mais próxima
- Baixe o ChromeDriver para seu sistema operacional (use Linux64 para ambientes Docker)
Para versões mais antigas do Chrome: Use Downloads legados do ChromeDriver
3. Instale o ChromeDriver (escolha um método)
Método A: Diretório raiz do projeto (recomendado para Docker)
# Coloque o binário chromedriver baixado no diretório raiz do projeto
cp path/to/downloaded/chromedriver ./chromedriver
chmod +x ./chromedriver # Torne-o executável no Linux/macOSMétodo B: PATH do sistema
# Linux/macOS
sudo mv chromedriver /usr/local/bin/
sudo chmod +x /usr/local/bin/chromedriver
# Windows: Coloque chromedriver.exe em uma pasta do PATH4. Verifique a instalação
# Teste a versão do ChromeDriver
./chromedriver --version
# Ou se estiver no PATH:
chromedriver --versionInstruções específicas do Docker
⚠️ Importante para usuários do Docker:
- O método de montagem de volumes do Docker pode não funcionar com o modo furtivo (
undetected_chromedriver) - Solução: Coloque o ChromeDriver no diretório raiz do projeto como
./chromedriver - O aplicativo o detectará automaticamente e usará este binário
- Você deve ver nos logs:
"Using ChromeDriver from project root: ./chromedriver"
Dicas de solução de problemas
Ainda há incompatibilidade de versão?
- Verifique se o ChromeDriver é executável:
ls -la ./chromedriver - Verifique a versão do ChromeDriver:
./chromedriver --version - Certifique-se de que corresponde à versão do seu navegador Chrome
- Verifique se o ChromeDriver é executável:
Problemas com o contêiner Docker?
- Verifique os logs do backend:
docker logs backend - Procure a mensagem:
"Using ChromeDriver from project root" - Se não for encontrado, verifique se o arquivo existe e é executável
- Verifique os logs do backend:
Versões do Chrome for Testing
- Use uma correspondência exata quando possível
- Para a versão 134.0.6998.88, use o ChromeDriver 134.0.6998.165 (a versão disponível mais próxima)
- O número da versão principal deve corresponder (134 = 134)
Matriz de compatibilidade de versões
| Versão do Chrome | Versão do ChromeDriver | Status |
|---|---|---|
| 134.0.6998.x | 134.0.6998.165 | ✅ Disponível |
| 133.0.6943.x | 133.0.6943.141 | ✅ Disponível |
| 132.0.6834.x | 132.0.6834.159 | ✅ Disponível |
Para a compatibilidade mais recente, consulte o Painel do 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
Isso acontece se seu navegador e a versão do chromedriver não corresponderem.
Você precisa navegar para baixar a versão mais recente:
https://developer.chrome.com/docs/chromedriver/downloads
Se você estiver usando o Chrome versão 115 ou superior, vá para:
https://googlechromelabs.github.io/chrome-for-testing/
e baixe a versão do chromedriver correspondente ao seu sistema operacional.
Se esta seção estiver incompleta, abra um issue.
Problemas de adaptadores de conexão
Exception: Provider lm-studio failed: HTTP request failed: No connection adapters were found for '127.0.0.1:1234/v1/chat/completions'` (nota: a porta pode variar)- Causa: Falta o prefixo
http://emprovider_server_addressparalm-studio(ou outro servidor local compatível com OpenAI semelhante) noconfig.ini, ou ele aponta para a porta errada. - Solução:
- Certifique-se de que o endereço inclui
http://. O LM-Studio geralmente usahttp://127.0.0.1:1234por padrão. config.inicorreto:provider_server_address = http://127.0.0.1:1234(ou sua porta real do servidor LM-Studio).
- Certifique-se de que o endereço inclui
URL base do SearxNG não fornecida
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.`Isso pode acontecer se você executar o modo CLI com uma URL base do searxng incorreta.
SEARXNG_BASE_URL é definido no .env e depende apenas de onde o backend é executado:
Backend no host (modo CLI): SEARXNG_BASE_URL="http://localhost:8080" — se você alterou SEARXNG_PORT, use essa porta no lugar (por exemplo, http://localhost:8001). http://searxng:... não funciona aqui: esse hostname só é resolvido dentro do Docker.
Backend no Docker (interface web, perfil full): SEARXNG_BASE_URL="http://searxng:8080" — sempre a porta 8080, mesmo que você tenha alterado SEARXNG_PORT; essa variável só remapeia o lado do host.
Nota sobre conflitos de porta: Se a porta
8080já estiver em uso no seu host, definaSEARXNG_PORT(por exemplo,8001) no.enve, em seguida:
- Interface web (backend no Docker): mantenha
SEARXNG_BASE_URL="http://searxng:8080"— a porta interna do Docker não muda.- Modo CLI (backend no host): defina
SEARXNG_BASE_URL="http://localhost:8001"— o valor deve corresponder aSEARXNG_PORT.- Verificações no navegador: abra
http://localhost:<SEARXNG_PORT>— o que responder na antiga porta8080é alguma outra aplicação, não o SearXNG do AgenticSeek.Depois de alterar o
.env, reinicie o backend (api.pyoucli.py) — o arquivo só é lido na inicialização do processo.
FAQ
P: De qual hardware eu preciso?
| Tamanho do modelo | GPU | Comentários |
|---|---|---|
| 7B | 8GB VRAM | ⚠️ Não recomendado. Desempenho ruim, alucinações frequentes, agentes de planejamento podem falhar. |
| 14B | 12 GB VRAM (ex: RTX 3060) | ✅ Utilizável para tarefas simples. Pode ter dificuldades com navegação web e planejamento de tarefas. |
| 32B | 24+ GB VRAM (ex: RTX 4090) | 🚀 Consegue a maioria das tarefas, ainda pode ter dificuldades com planejamento de tarefas |
| 70B+ | 48+ GB VRAM | 💪 Excelente. Recomendado para casos de uso avançados. |
P: O que fazer se eu encontrar erros?
Certifique-se de que o local está funcionando (ollama serve), que seu config.ini corresponde ao seu provedor e que as dependências estão instaladas. Se nada funcionar, sinta-se à vontade para abrir um issue.
P: Ele pode realmente funcionar 100% localmente?
Sim, com os provedores Ollama, lm-studio ou server, todos os modelos de fala para texto, LLM e texto para fala funcionam localmente. As opções não locais (OpenAI ou outras APIs) são opcionais.
P: Por que eu deveria usar o AgenticSeek quando tenho o Manus?
Ao contrário do Manus, o AgenticSeek prioriza a independência de sistemas externos, dando a você mais controle, privacidade e evitando custos de API.
P: Quem está por trás deste projeto?
Este projeto foi criado por mim, com dois amigos como mantenedores e contribuidores da comunidade de código aberto no GitHub. Somos apenas indivíduos apaixonados, não uma startup, nem afiliados a qualquer organização.
Qualquer conta AgenticSeek no X diferente da minha conta pessoal (https://x.com/Martin993886460) é um impostor.
Contribuir
Estamos procurando desenvolvedores para melhorar o AgenticSeek! Verifique os problemas abertos ou discussões.
Patrocinadores:
Você quer melhorar as capacidades do AgenticSeek com recursos como pesquisa de voos, planejamento de viagens ou obtenção das melhores ofertas de compra? Considere usar o SerpApi para criar ferramentas personalizadas que desbloqueiem mais recursos do tipo Jarvis. Com o SerpApi, você pode acelerar seu agente para tarefas profissionais enquanto mantém o controle total.
Confira Contributing.md para aprender como integrar ferramentas personalizadas!
Mantenedores:
Fosowl | Horário de Paris