Skip to main content

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):

  1. 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.

  1. 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:

  1. La entrada del usuario se guarda en memoria.
  2. El agente invoca al modelo en modo streaming.
  3. Si el modelo genera llamadas a herramientas, el contexto las ejecuta y los resultados se añaden como mensajes de herramienta.
  4. El agente vuelve a llamar al modelo con esos resultados para obtener la respuesta final.
  5. La respuesta final se transmite al usuario.

🛠️ Desarrollo

Si deseas contribuir o modificar el código:

  1. Clona el repositorio e instala en modo editable (como se indicó arriba).
  2. Asegúrate de tener las herramientas de desarrollo:
    pip install black ruff mypy
    
  3. 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!

Metadata

Release files for synapse-project 1.0.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for synapse-project 1.0.0
File Size Uploaded
synapse_project-1.0.0.tar.gz 18.5 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for synapse-project 1.0.0
File Interpreter ABI Platform
synapse_project-1.0.0-py3-none-any.whl Python 3 none any Details

Total release size: 37.5 kB

Release files / synapse_project-1.0.0.tar.gz

Download URL synapse_project-1.0.0.tar.gz
Size 18.5 kB
Tags Source
SHA-256 checksum
How to use checksums
89d4762464674ad0674ec68cded991b656c4a13e08de1978039220d2050cc2b8
BLAKE2b-256 checksum
How to use checksums
84b463ac4f86521307bcac415f385cbb06ee271afad96fd246c176764ef30901
Upload date
Uploaded using Trusted Publishing?
What is 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}

Release files / synapse_project-1.0.0-py3-none-any.whl

Download URL synapse_project-1.0.0-py3-none-any.whl
Size 19.0 kB
Tags Python 3
SHA-256 checksum
How to use checksums
b1e25b0b73afd40dc27f15e56a261d4c26c94ac0b46877025e11a2f72f6d9260
BLAKE2b-256 checksum
How to use checksums
54f67cd297601865a6304f4d130fe080d8ce55057c8b32ee8221cfb5c88071d6
Upload date
Uploaded using Trusted Publishing?
What is 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}

Release history Release notifications | RSS feed

This release

1.0.0 This release

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page