Pi: The Minimal Agent Within OpenClaw

https://lucumr.pocoo.org/2026/1/31/pi/

번역 (비공개): https://chatgpt.com/c/6981f2f5-3f50-83a3-8f55-53643e2b6ab5

Armin Ronacher의 생각과 글

2026년 1월 31일 작성

여러분이 바위 밑에서 살지 않았다면(세상 소식과 동떨어져 있지 않았다면), 이번 주에 제 친구 Peter의 프로젝트 하나가 인터넷에서 바이럴이 된 걸 이미 봤을 겁니다. 이건 여러 이름으로 불렸어요. 가장 최근 이름은 OpenClaw이고, 뉴스에서는 읽은 시점에 따라 ClawdBot 또는 MoltBot으로 접했을 수도 있죠. 원하는 커뮤니케이션 채널에 연결해 두면 그냥 코드를 실행하는 에이전트입니다.

하지만 여러분이 덜 익숙할지도 모르는 건, OpenClaw의 “엔진룸”에 들어 있는 것이 Pi라는 작은 코딩 에이전트라는 점입니다. 그리고 Pi는 현재 시점에서 제가 거의 독점적으로 쓰는 코딩 에이전트이기도 해요. 지난 몇 주 동안 저는 이 작은 에이전트의 “전도사”가 되어 갔습니다. 최근에 이에 관한 발표를 하나 하고 나서 깨달았는데, 정작 이 블로그에는 Pi에 대해 아직 글을 써 둔 게 없더라고요. 그래서 제가 왜 이 녀석에 집착하는지, 그리고 Pi가 OpenClaw와 어떤 관련이 있는지에 대한 맥락을 좀 적어두고 싶었습니다.

Pi는 Mario Zechner가 만들었습니다. Peter와는 달리(“약간의 광기를 곁들인 SF”를 지향하는 Peter와 달리)¹ Mario는 아주 현실적이고 단단한 사람입니다. 접근 방식은 다르지만 OpenClaw와 Pi는 같은 아이디어를 따릅니다. 즉 LLM은 코드를 쓰고 실행하는 데 정말 뛰어나니, 그걸 받아들이고 적극 활용하자는 겁니다. 어떤 면에서는 이게 우연이 아니라는 생각도 들어요. Peter가 저와 Mario를 이 아이디어와, 작년에 “에이전트”라는 개념에 푹 빠지게 만든 장본인이었거든요.

🍀 Pi란 무엇인가?

Pi는 코딩 에이전트입니다. 그리고 코딩 에이전트는 정말 많죠. 사실 지금 시점에서는 아무거나 “기성품(off the shelf)”을 집어 들어도 에이전틱 프로그래밍(agentic programming)이 어떤 느낌인지 충분히 경험할 수 있을 겁니다. 이 블로그의 리뷰에서 저는 AMP를 긍정적으로 다룬 적이 있는데, AMP에 특히 공감했던 이유 중 하나는 그게 “에이전틱 프로그래밍에 중독되어 본 사람들”이 만들었고, 여러 시도를 통해 무엇이 잘 먹히고 무엇이 안 먹히는지 실제로 겪어 본 다음, 그 위에 단지 화려한 UI만 얹은 게 아니라는 느낌이 강했기 때문입니다.

Pi가 제게 흥미로운 이유는 크게 두 가지입니다.

첫째, 코어가 매우 작습니다. 제가 아는 에이전트 중 시스템 프롬프트가 가장 짧은 편이고, 도구도 네 개뿐이에요: Read, Write, Edit, Bash.

둘째, 이렇게 작은 코어를 확장(Extension) 시스템으로 보완한다는 점입니다. 그리고 이 확장은 세션에 상태를 영속 저장(persist) 할 수도 있는데, 이게 정말 강력합니다.

그리고 작은 보너스로 하나 더: Pi 자체가 훌륭한 소프트웨어처럼 작성되어 있어요. 화면이 번쩍거리지도 않고, 메모리를 많이 먹지도 않고, 랜덤하게 깨지지도 않습니다. 굉장히 신뢰할 수 있고, 무엇을 소프트웨어에 넣을지에 큰 주의를 기울이는 사람이 만들었습니다.

Pi는 또, 그 위에 여러분이 자기만의 에이전트를 쌓을 수 있는 작은 구성요소들의 모음이기도 합니다. OpenClaw가 그렇게 만들어졌고, 저도 Pi를 바탕으로 제 텔레그램 봇을 하나 만들었고, Mario는 자기 “엄마(mom)”를 만들었죠. 뭔가에 연결된 나만의 에이전트를 만들고 싶다면, Pi에게 자기 자신(Pi)과 mom을 가리키게 해 두면, 거기서 하나 “소환”해 줄 겁니다.

🍀 Pi에 없는 것들

그리고 Pi에 “무엇이 들어 있나”를 이해하려면, 오히려 무엇이 안 들어 있나, 왜 안 들어 있나, 더 중요한 건 왜 앞으로도 안 들어갈 건가를 이해하는 게 더 중요합니다. 가장 눈에 띄는 빠짐은 MCP 지원입니다. Pi에는 MCP 지원이 없습니다. 확장으로 만들 수도 있겠지만, OpenClaw가 MCP를 지원하는 방식처럼 mcporter를 쓰는 방법도 있어요. mcporter는 MCP 호출을 CLI 인터페이스나 TypeScript 바인딩으로 노출해 주고, 여러분의 에이전트가 그걸로 뭔가를 할 수도… 없을 수도… 잘 모르겠네요 :)

그리고 이건 게으른 생략이 아닙니다. Pi의 작동 철학에서 나온 결과예요. Pi의 핵심 아이디어는 “에이전트가 아직 못 하는 일을 하게 만들고 싶다면, 확장이나 스킬 같은 걸 다운로드해서 붙이는 게 아니라 에이전트에게 스스로 확장하도록 시킨다”는 겁니다. 코드를 쓰고 실행하는 행위를 찬양(?)하는 쪽에 가깝죠.

그렇다고 확장을 다운로드할 수 없다는 뜻은 아닙니다. 다운로드는 충분히 지원됩니다. 다만 남이 만든 확장을 무조건 가져다 쓰게끔 유도하기보다는, 이미 존재하는 확장을 가리키면서 “저거처럼 만들어, 대신 내가 원하는 변경을 이렇게 해”라고 시키는 것도 가능하다는 거죠.