BOG 뱅킹 스킬 (읽기 전용)
사용자가 Bank of Georgia 비즈니스 온라인 계좌를 대화를 통해 이해하고 관리할 수 있도록 도와줍니다. 번들 도구(scripts/bog.py)가 데이터에 접근하여 JSON을 출력하면, 여러분(AI 에이전트)이 분석(분류, 합계, 조정, 이상 징후 표시)을 수행합니다. SKILL.md를 지원하는 모든 에이전트(Claude Code, Codex 등)에서 작동합니다.
엄격한 규칙
- 항상 읽기 전용. 여기에 나열된
bog.py명령어만 실행하세요. 절대로 지불, 송금, 문서 서명, 또는 쓰기 엔드포인트를 호출하지 마세요. 해당 기능은 없습니다. 자금 이동을 요청받으면 이 스킬은 읽기 전용이며 사용자가 직접 BOG 앱에서 처리해야 한다고 말하세요(준비 작업은 도와줄 수 있습니다). - 재무 데이터는 신중하게 다루고, 요청이 없으면 원시 테이블을 덤프하지 말고 요약하세요.
- 자격 증명을 요청할 때 클라이언트 시크릿을 절대 응답에 포함하지 말고, 출력하지 마세요. 도구가 로컬에 저장합니다.
도구 실행
python3 scripts/bog.py <명령어> [옵션]
실행할 때마다 하나의 JSON 객체(command, mode(live/mock), ok, data 또는 error+message)가 출력됩니다. 이를 파싱한 후 일반 언어로 답변하세요.
매 세션: 먼저 상태 확인
데이터가 필요한 작업을 하기 전에 다음을 실행하세요:
python3 scripts/bog.py whoami
ok: true이고data.accounts_configured> 0 → 완전히 설정됨; 바로 사용자 요청으로 이동하세요. 저장된 자격 증명이나 IBAN을 다시 묻지 마세요.ok: true이지만accounts_configured가0→ 키는 작동하지만 계좌가 없음 → 온보딩 6단계(IBAN 추가)를 수행하세요.error: "no_keys"→ 완전히 새로운 사용자 → 아래 첫 설정을 실행하세요.error: "invalid_credentials"→ 키 거부됨 → 아래 5단계를 참조하세요.
첫 설정 (온보딩) — 한 번만 사용자 안내
친근하게 한 단계씩 진행하세요. 전체 클릭별 버전(정확한 BOG 화면 및 링크 포함)은 reference/getting-credentials.md에 있습니다 — 자신의 말로 전달하고 아래 링크를 사용자에게 제공하세요.
1단계 — 설명 및 안심. 이 스킬이 읽기 전용(절대 자금을 이동할 수 없음)이며, Bank of Georgia에서 클라이언트 ID와 클라이언트 시크릿 두 가지가 필요하다고 알리세요.
2단계 — 로그인. 사용자에게 **https://bonline.bog.ge/**에서 비즈니스 온라인 자격 증명으로 로그인하도록 요청하세요.
3단계 — API 키 생성. **https://bonline.bog.ge/admin/api**를 열고 새로 추가를 클릭하도록 안내하세요:
- 통합 유형 — 클라이언트 자격 증명 흐름(클라이언트 ID + 클라이언트 시크릿으로 자동 인증하며, 사용자 이름이나 비밀번호가 필요 없는 유형)을 선택하세요.
- API 클라이언트 이름 — 아무 이름(예: 인터넷 뱅킹 사용자명,
Banking Assistant)을 입력하세요. - **일회용 코드(OTP)**로 확인하세요.
4단계 — 키 복사. BOG에서 클라이언트 ID와 클라이언트 시크릿을 표시합니다(일부 화면에서는 공개 키 / 비밀 키로 표시됨 — 동일한 값). 사용자에게 둘 다 붙여넣고 저장하도록 요청하세요. 명령줄에 시크릿이 노출되지 않도록 stdin에 JSON을 파이프하세요:
python3 scripts/bog.py save-credentials <<'JSON'
{"client_id":"<클라이언트 ID>","client_secret":"<클라이언트 시크릿>"}
JSON
클라이언트 시크릿을 다시 출력하지 마세요.
5단계 — 로그인 확인. whoami를 다시 실행하세요.
ok: true→ 키가 작동합니다. 6단계로 계속하세요.error: "invalid_credentials"→ 키가 잘못되었거나 사용자의 BOG 비즈니스 뱅커가 API 접근을 아직 활성화하지 않은 경우입니다. 두 가지 가능성을 모두 알리고 다시 입력하도록 제안하세요(필요하면 먼저 초기화:python3 scripts/bog.py forget-credentials).
6단계 — 첫 계좌 추가. 하나의 계좌 IBAN(예: GE..BG...)을 요청하세요. 명세서와 BOG 앱에서 확인할 수 있으며 비밀 정보가 아닙니다. 통화는 묻지 마세요. 그런 다음:
python3 scripts/bog.py add-account --iban <IBAN>
python3 scripts/bog.py discover --account <IBAN>
discover는 해당 IBAN이 보유한 통화(GEL/USD/EUR/GBP)를 자동 감지합니다.
7단계 — 첫 실시간 결과. balance를 실행하고 결과를 보기 좋게 표시하세요(결과 표시 참조). 설정 완료를 축하하고, 다른 계좌를 추가할지 또는 원래 질문에 답변할지 물어보세요.
키가 준비되기 전에 데모를 원하시나요?
python3 scripts/bog.py --mock balance는 은행 접근 없이 현실적인 샘플 데이터를 반환합니다(항상 샘플 데이터라고 말하세요).
계좌 설정 / 추후 관리
BOG는 회사 계좌 목록을 제공할 수 없으므로 사용자로부터 IBAN을 하나씩 수집합니다. 추가는 항상 병합됩니다(기존 IBAN 유지). IBAN은 저장되며 이후 호출에서 재사용됩니다 — whoami가 ok인 경우 저장된 자격 증명이나 IBAN을 다시 묻지 마세요.
- "다른 계좌 GE.. 추가" →
add-account --iban <IBAN>후discover --account <IBAN>(그리고 또 추가할지 물어보세요) - "계좌 GE.. 제거 / 잊기" →
remove-account --iban <IBAN>(사용자가 명시적으로 요청할 때만) - "어떤 계좌가 있나요?" →
accounts
읽기 전용 명령어
| 명령어 | 반환값 |
|---|---|
whoami | 자격 증명 존재 여부 및 작동 여부 |
add-account --iban GE.. [--currency GEL] | IBAN 추가 (병합됨; 제거될 때까지 유지) |
remove-account --iban GE.. [--currency GEL] | IBAN 제거 (또는 특정 통화만 제거) |
discover [--account IBAN] [--currencies GEL,USD] | 저장된 IBAN의 통화 탐색 및 저장 |
accounts | 저장된 IBAN 및 해당 통화 |
balance [--account IBAN] [--currency GEL] | 사용 가능 잔액 + 현재 잔액 |
statement [--account IBAN] [--currency GEL] [--from YYYY-MM-DD] [--to YYYY-MM-DD] | 기간 내 거래 내역 (자동 페이지 매김) |
today [--account IBAN] [--currency GEL] | 오늘의 장중 활동 |
rates [--currency USD] | NBG 공식 환율 + BOG 상업 매수/매도 |
기본값 = 모두. --account/--currency를 전달하지 않으면 명령어는 자동으로 설정된 모든 IBAN과 해당 통화를 포함합니다(자동 통화 감지). 사용자가 특정 요청을 할 때만 --account 및/또는 --currency를 전달하세요("내 USD 잔액", "계좌 GE..123"). 이 명령어들은 목록(IBAN+통화당 하나의 항목)을 반환하며, 항목에 해당 계좌가 보유하지 않은 통화에 대한 error가 포함될 수 있습니다 — 그냥 건너뛰세요.
집계할 때 다른 통화의 금액을 절대 합산하지 마세요 — 각 통화를 별도로 보고하세요(예: GEL 합계와 USD 합계).
예시
- "내 잔액은 얼마인가요?" →
balance(모든 계좌 + 통화 포함) - "내 USD 잔액은?" →
balance --currency USD - "지난달 거래 내역" →
statement --from 2026-05-01 --to 2026-05-31 - "<공급업체>에 얼마를 지불했나요?" →
statement실행 후 직접 필터/합계. - "특이한 점 있나요?" →
statement실행 후 중복, 반올림된 숫자, 새 거래 상대, 예상보다 큰 금액을 표시하세요. - "USD 환율?" →
rates --currency USD
모의 모드
--mock를 전달하거나 BOG_MOCK=1을 설정하면 은행 접근 없이 현실적인 샘플 데이터를 반환합니다 — 사용자 자격 증명이 준비되기 전에 스킬을 시연하는 데 유용합니다. 결과가 샘플 데이터일 때는 항상 사용자에게 알리세요.
결과 표시
- 금액은 천 단위 구분 기호 + 소수점 2자리로 포맷하세요(예:
18,430.75 GEL). - 답변을 먼저 제시하고, 간단한 분석을 덧붙이며, 그룹화 가정을 명시하세요.
- 조정 시 가능한 중복, 비정상적으로 큰 금액, 새로운/알 수 없는 거래 상대, 반올림된 지불을 명시적으로 표시하세요.
전체 자격 증명 안내는 reference/getting-credentials.md를, 기본 BOG 엔드포인트는 reference/endpoints.md를 참조하세요.