Receipt Tracker (Трекер расходов по чекам)
Overview
Этот навык предназначен для автоматического извлечения данных из фотографий кассовых чеков, категоризации покупок и ведения базы данных расходов в формате CSV. Он позволяет пользователю просто отправить фото чека в чат, а агент сделает всю остальную работу: распознает текст, определит категории и запишет результат.
База данных хранится в файле: /opt/.openclaw/.openclaw/workspace/memory/expenses.csv
Категории расходов (Categories)
При анализе чека используйте следующие основные категории:
- Продукты (Groceries)
- Заправка (Gas/Fuel)
- Аптека/Медицина (Pharmacy/Medical)
- Такси/Транспорт (Taxi/Transport)
- Животные (Pets)
- Дом/Быт (Household)
- Развлечения (Entertainment)
- Одежда (Clothing)
- Прочее (Other - для всего, что не подошло)
Workflow (Алгоритм работы)
1. Получение и распознавание чека (OCR & Analysis)
Когда пользователь присылает фото чека:
- Возьмите путь к присланному файлу (например,
/opt/.openclaw/.../file_XX.jpg).
- Используйте инструмент
sessions_spawn (runtime="subagent", mode="run"), чтобы запустить изолированного субагента для анализа картинки.
- ВАЖНО: Обязательно укажите параметр
model: "google/gemini-2.5-flash" (или gemini-2.5-flash, как указано в запросе пользователя), так как эта модель быстрая, дешевая/бесплатная и отлично справляется с OCR и анализом одновременно.
- В
attachments передайте путь к фото чека.
- В
task попросите субагента: "Прочитай чек на фото. Извлеки все позиции, их стоимость и дату покупки. Каждой позиции присвой одну из категорий: Продукты, Заправка, Аптека, Такси, Животные, Дом, Развлечения, Одежда, Прочее. Верни результат строго в формате JSON: [{"date": "YYYY-MM-DD", "item": "Название", "category": "Категория", "price": 100.50}]"
2. Сохранение данных (Database Entry)
- Получив JSON от субагента, проверьте корректность данных.
- С помощью скрипта или инструмента
exec (bash/python) допишите эти данные в файл /opt/.openclaw/.openclaw/workspace/memory/expenses.csv.
- Формат CSV:
Date,Item,Category,Price
- Если файла еще нет, сначала создайте его с заголовком:
Date,Item,Category,Price
- Убедитесь, что формат цен - это числа (с точкой для копеек).
3. Отчетность (Reporting)
Когда пользователь просит "Отчет за месяц" или "Сколько я потратил":
- Прочитайте файл
expenses.csv (например, через exec(cat expenses.csv) или read).
- Сгруппируйте расходы по категориям за запрошенный месяц.
- Посчитайте общую сумму затрат.
- Выведите пользователю красивый и читаемый отчет (например, в виде Markdown-таблицы или маркированного списка с суммами по категориям и итогом).
Example: Saving to CSV (Пример записи)
Вы можете использовать Python для добавления строк:
import csv
import os
file_path = '/opt/.openclaw/.openclaw/workspace/memory/expenses.csv'
file_exists = os.path.isfile(file_path)
data = [
{"date": "2026-03-10", "item": "Молоко", "category": "Продукты", "price": 89.90},
{"date": "2026-03-10", "item": "Корм для кота", "category": "Животные", "price": 450.00}
]
with open(file_path, 'a', newline='', encoding='utf-8') as f:
writer = csv.writer(f)
if not file_exists:
writer.writerow(['Date', 'Item', 'Category', 'Price'])
for row in data:
writer.writerow([row['date'], row['item'], row['category'], row['price']])
Правила (Rules)
- Всегда используйте
gemini-2.5-flash для чтения чеков (это экономит ресурсы и деньги).
- Не запрашивайте подтверждение на каждый товар, если распознавание прошло уверенно. Просто покажите пользователю итог: "Добавил в базу 5 позиций на сумму 1500 руб."
- При сомнениях в категории, ставьте "Прочее", но старайтесь быть точным.
1---2name: receipt-tracker3description: Распознает фотографии чеков, разбивает расходы по категориям (продукты, заправка, аптека, такси, животные и др.) и сохраняет их в базу (expenses.csv). Генерирует ежемесячные отчеты по затратам. Использует быструю и дешевую модель gemini-2.5-flash для извлечения и анализа данных.4---56# Receipt Tracker (Трекер расходов по чекам)78## Overview9Этот навык предназначен для автоматического извлечения данных из фотографий кассовых чеков, категоризации покупок и ведения базы данных расходов в формате CSV. Он позволяет пользователю просто отправить фото чека в чат, а агент сделает всю остальную работу: распознает текст, определит категории и запишет результат.1011**База данных хранится в файле:** `/opt/.openclaw/.openclaw/workspace/memory/expenses.csv`1213## Категории расходов (Categories)14При анализе чека используйте следующие основные категории:151. **Продукты** (Groceries)162. **Заправка** (Gas/Fuel)173. **Аптека/Медицина** (Pharmacy/Medical)184. **Такси/Транспорт** (Taxi/Transport)195. **Животные** (Pets)206. **Дом/Быт** (Household)217. **Развлечения** (Entertainment)228. **Одежда** (Clothing)239. **Прочее** (Other - для всего, что не подошло)2425## Workflow (Алгоритм работы)2627### 1. Получение и распознавание чека (OCR & Analysis)28Когда пользователь присылает фото чека:291. Возьмите путь к присланному файлу (например, `/opt/.openclaw/.../file_XX.jpg`).302. Используйте инструмент `sessions_spawn` (runtime="subagent", mode="run"), чтобы запустить изолированного субагента для анализа картинки. 31 - **ВАЖНО:** Обязательно укажите параметр `model: "google/gemini-2.5-flash"` (или `gemini-2.5-flash`, как указано в запросе пользователя), так как эта модель быстрая, дешевая/бесплатная и отлично справляется с OCR и анализом одновременно.32 - В `attachments` передайте путь к фото чека.33 - В `task` попросите субагента: *"Прочитай чек на фото. Извлеки все позиции, их стоимость и дату покупки. Каждой позиции присвой одну из категорий: Продукты, Заправка, Аптека, Такси, Животные, Дом, Развлечения, Одежда, Прочее. Верни результат строго в формате JSON: `[{"date": "YYYY-MM-DD", "item": "Название", "category": "Категория", "price": 100.50}]`"*3435### 2. Сохранение данных (Database Entry)361. Получив JSON от субагента, проверьте корректность данных.372. С помощью скрипта или инструмента `exec` (bash/python) допишите эти данные в файл `/opt/.openclaw/.openclaw/workspace/memory/expenses.csv`.383. Формат CSV: `Date,Item,Category,Price`39 - Если файла еще нет, сначала создайте его с заголовком: `Date,Item,Category,Price`40 - Убедитесь, что формат цен - это числа (с точкой для копеек).4142### 3. Отчетность (Reporting)43Когда пользователь просит **"Отчет за месяц"** или **"Сколько я потратил"**:441. Прочитайте файл `expenses.csv` (например, через `exec(cat expenses.csv)` или `read`).452. Сгруппируйте расходы по категориям за запрошенный месяц.463. Посчитайте общую сумму затрат.474. Выведите пользователю красивый и читаемый отчет (например, в виде Markdown-таблицы или маркированного списка с суммами по категориям и итогом).4849## Example: Saving to CSV (Пример записи)50Вы можете использовать Python для добавления строк:51```python52import csv53import os5455file_path = '/opt/.openclaw/.openclaw/workspace/memory/expenses.csv'56file_exists = os.path.isfile(file_path)5758data = [59 {"date": "2026-03-10", "item": "Молоко", "category": "Продукты", "price": 89.90},60 {"date": "2026-03-10", "item": "Корм для кота", "category": "Животные", "price": 450.00}61]6263with open(file_path, 'a', newline='', encoding='utf-8') as f:64 writer = csv.writer(f)65 if not file_exists:66 writer.writerow(['Date', 'Item', 'Category', 'Price'])67 for row in data:68 writer.writerow([row['date'], row['item'], row['category'], row['price']])69```7071## Правила (Rules)72- **Всегда** используйте `gemini-2.5-flash` для чтения чеков (это экономит ресурсы и деньги).73- Не запрашивайте подтверждение на каждый товар, если распознавание прошло уверенно. Просто покажите пользователю итог: *"Добавил в базу 5 позиций на сумму 1500 руб."*74- При сомнениях в категории, ставьте "Прочее", но старайтесь быть точным.