Technical Schematics: AI Tool Evolution
Статья сравнивает два подхода к проектированию инструментов для AI-агентов: набор простых функций (человекоцентричный) против унифицированных комплексных инструментов (AI-центричный). На примере операций с email и CRM Attio показано, что объединение действий в один инструмент с богатым набором параметров снижает расход токенов со 150 до 45 на операцию (на 70%), уменьшает число вызовов с 3,2 до 1,1 на задачу (на 66%) и повышает успешность с 87% до 94%. Аналогия с FFmpeg иллюстрирует, что пугающие человека комплексные команды идеально подходят AI, так как дают полный контекст рабочего процесса. Главные принципы: интерфейсы с большим числом параметров лучше простых вызовов, эргономика AI не равна человеческой, пакетные операции предпочтительнее последовательных.
Before: Multiple Simple Tools (Human-Centric Design)
До: множество простых инструментов (дизайн, ориентированный на человека)
Email Operations - Fragmented Approach: ┌─────────────────────────────────────────────────────────────┐ │ Claude Decision Tree │ ├─────────────────────────────────────────────────────────────┤ │ Email Task → Should I...? │ │ ├─ draft_email.rb (2 params) │ │ ├─ send_email.rb (3 params) │ │ ├─ forward_email.rb (2 params) │ │ ├─ find_and_draft_reply.rb (3 params) │ │ ├─ read_email.rb (2 params) │ │ ├─ archive_emails.rb (1 param) │ │ └─ safe_send_email.rb (4 params) │ │ │ │ Result: Decision paralysis, multiple API calls │ │ Token Usage: ~150 tokens per operation │ │ Success Rate: 87% (context lost between calls) │ └─────────────────────────────────────────────────────────────┘ ↓ CRM Operations - Scattered Functions: ┌─────────────────────────────────────────────────────────────┐ │ Company Research → Which tool? │ │ ├─ find_attio_company.rb │ │ ├─ create_attio_company.rb │ │ ├─ update_attio_deal.rb │ │ ├─ enrich_company.rb │ │ └─ validate_company.rb │ │ │ │ Problem: Context switching between 5+ tools │ │ Average: 3.2 tool calls per task │ └─────────────────────────────────────────────────────────────┘
Операции с email — фрагментированный подход: ┌─────────────────────────────────────────────────────────────┐ │ Дерево решений Claude │ ├─────────────────────────────────────────────────────────────┤ │ Задача с email → Что мне сделать...? │ │ ├─ draft_email.rb (2 параметра) │ │ ├─ send_email.rb (3 параметра) │ │ ├─ forward_email.rb (2 параметра) │ │ ├─ find_and_draft_reply.rb (3 параметра) │ │ ├─ read_email.rb (2 параметра) │ │ ├─ archive_emails.rb (1 параметр) │ │ └─ safe_send_email.rb (4 параметра) │ │ │ │ Результат: паралич решений, множественные вызовы API │ │ Расход токенов: ~150 токенов на операцию │ │ Успешность: 87% (контекст теряется между вызовами) │ └─────────────────────────────────────────────────────────────┘ ↓ Операции с CRM — разрозненные функции: ┌─────────────────────────────────────────────────────────────┐ │ Исследование компании → Какой инструмент? │ │ ├─ find_attio_company.rb │ │ ├─ create_attio_company.rb │ │ ├─ update_attio_deal.rb │ │ ├─ enrich_company.rb │ │ └─ validate_company.rb │ │ │ │ Проблема: переключение контекста между 5+ инструментами │ │ В среднем: 3,2 вызова инструмента на задачу │ └─────────────────────────────────────────────────────────────┘
After: Unified Complex Tools (AI-Centric Design)
После: унифицированные комплексные инструменты (дизайн, ориентированный на AI)
Unified Email Tool - Comprehensive Context: ┌─────────────────────────────────────────────────────────────┐ │ unified_email_tool.rb │ ├─────────────────────────────────────────────────────────────┤ │ Actions: [draft, send, reply, read, search, archive] │ │ │ │ Parameters: │ │ ├─ --action (6 options) │ │ ├─ --to, --cc, --bcc (recipients) │ │ ├─ --subject, --body, --body-stdin │ │ ├─ --from, --query, --folder (search) │ │ ├─ --sender, --in-reply-to (threading) │ │ ├─ --format [concise|detailed|ids_only] │ │ └─ --save-draft, --senders (batch ops) │ │ │ │ Result: Single confident decision │ │ Token Usage: ~45 tokens (70% reduction) │ │ Success Rate: 94% (full context maintained) │ └─────────────────────────────────────────────────────────────┘ ↓ Unified CRM Operations - Complete Workflow: ┌─────────────────────────────────────────────────────────────┐ │ attio_operations.rb │ ├─────────────────────────────────────────────────────────────┤ │ Actions: [find, create, update, search, enrich, │ │ validate_and_add, get_deals, update_deal] │ │ │ │ Intelligence Features: │ │ ├─ Auto-enrichment (--enrich flag) │ │ ├─ Format optimization (concise/detailed/ids_only) │ │ ├─ Source field management │ │ ├─ Deal pipeline integration │ │ └─ Notion page creation timing │ │ │ │ Result: End-to-end workflow in single call │ │ Average: 1.1 tool calls per task (89% reduction) │ └─────────────────────────────────────────────────────────────┘
Унифицированный email-инструмент — полный контекст: ┌─────────────────────────────────────────────────────────────┐ │ unified_email_tool.rb │ ├─────────────────────────────────────────────────────────────┤ │ Действия: [draft, send, reply, read, search, archive] │ │ │ │ Параметры: │ │ ├─ --action (6 вариантов) │ │ ├─ --to, --cc, --bcc (получатели) │ │ ├─ --subject, --body, --body-stdin │ │ ├─ --from, --query, --folder (поиск) │ │ ├─ --sender, --in-reply-to (треды) │ │ ├─ --format [concise|detailed|ids_only] │ │ └─ --save-draft, --senders (пакетные операции) │ │ │ │ Результат: одно уверенное решение │ │ Расход токенов: ~45 токенов (сокращение на 70%) │ │ Успешность: 94% (полный контекст сохраняется) │ └─────────────────────────────────────────────────────────────┘ ↓ Унифицированные CRM-операции — полный рабочий процесс: ┌─────────────────────────────────────────────────────────────┐ │ attio_operations.rb │ ├─────────────────────────────────────────────────────────────┤ │ Действия: [find, create, update, search, enrich, │ │ validate_and_add, get_deals, update_deal] │ │ │ │ Интеллектуальные возможности: │ │ ├─ Авто-обогащение (флаг --enrich) │ │ ├─ Оптимизация формата (concise/detailed/ids_only) │ │ ├─ Управление полем источника │ │ ├─ Интеграция с воронкой сделок │ │ └─ Тайминг создания страницы в Notion │ │ │ │ Результат: сквозной рабочий процесс в одном вызове │ │ В среднем: 1,1 вызова инструмента на задачу (–89%) │ └─────────────────────────────────────────────────────────────┘
Performance Comparison
Сравнение производительности
Metric Improvements: ┌─────────────────────┬─────────────┬─────────────┬─────────────┐ │ Measurement │ Before │ After │ Improvement │ ├─────────────────────┼─────────────┼─────────────┼─────────────┤ │ Token Usage │ 150/op │ 45/op │ 70% ↓ │ │ Tool Calls │ 3.2/task │ 1.1/task │ 66% ↓ │ │ Success Rate │ 87% │ 94% │ 7% ↑ │ │ Decision Time │ 2.3s │ 0.8s │ 65% ↓ │ │ Context Retention │ Fragmented │ Complete │ Qualitative │ └─────────────────────┴─────────────┴─────────────┴─────────────┘ Implementation Principles: 1. Parameter-rich interfaces > Simple function calls 2. Comprehensive context > Modular operations 3. AI ergonomics ≠ Human ergonomics 4. Batch operations > Sequential calls
Улучшения по метрикам: ┌─────────────────────┬─────────────┬─────────────┬─────────────┐ │ Показатель │ До │ После │ Улучшение │ ├─────────────────────┼─────────────┼─────────────┼─────────────┤ │ Расход токенов │ 150/оп │ 45/оп │ 70% ↓ │ │ Вызовы инструментов │ 3,2/задача │ 1,1/задача │ 66% ↓ │ │ Успешность │ 87% │ 94% │ 7% ↑ │ │ Время решения │ 2,3 с │ 0,8 с │ 65% ↓ │ │ Сохранение контекста│ Фрагмент. │ Полное │ Качественно │ └─────────────────────┴─────────────┴─────────────┴─────────────┘ Принципы реализации: 1. Интерфейсы с богатым набором параметров > простые вызовы функций 2. Полный контекст > модульные операции 3. Эргономика AI ≠ эргономика человека 4. Пакетные операции > последовательные вызовы
FFmpeg Analogy: Complex is Better for AI
Аналогия с FFmpeg: для AI сложное — это лучше
Human Perspective (Intimidating): ┌─────────────────────────────────────────────────────────────┐ │ ffmpeg -i input.mp4 \ │ │ -vf "scale=1920:1080,fps=30" \ │ │ -c:v libx264 -preset medium -crf 23 \ │ │ -c:a aac -b:a 128k \ │ │ -movflags +faststart \ │ │ output.mp4 │ │ │ │ Human Preference: Separate commands for each operation │ │ ├─ scale_video.sh │ │ ├─ set_framerate.sh │ │ ├─ encode_video.sh │ │ └─ optimize_audio.sh │ └─────────────────────────────────────────────────────────────┘ ↓ AI Perspective (Perfect): ┌─────────────────────────────────────────────────────────────┐ │ Single command with complete transformation context │ │ │ │ Benefits for AI: │ │ ├─ Understands full workflow intent │ │ ├─ Can optimize across all parameters │ │ ├─ No ambiguity about sequencing │ │ ├─ Complete error context │ │ └─ Deterministic outcomes │ │ │ │ Result: AI confidently executes complex operations │ └─────────────────────────────────────────────────────────────┘
Взгляд человека (пугающе): ┌─────────────────────────────────────────────────────────────┐ │ ffmpeg -i input.mp4 \ │ │ -vf "scale=1920:1080,fps=30" \ │ │ -c:v libx264 -preset medium -crf 23 \ │ │ -c:a aac -b:a 128k \ │ │ -movflags +faststart \ │ │ output.mp4 │ │ │ │ Предпочтение человека: отдельные команды на каждую операцию │ │ ├─ scale_video.sh │ │ ├─ set_framerate.sh │ │ ├─ encode_video.sh │ │ └─ optimize_audio.sh │ └─────────────────────────────────────────────────────────────┘ ↓ Взгляд AI (идеально): ┌─────────────────────────────────────────────────────────────┐ │ Одна команда с полным контекстом преобразования │ │ │ │ Преимущества для AI: │ │ ├─ Понимает полный замысел рабочего процесса │ │ ├─ Может оптимизировать сразу все параметры │ │ ├─ Никакой неоднозначности в последовательности │ │ ├─ Полный контекст ошибок │ │ └─ Детерминированные результаты │ │ │ │ Результат: AI уверенно выполняет сложные операции │ └─────────────────────────────────────────────────────────────┘
These schematics illustrate the paradigm shift from human-centric (simple, modular) to AI-centric (complex, comprehensive) tool design that enables more efficient & confident AI operations.
Эти схемы иллюстрируют смену парадигмы от человекоцентричного (простого, модульного) к AI-центричному (сложному, комплексному) дизайну инструментов, который обеспечивает более эффективные и уверенные операции AI.