Поставете файл SKILL.md до вашата сметководна книга и bea ask ще следва вашите собствени счетоводни конвенции — вашите имена на категории, вашето оформление на отчетите, вашите домашни правила — без да ги повтаряте във всеки въпрос.
Умението е обикновен Markdown с малък YAML заглавен блок. bea ask го открива при стартиране и го предлага на хоствания асистент, който зарежда пълния текст, когато въпросът го изисква.
Тази страница предполага, че bea ask вече работи за вас. Тя изисква допълнителния пакет ask (uv tool install 'beancount-io[ask]') и идентификационни данни за Beancount.io от bea cloud login или BEA_TOKEN. Заявките се изпълняват срещу вашата локална сметководна книга, но въпросът и контекстът на умението се изпращат до хостваната AI услуга на Beancount.io. bea ask няма JSON изход. Вижте CLI справката за пълния договор на командата.
Къде живее умението
bea ask чете две директории, в този ред:
| Местоположение | Обхват |
|---|---|
<ledger-dir>/.agents/skills/ | Ниво на проекта — една сметководна книга, обикновено включена в нейното хранилище |
~/.config/bea/skills/ | Ниво на потребителя — всяка сметководна книга, която отваряте на тази машина |
Проектната директория се определя от работната директория, в която изпълнявате bea ask, а не от --file. Когато и двете директории съдържат умение със същото name, копието на проекта печели, а потребителското копие се игнорира.
BEA_CONFIG_DIR премества директорията на потребителското ниво: задайте я и уменията се четат от $BEA_CONFIG_DIR/skills/. В противен случай се прилага $XDG_CONFIG_HOME/bea/skills/, като се връща към ~/.config/bea/skills/.
Напишете файла на умението
Една директория на умение, съдържаща един файл с име SKILL.md:
.agents/skills/
└── monthly-report/
└── SKILL.mdФайлът е YAML заглавен блок, последван от вашите инструкции:
---
name: monthly-report
description: Generates monthly expense summaries grouped by category.
---
When the user asks for a spending summary or monthly report:
1. Group all expenses by the top-level account category.
2. Show totals for each category, sorted highest to lowest.
3. Include a grand total at the end.
4. Always specify the currency next to each amount.Две полета са задължителни. Файл, на който липсва някое от тях, се пропуска мълчаливо, така че липсващо умение обикновено е проблем със заглавния блок.
| Поле | Задължително | Какво прави |
|---|---|---|
name | да | Малки букви и тирета. Поддържайте го равно на името на директорията — приоритетът между двете местоположения се съпоставя по тази стойност, така че несъответствие прави замените трудни за предвиждане. |
description | да | Един ред, който казва на асистента кога да приложи умението. Това е, което асистентът вижда, преди да реши да зареди тялото. |
license | не | Свободен текст, записан с умението. |
compatibility | не | Свободен текст, записан с умението. |
metadata | не | Карта ключ-стойност, записана с умението. |
allowed-tools | не | Списък, разделен с интервали, анализиран и записан. |
Напишете тялото като инструкции към колега: какво да се направи, в какъв ред и как да се представи резултатът. Ограничете го до конвенциите, които са наистина ваши. Факти, които асистентът може да прочете от вашата сметководна книга, не принадлежат на умение.
allowed-tools не е граница на разрешенията. bea 0.1.0 анализира полето и нищо друго не го чете, така че то не ограничава нищо. Отнасяйте се към него като към документация на намерението. Контролите, които наистина важат, са тези в самата команда: интерактивните записи се преглеждат, потвърждават и валидират, преди да докоснат файла, глобалният --yes не предоставя разрешение за запис, а режимът --print никога не прилага предложен запис.
Проверете дали е заредено
Дайте на еднократно умение инструкция, която не можете да пропуснете, след което задайте какъвто и да е въпрос.
Създайте умението:
mkdir -p .agents/skills/test-skill
cat > .agents/skills/test-skill/SKILL.md << 'EOF'
---
name: test-skill
description: Test skill to verify skill loading works.
---
IMPORTANT: Whenever the user asks any question, start your response with the exact phrase "SKILL LOADED".
EOFЗадайте въпрос в режим с един отговор:
bea ask "what accounts do I have?" --printОтговор, започващ с SKILL LOADED, означава, че умението е открито и предложено на асистента.
След това докажете, че фразата идва от умението, като преместите директорията извън дървото на уменията и попитате отново:
mv .agents/skills/test-skill ./test-skill.off
bea ask "what accounts do I have?" --print
mv ./test-skill.off .agents/skills/test-skillФразата трябва да изчезне. Преместете директорията извън .agents/skills/, вместо да я преименувате на място: откриването съпоставя по полето name в заглавния блок, така че директория, преименувана на test-skill.bak, все още се намира и все още се зарежда.
За да проверите умение на потребителско ниво, поставете същия файл под ~/.config/bea/skills/test-skill/SKILL.md и повторете. За да проверите приоритета, запазете и двете копия със същото name и им дайте различни фрази: проектната фраза е тази, която трябва да видите.
Почистете тестовото умение, когато приключите. То се прилага към всеки въпрос, който задавате от тази директория.
Уменията за bea ask не са умения за вашия агент
Тези умения разширяват само вградения помощник bea ask. Те са различно нещо от каноничните умения на Beancount.io, които инсталирате във външен кодиращ агент като Claude Code или Codex, които задвижват командите на bea отвън. Ако това е, което търсите, прочетете вместо това Счетоводство с AI агенти — то покрива рецептите за външни агенти от край до край, и нито една от тях не изисква допълнителния пакет ask или хостван акаунт.