OPEN SOURCE · 완전 로컬 동작

AI 에이전트에 기억복구를 더하세요.

AgentMesh Runtime 은 완전 로컬, 오픈소스 에이전트 런타임 스캐폴딩입니다. 세션을 가로지르는 영구 에피소드 기억, 유계 OODA 루프 기록, 크래시 이후의 깔끔한 재개—이 모든 걸 아래에서 받쳐 줍니다. 설치 후에도 지능은 여전히 당신의 에이전트(Claude Code / OpenClaw / Codex / Hermes / 자체 제작)에서 옵니다. 이 계층은 기억하기, 기록하기, 복구하기 같은 바닥 작업만 담당합니다. 계정 불필요, 클라우드 불필요, 무료, Apache 2.0.

~ run-this-locally
$ git clone https://github.com/jiyangnan/AgentMesh-Runtime.git && cd AgentMesh-Runtime
$ uv sync
$ uv run agentmesh-runtime doctor           # 셀프체크: Neo4j / SQLite / ledger / checkpoint

# 이제 에이전트가 호출하도록 (AGENTS.md 참고):
$ uv run agentmesh-runtime memory recall "your query" --top-k 5
$ uv run agentmesh-runtime memory ingest-file ./session.jsonl discord
$ uv run agentmesh-runtime rehydrate --write-default --print-path  # 재시작 후 복구
왜 이 계층이 필요한가

에이전트는 똑똑합니다. 다만 기억하지 못하고, 끊기면 그걸로 끝이라는 게 아쉽죠.

세션이 끝나고, 프로세스가 재시작되고, 컨텍스트가 터지면—어제 논의한 결정, 밟았던 함정, 실패했던 시도가 모두 영(零)으로 돌아갑니다.

AgentMesh Runtime 은 기억, 루프 기록, 단점 복구라는 바닥 작업을 받아 처리하여, 당신의 에이전트가 날을 넘어 계속 이어지게 합니다. 구체적인 생각과 결정은 여전히 에이전트 자신의 머릿속에서.

스캐폴딩 기능 · 모두 로컬

5 가지 정직한 기능, 모두 당신의 머신에서.

과장도 공언(空言)도 없습니다. 아래는 코드에 실제로 구현되어 동작하는 것만 적었습니다. 결정 지능은 계속 당신의 에이전트가 맡고, 이 계층은 그 아래만 담당합니다.

i.

멀티 백엔드 영구 에피소드 기억

Neo4j 그래프 검색, SQLite FTS5(BM25 + snippet), 원본 파일 grep, 선택적 Gemini 벡터—4 단 페일오버로, 어느 백엔드가 죽어도 나머지가 서비스를 이어 갑니다. 세션 이벤트, 결정, 교훈을 회를 넘어 호출할 수 있습니다.

ii.

유계 OODA 루프 기록

Observe / Orient / Decide / Act / Verify / Record 상태머신이 각 단계를 영구 트레이스에 떨어뜨립니다. 진짜 결정은 에이전트에서—스캐폴딩은 단계가 확실히 실행되고, 과정이 기록되며, 규율이 흩어지지 않도록 보장할 뿐입니다.

iii.

크래시 / 재시작 복구

SQLite ↔ Neo4j 지연 동기 ledger, checkpoint 저장소, 한 줄짜리 rehydrate 명령—재시작 직후 "내가 어디까지 했더라"를 즉시 재구축해 새 세션에 주입합니다.

iv.

단일 명령 셀프체크 + 안티패턴 감지

doctor 가 JSON 헬스 리포트를 출력하고, 규칙 기반 blind_retry / phantom_progress / pivot_exhaustion 안티패턴 알림을 띄웁니다—카운터와 임계값일 뿐, 마법이 아닙니다.

누가 구동할 수 있는가

스캐폴딩은 에이전트를 가리지 않습니다.

특정 벤더에 묶이지 않습니다. 로컬 CLI 또는 Python 패키지를 호출할 수 있는 에이전트나 자체 스크립트라면 무엇이든 이 계층을 구동할 수 있습니다.

CLI / SKILL

Claude Code

agentmesh-runtime 을 도구 명령으로 호출. skill 로 자동 로드도 가능.

NATIVE HOST

OpenClaw

이 프로젝트의 발상지. 기본 경로가 바로 OpenClaw 의 런타임을 가리킵니다.

CLI / MCP

Codex

셸로 CLI 를 호출하거나 MCP 도구로 래핑. Codex CLI 와 완전히 호환.

LOCAL AGENT

Hermes / 자체 제작

Python 서브프로세스를 띄울 수 있는 스크립트라면 무엇이든 동작합니다. 환경 변수로 경로만 바꾸면 됩니다.

로컬 의존성

세 가지 세트, 모두 당신의 머신에서.

클라우드 워커도, 호스티드 DB도, 유료 API도 없습니다. 아래 세 가지를 설치하면 스캐폴딩이 로컬에서 동작합니다. Python 쪽은 uv sync 가 처리, 나머지는 수동 설치.

RUNTIME

Python 3.10+ · uv

패키지 관리는 uv. AgentMesh 생태계와 정렬됩니다. uv sync 한 줄로 의존성을 다 깔아 줍니다.

GRAPH

Neo4j(커뮤니티 에디션, 선택)

그래프 백엔드는 docker compose 로: docker compose -f docker/docker-compose.neo4j.yml up. 죽어도 SQLite + 파일 grep 이 받아 줍니다.

VECTOR

Gemini Embedding(선택)

시맨틱 검색에는 본인의 GEMINI_API_KEY 가 필요. 설정하지 않아도 나머지는 그대로 동작합니다—벡터 레인만 빠지는 정도.

사용법

에이전트 친화적으로 설계.

이 리포지토리 전체는 당신이 한 줄씩 직접 타이핑하는 게 아니라, 에이전트가 호출하도록 설계되어 있습니다. 당신의 일은 설치와 "사용법을 알려 주기". 나머지는 에이전트가.

01

CLI 설치

git cloneuv sync, agentmesh-runtime / amr 명령이 들어옵니다. 먼저 doctor 를 한 번 돌려 환경이 초록불인지 확인.
GitHub 보기 →

02

AGENTS.md 를 통째로 에이전트에게 전달

리포지토리 루트의 AGENTS.md 는 에이전트가 읽도록 쓰여 있습니다—언제 recall, 언제 ingest, 언제 rehydrate, 그리고 사람한테 절대 약속해서는 안 될 것까지. 그대로 Claude Code / OpenClaw / Codex / Hermes 에 붙여 넣으면 됩니다.
AGENTS.md 읽기 →

03

에이전트는 로컬에서 동작하고, 회를 넘어 이어집니다

새 작업 전에 에이전트 스스로 과거 결정을 recall, 작업 뒤에 배운 점을 ingest, 재시작 후 상태를 rehydrate. 당신은 출력만 보면 되고, 바닥은 만질 필요가 없습니다.

자주 묻는 질문

FAQ.

자체 LLM 을 포함합니까?
아니요. 이것은 스캐폴딩입니다. 지능은 이미 사용 중인 에이전트(Claude Code / OpenClaw / Codex / Hermes / 자체 제작)에서 옵니다. 이 계층은 기억, 루프 기록, 크래시 복구 같은 바닥 작업을 담당합니다.
클라우드에서 동작합니까? 계정이나 API 키가 필요합니까?
둘 다 필요 없습니다. 모든 데이터는 당신의 머신에 머뭅니다. AgentMesh360 계정도, 클라우드 서비스도, API 키도 필요 없습니다. 선택 사항인 Gemini 벡터 검색만 본인의 GEMINI_API_KEY 가 필요합니다.
OODA 루프가 저 대신 결정을 내려 줍니까?
decideverify 단계는 의도적으로 작게 만든 상태머신 스텁입니다—당신이 무엇을 했는지 기록할 뿐, 다음 수를 생각하지는 않습니다. 진짜 추론은 에이전트에서 옵니다. 이 계층은 단계 실행, 기록, 규율 유지만 담당합니다.
OpenClaw 를 쓰지 않아도 사용할 수 있습니까?
예. 기본 경로가 역사적인 이유로 ~/.openclaw/* 를 가리킬 뿐, ARS_SESSION_BASEARS_MEMORY_DB 를 당신의 에이전트가 쓰는 경로로 바꾸면 됩니다. Claude Code / Codex / Hermes / 어떤 자체 에이전트든 구동할 수 있습니다.
"SQLite FTS" 는 진짜 FTS5 인가요? 아니면 LIKE 로 위장한 건가요?
진짜 FTS5 입니다. BM25 랭킹과 snippet 하이라이트 포함. 이를 정직하게 말씀드리는 이유는—프로젝트 자신의 결정 로그에 "사실은 LIKE" 라고 잘못 적힌 순간이 있었고, 뒤에 코드를 다시 읽어 chunks_fts MATCH ? 가 정식 FTS5 쿼리임을 확인한 기록이 남아 있기 때문입니다. 경위는 결정 로그 errata 에.
벡터 계층은 O(n) 무차별 cosine 인가요?
그렇습니다. 개인 / 소규모 팀 규모면 충분. 수백만 벡터를 넘어가면 외부에 pgvector 나 faiss 를 붙이세요. 분산 벡터 DB 인 척하지 않습니다—셀링 포인트는 정직하게.
나중에 호스티드 서버를 낼 건가요?
지금은 없습니다. 실 사용자가 "Neo4j 를 호스팅해 달라"고 요청하면, DB 만 호스팅하는 얇은 서버를 만들 예정입니다—지능 레이어는 넣지 않습니다. 결정 배경은 docs/decisions/ 에.
정말 오픈소스인가요?
예. Apache 2.0. 코드는 모두 GitHub 에 있습니다. 자유롭게 사용, 개조, issue 등록을 환영합니다.