jAIgent

Visión general

Qué es jAIgent, en qué se diferencia de otros agentes y cómo encajan sus piezas.

Última revisión 6 min de lectura Editar esta página en GitHub

jAIgent es un agente de IA de línea de comandos con una idea clara: un binario, diez proveedores y las mismas herramientas en todas partes. Terminal, ChatGPT Web por MCP remoto, Claude Desktop por stdio local y cualquier aplicación que hable el SDK de OpenAI.

Nota

Esta fuente prepara la versión 0.5.7; 0.5.6 sigue siendo la última publicada hasta que se libere la siguiente. El historial completo está en CHANGELOG.md del repositorio.

Por qué existe

Si ya tienes… jAIgent es el sitio que…
Claude Code, Cursor o Aider Busca en la web en vivo y escribe un archivo que puedes deshacer
ChatGPT Web o Claude Desktop Sirve las mismas herramientas por MCP remoto con OAuth o por stdio local, nunca shell
Una app con el SDK de OpenAI jaigent serve: una URL, claves jgt- cifradas, herramientas incluidas
Ollama local o la capa gratuita de Groq --model free para que un saludo no cueste un refactor
Varias claves de API Conmutación por fallo: un 429 en OpenAI continúa en Anthropic y luego en Ollama

Lo que de verdad es distinto

Deshacer es el producto. Cada escritura se snapshot antes del aviso de aprobación. jaigent undo, rewind <id> y /revert existen porque otros agentes te preguntan antes, pero jAIgent además te deja cambiar de opinión después.

Web y archivos en el mismo bucle. web_search → fetch_page → write_file. No es un envoltorio de chat ni un codificador limitado a un repositorio.

Enlaza en vez de sustituir. MCP remoto con OAuth para ChatGPT Web, MCP stdio local para clientes de escritorio, serve para todo lo que hable OpenAI, y skills, plugins y comandos como archivos locales que puedes confirmar en Git.

Diez proveedores, o ninguno. OpenAI, Anthropic, Gemini, DeepSeek, Grok, Groq, Mistral, OpenRouter, Together y Ollama. --model auto dimensiona el trabajo; --model free elige un modelo sin coste al que de verdad puedas llegar.

Tope de gasto duro. jaigent settings set budget 0.50 detiene la ejecución. Skills integradas spend-cap y compact; /compact en el chat; memoria solo si la activas.

Conservador por defecto. Sandbox de espacio de trabajo, sin shell salvo que pases --allow-shell, archivos de secretos rechazados y sin telemetría. Un solo binario si no quieres Python.

Lo bastante pequeño para leerse. El bucle del agente es una función. Sin framework.

Funciones por versión

Función Qué hace Desde
Bucle del agente Plan → herramientas → respuesta, con presupuesto de pasos 0.1.0
Búsqueda y descarga web DuckDuckGo (sin clave) o Tavily; páginas reducidas a texto 0.1.0
Herramientas de archivo Listar, leer, escribir, editar, buscar y borrar dentro del sandbox 0.1.0
Aprobaciones ask, auto y dry-run según terminal 0.2.0
Checkpoints y undo Snapshot antes de cada cambio y restauración paso a paso 0.3.0
Enrutado de modelos auto y free con heurística local, sin llamada extra 0.3.0
Conmutación por fallo Reintento con backoff y salto al siguiente proveedor con clave 0.3.0
MCP stdio local El registro de herramientas expuesto a clientes de escritorio 0.4.0
Gateway OpenAI jaigent serve en /v1/chat/completions y /v1/models 0.4.0
Skills y plugins Procedimientos en Markdown y herramientas en Python local 0.4.0
Puente ChatGPT Web MCP remoto por HTTP con OAuth 2.1 0.5.0
Horarios Ejecutar un prompt con temporizador 0.5.0

Cómo encaja todo

                    CLI (cli.py)       MCP stdio (mcp.py)       gateway (serve)
                       │                    │                        │
                       └──────────────┬─────┴────────────────────────┘
                                      │    Agent (agent.py)
                                      │  ┌─────────────────────────────┐
                                      │  │ route → proveedor → tools…  │
                                      │  └────────┬─────────────┬──────┘
                                      │           │             │
                             FailoverProvider   ToolRegistry
                                      │           │
                         adaptadores llm/     tools/ (archivos, web,
                         (openai, etc.)       shell, ask, plugins)

              ChatGPT Web → chatgpt.py (MCP OAuth) ──┬── registro de herramientas existente
                                                     └── API /v1 del gateway → Agent

Un solo Agent, un solo registro de herramientas y una sola implementación de aprobación y checkpoints. El CLI y el gateway compatible con OpenAI conducen el mismo bucle; el MCP local expone el registro; el puente entrante de ChatGPT compone ese mismo registro para llamadas directas y delega los turnos completos de agente o sesión a través del gateway existente. No crea un segundo agente ni duplica la lógica de las herramientas.

Los detalles están en Referencia de tools.

Empezar en cuatro comandos

jaigent init                          # elige proveedor, pega una clave, pruébala
jaigent "resume README.md en overview.md"
jaigent undo                          # devuelve overview.md si no te gusta
jaigent chat                          # y sigue de forma interactiva

jgt es un alias más corto del mismo comando.

Licencia

El acuerdo que rige es LICENSE.md, y no es una licencia de código abierto. Concede un uso limitado, no exclusivo, intransferible y revocable, solo para fines internos, no comerciales y educativos, y prohíbe expresamente distribuirlo como parte de un producto o servicio de pago, redistribuirlo en un instalador o paquete que se comercialice por separado, hacer ingeniería inversa y usarlo de forma que compita con las ofertas del autor. Solo el titular de los derechos puede autorizar el uso comercial, y debe pedirse por escrito.

Aviso

El README.md del repositorio afirma que el proyecto se publica bajo Apache-2.0 y pyproject.toml lleva el clasificador de licencia de Apache. Ambos están en desacuerdo con LICENSE.md, que es el documento que rige. Quien se plantee reutilizar el código debe leer el acuerdo, no el README.

Seguir leyendo en el repositorio

Esta guía resume y ordena. El repositorio trae además su propia documentación, y hay un par de archivos que conviene no confundir con funcionalidad existente.

Documento Tamaño Qué es
README.md 59 KB La presentación del proyecto, muy completa
CHANGELOG.md 66 KB El registro de cambios, versión a versión
AGENTS.md 15 KB El contexto para agentes de código que trabajen sobre el repositorio
SECURITY.md 12 KB La política de seguridad
docs/web-ui-proposal.md 11 KB Una propuesta, no una función: una interfaz web local
docs/architecture.md 9 KB La arquitectura
docs/terminal-ui.md 8 KB La interfaz de terminal
docs/ci-and-releases.md 7 KB La integración continua y las releases
docs/workflow-repair-v0.5.1.md 4 KB Las reparaciones de flujo de la versión 0.5.1
CONTRIBUTING.md 4 KB Cómo contribuir
LICENSE.md 4 KB El acuerdo de licencia
integrations/chatgpt/skills/jaigent/SKILL.md 2 KB La skill de la integración con ChatGPT
src/jaigent/data/skills/spend-cap.md 1 KB La skill integrada de tope de gasto
src/jaigent/data/skills/compact.md 1 KB La skill integrada de compactado
.github/pull_request_template.md 1 KB La plantilla de pull request

Dos avisos antes de leerlos

Aviso

docs/web-ui-proposal.md es solo una propuesta: no hay ninguna interfaz web implementada. El propio documento lo dice en su primera línea y recuerda que sigue en la lista de «discutir primero en una issue» de AGENTS.md y CONTRIBUTING.md. Es material de planificación, no una especificación aprobada.

Las dos skills integradas son instrucciones, no mecanismos. Cada una declara en su cabecera cuándo debe cargarse y qué hay que hacer, y el trabajo mecánico lo hace otra parte:

Skill Cuándo se carga Quién hace el trabajo de verdad
compact Cuando la conversación se alarga o el usuario dice «compact» /compact en el chat, o auto_compact en ajustes. La skill solo dice qué merece la pena conservar
spend-cap Cuando el usuario menciona coste, presupuesto o gasto El tope duro lo aplica jAIgent cuando JAIGENT_BUDGET (o jaigent settings set budget 0.50) es mayor que cero. La skill es la parte blanda: gastar menos antes de que la ejecución se corte

La skill de ChatGPT, por su parte, asume un endpoint MCP remoto por HTTP protegido con OAuth: no hace que un servidor stdio local sea alcanzable desde ChatGPT Web.

Recorrido de la guía

Documentación escrita a mano para este sitio, basada en el README y los docs del repositorio.