Руководство Melbis Shop: оглавление
Открывает сессию: входит в магазин под пользователем и сообщает агенту всё, что нужно знать о сессии, одним ответом. В какой магазин и под каким пользователем входит сервер — «Вход, права, лицензия».
Не требуется — войти должен и пользователь, которому не выдано ничего, чтобы узнать, что ему можно.
| Параметр | Тип | Что это |
|---|---|---|
topic |
строка | тема разговора одним словом из латинских букв, цифр, -
и _: prices-sept. Всё, что агент делает в
разговоре и что пишут для него инструменты, лежит в папке с этим именем,
и после разрыва то же слово возвращает агента к ней и её данным. В
сессии, которую запустил Диспетчер программы, папку называет сервер, и
тема на неё не влияет |
Магазин и пользователь определяются без агента.
Два блока: сначала данные сессии в JSON, затем текст.
{
"store": {"name": "shop.example.com", "url": "https://shop.example.com",
"folder": "D:\\Melbis\\shop.example.com", "pinned": false},
"user": {"id": 5, "login": "manager", "name": "Ирина",
"options": {"LANG": "ru"}, "from": "program"},
"group": {"id": 2, "skey": "MANAGER", "name": "Менеджеры", "options": {}},
"princ": null,
"event": null,
"demo": false,
"folder": "D:\\Melbis\\shop.example.com\\mcp\\claude-code\\prices-sept",
"cache": {"topics": 3, "size": 48213760},
"build": "6.5.1.552",
"memory": {"notes": 3, "critical": 1},
"tools": 16,
"tasks": {"waiting": [{"state": "kNew", "name": "Новое", "count": 2}],
"given": [{"state": "kAccept", "name": "Принято", "count": 1}]},
"granted": ["session_init", "session_connect", "session_clear", "session_rules_accept", "shop_page", "shop_module", "shop_agent", "engine_map_tree"]
}| Поле | Что это |
|---|---|
store |
магазин: название из списка магазинов программы, адрес, папка на
компьютере; pinned — закреплён ли за ним сервер |
user |
пользователь: номер, логин, имя, параметры; from —
откуда взят логин: program — от запущенной программы,
settings — из сохранённых настроек |
group |
группа пользователя: номер, skey, название, параметры;
null, если группы нет |
princ |
принципал — другой пользователь магазина, чьими правами сессия
выполняет команды AI-инструментов, которых этому пользователю не выдано:
номер, логин, имя, группа. Его называет событие, адресованное этому
пользователю по номеру или по группе; null — принципала нет
или он заблокирован |
event |
событие, на которое Диспетчер программы запустил сессию: номер,
автор user_id (null — сам магазин), ключ,
состояние, время, данные; null — сессию запустил не
Диспетчер или кнопка «Тест» |
demo |
магазин работает в демо-режиме, без лицензии |
folder |
папка этого разговора,
mcp\<приложение>\<тема>\ в папке магазина, а в
сессии Диспетчера —
mcp\<приложение>\event\<день>\<номер события>\:
в ней и файлы агента, и всё, что пишут инструменты |
cache |
папки всех разговоров этого приложения в магазине: сколько их и сколько байт они занимают |
build |
сборка программы, рядом с которой установлен сервер. Сменилась посреди разговора — программу обновили под ним, и описания инструментов, которые хост уже показывал агенту, устарели: новые приносит сжатие разговора или новый разговор |
memory |
сколько заметок видно агенту и сколько из них критических;
null — нет права читать память |
tools |
сколько у магазина AI-инструментов; null — нет права на
их список |
tasks |
открытые задачи планировщика по состояниям, два списка:
waiting — ход за пользователем («Новое», «Перепоручено»,
«Требует уточнения», «Выполнено» — сданные ему как создателю),
given — поставленные им другим, во всех открытых
состояниях; закрытые не считаются; null — у пользователя
нет права на планировщик |
granted |
MCP-инструменты, выданные этому пользователю |
Параметры — это опции, которые владелец задаёт в
окне «Пользователи и права доступа» на
вкладках «Опции пользователя» и «Опции группы» (подписи на оригинальном
языке могут отличаться). В набор попадают параметры с заполненным ключом
(skey). Значение из списка приходит своим ключом, а если
ключа нет — названием; свободный ввод приходит текстом. Пустой набор —
{}.
Сначала — только то, что требует именно этот случай:
session_clear;Затем — правила сессии: что означают поля данных, кто агент в магазине и с кем работает, порядок работы, источники, память магазина, сервер, компьютер и локальная папка магазина.
Карта проекта при входе не загружается: каждую её часть агент запрашивает своим инструментом, когда она нужна.
Повторный вызов открывает сессию заново: список прав, принятые правила и прочитанные критические заметки сбрасываются. Папка разговора остаётся: с той же темой агент возвращается к своим данным.
| Ответ | Когда | Что делать |
|---|---|---|
topic is required…,
topic […] is not one word… |
темы нет, или в ней есть что-то кроме латинских букв, цифр,
- и _; открытая сессия при этом остаётся |
назвать разговор одним словом |
NO_STORE: |
в программе на этом компьютере ни разу не открывали магазин | открыть магазин в программе |
NO_SUCH_STORE: |
сервер закреплён за папкой, которой нет в списке магазинов
программы, или после --store не указана папка |
исправить конфигурацию сервера в приложении-агенте или один раз открыть этот магазин в программе |
NO_SHOP_INI: |
в папке магазина не читается Shop.ini |
проверить папку магазина |
NO_SETTINGS: |
паролю неоткуда взяться: программа не запущена на этом магазине или не ответила, а пароль не сохранён. Текст называет, что именно сервер увидел. Второй случай — программа на этом магазине запущена, но её подключение сейчас без пароля | запустить программу на этом магазине, открыть в ней магазин заново или включить «хранить пароли» в настройках подключения; во втором случае — ввести пароль на закладке «Реквизиты» окна «Подключение» и сохранить |
Отказы лицензии, пароля, адреса, версий и окна резервного копирования приходят от магазина и бывают у любого инструмента — «Ответы и отказы».