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

✍️ OpenClawRadar📅 게시일: May 7, 2026🔗 Source
아담: C 언어로 제작된 임베디드 크로스 플랫폼 AI 에이전트 라이브러리
Ad

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)
Ad

주요 기능

  • 에이전트 루프 – 최종 응답까지 자동 반복되는 툴 호출
  • 세 가지 제공자 – 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

Ad

👀 See Also

Claude가 Garmin의 BLE 프로토콜을 리버스 엔지니어링하여 네이티브 러닝 센서를 위조하는 데 도움을 준 방법
Tools

Claude가 Garmin의 BLE 프로토콜을 리버스 엔지니어링하여 네이티브 러닝 센서를 위조하는 데 도움을 준 방법

한 개발자가 Claude를 사용해 Garmin의 문서화되지 않은 BLE 프로토콜을 리버스 엔지니어링하여 ESP32가 네이티브 HRM 스트랩처럼 보이도록 만들었습니다. 듀얼 아이덴티티 전환과 러닝 다이내믹스 리버스 엔지니어링을 다룹니다.

OpenClawRadar
HolyCode: 지속적인 Claude AI 코딩 환경을 위한 Docker 컨테이너
Tools

HolyCode: 지속적인 Claude AI 코딩 환경을 위한 Docker 컨테이너

HolyCode는 머신 전환 및 재구축 시 AI 코딩 환경 상태를 유지하는 Docker 컨테이너입니다. 30개 이상의 사전 설치된 도구, Chromium + xvfb + Playwright를 통한 브라우저 자동화를 포함하며, ./data/opencode에 컨텍스트를 보존합니다.

OpenClawRadar
LLM 컨텍스트 윈도우를 위한 더블 버퍼링 기술로 스톱-더-월드 컴팩션을 제거합니다
Tools

LLM 컨텍스트 윈도우를 위한 더블 버퍼링 기술로 스톱-더-월드 컴팩션을 제거합니다

더블 버퍼링이라는 기술은 초기에 요약을 수행하고 두 개의 버퍼를 유지함으로써 컨텍스트 윈도우 압축 중에 LLM 에이전트가 멈추는 것을 방지할 수 있으며, 추가 추론 비용 없이 원활한 전환을 가능하게 합니다.

OpenClawRadar
클로드 코드 플러그인, 로컬에서 토큰 낭비와 이상 징후 분석
Tools

클로드 코드 플러그인, 로컬에서 토큰 낭비와 이상 징후 분석

한 개발자가 로컬 세션 데이터에서 여섯 가지 이상 유형을 탐지하여 토큰 낭비를 진단하는 Claude Code 플러그인을 만들었습니다. 이 도구는 8,392개의 세션을 분석하여 1,015개의 이상을 발견했으며, ExcessiveToolUse가 가장 흔한 유형이었습니다.

OpenClawRadar