← Усі рецептиАгенти та інструменти / PYTHON

Вибір інструмента без довільного виконання

Перетворіть звернення на дозволений виклик читання. Назва інструмента й аргумент мають належати заздалегідь заданому списку.

До 1 API-запитівДані: вигадані, англійськоюЗовнішні дії: 0
01 / ПРОЦЕС

Що вирішує модель. Що перевіряє код.

  1. Один запит визначає дозволену дію, точний ID замовлення та наявність запиту на зміну даних.
  2. Код перевіряє обидва пороги, список відомих ID і відсутність наміру змінити замовлення.
  3. Єдиний дозволений інструмент читає вигаданий локальний словник. Жодні URL, довільний код чи зовнішні дії не виконуються.
02 / ЛОКАЛЬНИЙ ЗАПУСК

Прочитайте. Запустіть. Відтворіть.

Розпакуйте архів і відкрийте каталог у терміналі. Перший крок працює без ключа та мережі.

1 · offline plan · 0 API requests
python3 runner.py tool-routing

Для реального запуску задайте SHVYDKO_API_KEY у середовищі свого комп’ютера або сервера. Не вставляйте ключ у браузер чи вихідний код. Діють поточні квоти й тариф вашого облікового запису.

2 · explicit live run
python3 runner.py tool-routing --live --output tool-routing-run.json

Звіт містить запити, справжні відповіді, час і відоме використання. Файл створюється з приватними правами та не перезаписує наявний. Після мережевої помилки автоматичного повтору немає: перевірте Usage перед новим викликом.

3 · replay saved responses · 0 API requests
python3 runner.py tool-routing --replay tool-routing-run.json

Replay перевіряє відповідність рецепта, вхідних даних і запитів. Локальний файл можна редагувати, тому він не є підписаним доказом походження відповідей. Якщо заміните дані своїми, звіт також міститиме їх — зберігайте його приватно.

03 / ПЛАН ЗАПИТІВ

Відкритий контракт, без прихованих кроків.

План нижче згенеровано тим самим runner із даних архіву. Це запити й очікування автора, а не результат моделі.

offline-plan.json
{
  "mode": "offline_plan",
  "model_calls": 0,
  "recipe": "tool-routing",
  "author_expectation": {
    "tool": "lookup_order",
    "order_id": "DEMO-104"
  },
  "notice": "Requests only, no model answers. Hierarchy includes conditional branches; repetition requests are templates.",
  "requests": [
    {
      "state": {
        "message": "Please show the delivery status of order DEMO-104. Do not change it.",
        "known_orders": [
          "DEMO-104",
          "DEMO-205"
        ]
      },
      "questions": {
        "tool": {
          "type": "choice",
          "instructions": "Which read-only action is requested?",
          "criteria": {
            "lookup_order": "Read delivery status of one existing order",
            "none": "Not a supported read-only lookup"
          }
        },
        "order": {
          "type": "choice",
          "instructions": "Which exact known order is requested?",
          "criteria": {
            "DEMO-104": "DEMO-104",
            "DEMO-205": "DEMO-205",
            "unknown": "No unambiguous known order"
          }
        },
        "changes": {
          "type": "noul",
          "instructions": "The request asks to change, cancel, refund or otherwise mutate an order."
        }
      }
    }
  ]
}