아담: C 언어로 제작된 임베디드 크로스 플랫폼 AI 에이전트 라이브러리

Adam은 C로 작성된 내장형 AI 에이전트 라이브러리입니다. 단일 #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 + llama.cpp를 통한 로컬 GGUF
- 로컬 비전 – llama.cpp + mmproj(Gemma 3, LLaVA 등)를 통한 멀티모달 이미지 이해
- 이미지 생성 – Gemini 이미지 모델을 통한 네이티브 이미지 출력
- 데이터베이스 확장 – Adam을 SQL 함수로 내장하는 SQLite 및 PostgreSQL 확장
- 13가지 내장 툴 – 파일 I/O, 셸, 계산기, SQL, 웹 가져오기/검색, HTTP POST, 메모리, 연구, 멀티 에이전트
- 장기 메모리 – SQLite를 통한 하이브리드 BM25 + 벡터 검색(sqlite-memory + sqlite-vector)
- 세션 영속성 – UUIDv7 키를 사용한 대화 저장/불러오기
- 텔레그램 봇 – 텍스트, 음성, 이미지, 툴, 메모리를 갖춘 완전한 기능
- 음성 – STT(Whisper 클라우드/로컬) + TTS(클라우드/시스템) + 전체 오디오 파이프라인
- 스트리밍 – 콜백을 통한 실시간 토큰 전달
- 구조화된 출력 – 검증 및 재시도가 포함된
adam_run_json() - 진화 루프 – 자기 개선 에이전트: 반복, 점수 매기기, 전략 개선
- 연구 모드 – 자율적 다중 반복 정보 수집 및 보고서 종합
- 멀티 에이전트 – 에이전트 A가 독립적인 설정/툴을 가진 에이전트 B를 툴로 호출
- 가드레일 – 전송 전 및 수신 후 검증 콜백
- 응답 캐시 – 모델 + 메시지 기록을 키로 하는 LRU 해시 테이블
- 기록 관리 – 복제, 요약(LLM 기반 압축), 토큰 추정
- 스레드 풀 – 작업 큐를 통한 동시 에이전트 실행
- 파일 시스템 샌드박스 – 명시적으로 허용된 디렉터리로 제한된 툴
- 아레나 할당자 – 자동 정리를 통한 반복당 제로 누수 메모리
빌드 대상
make deps # llama.cpp, whisper.cpp 빌드 (Linux에서는 mbedtls/curl 추가)
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
👀 See Also

OnPrem.LLM 에이전트 실행기: 내장 도구를 갖춘 샌드박스 AI 에이전트 실행하기
OnPrem.LLM의 AgentExecutor를 사용하면 파일 작업, 셸 명령어, 웹 검색을 포함한 9가지 내장 도구를 활용해 클라우드 또는 로컬 모델을 사용하여 복잡한 작업을 실행하는 자율 AI 에이전트를 생성할 수 있습니다. 보안을 위해 샌드박스 컨테이너에서 에이전트를 실행할 수 있습니다.

Qwen 3.6 27B, llama.cpp에서 MTP 추론적 디코딩으로 2.5배 속도 달성
Reddit 사용자가 커스텀 llama.cpp PR을 사용한 MTP 추측 디코딩으로 Qwen 3.6 27B에서 추론 속도가 2.5배 빨라져 Mac M2 Max 96GB에서 28 tok/s를 달성했다고 보고했습니다. 사전 변환된 GGUF 양자화와 수정된 채팅 템플릿이 포함되어 있습니다.

PayClaw, 가상 비자 카드로 결제 MCP 서버 샌드박스 출시
PayClaw가 결제 MCP 서버를 위한 샌드박스 환경을 출시했습니다. 이 환경에는 15분 만료 시간을 가진 가맹점 고정 가상 Visa 카드, 거래별 MFA 인증을 통한 인간 승인, 카드 발급 전 의도 선언 기능이 포함되어 있습니다. 실제 카드는 3월 4일에 출시될 예정입니다.

클로드 데스크톱 앱, 협업 인터페이스에 프로젝트 기능 추가
클로드 데스크톱 앱의 Cowork에 프로젝트 기능이 추가되어 사용자가 전용 작업 공간에서 작업과 컨텍스트를 구성할 수 있습니다. 파일과 지침은 사용자의 로컬 컴퓨터에 유지되며, 기존 프로젝트를 가져오거나 새로 시작할 수 있는 옵션이 제공됩니다.