nicobailon/pi-interview-tool

Interactive form tool for pi-agent to gather user responses with keyboard navigation, themes, and image attachments

해결하는 문제

에이전트가 사용자에게 명확화를 요청해야 할 때, 종종 인라인으로 질문해야 하며 이는 서투를 수 있습니다. 이 도구는 이를 전용 대화형 양식으로 전환합니다. 에이전트가 풍부한 컨텍스트로 구조화된 질문을 제시하고, 사용자 자신의 속도로 답변을 수집하며, 구조화된 결과를 다시 받을 수 있습니다. 중단을 우아하게 처리하고, 진행 상황을 자동 저장하며, 사용자가 중단되거나 시간 초과된 세션을 복구할 수 있게 합니다.

작동 방식

에이전트는 interview() 함수를 통해 도구를 호출하고 질문을 정의하는 JSON 파일을 전달합니다. 도구는 로컬 서버를 시작하고 macOS에서는 네이티브 Glimpse 창(다른 곳에서는 브라우저 탭)에서 양식을 엽니다. 사용자는 양식을 작성하며, localStorage에 자동 저장되고 활동이 있으면 재설정되는 카운트다운 타이머가 있습니다. 사용자가 제출하면 응답이 에이전트에 반환됩니다. 취소되거나 시간 초과되면 에이전트는 null을 받습니다. 이 도구는 여러 동시 인터뷰도 지원합니다. 첫 번째만 자동으로 창을 열고, 다른 것들은 포커스를 빼앗지 않도록 대기열에 들어갑니다. 세션이 원격(ssh/mosh)인 경우 도구는 로컬 창을 여는 대신 양식 URL과 액세스 힌트를 출력합니다. 시간 초과 및 중단된 인터뷰는 나중에 재시도할 수 있도록 복구 디렉토리에 질문을 저장합니다.

대상 사용자

pi-agent를 사용하는 개발자와 사용자로, 라이브 사용자로부터 구조화된 대화형 피드백을 수집해야 하는 사람들—예: 프로젝트 요구 사항 명확화, 선호도 수집, 에이전트 주도 워크플로 중 옵션 검토. 에이전트가 코드 스니펫, 다이어그램, 테이블과 같은 풍부한 컨텍스트로 일련의 질문을 해야 할 때 특히 유용합니다.

하이라이트

  • 단일 선택, 다중 선택, 텍스트, 이미지 업로드 및 정보 패널 지원—전체에서 키보드 탐색
  • 질문에 리치 미디어 직접 포함: 이미지, Chart.js 차트, Mermaid 다이어그램, 테이블 및 원시 HTML
  • 결정을 안내하기 위한 구성 가능한 확신도(강함/약함) 및 시각적 가중치(중요/경미)가 있는 추천
  • localStorage에 자동 저장 및 경고 오버레이가 있는 세션 시간 초과; 진행 상황이 실수로 손실되지 않음
  • 세션 복구: 중단되거나 시간 초과된 인터뷰는 복구 폴더에 저장되고 나중에 재시도할 수 있음
  • 다중 에이전트 지원: 동시 인터뷰는 창을 놓고 싸우는 대신 대기열에 들어가며, 대기열 세션용 토스트 스위처가 있음
  • LLM 기반 "더 생성" 및 "옵션 검토" 버튼으로 새 선택지를 만들거나 명확성을 위해 질문을 다시 작성할 수 있음
  • "옵션에 대해 질문"은 프롬프트 칩과 자유 형식 후속 질문이 있는 인라인 어시스턴트 패널을 엽니다
  • 사용자 정의 CSS 오버라이드 및 토글 핫키가 있는 사용자 정의 가능한 테마(다크/라이트/오토)
  • 런처 선택: Glimpse, 브라우저 탭 또는 Orca 관리 브라우저 탭에서 양식 열기

작동 방식

흐름에 대한 간단한 개요는 다음과 같습니다(자세한 내용은 README에 있음):

  1. 에이전트는 질문 JSON 파일로 interview()를 호출합니다.
  2. 로컬 서버가 시작되고 선택한 런처(Glimpse, 브라우저 또는 Orca)에서 양식이 열립니다.
  3. 사용자는 자신의 속도로 답변합니다. 모든 변경은 자동 저장되고 시간 초과를 재설정합니다.
  4. 제출 시 응답이 에이전트에 다시 전송됩니다. 취소 또는 시간 초과 시 에이전트는 null을 받습니다(또는 도구는 비동기 전달을 위해 인터뷰 ID를 반환할 수 있음).
  5. 세션이 원격(ssh/mosh)인 경우 도구는 로컬 창을 여는 대신 양식 URL과 액세스 힌트를 출력합니다.

수명 주기

  • 제출(⌘+Enter): 응답이 에이전트에 반환됩니다.
  • 시간 초과: 카운트다운 배지는 활동이 있으면 재설정됩니다. 만료되면 경고 오버레이가 사용자에게 계속하거나 닫을 수 있는 기회를 제공합니다.
  • Escape × 2: 빠른 취소.

세션 복구

인터뷰가 시간 초과되거나 중단된 경우(탭 닫힘, 연결 끊김), 질문은 ~/.pi/interview-recovery/에 2026-01-02_093000_myproject_main_65bec3f4.json과 같은 파일 이름으로 저장됩니다. 나중에 해당 파일을 interview()에 전달하여 재시도할 수 있습니다. 7일 이상 된 파일은 자동으로 정리됩니다.

다중 에이전트 동작

여러 에이전트가 동시에 인터뷰를 실행할 때 첫 번째만 자동으로 창을 엽니다. 후속 인터뷰는 대기열에 들어가고 도구 출력에 URL로 표시됩니다. 활성 인터뷰를 제출하면 자동으로 다음 대기열 인터뷰로 리디렉션됩니다. 오른쪽 상단의 토스트에 드롭다운이 있어 대기열 세션을 열 수 있습니다. 세션 상태 표시줄에 식별을 위해 프로젝트 경로, git 브랜치 및 세션 ID가 표시됩니다.

시간 초과 동작

카운트다운(모서리에 표시)은 입력, 클릭 또는 마우스 이동과 같은 활동이 있으면 재설정됩니다. 만료되면 사용자에게 계속할 기회를 주는 오버레이가 나타납니다. localStorage 자동 저장 덕분에 진행 상황이 손실되지 않습니다.

대상 사용자

대화형 사용자 입력이 필요한 pi-agent 워크플로를 구축하거나 사용하는 개발자. 에이전트가 프로젝트 세부 사항, 선호도, 설계 결정 또는 기타 매개변수에 대한 명확화가 필요하고 구조화된 양식이 자유 형식 채팅보다 더 신뢰할 수 있는 상황에 이상적입니다. 또한 피드백을 일관되게 수집하고 중단에서 복구해야 하는 팀에도 유용합니다.

하이라이트

  • 풍부한 질문 유형: 단일 선택, 다중 선택, 텍스트 입력, 이미지 업로드/카메라 캡처 및 정보 패널.
  • 임베디드 미디어: 질문 내 이미지, Chart.js 차트, Mermaid 다이어그램, 테이블 및 HTML.
  • 확신도 및 가중치가 있는 추천: 옵션이 제안되는 강도와 시각적 중요성을 제어합니다.
  • 자동 저장 및 시간 초과 복구: 응답은 localStorage에 저장됩니다. 중단/시간 초과 인터뷰는 복구 가능합니다.
  • 다중 에이전트 지원: 동시 인터뷰는 포커스를 빼앗는 대신 대기열에 들어가며 토스트 스위처가 있습니다.
  • LLM 기반 도우미: 구성 가능한 모델로 더 많은 옵션을 생성하거나 질문을 검토/다시 작성합니다.
  • 옵션에 대해 질문: 프롬프트 칩과 자유 형식 후속 질문이 있는 인라인 어시스턴트 패널.
  • 테마: 다크/라이트/오토 테마와 사용자 정의 CSS 오버라이드 및 토글 핫키.
  • 런처 옵션: 양식 표시를 위해 Glimpse, 브라우저 또는 Orca를 선택합니다.
  • 키보드 탐색: 탐색, 선택 및 제출을 위한 단축키를 포함한 전체 키보드 지원.

관련

  • 프로젝트
  • 프로젝트
  • 프로젝트
  • 프로젝트