Autolith: 살아있는 런타임을 가진 프로그래밍 에이전트
Autolith: A programming agent with a live runtime
TL;DR Highlight
에이전트를 Common Lisp 이미지 하나에 넣어 자기 코드를 고치고 복구하게 했다
Who Should Read
코딩 에이전트를 직접 만들거나 장시간 작업·대용량 컨텍스트 처리 구조를 고민하는 백엔드 개발자
Core Mechanics
- 에이전트 전체가 Lisp 이미지 하나
- Autolith는 터미널 코딩 에이전트이고, 실행 중인 Lisp 이미지(메모리에 올라간 프로그램 상태) 안에서 자기 구현을 직접 들여다보고 고친다.
- MCP 서버, 메모리, 아젠다, LSP 서버도 같은 이미지에서 관리한다.
- 실행 중에 자기 자신을 수정한다
- self.redefine으로 함수·클래스·매크로를 재시작 없이 바로 교체한다.
- self.exercise로 검증하고, self.diff로 보고, self.discard로 버리고, self.commit으로 내부 git에 커밋한다.
- 망가져도 복구 이미지로 되살아난다
- 프로세스가 죽으면 crash capsule을 쓰고 깨끗한 복구 이미지를 띄워 정상 세대를 고른다.
- 대화는 그대로 복원되고, 읽기 전용으로 원인 진단부터 시작한다.
- 컨텍스트보다 큰 데이터는 RLM으로 처리한다
- RLM(Recursive Language Models, 모델이 작은 프로그램으로 자료를 쪼개 하위 호출에 넘기는 방식)을 도구로 제공한다.
- 호출 수와 토큰 상한을 먼저 정하고, 상한에 닿으면 끝낸 분량과 이어갈 컨텍스트를 돌려준다.
- 미션은 모델이 아니라 증거가 통과시킨다
- 사람이 인수 기준을 쓰고, 하네스가 command·artifact·Lisp 게이트를 순서대로 돌린다.
Community Reactions
- 자기 수정보다 외부 도구가 낫다는 의견
- 에이전트 인터페이스를 바꾸고 싶은 경우가 드물다는 댓글이 있었다.
- 도구를 써서 해결하면 되고, Emacs도 에이전트가 설정을 읽는 방식이면 충분하다는 의견이다.
- Lisp 선택에 대한 반론
- 에이전트 성능은 언어의 학습 데이터 양에 좌우된다며 Python·JS나 C/C++/Rust가 낫지 않느냐는 질문이 있었다.
- 근거로 danluu.com/pl-tokens 글을 링크했다.
- 유사한 시도와 확장 아이디어
- Jolt로 비슷한 것을 만들기 시작했다는 댓글이 있었다(github.com/yogthos/samizdat).
- Smalltalk나 Erlang의 actor+mailbox 개념으로 비슷한 구상을 했다는 댓글과, 다음 단계는 프로그램 자체가 되는 것이냐는 의견도 있었다.
- Cursor와의 차이를 묻는 댓글
- 저자의 답변은 아직 확인되지 않는다.
How to Apply
- 긴 명령 출력을 로그로 빼기
- 오늘 쓰는 에이전트의 셸 도구 결과를 끝부분 중심 6,000바이트 미리보기로 자른다.
- 전체 출력은 파일에 저장하고 ID로 다시 조회하게 한다.
- 백그라운드 작업은 폴링 대신 완료 알림으로
- 테스트·빌드처럼 10초 넘는 작업은 별도 잡으로 넘긴다.
- 끝났을 때 한 번만 에이전트 턴을 이어 붙인다.
- 장시간 작업에 인수 기준과 게이트 달기
- 기준은 사람이 쓰고 모델이 못 바꾸게 한다.
- 테스트 명령 같은 결정적 게이트와 턴·토큰·시간 상한을 함께 건다.
- 병렬 자식 작업은 worktree로 격리하기
- 자식마다 git worktree를 따로 주고 패치와 실행한 검사 결과를 돌려받는다.
- 부모가 충돌을 확인하며 순서대로 적용한다.
Try It
# Claude나 ChatGPT에 그대로 붙여넣기. Autolith 아이디어(미션 게이트)의 간이 버전
너는 코딩 에이전트다. 아래 미션을 다음 규칙으로 수행해라.
미션: {{작업 설명}}
인수 기준(내가 정했고 네가 바꿀 수 없다):
1. {{기준 1: 예) 테스트 전부 통과}}
2. {{기준 2}}
규칙:
- 기준마다 검증할 명령 또는 확인 방법(게이트)을 먼저 제시해라.
- 최대 {{턴 수}}턴 안에 끝내고, 못 끝내면 끝낸 부분과 이어갈 상태를 요약해라.
- 완료 선언은 하지 말고 '검증 요청'만 해라. 통과 여부는 내가 게이트 결과로 판단한다.
먼저 게이트 목록과 작업 계획만 보여줘.
이어서 해 볼 것: 게이트 실행 결과를 붙여넣고 다음 턴을 진행시켜 보기.Terminology
관련 논문
같은 시뮬레이션, 다른 근거: 도구 출력을 파일로 넘기면 LLM 에이전트 정확도가 어디서 깎이나
긴 툴 출력을 파일로 넘기자 GPT-5.1은 정확도 11.3%p 하락, 정식 출력 지정하니 회복
가짜 뉴스가 진짜 폭락을: LLM 트레이딩 에이전트 대상 정보 주입 공격
가짜 헤드라인 한 줄로 LLM 트레이딩 에이전트 62%를 조종했다(프롬프트 주입은 14%)
Harness Engineering 101: LLM은 뇌, harness는 몸
에이전트는 JSON 배열을 관리하는 루프이고, 16개 챕터로 직접 만들어 본다
Harness²: 에이전트 harness를 스스로 고쳐 쓰는 재귀 최적화 프레임워크
모델은 고정하고 harness를 재귀로 고쳤더니 벤치마크 점수가 최대 11.8%p 올랐다
해고된 Savannah 경찰관, ICE 요원 남편에게 Flock 계정 공유
경찰관이 Flock 계정을 남편(ICE 요원)에게 공유했고, 감사에서 983건 검색이 드러나 해고됐다
tmux와 Claude Code: 세션, send-keys, 그리고 한계선
tmux로 Claude Code 여러 개를 돌리면 편하지만 에이전트 4개쯤에서 한계가 온다
Hybrid Reasoning Agents: 잠재 공간에서 생각하고 텍스트로 행동하는 LLM 에이전트
잠재 공간 추론과 텍스트 도구 호출을 섞었더니 성능 10.4%↑, 토큰 최대 54.7%↓