smallnest/pigo
pi agent in Golang
해결하는 문제
pigo는 요구 사항 이해 및 코드 수정 사이클을 자동화하도록 설계된 커맨드라인 AI 코딩 에이전트입니다. LLM이 로컬 개발 환경 내에서 직접 파일을 읽고 쓰고 명령을 실행할 수 있도록 하여 고수준 프롬프트와 구체적인 파일 변경 사이의 간극을 메웁니다.
작동 방식
이 프로젝트는 중앙 에이전트 루프가 사용자, LLM 제공업체 및 일련의 로컬 도구 간의 상호 작용을 관리하는 계층화된 런타임 아키텍처를 구현합니다. 두 개의 레이어 루프 시스템을 사용합니다. 어시스턴트가 도구 호출을 중단할 때까지 응답 스트림과 도구 실행을 처리하는 내부 루프와 후속 메시지를 관리하는 외부 루프입니다.
주요 운영 구성 요소는 다음과 같습니다:
- 멀티 프로바이더 지원: OpenRouter, Ollama, Anthropic 및 OpenAI 호환 엔드포인트와 호환됩니다.
- 도구 통합: 파일 작업 (
read,write,edit), 검색 (grep,find), 셸 실행 (bash) 및 웹 액세스 (webfetch,websearch)를 위한 내장 도구. - 보안 게이트: 신뢰할 수 없는 디렉토리에서 "부작용"이 있는 도구(
bash또는write등)에 대해 사용자 확인을 요구하는 프로젝트 신뢰 시스템. - 컨텍스트 관리: LLM의 윈도우 한도에 도달할 때 자동 컨텍스트 압축(요약).
대상 사용자
- 단순히 코드 스니펫을 생성하는 것이 아니라 터미널에서 실제 코딩 작업을 수행할 수 있는 AI 에이전트를 원하는 개발자.
- 자동화 스크립트를 위해 "헤드리스" 모드 (
-p)를 사용할 수 있는 CI/CD 엔지니어. - 제공된 SDK를 통해 자신의 애플리케이션에 코딩 에이전트 기능을 내장하려는 Go 개발자.
주요 특징
- 이중 실행 모드: 대화형 REPL과 CI/CD 통합을 위한 헤드리스 스크립트 모드를 모두 지원합니다.
- 확장 가능한 아키텍처: "Skills" (재사용 가능한 프롬프트 기반 기능), 플러그인 및 셸 명령을 통해 에이전트 동작을 가로채거나 수정할 수 있는 강력한 Hooks 시스템을 특징으로 합니다.
- 유연한 도구 제어: 화이트리스트 (
--allowed-tools) 및 블랙리스트 (--disallowed-tools)를 통한 세밀한 도구 액세스. - 세션 지속성: 이전 세션을 나열하고 재개하며 계속할 수 있는 기능.
- 프롬프트 템플릿: 일반적인 작업을 위해 복잡한 매개변수 구문을 가진 재사용 가능한 Markdown 템플릿을 지원합니다.
관련
- 프로젝트
- 프로젝트
- 프로젝트
- 프로젝트
- 프로젝트