Адам: Встраиваемая кроссплатформенная библиотека AI-агентов на C

Adam — это встраиваемая библиотека AI-агента, написанная на C. Она предлагает полный цикл агента — вызов инструментов, память, сессии, голос, потоковую передачу, структурированный вывод — в виде одного #include. Поддерживает облачные API (Anthropic, OpenAI, Google Gemini, Groq, Together, xAI) и локальные модели через llama.cpp с единым интерфейсом. Компилируется на macOS, Linux, Windows, iOS, Android и WASM.
Быстрый старт
#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, "Какова столица Франции?");
printf("%s\n", r.final_response); // "Столица Франции — Париж."
adam_run_result_free(&r);
adam_history_destroy(h);
adam_settings_destroy(s);
adam_cleanup();
}
make deps # сборка llama.cpp + whisper.cpp
make all # сборка libadam.a
make test # запуск 161 теста (ASan + UBSan)
Ключевые возможности
- Цикл агента – вызов инструментов с автоматической итерацией до получения окончательного ответа
- Три провайдера – Anthropic, OpenAI, Google Gemini + любые совместимые API + локальный GGUF через llama.cpp
- Локальное зрение – мультимодальное понимание изображений через llama.cpp + mmproj (Gemma 3, LLaVA и др.)
- Генерация изображений – нативный вывод изображений через модели Gemini
- Расширения баз данных – расширения SQLite и PostgreSQL, встраивающие Adam как SQL-функции
- 13 встроенных инструментов – файловый ввод/вывод, оболочка, калькулятор, SQL, веб-запросы/поиск, HTTP POST, память, исследование, мультиагент
- Долговременная память – гибридный поиск BM25 + векторный через SQLite (sqlite-memory + sqlite-vector)
- Сохранение сессий – сохранение/загрузка диалогов с ключами UUIDv7
- Telegram-бот – полнофункциональный с текстом, голосом, изображениями, инструментами и памятью
- Голос – STT (Whisper облачный/локальный) + TTS (облачный/системный) + полный аудио-конвейер
- Потоковая передача – доставка токенов в реальном времени через колбэк
- Структурированный вывод –
adam_run_json()с валидацией и повторными попытками - Цикл эволюции – самоулучшающийся агент: итерация, оценка, уточнение стратегии
- Режим исследования – автономный многократный сбор информации с синтезом отчета
- Мультиагент – Агент A вызывает Агента B как инструмент с независимыми настройками/инструментами
- Ограничения – колбэки валидации до отправки и после получения
- Кэш ответов – LRU хеш-таблица с ключом по модели и истории сообщений
- Управление историей – клонирование, суммаризация (сжатие на основе LLM), оценка токенов
- Пул потоков – параллельное выполнение агентов с очередью задач
- Песочница файловой системы – инструменты ограничены явно разрешенными директориями
- Арена-аллокатор – без утечек память на итерацию с автоматической очисткой
Цели сборки
make deps # Сборка llama.cpp, whisper.cpp (+ mbedtls/curl на Linux)
make all # Сборка libadam.a
make test # Сборка и запуск модульных тестов (ASan + UBSan)
make chat # Интерактивный текстовый чат (облачный API)
make chat GGUF=models/model.gguf # Интерактивный текстовый чат (локальный)
make vision GGUF=models/model.gguf MMPROJ=models/mmproj.gguf # Локальное тестирование зрения
make talk # Голосовой агент (облачный)
make talk LOCAL=1 # Голосовой агент (полностью локальный)
make memory # Тесты системы памяти
make clean # Удаление всех артефактов сборки
Полная документация API доступна в API.md с описанием каждой функции, типа и колбэка.
📖 Читать полный исходный код: HN AI Agents
👀 Смотрите также

Агент-Xray: Инструмент с открытым исходным кодом для отладки сбоев ИИ-агентов на основе журналов трассировки
Agent-Xray — это инструмент с открытым исходным кодом под лицензией MIT, который анализирует журналы трассировки ИИ-агентов, классифицируя сбои по категориям, таким как spin, tool_bug и early_abort, и включает режим enforcement для тестирования исправлений на устойчивость к сложным задачам.

latexnav: Инструмент на Python для навигации по файлам LaTeX с помощью ИИ и человека
latexnav — это бесплатный инструмент с открытым исходным кодом на Python, который анализирует файлы LaTeX для извлечения структурных элементов, таких как теоремы, определения, разделы, метки, перекрёстные ссылки и зависимости, предоставляя сводки с точными номерами строк, чтобы помочь LLM и людям эффективно ориентироваться в больших рукописях.

OpenClaw Smart Router с открытым исходным кодом для автоматического выбора моделей
Разработчик опубликовал в открытом доступе Smart Router для OpenClaw, который автоматически классифицирует запросы по сложности и направляет их к оптимальным моделям, экономя 60-80% затрат на API по сравнению с постоянным использованием премиальных моделей, таких как Claude или GPT-4o.

Создание языка программирования с помощью Claude Code: эксперимент Cutlet
Анкур Сети создал полноценный язык программирования под названием Cutlet с помощью Claude Code за четыре недели, при этом ИИ генерировал каждую строку кода, а разработчик сосредоточился на создании защитных механизмов и тестировании. Язык обладает динамической типизацией, векторными операциями и REPL, работает на macOS и Linux.