개요
Pi 홈페이지의 태그라인은 “There are many agent harnesses, but this one is yours”입니다. Pi는 사용자가 도구에 맞추는 것이 아니라, 사용자의 워크플로에 맞게 적응하는 의도적으로 미니멀한 에이전트 하니스를 지향합니다. Pi 코딩 에이전트(명령 및 구성 디렉터리 이름은pi)는 Earendil Works의 오픈 소스 터미널 네이티브 코딩 에이전트(명령줄 도구)입니다. 여러 모델 공급자, 사용자 지정 공급자 및 플러그형 도구를 지원하므로 명령줄에서 코드 지원 및 작업 자동화에 적합합니다.
Pi는 맞춤형 모델 제공자와 Anthropic Messages API를 지원합니다. ~/.pi/agent/models.json에서 EvoLink를 사용자 정의 공급자로 구성하면 Pi의 완전한 에이전트 도구 호출 기능을 유지하면서 Pi에서 EvoLink의 Claude 모델 제품군을 사용할 수 있습니다.
Pi의 공식 초점은 터미널 CLI(4가지 실행 모드: 대화형 / 인쇄 / JSON / RPC, 그리고 Node.js SDK를 통한 임베딩)이며, 이 가이드는 CLI를 따릅니다.
시작하기 전에
구성을 시작하기 전에 다음 준비를 완료했는지 확인하십시오.1. Pi 코딩 에이전트 CLI 설치
Pi에는 Node.js ≥ 22.19.0이 필요합니다. 먼저
node -v로 버전을 확인하세요. 이 버전보다 낮으면 npm install -g 실행 시 EBADENGINE 경고가 출력되고 설치된 CLI가 실행되지 않을 수 있으므로, 먼저 Node를 업그레이드하세요.- 컬 스크립트
- npm
pi 명령을 사용할 수 있는지 확인합니다.
2. EvoLink API 키 받기
- EvoLink 콘솔에 로그인하세요.
- 콘솔에서 API 키를 찾아 “새 키 생성” 버튼을 클릭한 후 생성된 키를 복사하세요.
- API 키는 일반적으로
sk-로 시작합니다. 안전하게 보관해주세요.
1단계: EvoLink 공급자 구성
Pi는 홈 디렉터리(전체 경로~/.pi/agent/models.json) 내의 .pi/agent/ 폴더에 있는 models.json라는 구성 파일을 통해 공급자와 모델을 정의합니다. Claude 모델은 Pi에서 tool_use / tool_result를 자주 사용하므로 이 가이드에서는 EvoLink의 Anthropic Messages 호환 API를 사용하고 이를 anthropic-messages 유형의 사용자 지정 공급자로 구성합니다.
~는 홈 디렉터리(macOS에서는 /Users/your-username, Linux에서는 /home/your-username)를 나타냅니다. .pi는 점으로 시작하여 Finder/파일 탐색기에 기본적으로 표시되지 않는 숨겨진 폴더가 됩니다. 따라서 아래 파일을 생성하는 가장 쉬운 방법은 명령줄을 이용하는 것입니다. 복사해서 붙여넣으면 됩니다..pi 폴더는 일반적으로 Pi가 실행될 때까지 생성되지 않음). 따라서 수동으로 생성해야 합니다. 다음 세 단계를 따르세요.
1
터미널 열기
- macOS:
Command + Space를 눌러 Spotlight를 열고Terminal를 입력한 후 Enter를 누릅니다. - Windows: 시작 메뉴에서
PowerShell를 검색하여 엽니다.
2
구성 폴더와 새 파일을 만듭니다.
다음 명령을 터미널에 붙여넣고 Enter를 누르십시오. 필요한 폴더를 자동으로 생성하고 텍스트 편집기에서 빈 그러면
models.json를 엽니다.- 맥OS/리눅스
- 윈도우(파워셸)
nano 편집기(터미널 내부의 간단한 텍스트 편집기)로 이동됩니다.3
구성을 붙여넣고 저장
아래 전체 구성을 복사하여 방금 연 편집기에 붙여넣습니다.그런 다음 저장합니다.
- 나노(macOS/Linux):
Control + O를 누른 다음 Enter를 눌러 저장하고Control + X를 눌러 종료합니다. - 메모장(Windows):
Control + S를 눌러 저장한 후 창을 닫습니다.
api: "anthropic-messages"— EvoLink의 Anthropic Messages 호환 경로를 사용하므로 Pi는 Claude의 기본tool_use/tool_result프로토콜을 사용합니다.baseUrl를 도메인 루트에만 설정https://direct.evolink.ai—/v1또는/v1/messages를 수동으로 추가하지 마세요. Pi는/v1/messages를 자동으로 추가합니다. 이를 수동으로 추가하면 경로가 복제되고404 Invalid URL가 발생합니다.authHeader: true는 필수입니다. 이 필드를 설정하면 Pi가Authorization: Bearer <your-key>요청 헤더를 추가로 붙입니다. EvoLink의/v1/messages는 Bearer 인증만 허용하는 반면, Pi에 내장된 Anthropic SDK는 기본적으로x-api-key만 보내므로 이 필드를 생략하면401이 반환됩니다.apiKey에는 두 가지 형식이 있습니다. 하나를 선택하세요.- 옵션 1 · 키를 직접 붙여넣기(가장 간단하고 로컬 개인 사용에 적합): 구성에서
"$EVOLINK_API_KEY"를 실제 키로 바꿉니다."apiKey": "sk-your-real-key". 한 단계로 완료되며 환경 변수가 필요하지 않습니다. 단점은 키가 구성 파일의 일반 텍스트에 있으므로 이 파일을 공유하거나 Git에 커밋하지 마세요. - 옵션 2 · 환경 변수 보간(더 안전함, 권장):
"$EVOLINK_API_KEY"를 그대로 유지하고 실제 키를 환경 변수에 넣습니다(아래 “API 키 환경 변수 설정” 참조). 이렇게 하면 구성 파일에서 일반 텍스트 키가 유지됩니다. - (고급) Pi의
apiKey는${EVOLINK_API_KEY}(동일한 표기이며, 변수 이름 바로 뒤에 리터럴 텍스트가 이어질 때 중괄호로 구분합니다)와!command(맨 앞의!는 명령을 실행하고 그 출력을 키로 사용합니다. 예: 비밀번호 관리자에서 읽기"!op read 'op://vault/item/credential'")도 지원합니다. 값에 리터럴$또는!가 필요하면$$와$!로 이스케이프하세요.
- 옵션 1 · 키를 직접 붙여넣기(가장 간단하고 로컬 개인 사용에 적합): 구성에서
구성 파일의 키를 터치하고 싶지 않으신가요? 대화형 모드에서
/login를 사용하여 이 공급자를 선택하고 ~/.pi/agent/auth.json에 키를 저장할 수도 있습니다. 효과는 동일합니다.API 키 환경 변수 설정
위에서 **옵션 2(환경 변수 보간)**을 선택한 경우에만 이 단계가 필요합니다. **옵션 1(키 직접 붙여넣기)**을 선택한 경우 키는 이미 구성 파일에 있습니다. 이 섹션을 건너뛰고 바로 2단계로 이동하세요.
$EVOLINK_API_KEY를 실제 키로 지정하세요. 다음은 임시 버전(현재 터미널 창에서만 유효하며 창을 닫으면 사라집니다. 첫 번째 테스트 실행에 적합)과 영구 버전(터미널을 열 때마다 자동으로 로드됨)이 모두 있습니다.
- 맥OS/리눅스
- 윈도우(파워셸)
임시(현재 터미널 창, 닫으면 손실됨):지속적(셸 구성 파일에 기록되며 모든 새 터미널에 자동으로 적용됨):
어떤 쉘을 사용하고 있는지 모르시나요? 터미널에서
echo $SHELL를 실행합니다. 출력에 zsh가 포함되어 있으면 ~/.zshrc를 사용합니다. bash가 포함된 경우 ~/.bashrc를 사용하세요.2단계: 사용 시작 및 확인
1. 모델을 선택하세요
Pi를 시작하려면 터미널에서 다음 명령을 실행하세요./model을 입력하고 Enter를 누르면 모델 선택기가 열립니다.
선택기에는 models.json에 구성한 모든 EvoLink 모델이 [evolink] 태그와 함께 나열됩니다. 방향키로 원하는 모델(예: claude-fable-5)을 선택한 다음 Enter를 눌러 확정하세요.
모델을 선택하면 하단 상태 표시줄에 현재 모델, 사고(thinking) 수준, 컨텍스트 사용량이 표시되어(예: claude-fable-5 · medium 및 0.0%/1.0M) 모델 카탈로그가 성공적으로 로드되었음을 확인할 수 있습니다.
노란색 안내 문구 “Only showing models from configured providers. Use /login to add providers.”는 정상입니다. Pi는 구성된 공급자의 모델만 나열하기 때문입니다. EvoLink 사용자 지정 공급자를 통해 연결하는 경우
/login은 필요하지 않습니다.2. 구성 확인
모델을 선택한 후 먼저 간단한 프롬프트를 입력하여 모델 응답을 확인하세요.- AI의 일반적인 응답(몇 줄의 텍스트)이 표시됩니다.
- Pi는 두 번째 작업에서
ls도구를 호출하고 계속 응답할 수 있습니다. 401,404,model_not_found또는Unexpected role "tool"와 같은 오류는 없음입니다.
문제 해결
다음은 표시되는 실제 오류별로 정리되어 있습니다. 일치하는 오류를 찾으세요.401(잘못된 API 키)를 반환합니다.
- 환경 변수가 적용되지 않았습니다(가장 일반적). 현재 터미널에서
test -n "$EVOLINK_API_KEY" && echo "Key loaded" || echo "Key not loaded"를 실행합니다. Windows에서는setx를 사용한 후 터미널을 다시 시작해야 합니다. apiKey필드가 잘못되었습니다. 변수 이름을 리터럴 키로 처리하지 않고models.json에"$EVOLINK_API_KEY"(환경 변수 참조)가 포함되어 있는지 확인하세요."authHeader": true가 누락되었습니다. EvoLink의/v1/messages에는 Bearer 토큰이 필요하므로 이 필드가apiKey와 동일한 공급자 구성 내에 있는지 확인하세요.- 키 자체가 유효하지 않거나 비활성화되었습니다. EvoLink 콘솔에서 확인하세요.
404 Invalid URL를 반환합니다.
baseUrl에 추가 경로를 수동으로 추가했습니다. Pi는 자동으로 /v1/messages를 추가하므로 baseUrl를 도메인 루트 https://direct.evolink.ai로 다시 변경합니다.
404 model_not_found를 반환합니다.
models.json의 id가 EvoLink 콘솔//v1/models에서 반환된 모델 이름과 정확히 일치하는지 확인하세요.
400 Unexpected role "tool"를 반환합니다.
/v1로 끝나는 기본 URL과 함께 api: "openai-completions"를 사용하고 있습니다. Pi는 현재 Claude 호환 경로가 허용하지 않는 OpenAI의 role: "tool"를 사용하여 에이전트 도구 결과를 보냅니다.
해결책: 다음 세 가지 제공업체 필드를 변경하세요.
developer 역할이나 추론 매개변수가 아니라 도구 역할이기 때문에 이 문제는 supportsDeveloperRole 또는 supportsReasoningEffort로 해결할 수 없습니다. 구성을 업데이트한 후 새 세션을 시작하십시오.
비용에 대하여
위models.json의 cost 필드는 Pi가 사용량을 추정할 때 참조로 사용할 수 있도록 EvoLink의 실제 가격(백만 토큰당 USD로 고정 10% 할인)입니다.
캐시 읽기는 캐시에 적중되었을 때의 가격입니다(입력의 약 0.1배). 실제 절감액은 캐시 적중률에 따라 달라집니다. 맥락이 클수록 히트의 안정성이 떨어지므로 혜택이 할인됩니다. 무조건 저렴한 가격으로 취급하지 마세요.
FAQ
명령줄 터미널을 어떻게 열 수 있나요?
- macOS
- 윈도우
- 리눅스
- 옵션 1:
Command + Space를 눌러 Spotlight를 열고Terminal를 입력한 후 Enter를 누릅니다. - 옵션 2: 응용 프로그램 → 유틸리티 → 터미널로 이동합니다.
1. baseUrl를 도메인 루트에만 설정하는 이유는 무엇입니까?
Pi의 anthropic-messages 공급자는 baseUrl 뒤에 /v1/messages를 자동으로 추가하기 때문입니다. /v1 또는 /v1/messages를 추가하면 경로가 수동으로 복제되고 404 Invalid URL가 반환됩니다. https://direct.evolink.ai만 사용하세요.
2. authHeader: true를 설정해야 합니까?
예. authHeader: true를 설정하면 Pi가 Authorization: Bearer <your-key> 요청 헤더를 추가로 붙입니다. EvoLink의 /v1/messages는 Bearer 인증을 사용하는 반면, Pi에 내장된 Anthropic SDK는 기본적으로 x-api-key만 보내므로 이를 생략하면 401이 발생합니다.
3. 이 가이드가 터미널 CLI를 따르는 이유는 무엇입니까?
Pi의 공식 기본 형식은 터미널 CLI(4가지 실행 모드: 대화형 / 인쇄 / JSON / RPC, 그리고 Node.js SDK를 통한 임베딩)입니다. EvoLink 연동의 구성과 확인은 모두 CLI에서 이루어지며, 이 가이드의 모든 단계도 CLI를 따릅니다.4. 구성에서 API 키를 일반 텍스트로 작성하지 않으려면 어떻게 해야 합니까?
apiKey 필드(예: "$EVOLINK_API_KEY")에서 환경 변수 보간을 사용하여 실제 키를 환경 변수에 유지합니다.
5. EvoLink는 어떤 일반 모델을 지원합니까?
EvoLink는 전체 Claude 제품군을 지원합니다(콘솔에서 볼 수 있는 GPT, Gemini 등도 지원함). 계획/복잡한 추론을 위해서는claude-fable-5를 권장합니다. 일상적인 실행에는 claude-sonnet-5를 사용하십시오. 가벼운 작업에는 claude-haiku-4-5-20251001를 사용하세요.