SDK v1.0.0 개발백서

PiGNiTO AI Agent SDK

웹사이트에 AI 업무 에이전트를 설치하기 위한 통합 가이드. 관리자 설정부터 개발자 설치, 운영 확인까지 설명합니다.

대상: 관리자 · 프론트엔드 개발자 · PoC 담당자 · 2026
Section 1

한눈에 보기

PiGNiTO SDK는 외부 웹사이트에 AI 업무 에이전트를 삽입하는 JavaScript 라이브러리입니다. 단순 Q&A 챗봇이 아니라, 자동화 실행·승인·결과 전달까지 처리하는 에이전트 UI를 제공합니다.

설치는 CSS/JS 파일 로드와 Access Key 한 줄이 전부입니다. 에이전트의 구성과 표시 방식은 PiGNiTO 콘솔에서 설정하고, 개발자는 Key만 웹사이트에 넣으면 됩니다.

⚙️
관리자 설정
PiGNiTO 콘솔
🔑
Access Key 발급
pig-xxxxxx
📄
웹사이트 설치
스크립트 2줄
🤖
에이전트 표시
방문자가 사용
Section 2

관리자 설정

SDK를 설치하기 전에 PiGNiTO 콘솔에서 에이전트를 구성합니다. 이 단계는 개발자가 아닌 관리자가 수행합니다.

에이전트 구성

콘솔에서 에이전트의 스킬·자동화·이미지를 설정합니다. 하나의 Access Key에 에이전트 하나가 연결되며, SDK를 통해 방문자에게 그 에이전트가 노출됩니다.

위젯 설정

SDK가 표시될 방식(표시 방식, 버튼 노출 여부, 에이전트 이름·이미지 등)을 콘솔에서 설정합니다. 이 설정은 SDK가 초기화될 때 서버에서 자동으로 내려갑니다. 개발자가 코드에 표시 방식을 명시하지 않으면 콘솔 설정이 그대로 적용됩니다.

Access Key 발급

에이전트 설정 완료 후 콘솔에서 Access Key를 발급합니다. 키는 pig-로 시작합니다. 이 키를 개발자에게 전달합니다.

에이전트 구성과 위젯 설정은 콘솔에서 언제든 변경할 수 있습니다. 웹사이트 코드를 수정하지 않아도 에이전트 내용이나 표시 방식을 바꿀 수 있습니다.
Section 3

웹사이트 설치

관리자에게 받은 Access Key를 웹사이트에 붙이면 됩니다.

기본 설치

</body> 직전 또는 </head> 안에 아래 코드를 추가합니다. 표시 방식은 콘솔 설정을 따릅니다.

index.html
<!-- SDK 에셋 -->
<link rel="stylesheet" href="https://your-domain.com/sdk/pignito.css">
<script src="https://your-domain.com/sdk/pignito-script.js"></script>

<!-- Access Key -->
<script>
  Pignito.init('pig-xxxxxxxxxxxx');
</script>

설치 후 확인

정상 설치 시 우하단에 플로팅 버튼(FAB)이 나타납니다. 버튼을 클릭하면 에이전트 패널이 열립니다. 버튼이 보이지 않으면 문제 해결 섹션을 참고하세요.

콘솔에서 표시 방식을 팝업(popup)으로 설정해도 FAB 버튼은 그대로 표시됩니다. FAB을 클릭하면 별도 브라우저 창이 열립니다.
Pignito.init()은 Promise를 반환합니다. 초기화 완료 후 추가 동작이 필요하면 .then()을 사용하세요. — Pignito.init('pig-xxx').then(function() { ... })

특정 버튼으로 열기

FAB 버튼을 숨기고 고객사 버튼에서 직접 에이전트를 열 수 있습니다.

Pignito.init('pig-xxxxxxxxxxxx', { fab: false });

// 버튼 클릭 이벤트에서 직접 열기
document.getElementById('my-btn').onclick = function() {
  Pignito.chatOpen();
};

→ 인라인(특정 영역 내 삽입)은 Section 4 참조.

Section 4

표시 방식

에이전트가 화면에 어떻게 나타나는지는 관리자 콘솔의 위젯 설정에서 결정합니다. 개발자가 코드에서 선택하는 항목이 아닙니다.

관리자가 콘솔에서 아래 4가지 중 하나를 지정하면, SDK는 Pignito.init('pig-xxx') 시 서버에서 그 설정을 받아 그대로 렌더링합니다. 웹사이트 코드는 Access Key만 넣으면 됩니다.

dom 에이전트 패널
우하단 FAB 버튼 클릭 시 화면 하단에 패널이 올라옵니다. 가장 일반적인 방식입니다.
기본값. 별도 설정 없으면 이 방식으로 동작합니다.
window 플로팅 창
드래그·리사이즈가 가능한 독립 창으로 표시됩니다. FAB 버튼으로 열고 닫습니다.
에이전트를 화면 위에 자유롭게 배치하고 싶을 때.
chatbot 단순 채팅
스케줄·자동화 없이 채팅 기능만 제공하는 심플한 UI입니다.
Q&A 챗봇처럼 가볍게 사용할 때.
popup 팝업 창
FAB 버튼은 그대로 표시되며, 클릭 시 에이전트 UI가 별도 브라우저 창으로 열립니다.
팝업 차단 해제가 필요할 수 있습니다.
표시 방식을 바꾸고 싶다면 웹사이트 코드가 아니라 PiGNiTO 콘솔에서 위젯 설정을 변경하세요. 변경은 SDK 재로딩만으로 즉시 반영됩니다.

예외: 페이지 안에 직접 삽입 (Inline)

특정 페이지 안에 에이전트 영역을 박아 넣어야 할 때만 코드에서 target 옵션을 지정합니다. 이 경우 콘솔 위젯 설정과 무관하게 해당 요소 안에 인라인으로 마운트됩니다.

Pignito.init('pig-xxx', { target: '#agent-area' });
Section 5

동작 흐름

Pignito.init()이 호출될 때 내부에서 일어나는 일입니다.

  1. 1
    서버에서 에이전트 설정 조회 Access Key로 GET /sdk/api/init를 요청합니다. Key 검증, SubAgent 목록, 위젯 설정이 반환됩니다.
  2. 2
    설정 적용 콘솔 위젯 설정(표시 방식·에이전트 이름·이미지 등)을 적용합니다. 코드에서 target·fab·baseUrl 같은 통합 옵션을 명시한 경우 그 값으로 덮어씁니다.
  3. 3
    UI 렌더링 콘솔에서 설정한 표시 방식에 따라 에이전트 패널을 DOM에 마운트합니다. FAB 버튼, 드래그·리사이즈 이벤트를 바인딩합니다.
  4. 4
    사용 준비 완료 Promise가 resolve됩니다. 이후 Pignito.send() 등의 API를 호출할 수 있습니다.

사용자가 에이전트를 사용할 때

사용자가 채팅 입력 시 SDK가 POST /sdk/api/mcp/execute-stream으로 실행 요청을 보냅니다. 서버가 SubAgent를 실행하고 결과를 스트리밍으로 돌려주면, SDK가 실시간으로 화면에 출력합니다. 자동화가 승인을 요구하면 패널 안에 승인 버튼이 표시됩니다. (chatbot 표시 방식은 대신 단순화된 POST /sdk/api/chat/stream을 사용합니다.)

Section 6

운영 전 체크리스트

배포 전 확인할 항목입니다.

  • Access Key 발급 확인 — PiGNiTO 콘솔에서 Key가 활성 상태인지 확인합니다.
  • Access Key 노출 주의 — 현재 SDK API는 모든 도메인에서 CORS를 허용하며 별도 도메인 제한 기능은 없습니다. Key가 유일한 접근 제어 수단이므로 유출되지 않도록 관리하세요.
  • SDK 에셋 경로 확인pignito.csspignito-script.js가 실제로 접근 가능한지 브라우저 Network 탭에서 확인합니다.
  • 관리자가 팝업 표시 방식을 설정한 경우chatOpen()을 버튼 클릭 핸들러 내에서만 호출하는지 확인합니다. 비동기 컨텍스트 내 호출은 브라우저가 차단합니다.
  • SPA 환경 — 라우팅 이동 시 Pignito.destroy() 후 재마운트하거나, init()을 다시 호출하면 자동 정리됩니다.
  • SDK Lab으로 smoke test — 실제 Key를 SDK Lab에 입력해 init, 채팅 동작을 미리 확인합니다.
Section 7

문제 해결

자주 발생하는 문제와 원인, 대응 방법입니다.

증상원인대응
스크립트가 로드되지 않음 경로 오류 또는 CORS Network 탭에서 pignito-script.js 응답 확인. 404이면 경로, CORS 오류이면 서버 설정 확인.
FAB 버튼이 나타나지 않음 init 실패 또는 fab:false 설정 브라우저 콘솔에서 오류 메시지 확인. Pignito.init().catch()로 오류를 잡아 내용을 확인하세요.
유효하지 않은 연결 키 Key 오류 또는 만료 PiGNiTO 콘솔에서 Key 상태 확인. 필요 시 재발급.
팝업이 열리지 않음 브라우저 팝업 차단 FAB 클릭(또는 chatOpen()을 버튼 onclick 핸들러 내에서 직접 호출)으로 열어야 브라우저가 차단하지 않습니다.
인라인 영역이 비어 있음 target 요소 미존재 또는 init 타이밍 target 요소가 DOM에 이미 있는지 확인. DOMContentLoaded 이후 init() 호출.
UI가 중복 표시됨 init() 중복 호출 init()을 다시 호출하면 자동 정리됩니다. SPA에서는 라우팅 이동 시 destroy()를 먼저 호출하는 것을 권장합니다.
에이전트 캐릭터 이미지가 안 보임 figureUrl 미설정 또는 경로 오류 콘솔에서 에이전트 이미지가 설정되어 있는지 확인하세요. 코드에서 figureUrl 옵션으로 직접 경로를 지정할 수도 있습니다.
CSS·이미지 에셋 경로 오류 assetBaseUrl 경로 불일치 assetBaseUrl 옵션에 SDK 파일이 실제로 서빙되는 경로를 명시하세요.
Section 8

SDK Lab에서 테스트하기

배포 전 Access Key를 입력해 SDK 동작을 브라우저에서 직접 확인할 수 있습니다.

Access Key를 입력하면 SDK가 즉시 초기화됩니다. FAB/플로팅 모드와 인라인 임베드 모드를 전환하며 UI를 확인할 수 있습니다. 실제 Key로 smoke test를 완료한 후 배포하세요.

PiGNiTO SDK Lab

Access Key 입력 → FAB/인라인 모드 확인

SDK Lab 열기

Section 9

개발자 상세 참고

이 섹션은 SDK를 더 세밀하게 제어해야 하는 개발자를 위한 참고 자료입니다. 일반적인 설치에는 위 가이드만으로 충분합니다.

Public API Reference

window.Pignito(window.$pignito로도 접근 가능) 네임스페이스로 노출되는 전체 메서드입니다. 내부적으로 에이전트 식별에 사용되는 subAgentIdx 같은 개념은 SDK가 자동으로 처리하므로 개발자가 직접 관리할 필요가 없습니다.

핵심 API

Pignito.init(accessKeyOrOptions, options?) Promise<API>
SDK를 초기화합니다. 서버 설정을 조회하고 에이전트 UI를 렌더링합니다. 이미 초기화된 상태이면 기존 UI를 정리하고 재초기화합니다.
// 방식 1: Key 문자열 + 옵션 객체
Pignito.init('pig-xxx', { fab: false });

// 방식 2: 옵션 객체에 accessKey 포함
Pignito.init({ accessKey: 'pig-xxx', target: '#agent-area' });
Pignito.chatOpen() / Pignito.open() API (체이닝)
채팅 패널을 엽니다. 콘솔에서 팝업 표시 방식으로 설정된 경우 팝업 창을 엽니다. open()은 별칭입니다.
Pignito.chatClose() / Pignito.close() API (체이닝)
채팅 패널을 닫습니다. close()는 별칭입니다.
Pignito.send(text) / Pignito.sendMessage(text) API (체이닝)
채팅창에 텍스트를 입력하고 전송합니다. 패널이 닫혀 있으면 자동으로 열립니다. sendMessage(text)는 별칭입니다.

기타 API

메서드반환설명
Pignito.versionstringSDK 버전 문자열. "1.0.0"
Pignito.getSurface()string|null현재 적용된 표시 방식(콘솔 설정값) 조회. init 전이면 null.
Pignito.navigate(viewName)Promise에이전트 워크스페이스 내 특정 뷰로 이동. 예: 'chat', 'automation'
Pignito.destroy()APISDK가 생성한 DOM과 상태를 모두 초기화합니다. unmount()는 별칭.

Server API Contract

SDK가 내부적으로 호출하는 서버 엔드포인트입니다. 직접 호출할 필요는 없지만 프록시 구성이나 CORS 설정 시 참고합니다. subAgents·subAgentIdx는 서버 내부 식별자이며 SDK가 자동으로 처리합니다.

방화벽·프록시 화이트리스트는 {host}/sdk/api/** 전체를 허용하면 됩니다. 아래는 핵심 엔드포인트 설명이며, 채팅 이력·스케줄·승인 등 내부 엔드포인트도 동일 경로 하위에 있습니다.

GET  /sdk/api/init

Access Key로 에이전트 설정을 조회합니다. Query: ?accessKey=pig-xxx

Response
{ "success": true, "config": { ... }, "subAgents": [{ "subAgentIdx": 1, "name": "..." }] }

POST  /sdk/api/mcp/execute-stream

채팅 메시지 실행 엔드포인트. Server-Sent Events(SSE)로 응답을 스트리밍합니다.

Request body
{ "accessKey": "pig-xxx", "subAgentIdx": 1, "userMessage": "..." }
SSE events
event: done               → { success, result, message? }  최종 응답
event: result             → { result }  중간/최종 응답 (chatbot surface 호환)
event: error              → { message }  실행 오류
event: needs-input        → { question, confirmationMessage }  사용자 입력 필요
event: paused             → 승인 대기 (BEFORE_STEP / approval-required와 동일 처리)
event: approval-required  → 승인 대기 (paused 별칭)

Configuration Options 전체

Pignito.init()의 두 번째 인자로 전달하는 옵션 목록입니다.

옵션타입기본값설명
accessKeystring필수. SDK 연결 키.
targetstring|ElementnullInline 마운트 대상. 지정하면 콘솔의 표시 방식 설정과 무관하게 해당 요소 안에 마운트.
fabbooleantrueFloating Action Button 표시 여부.
proactiveBubbleobject비활성FAB가 먼저 보여주는 말풍선. { enabled, messages, size, delayMs, displayMs, repeat, openOnClick, style }을 지원합니다. repeatalways | session | once, sizesmall | medium | large입니다.
baseUrlstringscript originAPI 서버 기준 URL.
assetBaseUrlstringscript dirSDK 에셋(CSS, 이미지) 기준 경로.
figureUrlstring콘솔 설정값에이전트 캐릭터 이미지 URL. 미설정 시 콘솔에서 지정한 이미지 또는 기본 캐릭터가 사용됩니다.
thumbUrlstring콘솔 설정값썸네일 이미지 URL. 미설정 시 콘솔 설정값이 사용됩니다.
greetingstring'안녕하세요!…'채팅 첫 화면 환영 메시지. HTML 허용.
defaultViewstring'chat'초기 뷰. 'chat' | 'automation'
channelsarray서버 응답값에이전트 설정을 직접 주입. 서버 응답을 덮어씁니다. 고급 옵션으로 일반적으로 사용하지 않습니다.