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

cowork-session-sync v1.0.0 proporciona continuidad de sesión para Claude Cowork.
cowork-session-sync v1.0.0 es una herramienta que mantiene la continuidad de sesión para Claude Cowork archivando transcripciones en bruto, destilándolas a Markdown y permitiendo el arranque con una frase mediante 'catchup-bunny' para restaurar el contexto completo.

100 aplicaciones populares descompiladas en especificaciones de diseño Markdown para clonar la interfaz de Claude
Un repositorio de código abierto proporciona especificaciones de diseño en markdown estructurado para 100 aplicaciones iOS populares, optimizadas para que Claude clone UIs de manera consistente. Técnicas clave: valores de color exactos, cobertura de estados, escalas de espaciado y gráficos de navegación.

El Complemento Keyoku Reemplaza el Latido Estático de OpenClaw con Autonomía Impulsada por la Memoria
Keyoku es un complemento gratuito de OpenClaw que cambia el latido del agente de leer un archivo estático HEARTBEAT.md a escanear la memoria real del agente en busca de trabajo estancado, compromisos abandonados, información conflictiva y relaciones inactivas. Utiliza un motor local de Go con SQLite + HNSW y ofrece tres niveles de autonomía: observar, sugerir y actuar.

Solución para la pérdida de memoria de OpenClaw usando el complemento Mem0.
Los agentes de OpenClaw experimentan pérdida de memoria debido a la compactación de contexto que reescribe archivos como MEMORY.md. El complemento Mem0 soluciona esto moviendo la memoria fuera de la ventana de contexto con funciones de recuperación automática y captura automática.