Агенты в качестве инструментов

На предыдущей странице показано, как поставщики контекстов предоставляют агентам память и динамические знания — сведения, которые заранее внедряются перед каждым вызовом. На этом этапе у вас есть единый агент, который может использовать инструменты, загружать навыки, работать через программное обеспечение промежуточного слоя, и опираться на широкий контекст. Это мощно, но всё ещё один агент делает всю работу.

Что происходит, когда обязанности агента выходят за рамки одного набора инструкций, которые могут хорошо обрабатываться? По мере накопления инструментов агентом, ухудшается точность выбора инструментов — модели лучше справляются с выбором среди небольшого количества хорошо описанных инструментов, чем перебирать десятки инструментов. По мере расширения инструкций фокус снижается — системный запрос, который пытается охватить бронирование поездок, отчеты о расходах и управление календарем, дает модели слишком много ролей, с которыми нужно справляться.

Агенты в качестве инструментов решают это, позволяя создавать агенты: один агент (внешний агент) может вызывать другой агент (внутренний агент), как если бы это была обычная функция. Каждый внутренний агент имеет четко определенную сферу деятельности — свои инструкции, инструменты и собственный опыт. Внешний агент решает, когда делегировать и что запрашивать , точно так же, как он решает, когда вызывать любой другой инструмент.

Когда это следует использовать

Используйте агенты в качестве инструментов, когда:

  • Вы хотите делегировать специализированную подзадаку специальному агенту — например, общему помощнику, который вызывает выделенного "агента бронирования путешествий", когда пользователь спрашивает о рейсах.
  • Внешний агент должен решить , когда и следует ли привлекать внутреннего агента, основываясь на беседе, — делегирование управляется моделью, а не жестко закодировано.
  • Вам не нужен явный контроль над порядком выполнения между агентами — вас устраивает, что внешний агент управляет процессами с помощью собственной логики.

Tip

Каждый агент также может использовать другую модель в зависимости от ее специализации и требований. Более сложные агенты могут использовать более крупные модели для рассуждений, в то время как более простые агенты могут использовать меньшие, более быстрые модели для повышения эффективности.

Рекомендации

Consideration Сведения
Простота Агент как инструмент — это самая легкая мультиагентная схема. Вы преобразуете агент в инструмент и передаете его другому агенту. Это естественный следующий шаг, когда один агент не достаточно.
Задержка Каждое делегирование является полным вызовом агента: внешний агент вызывает внутренний агент, который вызывает LLM, который может использовать собственные инструменты. Вложенные вызовы суммируются. Держите внимание внутренних агентов сосредоточенным, чтобы проблемы быстро разрешались.
Маршрутизация управляется моделью LLM внешнего агента определяет, когда вызывать внутреннего агента, так же как и когда использовать любой другой инструмент. Это означает, что маршрутизация может быть непредсказуемой— если описание инструмента расплывчато, модель может вызвать неправильный агент или полностью пропустить его. Ясно, конкретные описания критически важны.
Ограниченная видимость Внешний агент видит окончательный текстовый ответ внутреннего агента — он не видит промежуточные рассуждения, вызовы инструментов или контекст. Если вам нужна возможность отслеживания внутреннего поведения агента, используйте трассировку.
Изоляция контекста Внутренний агент выполняется с собственными инструкциями и инструментами. Он автоматически не наследует контекст или журнал бесед внешнего агента. Вы взаимодействуете с ним через аргументы вызова инструментов, как и с любым другим функциональным инструментом.

Принцип работы

Агенты используются как инструменты в цикле вызова инструментов, который вам уже знаком. Единственное различие заключается в том, что вызываемая функция является агентом.

┌──────────────────────────────────────────────────────────┐
│  User: "Book me a flight to Paris and file the expense"  │
└──────────────┬───────────────────────────────────────────┘
               ▼
┌──────────────────────────────────────────────────────────┐
│  Outer agent reasons about the request                   │
│  → decides to call the travel-booking agent first        │
└──────────────┬───────────────────────────────────────────┘
               ▼
┌──────────────────────────────────────────────────────────┐
│  Inner agent (travel-booking) runs as a tool:            │
│  • receives: "Book a flight to Paris"                    │
│  • uses its own tools (search_flights, book_flight)      │
│  • returns: "Booked Flight AF123, $450"                  │
└──────────────┬───────────────────────────────────────────┘
               ▼
┌──────────────────────────────────────────────────────────┐
│  Outer agent receives the tool result                    │
│  → decides to call the expense-filing agent next         │
└──────────────┬───────────────────────────────────────────┘
               ▼
┌──────────────────────────────────────────────────────────┐
│  Inner agent (expense-filing) runs as a tool:            │
│  • receives: "File expense for Flight AF123, $450"       │
│  • uses its own tools (create_expense, attach_receipt)   │
│  • returns: "Expense report filed"                       │
└──────────────┬───────────────────────────────────────────┘
               ▼
┌──────────────────────────────────────────────────────────┐
│  Outer agent synthesizes both results:                   │
│  "Done! Booked Flight AF123 to Paris for $450 and filed  │
│   expense report."                                       │
└──────────────────────────────────────────────────────────┘

Основные моменты:

  1. Внутренний агент выглядит как инструмент для выполнения функции. С точки зрения внешнего агента вызов внутреннего агента не отличается от вызова get_weather() или search_database(). Платформа обрабатывает преобразование агента в инструмент с именем, описанием и входным параметром.
  2. Внутренний агент работает автономно. Она имеет собственные инструкции, инструменты и вызовы LLM. Он не видит полный диалог внешнего агента — только входные данные, передаваемые через вызов инструмента.
  3. Внешний агент видит только окончательный результат. Промежуточные шаги внутреннего агента (вызовы инструментов, причины, повторные попытки) невидимы для внешнего агента. Он получает текстовый ответ так же, как и любой результат инструмента.

Дальнейшие действия

Теперь, когда вы можете создавать агентов в пределах одного процесса, следующий шаг — Agent-to-Agent (A2A) — позволяет агентам взаимодействовать через границы служб и организаций с помощью стандартного протокола.

Вернитесь глубже: