Руководство Melbis Shop: оглавление
Выполняет много команд AI-инструментов за один вызов, по порядку: пачку одной команды или цепочку, где шаг берёт то, что сделал шаг до него.
Каждый вызов стоит агенту хода, и сто строк, записанные по одной, —
это сто ходов. Пул отправляет те же вызовы tool_run один за
другим с этого компьютера: магазин видит обычные вызовы, и шаг
отказывает или отвечает так же, как отдельный вызов.
«Инструменты → Выполнить» (AGENT_TOOL_RUN) — то же
право, что у tool_run; каждая команда пула проверяется
своей выдачей в реестре AI-инструментов.
| Параметр | Тип | Что это |
|---|---|---|
[pool] |
список объектов | шаги в том порядке, в каком они выполняются |
[pool_source] |
строка | файл JSON на этом компьютере с тем же списком шагов — абсолютный
путь или путь от папки магазина — вместо pool |
Нужен один из двух, вместе их указывать нельзя.
Шаг:
| Поле | Тип | Что это |
|---|---|---|
[name] |
строка | слово, по которому к шагу обращаются следующие; без точки |
unit |
строка | адрес инструмента из tool_list |
command |
строка | команда |
[params] |
объект | поля команды, как у tool_run |
[params_source], [debug],
[into] |
как у tool_run |
Шаг — чистый JSON: команду, которая принимает файлы, выполняет
отдельный вызов tool_run.
Строка "@имя.поле" в params шага заменяется
значением detail.поле шага с этим name,
выполненного раньше; тип значения сохраняется — число остаётся числом.
Ссылка работает на любой глубине params, в том числе внутри
списков. Путь идёт и глубже: "@goods.row.id", а в списке —
по номеру элемента, считая с нуля.
{"pool": [
{"name": "cur", "unit": "MELBIS_AGENT_CURRENCY", "command": "CmdAdd",
"params": {"skey": "EUR", "name": "Евро", "multiplex": 44.2}},
{"unit": "MELBIS_AGENT_CURRENCY", "command": "CmdPos",
"params": {"type": "POS", "data": [{"id": "@cur.id"}]}}
]}Строка, в которой после @ стоит имя, не принадлежащее ни
одному шагу до неё, уходит как есть: это слово данных. Ссылка на поле,
которого в detail шага нет, останавливает пул на этом
шаге.
unit и command, имена без точки и не
повторяются, файлов нет.result: false или падение
останавливает пул.{"result": true,
"steps": [{"num": 1, "name": "cur", "unit": "MELBIS_AGENT_CURRENCY", "command": "CmdAdd",
"result": true, "message": "The row of currency is added", "detail": {"id": 12},
"tables": {}, "files": [], "time": {"server": 33, "module": 13, "trip": 78}},
{"num": 2, "name": "", "unit": "MELBIS_AGENT_CURRENCY", "command": "CmdPos",
"result": true, "message": "…", "detail": {}, "tables": {}, "files": [],
"time": {"server": 21, "module": 6, "trip": 63}}],
"time": {"trip": 145}}| Поле | Что это |
|---|---|
result |
true — выполнены все шаги, false — пул
остановлен |
steps |
по каждому выполненному шагу: num — номер,
name, unit, command и ответ
команды — как у tool_run; последним стоит шаг, на котором
пул остановился |
time |
trip — полный круг всего пула по часам этого
компьютера |
Таблицы шага пишутся в файл
tables\step<номер>.<unit>.<command>.<таблица>.jsonl
папки разговора: одна команда может стоять в пуле много раз, и у каждого
шага свой файл. Следующий пул эти файлы перезаписывает.
Остановленный пул приходит с признаком ошибки и тем же JSON; причина
— в message последнего шага. Если шаг не дошёл до магазина
— ссылка не нашлась или вызов упал, — у него есть только
result: false и message.
| Ответ | Когда |
|---|---|
pool is required… |
нет ни pool, ни pool_source, или список
пуст |
pool or pool_source, not both… |
указаны оба |
Step N is not an object… |
шаг — не объект |
Step N needs unit and command… |
у шага нет unit или command |
Step N carries files… |
у шага есть files или files_source |
The name of step N carries a dot… |
в name есть точка |
Two steps are named […]… |
два шага с одним именем; регистр не различается |
@<имя>.<поле> names a field the detail of that step does not have. |
в detail шага нет такого поля — в message
шага, на котором пул остановился |
… holds no list of steps…,
… is not whole json…, No such file: …,
… is not utf-8 text… |
файл pool_source не найден, не в UTF-8, оборван или в
нём не список |
Отказы самих шагов — как у tool_run. Общие отказы — «Ответы и отказы».