No project description provided
Project description
Synapse AI
https://img.shields.io/badge/License-MIT-yellow.svg https://img.shields.io/badge/python-3.13+-blue.svg https://img.shields.io/badge/code%20style-black-000000.svg
Synapse AI es un framework modular y flexible para construir agentes conversacionales potenciados por modelos de lenguaje (LLMs) y herramientas externas, utilizando el Model Context Protocol (MCP). Diseñado para ser simple de usar pero altamente extensible, te permite conectar tu agente a cualquier API compatible con OpenAI (OpenRouter, OpenAI, proveedores locales, etc.) y a servidores MCP que exponen herramientas como sistema de archivos, búsqueda web, bases de datos y más.
✨ Características
· Arquitectura limpia y desacoplada: Separación clara entre agente, memoria, modelo y contexto (gestión de herramientas). · Soporte nativo para herramientas MCP: Conecta múltiples servidores MCP y el agente podrá invocar sus herramientas automáticamente. · Streaming en tiempo real: Observa la generación de la respuesta token por token, incluyendo las llamadas a herramientas y sus resultados. · Memoria persistente: La conversación se guarda automáticamente en un archivo JSON y se restaura al reiniciar. · CLI interactiva con comandos integrados: Usa /help, /clear, /exit, /send para gestionar la conversación fácilmente. · Totalmente asíncrono: Construido con asyncio para un rendimiento óptimo en operaciones de E/S. · Fácilmente extensible: Puedes crear tus propias implementaciones de memoria, modelo o contexto.
📦 Instalación
Opción 1: Instalación desde PyPI (cuando esté publicado)
pip install synapse-project
Opción 2: Instalación desde el repositorio
git clone https://github.com/xmarlon30x2/synapse-project.git
cd synapse-project
python -m venv venv
source venv/bin/activate # En Windows: venv\Scripts\activate
pip install -e .
Requisitos
· Python 3.13 o superior. · Una clave de API para el proveedor de modelos (OpenRouter, OpenAI, etc.)
⚙️ Configuración
Crea un archivo .env en el directorio de trabajo (o define la variable de entorno SYNAPSE_APIKEY) con tu clave de API:
SYNAPSE_APIKEY=sk-or-v1-...
Además, necesitas dos archivos JSON (puedes cambiar sus rutas con argumentos de línea de comandos):
- Contexto de herramientas (synapse-context.json)
Define los servidores MCP que el agente puede utilizar. Ejemplo con el servidor de sistema de archivos:
{
"servers": [
{
"command": "npx",
"args": ["-y", "@modelcontextprotocol/server-filesystem", "/ruta/a/tu/directorio"],
"env": {}
}
]
}
Cada servidor debe ser un ejecutable que implemente el protocolo MCP sobre stdio.
- Archivo de memoria (synapse-memory.json)
Se crea automáticamente y almacena el historial de la conversación. No es necesario editarlo manualmente.
🚀 Uso
Una vez instalado, ejecuta la CLI con:
synapse-cli [opciones]
Opciones disponibles
Opción Descripción --context-filename Ruta al JSON de configuración del contexto (por defecto ./synapse-context.json) --memory-filename Ruta al archivo de memoria (por defecto ./synapse-memory.json) --api-key Clave de API (sobrescribe la variable de entorno SYNAPSE_APIKEY) --base-url URL base del proveedor de IA (por defecto https://openrouter.ai/api/v1) --model Nombre del modelo (por defecto openrouter/aurora-alpha)
Ejemplo
synapse-cli --model openai/gpt-4o --base-url https://api.openai.com/v1
Al iniciar, verás el prompt interactivo:
Welcome to Synapse CLI!
Write /help to show help
Write anything to run the agent
user>
Comandos integrados
Comando Descripción /exit Sale del programa. /help Muestra esta ayuda. /clear Borra todo el historial de la conversación. /send Envía un mensaje al agente sin ejecutarlo (solo lo almacena en memoria).
Todo lo que no empiece con / se envía al agente, que lo procesa y transmite la respuesta en tiempo real.
🧠 Ejemplo de interacción
user> ¿Qué archivos hay en el directorio actual?
(call:call_abc123) list_directory> { "path": "." }
(tool:call_abc123) ["README.md", "src", "pyproject.toml"]
En el directorio actual encuentro los archivos README.md, la carpeta src y pyproject.toml.
Durante la respuesta, los tokens de texto aparecen en línea, y las llamadas a herramientas se muestran con su ID y resultados.
🏗️ Arquitectura del proyecto
Synapse AI se compone de cuatro módulos principales:
· Agent: Orquesta el ciclo de conversación. Decide cuándo invocar al modelo y cuándo ejecutar herramientas. · Memory: Almacena todos los mensajes (usuario, asistente, herramientas). La implementación por defecto usa un archivo JSON. · Model: Encapsula la comunicación con la API del LLM. Maneja streaming y conversión de formatos. · Context: Gestiona las conexiones a servidores MCP. Provee las definiciones de herramientas y ejecuta las llamadas.
Flujo típico:
- La entrada del usuario se guarda en memoria.
- El agente invoca al modelo en modo streaming.
- Si el modelo genera llamadas a herramientas, el contexto las ejecuta y los resultados se añaden como mensajes de herramienta.
- El agente vuelve a llamar al modelo con esos resultados para obtener la respuesta final.
- La respuesta final se transmite al usuario.
🛠️ Desarrollo
Si deseas contribuir o modificar el código:
- Clona el repositorio e instala en modo editable (como se indicó arriba).
- Asegúrate de tener las herramientas de desarrollo:
pip install black ruff mypy
- El código sigue las configuraciones de pyproject.toml: · Formato: black src/ · Linting: ruff check src/ · Tipado: mypy src/
Ejecuta todas las comprobaciones antes de enviar un Pull Request.
📄 Licencia
Distribuido bajo la licencia MIT. Ver LICENSE para más información.
🔗 Enlaces
· Repositorio en GitHub · Documentación · Issues
¿Preguntas o sugerencias? No dudes en abrir un issue. ¡Las contribuciones son bienvenidas!
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file synapse_project-1.0.0.tar.gz.
File metadata
- Download URL: synapse_project-1.0.0.tar.gz
- Upload date:
- Size: 18.5 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.10.4 {"installer":{"name":"uv","version":"0.10.4","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":null,"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
89d4762464674ad0674ec68cded991b656c4a13e08de1978039220d2050cc2b8
|
|
| MD5 |
dafb79c580620daef763b17630a52203
|
|
| BLAKE2b-256 |
84b463ac4f86521307bcac415f385cbb06ee271afad96fd246c176764ef30901
|
File details
Details for the file synapse_project-1.0.0-py3-none-any.whl.
File metadata
- Download URL: synapse_project-1.0.0-py3-none-any.whl
- Upload date:
- Size: 19.0 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.10.4 {"installer":{"name":"uv","version":"0.10.4","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":null,"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
b1e25b0b73afd40dc27f15e56a261d4c26c94ac0b46877025e11a2f72f6d9260
|
|
| MD5 |
414a77b5b3231a73442088f9d2122797
|
|
| BLAKE2b-256 |
54f67cd297601865a6304f4d130fe080d8ce55057c8b32ee8221cfb5c88071d6
|