Цель урока
Научиться давать агенту инструменты по принципу минимально необходимых полномочий.
1. Что такое tool
Tool — не «доступ к CRM». Это конкретная операция с контрактом. Например:
search_knowledge(query)— только поиск;get_customer_summary(customer_id)— только чтение разрешённой сводки;create_task_preview(payload)— создаёт preview, а не реальную задачу.
Чем конкретнее tool, тем легче проверять и ограничивать агента.
2. Поля Tool Contract
Для каждого инструмента задайте:
- name;
- purpose;
- allowed caller/context;
- input schema;
- output schema;
- validation;
- timeout;
- expected errors;
- read/write class;
- requires approval;
- logging policy.
3. Read before write
Первый prototype лучше строить с read-tools и preview-tools. Реальный write-tool добавляется только после тестов и отдельно проверяется на idempotency и permissions.
4. Ошибки — часть контракта
Агент должен знать, что делать при not_found, timeout, permission_denied, invalid_input, rate_limited. Нельзя просить модель «догадаться» о фактах, если tool не сработал.
Практика
Опишите три mock-tools:
search_knowledge;create_draft;create_task_preview.
Ключевая мысль
Инструмент — это узкий контракт. Чем меньше полномочия, тем проще контролировать агент.
