AI agents가 레포(repo) 간에 통신하도록 만든 방법 — 그리고 SAMP를 사용해 구현

발행: (2026년 4월 25일 PM 03:18 GMT+9)
5 분 소요
원문: Dev.to

Source: Dev.to

Situation

저는 lumen‑argus라는 프로젝트를 작업하고 있었는데, 이 프로젝트는 서로 다른 세 개의 저장소에 걸쳐 세 개의 Claude Code 세션을 사용합니다. 세션들 간에 컨텍스트를 공유해야 했습니다—예를 들어 “방금 인증 모듈을 리팩터링했어요”, “스키마 마이그레이션이 적용됐으니 main을 풀어 주세요”. 몇 주 동안 저는 터미널 창 사이를 복사‑붙여넣기 하며 원시인처럼 작업했습니다.

Task

AI 에이전트들을 위한 교차‑세션, 교차‑저장소 메시징 시스템을 만들고자 했습니다. 요구사항은 다음과 같습니다:

  • 저렴하고 빠름
  • 로컬에서 동작 (외부 서비스 불필요)
  • 문제가 생겼을 때 cat 으로 내용을 읽을 수 있을 정도로 가독성 유지

제약 조건

  1. 메시지당 토큰 비용은 거의 없어야 합니다.
  2. 새로운 서버, 데몬, 혹은 MCP 핸드셰이크를 추가하지 않아야 합니다.
  3. 현재 Claude Code든, 내일은 Cursor든, 앞으로 나올 어떤 에이전트든 동작해야 합니다.

Action

기존 옵션들을 평가했습니다 (예: mcp_agent_mail, Agent Teams, 브로커 데몬). 이들 모두 HTTP 서버를 띄우고, 아이덴티티를 등록하고, SQLite 스토어를 운영하며, 폴링 훅에 토큰을 소모합니다—하루에 수십 개의 메시지만 교환하는 세 에이전트에게는 과도한 설계였습니다.

Linus Torvalds의 Git 방식을 차용해 SAMP(Simple Agent Message Protocol)를 만들었습니다:

  • 작성자 전용 추가 전용 로그 – 에이전트당 하나의 파일:

    log-<agent>.jsonl

    파일에 두 명 이상의 작성자가 없으므로 락이 필요 없고, 인터리빙도 없으며 Syncthing, Dropbox, iCloud 같은 도구가 병합 충돌을 일으킬 수 없습니다.

  • 콘텐츠 주소 기반 ID

    import hashlib, json, time
    
    def make_id(ts, frm, to, thread, body):
        payload = json.dumps({
            "ts": ts,
            "from": frm,
            "to": to,
            "thread": thread,
            "body": body
        }, sort_keys=True).encode()
        return hashlib.sha256(payload).hexdigest()[:16]

    같은 내용이면 같은 ID가 생성되므로 동기화 후 중복 제거가 자동으로 이루어집니다.

  • mtime 단축 회로 – 로그 파일을 파싱하기 전에 stat 으로 수정 시간을 확인하고, 변화가 없으면 바로 종료합니다.

스펙을 벤더 중립 문서로 정리하고 참고 구현인 agent‑message를 배포했습니다:

  • 세 개의 Claude Code 슬래시 명령: /message‑send, /message‑inbox, /message‑reply
  • 인간이 직접 사용할 수 있는 msg 셸 헬퍼
  • 다른 에이전트 CLI가 호출할 수 있도록 하는 작은 Python 래퍼

Result

  • Claude Code에서 보내고 받는 각각에 Bash 도구 호출 1회만 필요합니다. MCP 초기화나 ack 라운드‑트립이 없습니다.
  • 인간(또는 cron 작업, 스크립트)이 셸 헬퍼를 통해 읽고 보낼 때 LLM 토큰 0—모델이 전혀 관여하지 않습니다.
  • ≈30 ms 지연 – 사실상 Python 3 시작 시간이며, 그 외는 파일 추가 작업뿐입니다.
  • 오프라인에서도 동작하고 Syncthing, Dropbox, iCloud 등을 통해 기기 간 동기화가 가능하며, 설계상 충돌이 발생하지 않습니다.
  • 원클릭 설치pip, npm, Docker가 전혀 필요 없습니다.

Documentation & source

  • Docs:
  • GitHub:
  • SPEC:

여러 에이전트 세션을 동시에 사용하면서 복사‑붙여넣기에 지치셨다면 SAMP을 한번 시도해 보세요. PR과 이슈는 언제든 환영합니다.

0 조회
Back to Blog

관련 글

더 보기 »

내가 마침내 봇에게 '지루한' 일을 맡긴 방법

Google Cloud NEXT ’26에 대한 나의 견해: 우리 모두를 위한 “Agentic” 시대 NEXT ’26에 참석한 모든 사람들은 “Agents”에 대해 이야기하고 있습니다. 이것이 공상과학 용어처럼 들린다면, …