Я использую Google ADK со следующей структурой:
root_agent (LlmAgent)
└── цикл (LoopAgent)
├── генератор
├── критик
└── status_checker (BaseAgent)
Моя `status_checker` увеличивается при прохождении проверки:
Код: Выделить всё
class StatusChecker(BaseAgent):
async def _run_async_impl(self, ctx):
should_stop = ctx.session.state.get("quality_status") == "pass"
yield Event(author=self.name, actions=EventActions(escalate=should_stop))
1. Верните управление после завершения цикла
2. Прочтите `session.state['current_code']` и другие результаты
3. Подведите итог и предоставьте окончательный ответ пользователю.
**Вопросы**:
1. Возвращает ли LoopAgent **автоматически** управление родительскому агенту (root_agent) после эскалации?
2. Как гарантировать, что root_agent обрабатывает результаты? По инструкции/подсказке или программно?
3. Должен ли я использовать EventActions.transfer_to_agent в своем пользовательском агенте, или ADK автоматически обрабатывает переходы между родительскими и дочерними элементами?
Я знаю, что инструменты могут использовать `tool_context.actions.transfer_to_agent`, но я использую BaseAgent, а не инструмент.
Подробнее здесь: https://stackoverflow.com/questions/798 ... -loopagent
Мобильная версия