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": {}, "required": [] } } }, { "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": {}} } } ]