Перейти до основного вмісту
Beancount.io Logo

Бухгалтерія з AI-агентами

Дайте зовнішньому AI-агенту два завдання з бухгалтерії: імпорт банківського CSV із попереднім переглядом та перевіркою, і відповідь на запитання про баланс із результатів BQL і звіту.

Доручіть зовнішньому AI-агенту два завдання з бухгалтерії та тримайте кожну зміну в журналі під вашим контролем: імпортуйте банківський CSV із попередньою перевіркою, а потім дайте відповідь на запитання про баланс із результатів запиту та звіту.

Встановіть bea за допомогою короткого старту CLI. Локальні команди імпорту, запитів і звітів не потребують облікового запису 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:

Запропонуй правила категоризації Beancount для рядків мого банківського CSV.
Запропонуй одне правило TOML на продавця з шаблоном збігу та
цільовим рахунком витрат. Ніколи не змінюй дати, отримувачів або суми.
Залиш рядки, які ти не можеш впевнено категоризувати, без збігу: вони
потраплять до Expenses:Uncategorized із прапорцем ! для мого перегляду.
Я запускаю bea import preview і застосовую локально. Ти не пишеш мій журнал.

Виконайте 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 року. Агент складає проєкт запиту. Лише команди читання дають відповідь.

Попередні умови

Вам потрібен демо-журнал із рецепту 1 або ваші власні книги. Кожна команда нижче є лише для читання.

Скопіюйте підказку для завдання

Вставте цю підказку своєму зовнішньому агенту:

Склади проєкт запиту Beancount (BQL), який відповідає: скільки я витратив
на продукти та паливо у серпні 2026 року. Використовуй назви моїх рахунків
точно так, як їх перелічує bea list open. Пропонуй лише команди читання:
bea query або bea report із явною ціллю --file. Не пропонуй редагування
журналу, щоб виправити несподівану суму. Несподівана сума означає,
що запит або книги потребують перегляду, а не компенсувального запису.

Виконайте 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.

Перевірте очікуваний результат

Запит повідомляє 20.00 USD для Expenses:Groceries, 40.00 USD для Expenses:Transport:Fuel і 9.99 USD для Expenses:Uncategorized. Продукти плюс паливо становить 60.00 USD. Звіт про прибутки та збитки згоден: 69.99 USD серпневих витрат із чистим прибутком -69.99 USD. JSON-варіант повертає ті самі рядки всередині data.rows із метаданими стовпців у data.columns.

Перегляд і виправлення

Запит проти неправильної назви рахунку виводить «(no rows)» у stderr і все одно завершується з кодом 0. Порівняйте назву з виводом bea list open і запустіть запит знову. Ніколи не виправляйте несподівану суму, редагуючи журнал, щоб відповідати відповіді. Виправте запит або виправте книги, а потім повторно запустіть bea check.

Коли рецепт стає повторюваним завданням

Наведені вище підказки підходять для разових завдань, керованих вручну. Завдання, які ви повторюєте щотижня, підходять для версіонованих навичок у репозиторії продукту. Кожне посилання нижче відкриває поточний вихідний код навички, який містить власні інструкції з налаштування та тригерів. Ця CMS не зберігає копій цих файлів.

  • Почніть свіжий журнал із порожньої теки за допомогою beancount-init. Він створює файл журналу, запускач Fava та Python-проєкт.
  • Перетворіть банківський експорт на категоризовані записи за допомогою beancount-import. Він розміщує кожен рядок, пропонує категорії з історії журналу, пропускає вже імпортовані рядки та записує лише після підтвердження. Рецепт 1 вище є ручною формою цього завдання.
  • Доведіть, що один рахунок збігається з його випискою за допомогою beancount-reconcile. Він порівнює журнал із випискою та після підтвердження розміщує твердження про баланс на кінець періоду.
  • Дайте відповідь на запитання з книг за допомогою beancount-ask. Він запускає запити лише для читання та показує кожен запит поруч із його цифрою. Рецепт 2 вище є ручною формою цього завдання.
  • Закрийте місяць за допомогою beancount-close. Він звіряє кожен активний рахунок, перевіряє повторювані записи та прапорці перегляду та фіксує закриття як коміт.

Повна колекція знаходиться в канонічному дереві навичок.

Дайте агенту з підтримкою shell bea або завантажте навичку в клієнт

Це два окремі кроки. Встановлення bea ніколи не встановлює та не налаштовує навички.

Агенту з підтримкою shell потрібна команда у його PATH. Встановіть її за допомогою короткого старту CLI, тоді агент запускає ті самі команди bea, які показують рецепти. Агент пропонує, ви переглядаєте, а bea перевіряє.

Навичка завантажується в сам клієнт агента через механізм навичок цього клієнта. Репозиторій продукту надає одне канонічне дерево обом підтримуваним клієнтам: Claude Code читає його за шляхом .claude/skills, а Codex за .agents/skills, як пов’язані теки в тому самому вихідному коді. Спрямуйте розташування навичок клієнта на потрібну теку навички та продовжуйте читати її поточний вихідний код для тригерних фраз і оновлень.

Питання у стилі ask без bea ask

Рецепт 2 відповідає на запитання журналу за допомогою зовнішнього агента плюс команд bea query і bea report лише для читання. Цей шлях є локальним. Він не потребує облікового запису та додаткового встановлення.

bea ask — це окремий вбудований помічник. Він не є ні рецептом вище, ні навичкою beancount-ask. Він маршрутизує запитання через хостинговий AI-сервіс, тому потребує додаткового компонента ask і хостингових облікових даних, як описано в довіднику CLI. Спочатку встановіть базовий CLI, а потім додавайте додатковий компонент лише тоді, коли вам потрібні хостингові відповіді.

Процитовані виводи та перевірка CLI

Кожна команда вище була виконана проти опублікованого пакета bea 0.1.0 у свіжій теці. Процитовані кількості, баланси та повідомлення є перевіркою CLI. Підказки для завдань не запускалися проти жодної моделі. Поведінку моделі оцінюють окремо.

Джерело: https://beancount.io/uk/docs/Solutions/accounting-with-ai-agents

10 хв. читання

AI-агенти Intuit для розрахунку зарплати та податку з продажів: що насправді змінює бухгалтерія «за вас»

Агенти Intuit QuickBooks для розрахунку зарплати збирають і перевіряють години,…

ai
automation
15 хв. читання

Агентна комерція прибула: як проводити та звіряти продажі, здійснені ШІ-покупцями

ШІ-агенти тепер оплачують покупки від імені клієнта з використанням тих самих…

ai
e-commerce
4 хв. читання

AI-агенти Claude від Anthropic для фінансів: що насправді отримують малі підприємства у 2026 році

Claude для малого бізнесу від Anthropic та 10 фінансових агентів (KYC, звірка)…

small-business
ai
9 хв. читання

Bitwave щойно випустила у відкритий доступ 'Агентні фінанси': Що станеться, коли ШІ-агенти перестануть використовувати ваше бухгалтерське програмне забезпечення, як людина

Bitwave випустила у відкритий доступ агентно-орієнтований CLI та MCP-сервер для…

ai
accounting-software
8 хв. читання

AI-агенти з покупками вже купують: Посібник для малих продавців про UCP, ACP та захоплення протоколів у 2026 році

Чотири конкуруючих протоколи агентної комерції — UCP від Google, ACP від…

ai
e-commerce