JU BIX AIJU BIX AI

Первый AI-агентСобираем первого агента

Prototype: structured output и mock tools

Урок 8 из 12

Уроков в программе: 12

Цель урока

Собрать переносимый prototype без привязки к конкретному vendor.

1. Почему structured output

Если следующий шаг должен читать результат модели, свободный текст неудобен. Используйте схему с обязательными полями и enum-значениями.

Пример state:

{
  "run_id": "demo-001",
  "request": {"text": "..."},
  "classification": null,
  "tool_results": [],
  "draft": null,
  "approval_status": "not_requested",
  "status": "received"
}

2. Mock tools

На курсе инструменты можно симулировать файлами/функциями:

  • search_knowledge(query) возвращает только учебные записи;
  • create_draft(context) возвращает черновик;
  • create_task_preview(payload) возвращает preview и ничего реально не создаёт.

3. Псевдокод loop

while status not in DONE:
  validate state
  choose next allowed transition
  if tool needed:
    call approved tool
    validate result
  if write would be needed:
    set requires_human = true
    stop for approval
  update log

4. Переносимость

Эта схема может быть реализована в коде, orchestration framework или no-code agent builder. Важно не название платформы, а сохранение contracts/permissions/states.

Практика

Прогоните 5 запросов и сохраните state после каждого шага. Один запрос должен привести к missing_data, один — к tool_error.

Ключевая мысль

Prototype должен доказывать логику и контроль, а не зависеть от одного интерфейса.

Проверка знаний

Короткий тест по уроку. На отметку «Урок пройден» он не влияет.

  1. Вопрос 1 из 2

    Зачем structured output?

  2. Вопрос 2 из 2

    Что делает create_task_preview в учебном prototype?

К программе курса