Pi 에이전트 성능 향상에 LSP가 도움이 될까?
Do LSPs improve Pi Agents?
핵심 요약
Pi 에이전트에서 LSP 사용 여부에 따른 성능 변화를 평가한 결과, 모델마다 결과가 달라 일관된 이점은 확인되지 않음.
- 성능 평가 — Pi 에이전트와 LSP 결합 시 모델별 성능 변화 측정함.
- 결과 불확실 — 일부 모델은 성능이 개선되었으나 전반적으로는 유의미한 차이가 없음.
- 모델 최적화 — 최신 모델은 자체 도구 활용 능력이 뛰어나 LSP가 오히려 방해가 될 수 있음.
- 학습 부족 — 에이전트가 LSP 피드백을 활용하도록 훈련되지 않아 혼란을 겪는 경우가 많음.
OpenAI가 주말 내내 아주 난리를 쳐서 정신없는 며칠이었네. 혹시 동굴 속에만 처박혀 있어서 몰랐다면 알려줄게. 걔네가 GPT 6 - Astra라는 새로운 모델 클래스를 내놨거든.
나도 좀 만져보긴 했는데, 이번 글 주제는 그게 아니야. 나한테 이런 모델을 마음껏 돌려볼 만큼 무제한 예산이 있는 것도 아니고, 내 의견이라 해봤자 그냥 뇌피셜일 뿐이니까. 인터넷에 이미 뇌피셜은 차고 넘치잖아.
오늘 글은 내가 Pi 에이전트를 만들면서 고민했던 내용이야. 에이전트를 페어 프로그래밍 파트너로 쓰고 있었는데, Pi에는 LSP(Language Server Protocol) 접근 권한이 없다는 걸 깨달았거든. LSP가 뭔지 모르는 사람들을 위해 설명하자면, 보통 IDE가 코드 확장자를 분석하려고 내 컴퓨터에서 돌리는 서비스 같은 거야.
예를 들어, .rs 확장자 파일을 열어놓고 Rust 컴파일러에서 에러 날 만한 코드를 짰다고 치자. IDE에 Rust LSP가 깔려 있으면, 굳이 컴파일러를 직접 안 돌려도 IDE가 알아서 에러를 딱 띄워주는 거지.
최근에 코딩하다 보니까 에이전트가 컴파일 에러 확인하려고 매번 cargo check를 돌리고 있더라고. 그때 딱 느꼈지. 아, 이거 기능이 부족하구나.
그래서 Pi LSP 확장자를 찾아보다가 이걸 발견했어 -https://github.com/narumiruna/pi-extensions/tree/main/packages/pi-lsp. Pi용 LSP 찾는 중이라면 이거 아주 쓸만해. 만든 사람인 narumiruna한테 박수 보낸다.
README를 보면 OpenAI Codex 저장소에 달린 댓글 링크가 하나 있는데, 거기서 OpenAI 개발자가 AGENTS.md에 LSP를 도입하는 게 에이전트한테 린터나 타입 체커 돌리라고 시키는 것보다 무슨 이득이 있냐고 의문을 제기했더라고. 그냥 개발자도 아니고, 유명한 파이썬 LSP인 Pyright를 만든 Eric Traut이었어.
이거 꽤 흥미로운 논쟁 같아서, LSP 확장자를 쓰는 게 진짜 내 Pi 에이전트 성능을 높여주는지 직접 테스트해 보기로 했지.
이 작업을 하려면 eval harness(평가 도구)를 좀 손봐야 했어. 평가를 돌릴 때마다 에이전트별로 기능 프로필을 설정할 수 있게 만들어야 했거든. 원래는 Pi 에이전트에서 확장자나 기능을 테스트하려면 Docker 이미지를 수정하거나 평가 항목마다 섹션을 따로 작성해야 했어. 그러다 보니 기능 프로필 하나 바꿀 때마다 평가 파일을 죄다 복사해서 만들어야 했던 거지.
평가 도구도 Agent Shell 어댑터를 써서 에이전트를 설정하니까, Pi 도구용 패키지랑 확장자를 Agent Shell에서 관리할 수 있게 바꿔야겠더라고.
버전 v0.4.0 -https://github.com/ScottRBK/agent-shell/releases/tag/v0.4.0에서 이걸 도입했어. 지금은 Pi 도구만 지원하지만, 앞으로 Agent Shell의 다른 도구들로도 패키지 관리 기능을 확장할 생각이야.
Agent Shell의 패키지 및 확장자 관리 기능을 넣고 나서, eval-harness에 기능 프로필 추가 기능을 붙였어. Pi 에이전트의 경우, 이제 기능 세트가 다른 에이전트끼리 비교가 가능해진 거지. 예를 들어, 같은 모델을 써도 LSP가 있는 Pi 에이전트랑 없는 에이전트를 비교해 볼 수 있는 거야.


