외부 AI 에이전트에게 두 가지 회계 작업을 맡기고 모든 원장 변경을 검토하세요: 미리보기 우선 확인으로 은행 CSV를 가져온 다음, 쿼리 및 보고서 출력에서 잔액 질문에 답하세요.
CLI 퀵 스타트로 bea를 설치하세요. 로컬 가져오기, 쿼리, 보고서 명령은 Beancount.io 계정이 필요 없습니다. 채팅 에이전트는 자체 구독 또는 API 키만 있으면 됩니다. 내장된 bea ask 도우미만 호스팅 자격 증명이 필요하며, 이 레시피에서는 이를 사용하지 않습니다.
에이전트가 하는 일과 bea가 하는 일
에이전트는 카테고리를 제안하고 쿼리를 초안 작성합니다. Bea는 원장 구조를 검증하고 합계를 계산합니다. 아래 모든 명령을 직접 실행합니다. 에이전트는 원장을 직접 작성하지 않습니다.
레시피 1: 에이전트가 제안한 카테고리로 명세서 가져오기
은행 내보내기를 검증된 항목으로 변환합니다. 에이전트가 분류 규칙을 제안합니다. 미리보기와 중복 검토가 무엇을 기록할지 결정합니다.
사전 요구 사항
bea와 새로운 데모 디렉토리가 필요합니다. 계정이나 Python 임포터는 필요 없습니다.
입력 준비
디렉토리와 원장을 만듭니다. 명시적인 --file 대상이 모든 명령을 데모 장부에 지정합니다.
mkdir ai-agent-demo && cd ai-agent-demo
bea --no-input init books --currency USD --date 2026-08-01 --opening-balance "Assets:Checking 1000"
bea --file books/main.bean add open --date 2026-08-01 --account Expenses:Transport:Fuel -c USD이 샘플을 statement.csv로 저장하세요:
Date,Payee,Narration,Amount
2026-08-02,Whole Foods,groceries,-20.00
2026-08-03,Shell,gas,-40.00
2026-08-04,Unknown Shop,mystery,-9.99이 분류 규칙을 rules.toml로 저장하세요:
[[rule]]
match = "whole foods|trader joe|corner market"
account = "Expenses:Groceries"
[[rule]]
match = "shell|chevron|exxon"
account = "Expenses:Transport:Fuel"작업 프롬프트 복사
이 프롬프트를 CSV 내용과 함께 외부 에이전트에 붙여넣으세요:
내 은행 CSV 행에 대한 Beancount 분류 규칙을 제안해 주세요.
각 가맹점에 대해 일치 패턴과 대상 비용 계정이 있는 TOML 규칙을
하나씩 제안하세요. 날짜, 수취인, 금액을 절대 변경하지 마세요.
자신 있게 분류할 수 없는 행은 일치하지 않은 상태로 두세요: 검토를 위해
! 플래그로 Expenses:Uncategorized에 게시됩니다. bea 가져오기
미리보기와 적용을 로컬에서 실행합니다. 내 원장을 작성하지 마세요.CLI 명령 실행
먼저 미리보기를 보고, 검토된 항목을 적용하고 결과를 확인하세요:
bea --file books/main.bean import statement.csv --csv date=Date,amount=Amount,payee=Payee,narration=Narration --account Assets:Checking --rules rules.toml
bea --file books/main.bean import statement.csv --apply
bea --file books/main.bean check
bea --file books/main.bean list transaction --flag '!'
bea --file books/main.bean query "SELECT account, sum(position) WHERE account = 'Assets:Checking' GROUP BY account"예상 출력 확인
미리보기는 3 ready, 0 exact duplicates, 0 possible duplicates를 보고하고 종료 코드 0으로 종료합니다. 아무것도 작성하지 않습니다. 적용 실행은 Wrote 3 entries를 보고합니다. 검사는 오류를 보고하지 않습니다. ! 대기열은 Unknown Shop의 일치하지 않은 행 하나를 -9.99 USD로 나열합니다. 잔액 쿼리는 당좌예금에 930.01 USD를 보고합니다. 적용을 반복하면 0 ready, 3 exact duplicates가 보고되고 0개 항목이 작성됩니다.
검토 및 수정
읽은 후 원장에서 ! 행을 의도적으로 재분류하세요. 통과 검사는 원장이 균형을 이루고 있음을 증명할 뿐입니다. Expenses:Uncategorized가 올바른 계정인지에 대해서는 아무 말도 하지 않습니다. 중복 정책, 충돌 처리, 고급 Python 경로에 대해서는 은행 CSV 연습을 따르세요.
레시피 2: 쓰기 없이 잔액 질문에 답하기
데모 장부에서 하나의 질문에 답하세요: 2026년 8월에 식료품과 연료에 얼마를 썼는지. 에이전트가 쿼리를 초안 작성합니다. 읽기 전용 명령이 답을 생성합니다.
사전 요구 사항
레시피 1의 데모 원장 또는 자신의 장부가 필요합니다. 아래 모든 명령은 읽기 전용입니다.
작업 프롬프트 복사
이 프롬프트를 외부 에이전트에 붙여넣으세요:
다음 질문에 답하는 Beancount 쿼리(BQL)를 초안 작성하세요: 2026년 8월에
식료품과 연료에 얼마를 썼는지. bea list open에 나열된 대로 내 계정
이름을 정확히 사용하세요. 읽기 전용 명령만 제안하세요: bea query
또는 명시적 --file 대상이 있는 bea report. 놀라운 합계를 수정하기 위해
원장 편집을 제안하지 마세요. 놀라운 합계는 쿼리 또는 장부를 검토해야
한다는 뜻이지, 보정 항목을 만들어야 한다는 뜻이 아닙니다.CLI 명령 실행
초안 작성된 쿼리를 명시적 원장 대상에 대해 실행한 다음, 보고서로 교차 확인하세요:
bea --file books/main.bean query "SELECT account, sum(position) WHERE account ~ 'Expenses' GROUP BY account"
bea --file books/main.bean report income-statement --time 2026-08머신 소비자는 하위 명령 앞에 전역 --json 플래그를 추가합니다:
bea --file books/main.bean --json query "SELECT account, sum(position) WHERE account ~ 'Expenses' GROUP BY account"JSON 봉투, 종료 코드, 전역 플래그 배치는 CLI 참조를 따릅니다. 쿼리 언어 가이드는 전체 BQL 표면을 문서화합니다.
예상 출력 확인
쿼리는 Expenses:Groceries에 20.00 USD, Expenses:Transport:Fuel에 40.00 USD, Expenses:Uncategorized에 9.99 USD를 보고합니다. 식료품과 연료의 합은 60.00 USD입니다. 손익계산서도 동의합니다: 8월 지출 69.99 USD, 순이익 -69.99 USD. JSON 변형은 data.rows에 동일한 행을, data.columns에 열 메타데이터를 반환합니다.
검토 및 수정
잘못된 계정 이름에 대한 쿼리는 stderr에 (no rows)를 출력하고 여전히 종료 코드 0으로 종료합니다. 이름을 bea list open 출력과 비교하고 쿼리를 다시 실행하세요. 답에 맞게 원장을 편집하여 놀라운 합계를 수정하지 마세요. 쿼리를 수정하거나 장부를 수정한 다음 bea check를 다시 실행하세요.
레시피가 반복 작업이 될 때
위의 프롬프트는 수동으로 실행되는 일회성 작업에 적합합니다. 매주 반복하는 작업은 제품 저장소의 버전 관리된 스킬에 적합합니다. 각 링크는 스킬의 현재 소스를 열며, 자체 설정 및 트리거 지침이 포함되어 있습니다. 이 CMS는 이러한 파일의 사본을 보관하지 않습니다.
- beancount-init으로 빈 디렉토리에서 새 원장을 시작하세요. 원장 파일, Fava 실행기, Python 프로젝트를 생성합니다.
- beancount-import로 은행 내보내기를 분류된 항목으로 변환하세요. 모든 행을 스테이징하고, 원장 기록에서 카테고리를 제안하고, 이미 가져온 행을 건너뛰고, 확인 후에만 작성합니다. 위의 레시피 1은 이 작업의 수동 형태입니다.
- beancount-reconcile로 한 계정이 명세서와 일치하는지 증명하세요. 원장을 명세서와 비교하고, 확인 후 기간 말 잔액 확인을 기록합니다.
- beancount-ask로 장부에서 질문에 답하세요. 읽기 전용 쿼리를 실행하고 각 쿼리를 수치 옆에 표시합니다. 위의 레시피 2는 이 작업의 수동 형태입니다.
- beancount-close로 한 달을 마감하세요. 모든 활성 계정을 조정하고, 반복 항목과 검토 플래그를 확인하고, 마감을 커밋으로 기록합니다.
전체 컬렉션은 정식 스킬 트리에 있습니다.
셸 가능 에이전트에 bea 제공 또는 클라이언트에 스킬 로드
이것은 별개의 두 단계입니다. bea를 설치해도 스킬이 설치되거나 구성되지 않습니다.
셸 가능 에이전트는 경로에 명령이 필요합니다. CLI 퀵 스타트로 설치하면 에이전트가 레시피에 표시된 동일한 bea 명령을 실행합니다. 에이전트가 제안하고, 검토하며, bea가 검증합니다.
스킬은 에이전트 클라이언트 자체에 해당 클라이언트의 스킬 메커니즘을 통해 로드됩니다. 제품 저장소는 두 지원 클라이언트 모두에게 하나의 정식 트리를 노출합니다: Claude Code는 .claude/skills에서 읽고, Codex는 .agents/skills에서 읽으며, 동일한 소스에 연결된 디렉토리로 사용됩니다. 클라이언트의 스킬 위치를 필요한 스킬 폴더로 지정하고, 트리거 문구와 업데이트를 위해 현재 소스를 계속 읽으세요.
bea ask 없이 ask 유형 질문
레시피 2는 외부 에이전트와 읽기 전용 bea query 및 bea report 명령으로 원장 질문에 답합니다. 이 경로는 로컬입니다. 계정이나 추가 설치가 필요 없습니다.
bea ask는 별도의 내장 도우미입니다. 위의 레시피도 beancount-ask 스킬도 아닙니다. 호스팅 AI 서비스를 통해 질문을 라우팅하므로 CLI 참조에 문서화된 대로 ask 추가 기능과 호스팅 자격 증명이 필요합니다. 기본 CLI를 먼저 설치한 다음, 호스팅 답변이 필요할 때만 추가 기능을 설치하세요.
인용된 출력 및 CLI 검증
위의 모든 명령은 새 디렉토리에서 게시된 bea 0.1.0 패키지에 대해 실행되었습니다. 인용된 개수, 잔액, 메시지는 CLI 검증입니다. 작업 프롬프트는 어떤 모델에서도 실행되지 않았습니다. 모델 동작은 별도로 평가됩니다.




