Adam: Una biblioteca de agente de IA multiplataforma integrable en C

Adam es una biblioteca de agente de IA integrable escrita en C. Ofrece un bucle de agente completo — llamada a herramientas, memoria, sesiones, voz, streaming, salida estructurada — como un solo #include. Admite APIs en la nube (Anthropic, OpenAI, Google Gemini, Groq, Together, xAI) y modelos locales a través de llama.cpp mediante la misma interfaz. Compila en macOS, Linux, Windows, iOS, Android y WASM.
Inicio rápido
#include "adam.h"
int main(void) {
adam_init();
adam_settings_t *s = adam_create_settings();
adam_settings_set_provider(s, ADAM_API_ANTHROPIC, getenv("ANTHROPIC_API_KEY"), "claude-sonnet-4-20250514");
adam_history_t *h = adam_history_create();
adam_run_result_t r = adam_run(s, h, "¿Cuál es la capital de Francia?");
printf("%s\n", r.final_response); // "La capital de Francia es París."
adam_run_result_free(&r);
adam_history_destroy(h);
adam_settings_destroy(s);
adam_cleanup();
}
make deps # compilar llama.cpp + whisper.cpp
make all # compilar libadam.a
make test # ejecutar 161 pruebas (ASan + UBSan)
Características principales
- Bucle de agente – llamada a herramientas con iteración automática hasta respuesta final
- Tres proveedores – Anthropic, OpenAI, Google Gemini + cualquier API compatible + GGUF local vía llama.cpp
- Visión local – comprensión de imágenes multimodal mediante llama.cpp + mmproj (Gemma 3, LLaVA, etc.)
- Generación de imágenes – salida de imágenes nativa mediante modelos de imagen de Gemini
- Extensiones de base de datos – extensiones SQLite y PostgreSQL que integran Adam como funciones SQL
- 13 herramientas integradas – E/S de archivos, shell, calculadora, SQL, búsqueda web/obtención, HTTP POST, memoria, investigación, multi-agente
- Memoria a largo plazo – búsqueda híbrida BM25 + vectorial mediante SQLite (sqlite-memory + sqlite-vector)
- Persistencia de sesiones – guardar/cargar conversaciones con claves UUIDv7
- Bot de Telegram – completo con texto, voz, imágenes, herramientas y memoria
- Voz – STT (Whisper nube/local) + TTS (nube/sistema) + pipeline de audio completo
- Streaming – entrega de tokens en tiempo real mediante callback
- Salida estructurada –
adam_run_json()con validación y reintento - Bucle de evolución – agente auto-mejorable: iterar, puntuar, refinar estrategia
- Modo de investigación – recopilación autónoma de información multi-iteración con síntesis de informes
- Multi-agente – Agente A invoca al Agente B como herramienta, con configuraciones/herramientas independientes
- Guardarraíles – callbacks de validación previa al envío y posterior a la recepción
- Caché de respuestas – tabla hash LRU basada en modelo + historial de mensajes
- Gestión de historial – clonar, resumir (compresión basada en LLM), estimación de tokens
- Pool de hilos – ejecución concurrente de agentes con cola de trabajos
- Zona de pruebas del sistema de archivos – herramientas restringidas a directorios explícitamente permitidos
- Asignador de arena – memoria sin fugas por iteración con limpieza automática
Objetivos de compilación
make deps # Compilar llama.cpp, whisper.cpp (+ mbedtls/curl en Linux)
make all # Compilar libadam.a
make test # Compilar y ejecutar pruebas unitarias (ASan + UBSan)
make chat # Chat interactivo de texto (API en la nube)
make chat GGUF=models/model.gguf # Chat interactivo de texto (local)
make vision GGUF=models/model.gguf MMPROJ=models/mmproj.gguf # Prueba de visión local
make talk # Agente de voz (nube)
make talk LOCAL=1 # Agente de voz (totalmente local)
make memory # Pruebas del sistema de memoria
make clean # Eliminar todos los artefactos de compilación
La documentación completa de la API está disponible en API.md con cada función, tipo y callback.
📖 Lee el código fuente completo: HN AI Agents
👀 Ver también

Complemento de Word SquarePact se conecta a la puerta de enlace OpenClaw para la edición de documentos agéntica
El complemento de Word de SquarePact se conecta a tu propio gateway OpenClaw a través de WebSocket. El agente propone ediciones que se muestran como tarjetas de aprobación, con detección de ediciones obsoletas y lógica de reintento para JSON malformado de modelos pequeños.

Wisepanel MCP Server permite la deliberación multi-LLM en Claude Code y Cursor
Wisepanel lanzó un servidor MCP que ejecuta deliberaciones multiagente directamente desde Claude Code, Cursor o cualquier cliente MCP, utilizando un sistema de mejora de contexto divergente con los modelos ChatGPT, Claude, Gemini y Perplexity.

Sandbox0: Infraestructura de Sandbox de Código Abierto Nativa de Kubernetes para Agentes de IA
Sandbox0 es una infraestructura de sandbox de código abierto para agentes de IA construida sobre Kubernetes con almacenamiento persistente a través de JuiceFS y escalado automático. Aborda limitaciones como límites de concurrencia y ejecución efímera que se encuentran en soluciones existentes.

Usando el Modo de Código MCP para una Investigación Eficiente de Palabras Clave en Claude
Un desarrollador construyó un servidor MCP que permite a Claude realizar investigaciones autónomas de palabras clave utilizando un patrón de Modo Código, reduciendo los tokens de definición de herramientas de miles a aproximadamente 1,000 con solo dos herramientas: buscar y ejecutar.