update readme.md
This commit is contained in:
+384
-246
@@ -1,48 +1,52 @@
|
||||
# AgenticSeek: Alternativa Privada y Local a Manus.
|
||||
# AgenticSeek: Una Alternativa Privada y Local a Manus
|
||||
|
||||
<p align="center">
|
||||
<img align="center" src="./media/agentic_seek_logo.png" width="300" height="300" alt="Agentic Seek Logo">
|
||||
<p>
|
||||
|
||||
[English](./README.md) | [中文](./README_CHS.md) | [繁體中文](./README_CHT.md) | [Français](./README_FR.md) | [日本語](./README_JP.md) | [Português (Brasil)](./README_PTBR.md) | [Español](./README_ES.md)
|
||||
English | [中文](./README_CHS.md) | [繁體中文](./README_CHT.md) | [Français](./README_FR.md) | [日本語](./README_JP.md) | [Português (Brasil)](./README_PTBR.md) | [Español](./README_ES.md)
|
||||
|
||||
*Una **alternativa 100% local a Manus AI**, este asistente de IA con capacidad de voz navega autónomamente por la web, escribe código y planifica tareas mientras mantiene todos los datos en tu dispositivo. Diseñado para modelos de razonamiento local, funciona completamente en tu hardware, garantizando privacidad total y cero dependencia de la nube.*
|
||||
*Un asistente de IA con capacidad de voz que es una **alternativa 100% local a Manus AI**, navega autónomamente por la web, escribe código y planifica tareas manteniendo todos los datos en tu dispositivo. Diseñado para modelos de razonamiento local, funciona completamente en tu hardware, garantizando privacidad total y cero dependencia de la nube.*
|
||||
|
||||
[](https://fosowl.github.io/agenticSeek.html)  [](https://discord.gg/8hGDaME3TC) [](https://x.com/Martin993886460) [](https://github.com/Fosowl/agenticSeek/stargazers)
|
||||
[](https://fosowl.github.io/agenticSeek.html)  [](https://discord.gg/8hGDaME3TC) [](https://x.com/Martin993886460) [](https://github.com/Fosowl/agenticSeek/stargazers)
|
||||
|
||||
### ¿Por qué AgenticSeek?
|
||||
|
||||
* 🔒 Totalmente Local y Privado - Todo se ejecuta en tu máquina — sin nube, sin compartir datos. Tus archivos, conversaciones y búsquedas permanecen privados.
|
||||
* 🔒 Totalmente Local & Privado - Todo funciona en tu máquina, sin nube, sin compartir datos. Tus archivos, conversaciones y búsquedas permanecen privados.
|
||||
|
||||
* 🌐 Navegación Web Inteligente - AgenticSeek puede navegar por internet por sí mismo — buscar, leer, extraer información, llenar formularios web — todo sin intervención manual.
|
||||
* 🌐 Navegación Web Inteligente - AgenticSeek puede navegar por Internet de forma autónoma: buscar, leer, extraer información, completar formularios web, todo sin manos.
|
||||
|
||||
* 💻 Asistente de Código Autónomo - ¿Necesitas código? Puede escribir, depurar y ejecutar programas en Python, C, Go, Java y más — todo sin supervisión.
|
||||
* 💻 Asistente de Programación Autónomo - ¿Necesitas código? Puede escribir, depurar y ejecutar programas en Python, C, Go, Java y más, sin supervisión.
|
||||
|
||||
* 🧠 Selección Inteligente de Agentes - Tú preguntas, él determina el mejor agente para el trabajo automáticamente. Como tener un equipo de expertos listos para ayudar.
|
||||
* 🧠 Selección Inteligente de Agentes - Tú pides, él elige automáticamente el mejor agente para la tarea. Como tener un equipo de expertos siempre disponible.
|
||||
|
||||
* 📋 Planifica y Ejecuta Tareas Complejas - Desde planificación de viajes hasta proyectos complejos — puede dividir grandes tareas en pasos y completarlas usando múltiples agentes de IA.
|
||||
* 📋 Planifica y Ejecuta Tareas Complejas - Desde planificación de viajes hasta proyectos complejos, puede dividir grandes tareas en pasos y completarlos utilizando múltiples agentes de IA.
|
||||
|
||||
* 🎙️ Habilitado por Voz - Voz y texto a voz limpios, rápidos y futuristas que te permiten hablar con él como si fuera tu IA personal de una película de ciencia ficción. (En progreso)
|
||||
* 🎙️ Compatibilidad con Voz - Voz limpia, rápida y futurista con reconocimiento de voz, permitiéndote conversar como si fuera tu IA personal de una película de ciencia ficción. (En desarrollo)
|
||||
|
||||
### **Demo**
|
||||
|
||||
> *¿Puedes buscar el proyecto agenticSeek, aprender qué habilidades se requieren, luego abrir el CV_candidates.zip y decirme cuáles coinciden mejor con el proyecto?*
|
||||
> *¿Puedes buscar el proyecto agenticSeek, aprender qué habilidades se necesitan, luego abrir CV_candidates.zip y decirme cuáles coinciden mejor con el proyecto?*
|
||||
|
||||
https://github.com/user-attachments/assets/b8ca60e9-7b3b-4533-840e-08f9ac426316
|
||||
|
||||
Descargo de responsabilidad: Esta demo, incluyendo todos los archivos que aparecen (ej: CV_candidates.zip), son completamente ficticios. No somos una corporación, buscamos contribuidores de código abierto, no candidatos.
|
||||
Descargo de responsabilidad: Esta demostración y todos los archivos que aparecen (ej: CV_candidates.zip) son completamente ficticios. No somos una corporación, buscamos colaboradores de código abierto, no candidatos.
|
||||
|
||||
> 🛠⚠️️ **Trabajo Activo en Progreso**
|
||||
|
||||
> 🙏 Este proyecto comenzó como un proyecto secundario y no tiene hoja de ruta ni financiamiento. Ha crecido mucho más allá de lo que esperaba al terminar en GitHub Trending. Las contribuciones, comentarios y paciencia son profundamente apreciados.
|
||||
> 🙏 Este proyecto comenzó como un proyecto paralelo y no tiene hoja de ruta ni financiación. Creció mucho más allá de lo esperado al aparecer en GitHub Trending. Las contribuciones, comentarios y paciencia son profundamente apreciados.
|
||||
|
||||
## Prerrequisitos
|
||||
|
||||
Asegúrate de tener instalado chrome driver, docker y python3.10.
|
||||
Antes de comenzar, asegúrate de tener instalado:
|
||||
|
||||
Para problemas relacionados con chrome driver, consulta la sección **Chromedriver**.
|
||||
* **Git:** Para clonar el repositorio. [Descargar Git](https://git-scm.com/downloads)
|
||||
* **Python 3.10.x:** Se recomienda encarecidamente Python 3.10.x. Otras versiones pueden causar errores de dependencia. [Descargar Python 3.10](https://www.python.org/downloads/release/python-3100/) (selecciona la versión 3.10.x).
|
||||
* **Docker Engine & Docker Compose:** Para ejecutar servicios empaquetados como SearxNG.
|
||||
* Instalar Docker Desktop (incluye Docker Compose V2): [Windows](https://docs.docker.com/desktop/install/windows-install/) | [Mac](https://docs.docker.com/desktop/install/mac-install/) | [Linux](https://docs.docker.com/desktop/install/linux-install/)
|
||||
* O instalar Docker Engine y Docker Compose por separado en Linux: [Docker Engine](https://docs.docker.com/engine/install/) | [Docker Compose](https://docs.docker.com/compose/install/) (asegúrate de instalar Compose V2, por ejemplo `sudo apt-get install docker-compose-plugin`).
|
||||
|
||||
### 1. **Clonar el repositorio y configuración**
|
||||
### 1. **Clonar el repositorio y configurar**
|
||||
|
||||
```sh
|
||||
git clone https://github.com/Fosowl/agenticSeek.git
|
||||
@@ -50,65 +54,69 @@ cd agenticSeek
|
||||
mv .env.example .env
|
||||
```
|
||||
|
||||
### 2. Cambiar el contenido del archivo .env
|
||||
### 2. Modificar el contenido del archivo .env
|
||||
|
||||
```sh
|
||||
SEARXNG_BASE_URL="http://127.0.0.1:8080"
|
||||
SEARXNG_BASE_URL="http://searxng:8080" # Si ejecutas en modo CLI en el host, usa http://127.0.0.1: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='opcional'
|
||||
DEEPSEEK_API_KEY='opcional'
|
||||
OPENROUTER_API_KEY='opcional'
|
||||
TOGETHER_API_KEY='opcional'
|
||||
GOOGLE_API_KEY='opcional'
|
||||
ANTHROPIC_API_KEY='opcional'
|
||||
OPENAI_API_KEY='optional'
|
||||
DEEPSEEK_API_KEY='optional'
|
||||
OPENROUTER_API_KEY='optional'
|
||||
TOGETHER_API_KEY='optional'
|
||||
GOOGLE_API_KEY='optional'
|
||||
ANTHROPIC_API_KEY='optional'
|
||||
```
|
||||
|
||||
**Las API Keys son totalmente opcionales para usuarios que elijan ejecutar LLM localmente. Este es el propósito principal de este proyecto. Déjalas vacías si tienes hardware suficiente**
|
||||
Actualiza el archivo `.env` según sea necesario:
|
||||
|
||||
Las siguientes variables de entorno configuran las conexiones y claves API de tu aplicación.
|
||||
|
||||
Actualiza el archivo `.env` con tus propios valores según sea necesario:
|
||||
|
||||
- **SEARXNG_BASE_URL**: Déjalo sin cambios
|
||||
- **REDIS_BASE_URL**: Déjalo sin cambios
|
||||
- **WORK_DIR**: Ruta a tu directorio de trabajo en tu máquina local. AgenticSeek podrá leer e interactuar con estos archivos.
|
||||
- **SEARXNG_BASE_URL**: Mantener sin cambios a menos que ejecutes en modo CLI en el host.
|
||||
- **REDIS_BASE_URL**: Mantener sin cambios
|
||||
- **WORK_DIR**: Ruta al directorio de trabajo local. AgenticSeek podrá leer e interactuar con estos archivos.
|
||||
- **OLLAMA_PORT**: Número de puerto para el servicio Ollama.
|
||||
- **LM_STUDIO_PORT**: Número de puerto para el servicio LM Studio.
|
||||
- **CUSTOM_ADDITIONAL_LLM_PORT**: Puerto para cualquier servicio LLM personalizado adicional.
|
||||
- **CUSTOM_ADDITIONAL_LLM_PORT**: Puerto para cualquier servicio LLM adicional personalizado.
|
||||
|
||||
Todas las variables de entorno de API key a continuación son **opcionales**. Solo necesitas proporcionarlas si planeas usar APIs externas en lugar de ejecutar LLMs localmente.
|
||||
**Las claves API son completamente opcionales para quienes optan por ejecutar LLM localmente, que es el objetivo principal de este proyecto. Déjalas en blanco si tienes hardware suficiente.**
|
||||
|
||||
### 3. **Iniciar Docker**
|
||||
|
||||
Asegúrate de que Docker esté instalado y ejecutándose en tu sistema. Puedes iniciar Docker usando los siguientes comandos:
|
||||
Asegúrate de que Docker esté instalado y ejecutándose en tu sistema. Puedes iniciar Docker con los siguientes comandos:
|
||||
|
||||
- **En Linux/macOS:**
|
||||
- **Linux/macOS:**
|
||||
Abre una terminal y ejecuta:
|
||||
```sh
|
||||
sudo systemctl start docker
|
||||
```
|
||||
O inicia Docker Desktop desde el menú de aplicaciones si está instalado.
|
||||
O inicia Docker Desktop desde el menú de aplicaciones, si está instalado.
|
||||
|
||||
- **En Windows:**
|
||||
Inicia Docker Desktop desde el menú de inicio.
|
||||
- **Windows:**
|
||||
Inicia Docker Desktop desde el menú Inicio.
|
||||
|
||||
Puedes verificar que Docker está ejecutándose ejecutando:
|
||||
Puedes verificar si Docker se está ejecutando ejecutando:
|
||||
```sh
|
||||
docker info
|
||||
```
|
||||
Si ves información sobre tu instalación de Docker, está ejecutándose correctamente.
|
||||
Si ves información sobre tu instalación de Docker, está funcionando correctamente.
|
||||
|
||||
Consulta la [Lista de proveedores locales](#lista-de-proveedores-locales) a continuación para obtener un resumen.
|
||||
|
||||
Siguiente paso: [Ejecutar AgenticSeek localmente](#iniciar-servicios-y-ejecutar)
|
||||
|
||||
*Si tienes problemas, consulta la sección [Solución de problemas](#solución-de-problemas).*
|
||||
*Si tu hardware no puede ejecutar LLM localmente, consulta [Configuración para ejecutar con una API](#configuración-para-ejecutar-con-una-api).*
|
||||
*Para explicaciones detalladas de `config.ini`, consulta la [sección Configuración](#configuración).*
|
||||
|
||||
---
|
||||
|
||||
## Configuración para ejecutar LLM localmente en tu máquina
|
||||
|
||||
**Requisitos de Hardware:**
|
||||
**Requisitos de hardware:**
|
||||
|
||||
Para ejecutar LLMs localmente, necesitarás hardware suficiente. Como mínimo, se requiere una GPU capaz de ejecutar Qwen/Deepseek 14B. Consulta la sección FAQ para recomendaciones detalladas de modelos/rendimiento.
|
||||
Para ejecutar LLM localmente, necesitarás hardware suficiente. Como mínimo, se requiere una GPU capaz de ejecutar Magistral, Qwen o Deepseek 14B. Consulta el FAQ para recomendaciones detalladas de modelo/rendimiento.
|
||||
|
||||
**Configura tu proveedor local**
|
||||
|
||||
@@ -118,185 +126,229 @@ Inicia tu proveedor local, por ejemplo con ollama:
|
||||
ollama serve
|
||||
```
|
||||
|
||||
Consulta más abajo la lista de proveedores locales soportados.
|
||||
Consulta la lista de proveedores locales admitidos a continuación.
|
||||
|
||||
**Actualiza el config.ini**
|
||||
**Actualizar config.ini**
|
||||
|
||||
Cambia el archivo config.ini para establecer provider_name a un proveedor soportado y provider_model a un LLM soportado por tu proveedor. Recomendamos modelos de razonamiento como *Qwen* o *Deepseek*.
|
||||
Cambia el archivo config.ini para establecer provider_name en un proveedor admitido y provider_model en un LLM admitido por tu proveedor. Recomendamos modelos de razonamiento como *Magistral* o *Deepseek*.
|
||||
|
||||
Consulta la sección **FAQ** al final del README para los requisitos de hardware.
|
||||
Consulta el **FAQ** al final del README para el hardware necesario.
|
||||
|
||||
```sh
|
||||
[MAIN]
|
||||
is_local = True # Si estás ejecutando localmente o con proveedor remoto.
|
||||
provider_name = ollama # o lm-studio, openai, etc..
|
||||
provider_model = deepseek-r1:14b # elige un modelo que se ajuste a tu hardware
|
||||
is_local = True # Ya sea que ejecutes localmente o con un proveedor remoto.
|
||||
provider_name = ollama # o lm-studio, openai, etc.
|
||||
provider_model = deepseek-r1:14b # elige un modelo compatible con tu hardware
|
||||
provider_server_address = 127.0.0.1:11434
|
||||
agent_name = Jarvis # nombre de tu IA
|
||||
recover_last_session = True # si quieres recuperar la sesión anterior
|
||||
save_session = True # si quieres recordar la sesión actual
|
||||
agent_name = Jarvis # el nombre de tu IA
|
||||
recover_last_session = True # recuperar sesión anterior
|
||||
save_session = True # recordar sesión actual
|
||||
speak = False # texto a voz
|
||||
listen = False # Voz a texto, solo para CLI, experimental
|
||||
jarvis_personality = False # Si quieres usar una personalidad más tipo "Jarvis" (experimental)
|
||||
languages = en zh # La lista de idiomas, Text to speech usará por defecto el primer idioma de la lista
|
||||
listen = False # voz a texto, solo para CLI, experimental
|
||||
jarvis_personality = False # usar personalidad más "Jarvis" (experimental)
|
||||
languages = en zh # Lista de idiomas, TTS usará el primero de la lista por defecto
|
||||
[BROWSER]
|
||||
headless_browser = True # déjalo sin cambios a menos que uses CLI en el host.
|
||||
stealth_mode = True # Usa selenium no detectado para reducir la detección del navegador
|
||||
headless_browser = True # mantener sin cambios a menos que uses CLI en el host.
|
||||
stealth_mode = True # Usa selenium indetectable para reducir la detección del navegador
|
||||
```
|
||||
|
||||
**Advertencia**:
|
||||
|
||||
- El formato del archivo `config.ini` no soporta comentarios.
|
||||
No copies y pegues la configuración de ejemplo directamente, ya que los comentarios causarán errores. En su lugar, modifica manualmente el archivo `config.ini` con tus configuraciones deseadas, excluyendo cualquier comentario.
|
||||
- El formato del archivo `config.ini` no admite comentarios.
|
||||
No copies y pegues la configuración de ejemplo directamente, ya que los comentarios causarán errores. En su lugar, modifica manualmente el archivo `config.ini` con tu configuración deseada, sin comentarios.
|
||||
|
||||
- NO establezcas provider_name como `openai` si estás usando LM-studio para ejecutar LLMs. Establécelo como `lm-studio`.
|
||||
- *NO* establezcas provider_name como `openai` si estás usando LM-studio para ejecutar LLM. Úsalo como `lm-studio`.
|
||||
|
||||
- Algunos proveedores (ej: lm-studio) requieren que tengas `http://` antes de la IP. Por ejemplo `http://127.0.0.1:1234`
|
||||
- Algunos proveedores (ej: lm-studio) requieren `http://` antes de la IP. Ejemplo: `http://127.0.0.1:1234`
|
||||
|
||||
**Lista de proveedores locales**
|
||||
|
||||
| Proveedor | ¿Local? | Descripción |
|
||||
|-----------|--------|-----------------------------------------------------------|
|
||||
| ollama | Sí | Ejecuta LLMs localmente con facilidad usando ollama como proveedor LLM |
|
||||
| lm-studio | Sí | Ejecuta LLM localmente con LM studio (establece `provider_name` como `lm-studio`)|
|
||||
| ollama | Sí | Ejecuta LLM localmente fácilmente usando ollama |
|
||||
| lm-studio | Sí | Ejecuta LLM localmente con LM studio (establecer `provider_name` = `lm-studio`)|
|
||||
| openai | Sí | Usa API compatible con openai (ej: servidor llama.cpp) |
|
||||
|
||||
Siguiente paso: [Iniciar servicios y ejecutar AgenticSeek](#Iniciar-servicios-y-ejecutar)
|
||||
Siguiente paso: [Iniciar servicios y ejecutar AgenticSeek](#iniciar-servicios-y-ejecutar)
|
||||
|
||||
*Consulta la sección **Problemas conocidos** si tienes problemas*
|
||||
|
||||
*Consulta la sección **Ejecutar con una API** si tu hardware no puede ejecutar deepseek localmente*
|
||||
|
||||
*Consulta la sección **Config** para una explicación detallada del archivo de configuración.*
|
||||
|
||||
---
|
||||
*Si tienes problemas, consulta la sección [Solución de problemas](#solución-de-problemas).*
|
||||
*Si tu hardware no puede ejecutar LLM localmente, consulta [Configuración para ejecutar con una API](#configuración-para-ejecutar-con-una-api).*
|
||||
*Para explicaciones detalladas de `config.ini`, consulta la [sección Configuración](#configuración).*
|
||||
|
||||
## Configuración para ejecutar con una API
|
||||
|
||||
**Ejecutar con una API es opcional, consulta arriba para ejecutar localmente.**
|
||||
Esta configuración utiliza proveedores de LLM externos basados en la nube. Necesitarás obtener claves API del servicio elegido.
|
||||
|
||||
Establece el proveedor deseado en el `config.ini`. Consulta más abajo la lista de proveedores de API.
|
||||
**1. Elige un proveedor de API y obtén una clave API:**
|
||||
|
||||
```sh
|
||||
Consulta la [Lista de proveedores de API](#lista-de-proveedores-de-api) a continuación. Visita sus sitios web para registrarte y obtener claves API.
|
||||
|
||||
**2. Establece tu clave API como variable de entorno:**
|
||||
|
||||
* **Linux/macOS:**
|
||||
Abre una terminal y usa el comando `export`. Es mejor agregarlo al archivo de configuración de tu shell (ej: `~/.bashrc`, `~/.zshrc`) para que sea persistente.
|
||||
```sh
|
||||
export PROVIDER_API_KEY="your_api_key_here"
|
||||
# Reemplaza PROVIDER_API_KEY con el nombre de variable específico, ej: OPENAI_API_KEY, GOOGLE_API_KEY
|
||||
```
|
||||
Ejemplo de TogetherAI:
|
||||
```sh
|
||||
export TOGETHER_API_KEY="xxxxxxxxxxxxxxxxxxxxxx"
|
||||
```
|
||||
* **Windows:**
|
||||
* **Símbolo del sistema (temporal para la sesión actual):**
|
||||
```cmd
|
||||
set PROVIDER_API_KEY=your_api_key_here
|
||||
```
|
||||
* **PowerShell (temporal para la sesión actual):**
|
||||
```powershell
|
||||
$env:PROVIDER_API_KEY="your_api_key_here"
|
||||
```
|
||||
* **Permanente:** Busca "variables de entorno" en la barra de búsqueda de Windows, haz clic en "Editar las variables de entorno del sistema", luego en el botón "Variables de entorno...". Agrega una nueva variable de usuario con el nombre apropiado (ej: `OPENAI_API_KEY`) y tu clave como valor.
|
||||
|
||||
*(Para más detalles, consulta el FAQ: [¿Cómo configuro una clave API?](#cómo-configuro-una-clave-api)).*
|
||||
|
||||
|
||||
**3. Actualiza `config.ini`:**
|
||||
```ini
|
||||
[MAIN]
|
||||
is_local = False
|
||||
provider_name = google
|
||||
provider_model = gemini-2.0-flash
|
||||
provider_server_address = 127.0.0.1:5000 # no importa
|
||||
provider_name = openai # o google, deepseek, togetherAI, huggingface
|
||||
provider_model = gpt-3.5-turbo # o gemini-1.5-flash, deepseek-chat, mistralai/Mixtral-8x7B-Instruct-v0.1, etc.
|
||||
provider_server_address = # Cuando is_local = False, generalmente se ignora o puede dejarse en blanco para la mayoría de las API
|
||||
# ... otras configuraciones ...
|
||||
```
|
||||
Advertencia: Asegúrate de que no haya espacios al final en la configuración.
|
||||
|
||||
Exporta tu API key: `export <<PROVIDER>>_API_KEY="xxx"`
|
||||
|
||||
Ejemplo: export `TOGETHER_API_KEY="xxxxx"`
|
||||
*Advertencia:* Asegúrate de que no haya espacios al final de los valores en config.
|
||||
|
||||
**Lista de proveedores de API**
|
||||
|
||||
| Proveedor | ¿Local? | Descripción |
|
||||
|-----------|--------|-----------------------------------------------------------|
|
||||
| openai | Depende | Usa API de ChatGPT |
|
||||
| deepseek | No | API de Deepseek (no privada) |
|
||||
| huggingface| No | API de Hugging-Face (no privada) |
|
||||
| togetherAI | No | Usa API de together AI (no privada) |
|
||||
| google | No | Usa API de google gemini (no privada) |
|
||||
|
||||
Ten en cuenta que la codificación/bash podría fallar con gemini, parece ignorar nuestro prompt para respetar el formato, que están optimizados para deepseek r1. Modelos como gpt-4 también parecen tener un rendimiento deficiente con nuestro prompt.
|
||||
| Proveedor | `provider_name` | ¿Local? | Descripción | Enlace de clave API (ejemplo) |
|
||||
|--------------|-----------------|--------|---------------------------------------------------|---------------------------------------------|
|
||||
| OpenAI | `openai` | No | Usa modelos ChatGPT a través de la API de OpenAI. | [platform.openai.com/signup](https://platform.openai.com/signup) |
|
||||
| Google Gemini| `google` | No | Usa modelos Google Gemini a través de Google AI Studio. | [aistudio.google.com/keys](https://aistudio.google.com/keys) |
|
||||
| Deepseek | `deepseek` | No | Usa modelos Deepseek a través de su API. | [platform.deepseek.com](https://platform.deepseek.com) |
|
||||
| Hugging Face | `huggingface` | No | Usa modelos del Hugging Face Inference API. | [huggingface.co/settings/tokens](https://huggingface.co/settings/tokens) |
|
||||
| TogetherAI | `togetherAI` | No | Usa varios modelos de código abierto a través de la API de TogetherAI.| [api.together.ai/settings/api-keys](https://api.together.ai/settings/api-keys) |
|
||||
|
||||
Siguiente paso: [Iniciar servicios y ejecutar AgenticSeek](#Iniciar-servicios-y-ejecutar)
|
||||
*Nota:*
|
||||
* No recomendamos usar `gpt-4o` u otros modelos OpenAI para navegación web compleja y planificación de tareas, ya que la optimización actual de prompts está dirigida a modelos como Deepseek.
|
||||
* Las tareas de codificación/bash pueden fallar con Gemini, ya que tiende a ignorar nuestro formato de prompt optimizado para Deepseek r1.
|
||||
* Cuando `is_local = False`, `provider_server_address` en `config.ini` generalmente no se usa, ya que los endpoints de API suelen estar codificados en las bibliotecas del proveedor correspondiente.
|
||||
|
||||
*Consulta la sección **Problemas conocidos** si tienes problemas*
|
||||
Siguiente paso: [Iniciar servicios y ejecutar AgenticSeek](#iniciar-servicios-y-ejecutar)
|
||||
|
||||
*Consulta la sección **Config** para una explicación detallada del archivo de configuración.*
|
||||
*Si tienes problemas, consulta la sección **Problemas conocidos***
|
||||
|
||||
*Para explicaciones detalladas del archivo de configuración, consulta la **sección Configuración**.*
|
||||
|
||||
---
|
||||
|
||||
## Iniciar servicios y ejecutar
|
||||
|
||||
Inicia los servicios requeridos. Esto iniciará todos los servicios del docker-compose.yml, incluyendo:
|
||||
Por defecto, AgenticSeek se ejecuta completamente en Docker.
|
||||
|
||||
**Opción 1:** Ejecutar en Docker con interfaz web:
|
||||
|
||||
Inicia los servicios necesarios. Esto iniciará todos los servicios del docker-compose.yml, incluyendo:
|
||||
- searxng
|
||||
- redis (requerido por searxng)
|
||||
- redis (requerido para searxng)
|
||||
- frontend
|
||||
- backend (si usas `full`)
|
||||
- backend (si usas `full` para la interfaz web)
|
||||
|
||||
```sh
|
||||
./start_services.sh full # MacOS
|
||||
start start_services.cmd full # Windows
|
||||
```
|
||||
|
||||
**Advertencia:** Este paso descargará y cargará todas las imágenes de Docker, lo que puede tomar hasta 30 minutos. Después de iniciar los servicios, espera hasta que el servicio backend esté completamente ejecutándose (deberías ver backend: <info> en el log) antes de enviar cualquier mensaje. Los servicios backend pueden tardar más en iniciar que otros.
|
||||
**Advertencia:** Este paso descargará y cargará todas las imágenes de Docker, lo que puede tardar hasta 30 minutos. Después de iniciar los servicios, espera hasta que el servicio backend esté completamente ejecutándose (deberías ver **backend: "GET /health HTTP/1.1" 200 OK** en el registro) antes de enviar cualquier mensaje. En la primera ejecución, el servicio backend puede tardar 5 minutos en iniciarse.
|
||||
|
||||
Ve a `http://localhost:3000/` y deberías ver la interfaz web.
|
||||
|
||||
**Opcional:** Ejecutar con la interfaz CLI:
|
||||
*Solución de problemas de inicio de servicios:* Si estos scripts fallan, asegúrate de que Docker Engine esté ejecutándose y que Docker Compose (V2, `docker compose`) esté correctamente instalado. Revisa los mensajes de error en la salida de la terminal. Consulta [FAQ: ¡Ayuda! Obtengo errores al ejecutar AgenticSeek o sus scripts.](#faq-solución-de-problemas)
|
||||
|
||||
Para ejecutar con la interfaz CLI tendrías que instalar el paquete en el host:
|
||||
**Opción 2:** Modo CLI:
|
||||
|
||||
Para ejecutar con la interfaz CLI, debes instalar los paquetes en el host:
|
||||
|
||||
```sh
|
||||
./install.sh
|
||||
./install.bat # windows
|
||||
```
|
||||
|
||||
Inicia los servicios:
|
||||
Luego debes cambiar SEARXNG_BASE_URL en `config.ini` a:
|
||||
|
||||
```sh
|
||||
SEARXNG_BASE_URL="http://localhost:8080"
|
||||
```
|
||||
|
||||
Inicia los servicios necesarios. Esto iniciará algunos servicios del docker-compose.yml, incluyendo:
|
||||
- searxng
|
||||
- redis (requerido para searxng)
|
||||
- frontend
|
||||
|
||||
```sh
|
||||
./start_services.sh # MacOS
|
||||
start start_services.cmd # Windows
|
||||
```
|
||||
|
||||
Luego ejecuta: `uv run cli.py`
|
||||
Ejecuta: uv run: `uv run python -m ensurepip` para asegurarte de que uv tenga pip habilitado.
|
||||
|
||||
## Uso
|
||||
|
||||
Asegúrate de que los servicios estén funcionando con `./start_services.sh full` y ve a `localhost:3000` para la interfaz web.
|
||||
|
||||
También puedes usar el reconocimiento de voz configurando `listen = True` en el config. Solo para modo CLI.
|
||||
|
||||
Para salir, simplemente di/escribe `goodbye`.
|
||||
|
||||
Aquí hay algunos ejemplos de uso:
|
||||
|
||||
> *¡Haz un juego de serpiente en python!*
|
||||
|
||||
> *Busca en la web los mejores cafés en Rennes, Francia, y guarda una lista de tres con sus direcciones en rennes_cafes.txt.*
|
||||
|
||||
> *Escribe un programa en Go para calcular el factorial de un número, guárdalo como factorial.go en tu espacio de trabajo*
|
||||
|
||||
> *Busca en mi carpeta summer_pictures todos los archivos JPG, renómbralos con la fecha de hoy, y guarda una lista de archivos renombrados en photos_list.txt*
|
||||
|
||||
> *Busca en línea películas populares de ciencia ficción de 2024 y elige tres para ver esta noche. Guarda la lista en movie_night.txt.*
|
||||
|
||||
> *Busca en la web los últimos artículos de noticias sobre IA de 2025, selecciona tres, y escribe un script de Python para extraer sus títulos y resúmenes. Guarda el script como news_scraper.py y los resúmenes en ai_news.txt en /home/projects*
|
||||
|
||||
> *Viernes, busca en la web una API gratuita de precios de acciones, regístrate con supersuper7434567@gmail.com luego escribe un script de Python para obtener usando la API los precios diarios de Tesla, y guarda los resultados en stock_prices.csv*
|
||||
|
||||
*Ten en cuenta que las capacidades de llenado de formularios son aún experimentales y podrían fallar.*
|
||||
|
||||
Después de escribir tu consulta, AgenticSeek asignará el mejor agente para la tarea.
|
||||
|
||||
Debido a que este es un prototipo temprano, el sistema de enrutamiento de agentes podría no asignar siempre el agente correcto según tu consulta.
|
||||
|
||||
Por lo tanto, debes ser muy explícito en lo que quieres y cómo la IA podría proceder, por ejemplo, si quieres que realice una búsqueda web, no digas:
|
||||
|
||||
`¿Conoces algunos buenos países para viajar solo?`
|
||||
|
||||
En su lugar, pregunta:
|
||||
|
||||
`Haz una búsqueda web y averigua cuáles son los mejores países para viajar solo`
|
||||
Usa CLI: `uv run cli.py`
|
||||
|
||||
---
|
||||
|
||||
## **Configuración para ejecutar el LLM en tu propio servidor**
|
||||
## Uso
|
||||
|
||||
Si tienes una computadora potente o un servidor que puedes usar, pero quieres usarlo desde tu laptop, tienes la opción de ejecutar el LLM en un servidor remoto usando nuestro servidor llm personalizado.
|
||||
Asegúrate de que los servicios estén ejecutándose con `./start_services.sh full` y luego ve a `localhost:3000` para la interfaz web.
|
||||
|
||||
También puedes usar voz a texto configurando `listen = True`. Solo para modo CLI.
|
||||
|
||||
Para salir, simplemente di/escribe `goodbye`.
|
||||
|
||||
Algunos ejemplos de uso:
|
||||
|
||||
> *¡Haz un juego de la serpiente en python!*
|
||||
|
||||
> *Busca en la web los mejores cafés en Rennes, Francia, y guarda una lista de tres con sus direcciones en rennes_cafes.txt.*
|
||||
|
||||
> *Escribe un programa Go para calcular el factorial de un número, guárdalo como factorial.go en tu workspace*
|
||||
|
||||
> *Busca en la carpeta summer_pictures todos los archivos JPG, renómbralos con la fecha de hoy y guarda la lista de archivos renombrados en photos_list.txt*
|
||||
|
||||
> *Busca en línea películas de ciencia ficción populares de 2024 y elige tres para ver esta noche. Guarda la lista en movie_night.txt.*
|
||||
|
||||
> *Busca en la web los últimos artículos de noticias de IA de 2025, selecciona tres y escribe un script Python para extraer títulos y resúmenes. Guarda el script como news_scraper.py y los resúmenes en ai_news.txt en /home/projects*
|
||||
|
||||
> *Viernes, busca en la web una API gratuita de precios de acciones, regístrate con supersuper7434567@gmail.com y escribe un script Python para obtener los precios diarios de Tesla usando la API, guardando los resultados en stock_prices.csv*
|
||||
|
||||
*Ten en cuenta que el llenado de formularios sigue siendo experimental y puede fallar.*
|
||||
|
||||
Después de ingresar tu consulta, AgenticSeek asignará el mejor agente para la tarea.
|
||||
|
||||
Como este es un prototipo inicial, el sistema de enrutamiento de agentes puede no asignar siempre el agente correcto a tu consulta.
|
||||
|
||||
Por lo tanto, sé muy explícito sobre lo que quieres y cómo la IA podría proceder, por ejemplo, si quieres que realice una búsqueda web, no digas:
|
||||
|
||||
`¿Conoces algunos buenos países para viajar solo?`
|
||||
|
||||
En su lugar, di:
|
||||
|
||||
`Realiza una búsqueda web y descubre cuáles son los mejores países para viajar solo`
|
||||
|
||||
---
|
||||
|
||||
## **Configuración para ejecutar LLM en tu propio servidor**
|
||||
|
||||
Si tienes una computadora potente o un servidor al que puedes acceder, pero quieres usarlo desde tu laptop, puedes optar por ejecutar el LLM en un servidor remoto usando nuestro servidor llm personalizado.
|
||||
|
||||
En tu "servidor" que ejecutará el modelo de IA, obtén la dirección IP
|
||||
|
||||
```sh
|
||||
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ública
|
||||
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ública
|
||||
```
|
||||
|
||||
Nota: Para Windows o macOS, usa ipconfig o ifconfig respectivamente para encontrar la dirección IP.
|
||||
Nota: Para Windows o macOS, usa ipconfig o ifconfig para encontrar la dirección IP.
|
||||
|
||||
Clona el repositorio y entra en la carpeta `server/`.
|
||||
|
||||
@@ -317,11 +369,11 @@ Ejecuta el script del servidor.
|
||||
python3 app.py --provider ollama --port 3333
|
||||
```
|
||||
|
||||
Tienes la opción de usar `ollama` y `llamacpp` como servicio LLM.
|
||||
Puedes elegir entre usar `ollama` y `llamacpp` como servicio LLM.
|
||||
|
||||
Ahora en tu computadora personal:
|
||||
|
||||
Cambia el archivo `config.ini` para establecer `provider_name` a `server` y `provider_model` a `deepseek-r1:xxb`.
|
||||
Cambia el archivo `config.ini` para establecer `provider_name` como `server` y `provider_model` como `deepseek-r1:xxb`.
|
||||
Establece `provider_server_address` a la dirección IP de la máquina que ejecutará el modelo.
|
||||
|
||||
```sh
|
||||
@@ -332,40 +384,40 @@ provider_model = deepseek-r1:70b
|
||||
provider_server_address = http://x.x.x.x:3333
|
||||
```
|
||||
|
||||
Siguiente paso: [Iniciar servicios y ejecutar AgenticSeek](#Iniciar-servicios-y-ejecutar)
|
||||
Siguiente paso: [Iniciar servicios y ejecutar AgenticSeek](#iniciar-servicios-y-ejecutar)
|
||||
|
||||
---
|
||||
|
||||
## Voz a Texto
|
||||
|
||||
Advertencia: la voz a texto solo funciona en modo CLI por el momento.
|
||||
Advertencia: La voz a texto solo funciona en modo CLI en este momento.
|
||||
|
||||
Ten en cuenta que actualmente la voz a texto solo funciona en inglés.
|
||||
Ten en cuenta que la voz a texto solo funciona en inglés en este momento.
|
||||
|
||||
La funcionalidad de voz a texto está deshabilitada por defecto. Para habilitarla, establece la opción listen a True en el archivo config.ini:
|
||||
La funcionalidad de voz a texto está deshabilitada por defecto. Para habilitarla, establece listen en True en el archivo config.ini:
|
||||
|
||||
```
|
||||
listen = True
|
||||
```
|
||||
|
||||
Cuando está habilitada, la función de voz a texto escucha una palabra clave de activación, que es el nombre del agente, antes de comenzar a procesar tu entrada. Puedes personalizar el nombre del agente actualizando el valor `agent_name` en el archivo *config.ini*:
|
||||
Cuando está habilitado, la función de voz a texto escucha una palabra clave de activación, que es el nombre del agente, antes de procesar tu entrada. Puedes personalizar el nombre del agente actualizando el valor `agent_name` en *config.ini*:
|
||||
|
||||
```
|
||||
agent_name = Friday
|
||||
```
|
||||
|
||||
Para un reconocimiento óptimo, recomendamos usar un nombre común en inglés como "John" o "Emma" como nombre del agente.
|
||||
Para un mejor reconocimiento, recomendamos usar un nombre común en inglés como "John" o "Emma" como nombre de agente.
|
||||
|
||||
Una vez que veas que comienza a aparecer la transcripción, di el nombre del agente en voz alta para activarlo (por ejemplo, "Friday").
|
||||
Una vez que veas que comienza a aparecer la transcripción, di el nombre del agente en voz alta para activarlo (ej: "Friday").
|
||||
|
||||
Habla tu consulta claramente.
|
||||
Di tu consulta claramente.
|
||||
|
||||
Termina tu solicitud con una frase de confirmación para indicar al sistema que proceda. Ejemplos de frases de confirmación incluyen:
|
||||
```
|
||||
"do it", "go ahead", "execute", "run", "start", "thanks", "would ya", "please", "okay?", "proceed", "continue", "go on", "do that", "go it", "do you understand?"
|
||||
```
|
||||
|
||||
## Config
|
||||
## Configuración
|
||||
|
||||
Ejemplo de configuración:
|
||||
```
|
||||
@@ -373,144 +425,217 @@ Ejemplo de configuración:
|
||||
is_local = True
|
||||
provider_name = ollama
|
||||
provider_model = deepseek-r1:32b
|
||||
provider_server_address = 127.0.0.1:11434
|
||||
provider_server_address = http://127.0.0.1:11434 # Ejemplo de 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
|
||||
languages = en zh # Lista de idiomas para TTS y enrutamiento potencial.
|
||||
[BROWSER]
|
||||
headless_browser = False
|
||||
stealth_mode = False
|
||||
```
|
||||
|
||||
**Explicación**:
|
||||
**Explicación de la configuración de `config.ini`**:
|
||||
|
||||
- is_local -> Ejecuta el agente localmente (True) o en un servidor remoto (False).
|
||||
* **Sección `[MAIN]`:**
|
||||
* `is_local`: `True` si usas proveedores de LLM locales (Ollama, LM-Studio, servidor local compatible con OpenAI) o la opción de servidor autoalojado. `False` si usas API basadas en la nube (OpenAI, Google, etc.).
|
||||
* `provider_name`: Especifica el proveedor de LLM.
|
||||
* Opciones locales: `ollama`, `lm-studio`, `openai` (para servidor local compatible con OpenAI), `server` (para configuración de servidor autoalojado).
|
||||
* Opciones de API: `openai`, `google`, `deepseek`, `huggingface`, `togetherAI`.
|
||||
* `provider_model`: Nombre o ID específico del modelo del proveedor seleccionado (ej: `deepseekcoder:6.7b` para Ollama, `gpt-3.5-turbo` para API de OpenAI, `mistralai/Mixtral-8x7B-Instruct-v0.1` para TogetherAI).
|
||||
* `provider_server_address`: La dirección de tu proveedor de LLM.
|
||||
* Para proveedores locales: ej: `http://127.0.0.1:11434` para Ollama, `http://127.0.0.1:1234` para LM-Studio.
|
||||
* Para el tipo de proveedor `server`: La dirección de tu servidor LLM autoalojado (ej: `http://your_server_ip:3333`).
|
||||
* Para API en la nube (`is_local = False`): Esto generalmente se ignora o puede dejarse en blanco, ya que los endpoints de API suelen ser manejados por las bibliotecas del cliente.
|
||||
* `agent_name`: El nombre del asistente de IA (ej: Friday). Si está habilitado, se utiliza como palabra de activación para voz a texto.
|
||||
* `recover_last_session`: `True` para intentar recuperar el estado de la sesión anterior, `False` para comenzar de nuevo.
|
||||
* `save_session`: `True` para guardar el estado de la sesión actual para una posible recuperación, `False` en caso contrario.
|
||||
* `speak`: `True` para habilitar la salida de voz de texto a voz, `False` para deshabilitar.
|
||||
* `listen`: `True` para habilitar la entrada de voz de voz a texto (solo modo CLI), `False` para deshabilitar.
|
||||
* `work_dir`: **Crítico:** El directorio donde AgenticSeek leerá/escribirá archivos. **Asegúrate de que esta ruta sea válida y accesible en tu sistema.**
|
||||
* `jarvis_personality`: `True` para usar prompts del sistema más al estilo "Jarvis" (experimental), `False` para usar prompts estándar.
|
||||
* `languages`: Lista de idiomas separados por comas (ej: `en, zh, fr`). Se utiliza para la selección de voz TTS (predeterminado el primero) y puede ayudar al enrutador LLM. Para evitar ineficiencias del enrutador, evita usar demasiados idiomas o idiomas muy similares.
|
||||
* **Sección `[BROWSER]`:**
|
||||
* `headless_browser`: `True` para ejecutar el navegador automatizado sin una ventana visible (recomendado para interfaz web o uso no interactivo). `False` para mostrar la ventana del navegador (útil para modo CLI o depuración).
|
||||
* `stealth_mode`: `True` para habilitar medidas que dificultan la detección de la automatización del navegador. Puede requerir la instalación manual de extensiones del navegador como anticaptcha.
|
||||
|
||||
- provider_name -> El proveedor a usar (uno de: `ollama`, `server`, `lm-studio`, `deepseek-api`)
|
||||
Esta sección resume los tipos de proveedores de LLM admitidos. Configúralos en `config.ini`.
|
||||
|
||||
- provider_model -> El modelo usado, ej., deepseek-r1:32b.
|
||||
**Proveedores locales (ejecutándose en tu propio hardware):**
|
||||
|
||||
- provider_server_address -> Dirección del servidor, ej., 127.0.0.1:11434 para local. Establece a cualquier cosa para API no local.
|
||||
| Nombre del proveedor en config.ini | `is_local` | Descripción | Sección de configuración |
|
||||
|-------------------------------|------------|-----------------------------------------------------------------------------|------------------------------------------------------------------|
|
||||
| `ollama` | `True` | Proporciona LLM localmente fácilmente usando Ollama. | [Configuración para ejecutar LLM localmente en tu máquina](#configuración-para-ejecutar-llm-localmente-en-tu-máquina) |
|
||||
| `lm-studio` | `True` | Proporciona LLM localmente con LM-Studio. | [Configuración para ejecutar LLM localmente en tu máquina](#configuración-para-ejecutar-llm-localmente-en-tu-máquina) |
|
||||
| `openai` (para servidor local) | `True` | Conéctate a un servidor local que exponga una API compatible con OpenAI (ej: llama.cpp). | [Configuración para ejecutar LLM localmente en tu máquina](#configuración-para-ejecutar-llm-localmente-en-tu-máquina) |
|
||||
| `server` | `False` | Conéctate al servidor LLM autoalojado de AgenticSeek que se ejecuta en otra máquina. | [Configuración para ejecutar LLM en tu propio servidor](#configuración-para-ejecutar-llm-en-tu-propio-servidor) |
|
||||
|
||||
- agent_name -> Nombre del agente, ej., Friday. Usado como palabra de activación para TTS.
|
||||
**Proveedores de API (basados en la nube):**
|
||||
|
||||
- recover_last_session -> Reinicia desde la última sesión (True) o no (False).
|
||||
| Nombre del proveedor en config.ini | `is_local` | Descripción | Sección de configuración |
|
||||
|-------------------------------|------------|--------------------------------------------------|-----------------------------------------------------|
|
||||
| `openai` | `False` | Usa la API oficial de OpenAI (ej: GPT-3.5, GPT-4). | [Configuración para ejecutar con una API](#configuración-para-ejecutar-con-una-api) |
|
||||
| `google` | `False` | Usa modelos Google Gemini a través de API. | [Configuración para ejecutar con una API](#configuración-para-ejecutar-con-una-api) |
|
||||
| `deepseek` | `False` | Usa la API oficial de Deepseek. | [Configuración para ejecutar con una API](#configuración-para-ejecutar-con-una-api) |
|
||||
| `huggingface` | `False` | Usa Hugging Face Inference API. | [Configuración para ejecutar con una API](#configuración-para-ejecutar-con-una-api) |
|
||||
| `togetherAI` | `False` | Usa varios modelos abiertos a través de la API de TogetherAI. | [Configuración para ejecutar con una API](#configuración-para-ejecutar-con-una-api) |
|
||||
|
||||
- save_session -> Guarda datos de la sesión (True) o no (False).
|
||||
---
|
||||
## Solución de problemas
|
||||
|
||||
- speak -> Habilita salida de voz (True) o no (False).
|
||||
|
||||
- listen -> escucha entrada de voz (True) o no (False).
|
||||
|
||||
- jarvis_personality -> Usa una personalidad tipo JARVIS (True) o no (False). Esto simplemente cambia el archivo de prompt.
|
||||
|
||||
- languages -> La lista de idiomas soportados, necesaria para que el router llm funcione correctamente, evita poner demasiados o idiomas demasiado similares.
|
||||
|
||||
- headless_browser -> Ejecuta el navegador sin una ventana visible (True) o no (False).
|
||||
|
||||
- stealth_mode -> Hace más difícil la detección de bots. El único inconveniente es que tienes que instalar manualmente la extensión anticaptcha.
|
||||
|
||||
- languages -> Lista de idiomas soportados. Requerido para el sistema de enrutamiento de agentes. Cuanto más larga sea la lista de idiomas, más modelos se descargarán.
|
||||
|
||||
## Proveedores
|
||||
|
||||
La tabla a continuación muestra los proveedores disponibles:
|
||||
|
||||
| Proveedor | ¿Local? | Descripción |
|
||||
|-----------|--------|-----------------------------------------------------------|
|
||||
| ollama | Sí | Ejecuta LLMs localmente con facilidad usando ollama como proveedor LLM |
|
||||
| server | Sí | Aloja el modelo en otra máquina, ejecuta tu máquina local |
|
||||
| lm-studio | Sí | Ejecuta LLM localmente con LM studio (`lm-studio`) |
|
||||
| openai | Depende | Usa API de ChatGPT (no privada) o API compatible con openai |
|
||||
| deepseek-api | No | API de Deepseek (no privada) |
|
||||
| huggingface| No | API de Hugging-Face (no privada) |
|
||||
| togetherAI | No | Usa API de together AI (no privada) |
|
||||
| google | No | Usa API de google gemini (no privada) |
|
||||
|
||||
Para seleccionar un proveedor cambia el config.ini:
|
||||
|
||||
```
|
||||
is_local = True
|
||||
provider_name = ollama
|
||||
provider_model = deepseek-r1:32b
|
||||
provider_server_address = 127.0.0.1:5000
|
||||
```
|
||||
`is_local`: debe ser True para cualquier LLM ejecutándose localmente, de lo contrario False.
|
||||
|
||||
`provider_name`: Selecciona el proveedor a usar por su nombre, ver la lista de proveedores arriba.
|
||||
|
||||
`provider_model`: Establece el modelo a usar por el agente.
|
||||
|
||||
`provider_server_address`: puede establecerse a cualquier cosa si no estás usando el proveedor server.
|
||||
Si encuentras problemas, esta sección proporciona orientación.
|
||||
|
||||
# Problemas conocidos
|
||||
|
||||
## Problemas con Chromedriver
|
||||
## Problemas de ChromeDriver
|
||||
|
||||
**Error conocido #1:** *incompatibilidad de chromedriver*
|
||||
**Ejemplo de error:** `SessionNotCreatedException: Message: session not created: This version of ChromeDriver only supports Chrome version XXX`
|
||||
|
||||
### Causa principal
|
||||
La incompatibilidad de versión de ChromeDriver ocurre cuando:
|
||||
1. La versión de ChromeDriver que instalaste no coincide con la versión del navegador Chrome
|
||||
2. En entornos Docker, `undetected_chromedriver` puede descargar su propia versión de ChromeDriver, evitando los binarios montados
|
||||
|
||||
### Pasos de solución
|
||||
|
||||
#### 1. Verifica tu versión de Chrome
|
||||
Abre Google Chrome → `Configuración > Acerca de Chrome` para encontrar tu versión (ej: "Versión 134.0.6998.88")
|
||||
|
||||
#### 2. Descarga ChromeDriver coincidente
|
||||
|
||||
**Para Chrome 115 y versiones más recientes:** Usa [Chrome for Testing API](https://googlechromelabs.github.io/chrome-for-testing/)
|
||||
- Visita el panel de disponibilidad de Chrome for Testing
|
||||
- Encuentra tu versión de Chrome o la coincidencia disponible más cercana
|
||||
- Descarga ChromeDriver para tu sistema operativo (usa Linux64 para entornos Docker)
|
||||
|
||||
**Para versiones antiguas de Chrome:** Usa [Descargas heredadas de ChromeDriver](https://chromedriver.chromium.org/downloads)
|
||||
|
||||

|
||||
|
||||
#### 3. Instala ChromeDriver (elige un método)
|
||||
|
||||
**Método A: Directorio raíz del proyecto (recomendado para Docker)**
|
||||
```bash
|
||||
# Coloca el binario de chromedriver descargado en el directorio raíz del proyecto
|
||||
cp path/to/downloaded/chromedriver ./chromedriver
|
||||
chmod +x ./chromedriver # Hazlo ejecutable en Linux/macOS
|
||||
```
|
||||
|
||||
**Método B: PATH del sistema**
|
||||
```bash
|
||||
# Linux/macOS
|
||||
sudo mv chromedriver /usr/local/bin/
|
||||
sudo chmod +x /usr/local/bin/chromedriver
|
||||
|
||||
# Windows: Coloca chromedriver.exe en una carpeta en PATH
|
||||
```
|
||||
|
||||
#### 4. Verifica la instalación
|
||||
```bash
|
||||
# Prueba la versión de ChromeDriver
|
||||
./chromedriver --version
|
||||
# O si está en PATH:
|
||||
chromedriver --version
|
||||
```
|
||||
|
||||
### Instrucciones específicas de Docker
|
||||
|
||||
⚠️ **Importante para usuarios de Docker:**
|
||||
- El método de montaje de volúmenes de Docker puede no funcionar con el modo sigiloso (`undetected_chromedriver`)
|
||||
- **Solución:** Coloca ChromeDriver en el directorio raíz del proyecto como `./chromedriver`
|
||||
- La aplicación lo detectará automáticamente y usará este binario
|
||||
- Deberías ver en los registros: `"Using ChromeDriver from project root: ./chromedriver"`
|
||||
|
||||
### Consejos para solución de problemas
|
||||
|
||||
1. **¿Sigues teniendo incompatibilidad de versión?**
|
||||
- Verifica que ChromeDriver sea ejecutable: `ls -la ./chromedriver`
|
||||
- Comprueba la versión de ChromeDriver: `./chromedriver --version`
|
||||
- Asegúrate de que coincida con tu versión del navegador Chrome
|
||||
|
||||
2. **¿Problemas con el contenedor Docker?**
|
||||
- Revisa los registros del backend: `docker logs backend`
|
||||
- Busca el mensaje: `"Using ChromeDriver from project root"`
|
||||
- Si no se encuentra, verifica que el archivo exista y sea ejecutable
|
||||
|
||||
3. **Versiones de Chrome for Testing**
|
||||
- Usa una coincidencia exacta cuando sea posible
|
||||
- Para la versión 134.0.6998.88, usa ChromeDriver 134.0.6998.165 (la versión disponible más cercana)
|
||||
- El número de versión principal debe coincidir (134 = 134)
|
||||
|
||||
### Matriz de compatibilidad de versiones
|
||||
|
||||
| Versión de Chrome | Versión de ChromeDriver | Estado |
|
||||
|----------------|---------------------|---------|
|
||||
| 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 |
|
||||
|
||||
*Para la compatibilidad más reciente, consulta el [Panel de Chrome for Testing](https://googlechromelabs.github.io/chrome-for-testing/)*
|
||||
|
||||
`Exception: Failed to initialize browser: Message: session not created: This version of ChromeDriver only supports Chrome version 113
|
||||
Current browser version is 134.0.6998.89 with binary path`
|
||||
|
||||
Esto ocurre si hay una incompatibilidad entre tu navegador y la versión de chromedriver.
|
||||
Esto sucede si tu navegador y la versión de chromedriver no coinciden.
|
||||
|
||||
Necesitas navegar para descargar la última versión:
|
||||
Necesitas navegar para descargar la versión más reciente:
|
||||
|
||||
https://developer.chrome.com/docs/chromedriver/downloads
|
||||
|
||||
Si estás usando Chrome versión 115 o más nueva ve a:
|
||||
Si usas Chrome versión 115 o superior, ve a:
|
||||
|
||||
https://googlechromelabs.github.io/chrome-for-testing/
|
||||
|
||||
Y descarga la versión de chromedriver que coincida con tu SO.
|
||||
y descarga la versión de chromedriver que coincida con tu sistema operativo.
|
||||
|
||||

|
||||
|
||||
Si esta sección está incompleta por favor crea un issue.
|
||||
Si esta sección está incompleta, abre un issue.
|
||||
|
||||
## Problemas con adaptadores de conexión
|
||||
## Problemas de adaptadores de conexión
|
||||
|
||||
```
|
||||
Exception: Provider lm-studio failed: HTTP request failed: No connection adapters were found for '127.0.0.1:11434/v1/chat/completions'
|
||||
Exception: Provider lm-studio failed: HTTP request failed: No connection adapters were found for '127.0.0.1:1234/v1/chat/completions'` (nota: el puerto puede variar)
|
||||
```
|
||||
|
||||
Asegúrate de tener `http://` antes de la dirección IP del proveedor:
|
||||
* **Causa:** Falta el prefijo `http://` en `provider_server_address` para `lm-studio` (u otro servidor local compatible con OpenAI similar) en `config.ini`, o apunta al puerto incorrecto.
|
||||
* **Solución:**
|
||||
* Asegúrate de que la dirección incluya `http://`. LM-Studio normalmente usa `http://127.0.0.1:1234` por defecto.
|
||||
* `config.ini` correcto: `provider_server_address = http://127.0.0.1:1234` (o tu puerto real del servidor LM-Studio).
|
||||
|
||||
`provider_server_address = http://127.0.0.1:11434`
|
||||
|
||||
## Se debe proporcionar la URL base de SearxNG
|
||||
## URL base de SearxNG no proporcionada
|
||||
|
||||
```
|
||||
raise ValueError("SearxNG base URL must be provided either as an argument or via the SEARXNG_BASE_URL environment variable.")
|
||||
ValueError: SearxNG base URL must be provided either as an argument or via the SEARXNG_BASE_URL environment variable.
|
||||
ValueError: SearxNG base URL must be provided either as an argument or via the SEARXNG_BASE_URL environment variable.`
|
||||
```
|
||||
|
||||
¿Quizás no moviste `.env.example` como `.env`? También puedes exportar SEARXNG_BASE_URL:
|
||||
Esto puede ocurrir si ejecutas el modo CLI con la URL base de searxng incorrecta.
|
||||
|
||||
`export SEARXNG_BASE_URL="http://127.0.0.1:8080"`
|
||||
SEARXNG_BASE_URL debe diferir según si ejecutas en Docker o en el host:
|
||||
|
||||
**Ejecutando en el host:** `SEARXNG_BASE_URL="http://localhost:8080"`
|
||||
|
||||
**Ejecutando completamente en Docker (interfaz web):** `SEARXNG_BASE_URL="http://searxng:8080"`
|
||||
|
||||
## FAQ
|
||||
|
||||
**P: ¿Qué hardware necesito?**
|
||||
|
||||
| Tamaño del Modelo | GPU | Comentario |
|
||||
| Tamaño del modelo | GPU | Comentarios |
|
||||
|-----------|--------|-----------------------------------------------------------|
|
||||
| 7B | 8GB Vram | ⚠️ No recomendado. El rendimiento es pobre, alucinaciones frecuentes, y los agentes planificadores probablemente fallarán. |
|
||||
| 14B | 12 GB VRAM (ej. RTX 3060) | ✅ Usable para tareas simples. Puede tener dificultades con la navegación web y tareas de planificación. |
|
||||
| 32B | 24+ GB VRAM (ej. RTX 4090) | 🚀 Éxito con la mayoría de las tareas, aún puede tener dificultades con la planificación de tareas |
|
||||
| 70B+ | 48+ GB Vram (ej. mac studio) | 💪 Excelente. Recomendado para casos de uso avanzados. |
|
||||
| 7B | 8GB VRAM | ⚠️ No recomendado. Rendimiento pobre, alucinaciones frecuentes, los agentes de planificación pueden fallar. |
|
||||
| 14B | 12 GB VRAM (ej: RTX 3060) | ✅ Utilizable para tareas simples. Puede tener dificultades con la navegación web y la planificación de tareas. |
|
||||
| 32B | 24+ GB VRAM (ej: RTX 4090) | 🚀 Éxito en la mayoría de las tareas, aún puede tener dificultades con la planificación de tareas |
|
||||
| 70B+ | 48+ GB VRAM | 💪 Excelente. Recomendado para casos de uso avanzados. |
|
||||
|
||||
**P: ¿Por qué Deepseek R1 sobre otros modelos?**
|
||||
**P: ¿Qué hago si encuentro errores?**
|
||||
|
||||
Deepseek R1 sobresale en razonamiento y uso de herramientas para su tamaño. Creemos que es una buena opción para nuestras necesidades, otros modelos funcionan bien, pero Deepseek es nuestra elección principal.
|
||||
|
||||
**P: Obtengo un error al ejecutar `cli.py`. ¿Qué hago?**
|
||||
|
||||
Asegúrate de que local esté ejecutándose (`ollama serve`), tu `config.ini` coincida con tu proveedor, y las dependencias estén instaladas. Si nada funciona, no dudes en crear un issue.
|
||||
Asegúrate de que lo local esté ejecutándose (`ollama serve`), que tu `config.ini` coincida con tu proveedor y que las dependencias estén instaladas. Si nada funciona, no dudes en abrir un issue.
|
||||
|
||||
**P: ¿Realmente puede ejecutarse 100% localmente?**
|
||||
|
||||
@@ -518,17 +643,31 @@ Sí, con proveedores Ollama, lm-studio o server, todos los modelos de voz a text
|
||||
|
||||
**P: ¿Por qué debería usar AgenticSeek cuando tengo Manus?**
|
||||
|
||||
Esto comenzó como un Proyecto Secundario que hicimos por interés en los agentes de IA. Lo especial es que queremos usar modelos locales y evitar APIs.
|
||||
Nos inspiramos en Jarvis y Friday (películas de Iron man) para hacerlo "genial" pero para la funcionalidad tomamos más inspiración de Manus, porque eso es lo que la gente quiere en primer lugar: una alternativa local a manus.
|
||||
A diferencia de Manus, AgenticSeek prioriza la independencia de sistemas externos, dándote más control, privacidad y evitando costos de API.
|
||||
A diferencia de Manus, AgenticSeek prioriza la independencia de los sistemas externos, dándote más control, privacidad y evitando costos de API.
|
||||
|
||||
**P: ¿Quién está detrás de este proyecto?**
|
||||
|
||||
Este proyecto fue creado por mí, con dos amigos como mantenedores y contribuyentes de la comunidad de código abierto en GitHub. Solo somos individuos apasionados, no una startup, ni estamos afiliados a ninguna organización.
|
||||
|
||||
Cualquier cuenta de AgenticSeek en X además de mi cuenta personal (https://x.com/Martin993886460) es impostora.
|
||||
|
||||
## Contribuir
|
||||
|
||||
¡Buscamos desarrolladores para mejorar AgenticSeek! Revisa los issues o discusiones abiertas.
|
||||
¡Buscamos desarrolladores para mejorar AgenticSeek! Revisa los issues abiertos o discusiones.
|
||||
|
||||
[Guía de contribución](./docs/CONTRIBUTING.md)
|
||||
|
||||
[](https://www.star-history.com/#Fosowl/agenticSeek&Date)
|
||||
## Patrocinadores:
|
||||
|
||||
¿Quieres mejorar las capacidades de AgenticSeek con funciones como búsqueda de vuelos, planificación de viajes o obtención de las mejores ofertas de compras? Considera usar SerpApi para crear herramientas personalizadas que desbloqueen más funcionalidades al estilo Jarvis. Con SerpApi, puedes acelerar tu agente para tareas profesionales mientras mantienes el control total.
|
||||
|
||||
<a href="https://serpapi.com/"><img src="./media/banners/sponsor_banner_serpapi.png" height="350" alt="SerpApi Banner" ></a>
|
||||
|
||||
¡Consulta [Contributing.md](./docs/CONTRIBUTING.md) para aprender cómo integrar herramientas personalizadas!
|
||||
|
||||
### **Patrocinadores**:
|
||||
|
||||
- [tatra-labs](https://github.com/tatra-labs)
|
||||
|
||||
## Mantenedores:
|
||||
|
||||
@@ -536,9 +675,8 @@ A diferencia de Manus, AgenticSeek prioriza la independencia de sistemas externo
|
||||
|
||||
> [antoineVIVIES](https://github.com/antoineVIVIES) | Hora de Taipei
|
||||
|
||||
> [steveh8758](https://github.com/steveh8758) | Hora de Taipei
|
||||
## Agradecimientos especiales:
|
||||
|
||||
## Agradecimientos Especiales:
|
||||
|
||||
> [tcsenpai](https://github.com/tcsenpai) y [plitc](https://github.com/plitc) Por ayudar con la dockerización del backend
|
||||
> [tcsenpai](https://github.com/tcsenpai) y [plitc](https://github.com/plitc) por ayudar con la dockerización del backend
|
||||
|
||||
[](https://www.star-history.com/#Fosowl/agenticSeek&Date)
|
||||
|
||||
Reference in New Issue
Block a user