TOOLS_SCHEMA = [ { "type": "function", "function": { "name": "db_get_tasks", "description": "ПОЛУЧИТЬ СПИСОК ЗАДАЧ ТЕКУЩЕГО ПОЛЬЗОВАТЕЛЯ. Вызывай СРАЗУ при запросе 'покажи мои задачи' или 'список задач'. ВАЖНОЕ ПРАВИЛО ВЫВОДА: Выводи задачи ЕДИНЫМ плоским списком (нумерованным или маркированным) по порядку ID. КАТЕГОРИЧЕСКИ ЗАПРЕЩЕНО группировать задачи по статусам (В процессе, Бэклог, Завершены) или создавать подзаголовки, если оператор явно не попросил о группировке!", "parameters": { "type": "object", "properties": { "status": { "type": "string", "description": "Фильтр статуса: BACKLOG, IN_PROGRESS или COMPLETED." } } } } }, { "type": "function", "function": { "name": "db_get_rules", "description": "ПОЛУЧИТЬ БАЗУ ЗНАНИЙ ИИ И ПРАВИЛА АРБИТРАЖА (ai_knowledge_base). Вызывай когда пользователь просит показать базу знаний, правила, инструкции или промпты.", "parameters": {"type": "object", "properties": {}} } }, { "type": "function", "function": { "name": "db_get_system_prompt", "description": "ПОЛУЧИТЬ АКТУАЛЬНЫЙ СИСТЕМНЫЙ ПРОМПТ ИЗ БАЗЫ ДАННЫХ. Ты ОБЯЗАН СРАЗУ вызывать эту функцию при любых запросах 'покажи системный промпт', 'покажи промпт', 'текущие инструкции'. Запрещено выводить промпт из памяти без вызова этой функции!", "parameters": {"type": "object", "properties": {}} } }, { "type": "function", "function": { "name": "db_update_task_status", "description": "Изменить статус и/или срок выполнения задачи в реестре.", "parameters": { "type": "object", "properties": { "task_id": {"type": "string", "description": "Идентификатор задачи, например TASK-17"}, "status": {"type": "string", "description": "Новый статус: COMPLETED, IN_PROGRESS или BACKLOG"}, "due_date": {"type": "string", "description": "Срок выполнения задачи"} }, "required": ["task_id"] } } }, { "type": "function", "function": { "name": "db_delete_task", "description": "Удалить задачу из реестра по её task_id (например, TASK-18).", "parameters": { "type": "object", "properties": { "task_id": {"type": "string", "description": "Идентификатор задачи для удаления, например TASK-18"} }, "required": ["task_id"] } } }, { "type": "function", "function": { "name": "db_get_snapshots", "description": "ПОЛУЧИТЬ АКТУАЛЬНЫЙ СПИСОК СНАПШОТОВ ИЗ БАЗЫ SQLITE. Вызывай ЭТУ ФУНКЦИЮ ВСЕГДА, даже если список снапшотов уже есть в истории чата или пользователь просит 'обновить', 'повторить запрос', 'проверить снова'. ЗАПРЕЩЕНО беречь контекст и выводить старые данные из истории!", "parameters": { "type": "object", "properties": { "date_str": { "type": "string", "description": "Точная дата в формате ДД.ММ.ГГГГ (например, '12.08.2026'), взятая из [СИСТЕМНОГО КАЛЕНДАРЯ СЕРВЕРА]." } } } } }, { "type": "function", "function": { "name": "db_delete_snapshots", "description": "УДАЛИТЬ СНАПШОТ(Ы) ИЗ БАЗЫ ДАННЫХ. Вызывай, когда пользователь явно просит удалить конкретный снапшот по ID или все снапшоты за выбранный день.", "parameters": { "type": "object", "properties": { "snapshot_id": {"type": "string", "description": "Идентификатор снапшота для удаления, например Y20260805-007"}, "day_str": {"type": "string", "description": "Дата в формате ДД.ММ.ГГГГ для удаления всех снапшотов за день"} } } } }, { "type": "function", "function": { "name": "db_get_current_server_time", "description": "ПОЛУЧИТЬ ТЕКУЩУЮ ДАТУ, ВРЕМЯ И ДЕНЬ НЕДЕЛИ СЕРВЕРА. Вызывай МГНОВЕННО при любых вопросах пользователя про точное текущее время или текущую дату.", "parameters": { "type": "object", "properties": {}, "required": [] } } }, { "type": "function", "function": { "name": "db_add_task", "description": "Добавить новую задачу в бэклог проекта.", "parameters": { "type": "object", "properties": { "title": {"type": "string", "description": "Краткое описание задачи"}, "priority": {"type": "string", "description": "Приоритет: HIGH, MEDIUM, LOW"}, "module": {"type": "string", "description": "Модуль проекта, например general или services/scud_export"}, "due_date": {"type": "string", "description": "Срок выполнения задачи, например '2026-08-07 12:00'"} }, "required": ["title"] } } }, { "type": "function", "function": { "name": "db_get_stats", "description": "ПОЛУЧИТЬ ОБЩУЮ СТАТИСТИКУ БАЗЫ ДАННЫХ. Вызывай, когда пользователь просит показать общую статистику БД, количество записей в таблицах или размер базы.", "parameters": {"type": "object", "properties": {}} } }, { "type": "function", "function": { "name": "db_get_anomalies", "description": "ПОЛУЧИТЬ ИСТОРИЮ АНОМАЛИЙ СКУД ⟷ 1С. Вызывай при запросах на просмотр аномалий или расхождений. Передавай date_str если пользователь просит аномалии за конкретный день, или увеличенный limit (например 100) если просит все.", "parameters": { "type": "object", "properties": { "limit": {"type": "integer", "description": "Максимальное количество записей (по умолчанию 100)"}, "date_str": {"type": "string", "description": "Опциональная дата в формате ДД.ММ.ГГГГ"} } } } }, { "type": "function", "function": { "name": "db_get_session_states", "description": "ПОЛУЧИТЬ АКТИВНЫЕ СЕССИИ И ПРЕВЬЮ (session_states). Вызывай, когда пользователь просит показать текущие сессии или статус превью.", "parameters": {"type": "object", "properties": {}} } }, { "type": "function", "function": { "name": "db_get_reference", "description": "ПОЛУЧИТЬ СИСТЕМНЫЙ СПРАВОЧНИК И ПРИМЕРЫ КОМАНД ДЛЯ ОПЕРАТОРА (system_reference). Вызывай ВСЕГДА, когда пользователь спрашивает про возможности ассистента, список команд, примерах промптов или справе по работе с системой.", "parameters": { "type": "object", "properties": { "category": { "type": "string", "description": "Фильтр категории: scud, tasks, calendar или system. Если просят всё — не передавай параметр." } } } } }, { "type": "function", "function": { "name": "db_add_system_prompt", "description": "Прямое сохранение системного промпта в БД без предварительного просмотра.", "parameters": { "type": "object", "properties": { "name": {"type": "string", "description": "Имя промпта, по умолчанию main_agent"}, "prompt_text": {"type": "string", "description": "Полный текст системного промпта"} }, "required": ["prompt_text"] } } }, { "type": "function", "function": { "name": "db_preview_prompt_merge", "description": "Создать предварительное изменённое превью системного промпта перед сохранением.", "parameters": { "type": "object", "properties": { "prompt_text": { "type": "string", "description": "Новый полный или частично измененный текст системного промпта." } }, "required": ["prompt_text"] } } }, { "type": "function", "function": { "name": "db_confirm_prompt_preview", "description": "Подтвердить и сохранить текущее подготовленное превью в БД. Вызывай этот инструмент, когда пользователь говорит 'подтверждаю', 'да', 'вноси', 'применяй', 'сохраняй' или одобряет превью в любой форме.", "parameters": {"type": "object", "properties": {}} } }, { "type": "function", "function": { "name": "db_cancel_prompt_preview", "description": "Отменить текущее превью системного промпта и сбросить изменения. Вызывай, когда пользователь явно отказывается от изменений.", "parameters": {"type": "object", "properties": {}} } } ]