Pi의 단순함이야말로 가장 강력한 부분이다
Pi’s simplicity is actually the most powerful part
핵심 요약
AI 에이전트 개발 시 시스템 프롬프트와 도구를 최소화하는 '단순함'이 성능 향상과 효율적인 엔지니어링의 핵심임을 강조함.
- 프롬프트 최적화 — 시스템 프롬프트의 80%를 제거해도 에이전트 성능이 유지되고 오히려 더 명확하게 작동함.
- 도구 경량화 — 불필요한 도구를 제거하고 모델의 능력을 신뢰하는 것이 제품의 복잡성을 줄이는 올바른 방향임.
- MCP 활용 — 프롬프트 비대화를 막기 위해 지연 로딩 방식을 사용하여 범용적인 MCP 프로토콜을 유지함.
- 서브에이전트 도입 — 부모 에이전트가 계획을 세우고 작업을 분담하여 메인 스레드를 깔끔하게 유지함.
Pi의 설계 철학을 따라가면서 나만의 에이전트를 만들고 있다.
오늘 시스템 프롬프트의 80% 정도를 날려버렸다. 남은 건 딱 이거다: 너는 누구인지, 언제 어떤 툴을 써야 하는지, 수정할 때 지켜야 할 몇 가지 강제 규칙, 그리고 현재 프로젝트 맥락. 이게 전부다.
https://github.com/pulseaiclub/phi/blob/main/internal/agent/prompt/system-prompt.tmpl
근데... 에이전트가 멍청해지지도 않았다. 오히려 더 날카로워진 느낌이다. 군더더기는 줄고, 실질적인 작업은 더 잘한다.
제값 못 하는 툴들도 몇 개 쳐냈다. 이 작업을 하면 할수록 Pi가 어려운 부분을 제대로 짚었다는 생각이 든다. 껍데기는 얇게 유지하고, 모델을 믿어라. 프롬프트랑 툴 리스트를 제2의 제품으로 만들지 마라. Claude Code는 강력하지만, Pi가 의도적으로 피하는 그 특유의 무거움이 느껴진다. 만들면 만들수록 그 절제력이 정답이라는 확신이 든다.
딱 두 가지만 남겼다:
MCP - 컨텍스트에 스키마 수십 개를 때려 박으려는 게 아니라, 공통 프로토콜이라서 남겼다. 커스텀 플러그인은 보통 한 에이전트에 묶여버리지만, MCP는 범용성이 있으니까. 그리고 툴을 레이지하게 로드하면(list → inspect → call, mcptoon 같은 방식에서 영감받음), 프롬프트가 비대해질 일도 없다.
서브 에이전트 - 부모 에이전트가 계획을 잘 짜서 딱 정해진 업무만 넘겨줄 때 유용하다. 메인 스레드를 깔끔하게 유지해주고, 탐색이나 병렬 조사할 때 진짜 도움 많이 된다.
결론은, Pi한테 고맙다는 거다. "단순하게 유지하라"는 본능은 그냥 미학적인 게 아니다. 프롬프트 대부분을 쳐내고 나니, 이게 엔지니어링의 올바른 기본값이라는 게 느껴진다.


