나의 Pi 에이전트 설정, 2부: 네이티브 비동기 작업
My Pi agent setup, Part 2: native async operation
핵심 요약
Pi 에이전트의 비동기 포크 기능을 통해 대화 흐름을 끊지 않고 병렬 작업을 수행하는 설정법을 공유합니다.
- 비동기 포크 — 에이전트가 작업을 위임한 후에도 대화를 차단하지 않고 즉시 응답함
- 관찰 메모리 — 압축 과정에서도 대화 맥락을 유지하여 장기적인 대화가 가능함
- 코드 그래프 — 복잡한 코드베이스를 효율적으로 탐색하고 분석하는 도구로 개선됨
- 검색 허브 — 여러 검색 공급자를 통합하여 비동기 작업 시 독립적인 연구를 지원함
안녕 얘들아!
이건 저번에 올렸던 내 Pi 세팅 글의 후속편이야:
https://www.reddit.com/r/PiCodingAgent/comments/1t41thp/my_powerful_pi_agent_setup/
그때 세팅의 핵심 아이디어는 이거였어:
끝없이 이어지는 대화를 하는 개인 에이전트.
관찰 메모리(Observational memory)를 써서 압축을 거듭해도 세션을 계속 유지하고, 포크(fork)를 통해 잡다한 작업은 메인 컨텍스트 밖으로 빼버리는 방식이지.
그 이후로도 계속 이것저것 만져봤는데, 가장 큰 변화는 이제 포크가 완전히 비동기(async)로 돌아간다는 거야.
그래서 지금 내 세팅을 한마디로 정의하자면 이거지:
끝없는 대화 + 네이티브 비동기 작업.
한마디로 에이전트가 절대 멈추질 않아. 작업을 다른 곳에 맡겨놓고도 나랑 계속 대화할 수 있고, 같은 대화 안에서 여러 작업 스레드를 동시에 돌릴 수 있거든.
pi-async-fork
https://github.com/elpapi42/pi-async-fork
pi install git:github.com/elpapi42/pi-async-fork
이번 업데이트의 주인공이야.
예전 pi-fork도 컨텍스트 관리에는 꽤 쓸만했는데, 한 가지 진짜 짜증 나는 점이 있었어. Pi가 포크 작업이 끝날 때까지 무조건 기다려야 했다는 거.
솔직히 이게 사용자 경험에 얼마나 큰 영향을 주는지 과소평가했더라고.
내가 프롬프트를 날렸는데 Pi가 5분짜리 조사나 코드 탐색을 시작하면, 나는 5분 동안 멍하니 기다려야 하는 거야. 그러다 또 다른 거 시키면 또 5분 기다리고.
기술적으로는 에이전트가 일을 하고 있는 거지만, 내 입장에서는 속 터지게 느린 거지. 에이전트한테 뭘 시킬 때마다 몇 분씩 대화가 끊기는 건 딱 질색이거든.
나는 에이전트가 빠릿빠릿했으면 좋겠어. 언제든 내가 말 걸면 바로 대답할 수 있는 상태로 말이야.
비동기 포크가 이걸 해결해 줬어.
Pi는 포크를 실행하고 나서 바로 나랑 대화를 이어갈 수 있어. 포크 하나는 코드를 뒤지고, 다른 하나는 웹 검색을 하고, 또 다른 하나는 변경 사항을 검토하는 동안, 나는 메인 에이전트랑 완전히 다른 주제로 떠들 수 있는 거지.
내가 대화 주제를 바꾸거나, 다른 질문을 던지거나, 새로운 스레드를 시작해도 아무 문제 없어.
대화 자체가 절대 막히지 않거든.
단순히 "이제 Pi가 에이전트를 병렬로 돌릴 수 있다"는 것보다, 이 부분이 진짜 중요하다고 생각해.
내가 무슨 스웜(swarm)을 만들려는 건 아니야. 여전히 대화를 주도하고, 전체 목표를 이해하고, 결정을 내리는 Pi 에이전트는 하나거든. 포크는 그냥 병렬로 돌아가는 인지 작업일 뿐이고, 결국 그 결과는 다시 메인 에이전트로 돌아오니까.
지금 나는 3가지 작업 프로필을 쓰고 있어:
-
fast: 단순 사실 확인이나 가벼운 탐색용
-
balanced: 일반적인 작업용

