포스트

Pi - OpenClaw의 핵심이자 극도로 단순화된 코딩 에이전트 분석

목차

  1. 개요
  2. Pi의 철학 - 최소한의 핵심
  3. 4가지 기본 도구
  4. 확장 시스템
  5. 트리 구조 세션
  6. 안티 MCP 접근법
  7. 모델 독립성
  8. 주요 확장 사례
  9. OpenClaw과의 관계
  10. 시사점
  11. Reference

개요

Pi는 Mario Zechner가 개발한 코딩 에이전트로, 최근 큰 관심을 받고 있는 OpenClaw의 엔진 역할을 한다. Armin Ronacher(Flask 창시자)가 블로그에서 Pi의 아키텍처와 철학을 상세히 분석한 글을 발표했다.

Pi의 핵심 철학은 “LLM은 코드 작성과 실행에 매우 뛰어나므로 이를 적극 활용하자”는 것이다. 다른 코딩 에이전트들이 수십 가지 도구와 복잡한 시스템을 내장하는 것과 달리, Pi는 극도로 작은 핵심과 강력한 확장 시스템이라는 독특한 접근법을 취한다.

Pi의 철학 - 최소한의 핵심

Pi는 가장 짧은 시스템 프롬프트를 가진 코딩 에이전트이다. 핵심에 내장된 기능이 극히 적고, 대신 에이전트가 필요한 기능을 스스로 작성하도록 유도한다.

다른 도구들이 기본으로 제공하는 기능(코드 리뷰, TODO 관리, 파일 시각화 등)을 Pi는 확장(extension)으로 구현한다. 이는 핵심을 최소화하면서도 사용자의 워크플로에 맞게 자유롭게 형태를 바꿀 수 있게 해준다.

프로젝트별 시스템 프롬프트는 SYSTEM.md 파일로 교체하거나 추가할 수 있다. 프로젝트 지시사항은 AGENTS.md에 작성하며, ~/.pi/agent/, 상위 디렉토리, 현재 디렉토리에서 순서대로 로드된다.

4가지 기본 도구

Pi가 기본으로 제공하는 도구는 단 4가지이다.

도구기능
Read파일 읽기
Write파일 쓰기
Edit파일 수정
Bash명령어 실행

이 4가지 도구만으로도 LLM이 코드를 작성하고 실행하는 데 충분하다는 것이 Pi의 핵심 전제이다. 추가 기능이 필요하면 에이전트가 이 기본 도구들을 사용하여 스스로 확장을 작성한다.

확장 시스템

Pi의 확장 시스템은 세션에 상태를 유지하는 강력한 메커니즘을 제공한다. 확장 상태를 디스크에 영구 저장할 수 있어 핫 리로딩이 가능하다.

핫 리로딩은 Pi의 핵심 기능이다. 에이전트가 확장 코드를 작성하면 즉시 리로드하여 테스트하고, 문제가 있으면 수정하는 루프를 반복한다. 확장이 정상 동작할 때까지 이 과정이 자동으로 진행된다.

다른 도구들과 달리 확장을 시작 시 시스템 컨텍스트에 로드할 필요가 없다. 따라서 도구 재로드 시 캐시 손실이 발생하지 않는다.

테마도 핫 리로딩을 지원한다. 활성 테마 파일을 수정하면 즉시 변경사항이 적용된다. 테마는 ~/.pi/agent/themes/, .pi/themes/, 또는 Pi 패키지에 배치할 수 있다.

트리 구조 세션

Pi의 세션은 일반적인 선형 구조가 아닌 트리 구조로 되어 있다. 세션은 JSONL 파일로 저장되며, 각 항목은 id와 parentId를 가지고 있어 새 파일을 생성하지 않고도 분기(branching)가 가능하다.

세션은 ~/.pi/agent/sessions/에 작업 디렉토리별로 자동 저장된다.

/tree 명령으로 세션 트리를 탐색할 수 있다. 이전 지점을 선택하여 그곳에서 계속 진행하거나, 브랜치 간 전환이 가능하다. 모든 히스토리가 단일 파일에 보존된다.

트리 구조의 실용적 장점은 사이드 퀘스트를 수행할 수 있다는 것이다. 예를 들어 메인 세션에서 작업 중에 도구가 깨진 것을 발견하면, 브랜치를 만들어 도구를 수정하고, 다시 메인 세션으로 돌아올 수 있다. 메인 세션의 컨텍스트를 낭비하지 않으면서 문제를 해결할 수 있다. 되감기(rewind) 시 Pi가 다른 브랜치에서 일어난 일을 요약해 준다.

안티 MCP 접근법

Pi에는 MCP(Model Context Protocol) 지원이 없다. 이는 의도적인 철학적 선택이다.

Pi의 개념은 “에이전트가 새로운 기능이 필요하면 스스로를 확장하게 하자”는 것이다. 외부 도구를 다운로드하는 대신, 에이전트가 자신의 기능을 직접 작성하고 유지 관리한다. 소프트웨어가 소프트웨어를 만드는 자기 진화형 구조이다.

MCP가 필요한 경우 확장으로 구현하거나, OpenClaw처럼 mcporter를 사용할 수 있다. mcporter는 MCP 호출을 CLI 인터페이스나 TypeScript 바인딩으로 노출시킨다.

Armin Ronacher는 이 접근법의 장점을 다음과 같이 설명한다. MCP와 달리 Pi의 확장은 시작 시 시스템 컨텍스트에 도구를 로드할 필요가 없으므로, 캐시 손실 없이 도구를 재로드할 수 있다.

모델 독립성

Pi의 세션은 여러 모델 제공자의 메시지를 포함할 수 있다. 하나의 세션에서 서로 다른 LLM을 혼용하여 사용할 수 있다는 의미이다.

이는 특정 모델에 종속되지 않고, 작업의 특성에 따라 적합한 모델을 선택할 수 있는 유연성을 제공한다.

주요 확장 사례

Armin Ronacher가 직접 구축한 확장 사례들이다. 주목할 점은 이 확장들을 저자가 직접 코딩한 것이 아니라, 에이전트에게 사양을 설명하여 생성시켰다는 것이다.

/answer

질문을 구조화된 다이얼로그 대신 자연스러운 산문으로 재포맷하는 확장이다. 깔끔한 질문 입력창을 제공한다.

/todos

Markdown 파일로 저장되는 할일 목록 관리 확장이다. 에이전트와 사용자 모두 할일 항목을 조작할 수 있으며, 작업 상태를 트래킹한다.

/review

세션 브랜칭을 활용한 코드 리뷰 확장이다. 주 세션을 방해하지 않고 별도의 리뷰 컨텍스트에서 코드를 검토할 수 있다. 발견된 문제는 메인 세션으로 가져와 수정한다.

/control

한 Pi 에이전트가 다른 에이전트에게 프롬프트를 전송하는 멀티에이전트 시스템이다. 여러 에이전트를 조율하여 복잡한 작업을 분담할 수 있다.

/files

세션에서 변경되거나 참조된 모든 파일을 나열하는 확장이다. 현재 세션의 작업 범위를 한눈에 파악할 수 있다.

OpenClaw과의 관계

Pi는 OpenClaw의 핵심 엔진이다. OpenClaw은 Pi를 기반으로 구축된 개인 AI 어시스턴트로, 2025년 11월에 공개되었다. GitHub에서 100,000개 이상의 스타를 기록하며 Forbes와 WIRED 등 주요 매체에서 다루어졌다.

Pi는 작은 컴포넌트들의 모음으로, 그 위에 자신만의 에이전트를 구축할 수 있다. OpenClaw이 그렇게 만들어졌고, Armin Ronacher는 Pi 위에 자신의 Telegram 봇을 구축했다.

Pi와 OpenClaw은 같은 철학을 공유한다. LLM이 코드 작성과 실행에 뛰어나므로 이를 최대한 활용하자는 것이다.

시사점

Pi는 코딩 에이전트 설계에 대한 새로운 패러다임을 제시한다.

기존 에이전트들이 더 많은 도구와 기능을 내장하는 방향으로 발전하는 것과 달리, Pi는 핵심을 최소화하고 에이전트 스스로가 필요한 기능을 만들도록 한다. 이 자기 진화형 접근법은 에이전트가 자신의 능력을 진화시키는 방식에 대한 근본적인 질문을 던진다.

Armin Ronacher는 “우리의 미래가 이런 방향으로 나아갈 것”이라고 전망한다. 다운로드한 확장이 아니라 에이전트가 자신의 기능을 유지 관리하는 세상이 그가 그리는 미래이다.

Reference