Небольшая функция, огромные возможности: Dapr Agents позволяет регистрировать перехватчики вокруг цикла агента, где before_llm_call — тот, который я использую чаще всего. из dapr_agents импортировать DurableAgent защита add_live_context(ctx): ctx.messages.append(web_se...
Небольшая функция, огромные возможности: Dapr Agents позволяет регистрировать перехватчики вокруг цикла агента, где before_llm_call — тот, который я использую чаще всего.
из dapr_agents импортировать DurableAgent
защита add_live_context(ctx):
ctx.messages.append(web_search(ctx.task)) # свежий контекст, каждый вызов
агент = ПрочныйАгент(
name="исследователь",
хуки = {"before_llm_call": add_live_context},
)
Все, что делает перехват, находится внутри устойчивого рабочего процесса, поэтому сбой происходит после перехвата, но до того, как вызов воспроизводится чисто, без потери контекста. В этом разница между прикручиванием логики к циклу и владением ею во время выполнения. Здесь важно отметить, что сам хук должен быть безопасным для повторного воспроизведения. Более того, автору ловушки необходимо определить, является ли эта ловушка детерминированной или нет. Это влияет на воспроизведение. Веб-поиск, как в приведенном выше примере, не будет детерминированным и, следовательно, будет выполняться повторно. Для живого контекста это здорово и, возможно, это то, что нам нужно. Для проверки пользовательских токенов это одинаково хорошо — в противном случае мы бы просто одобрили токен с потенциально истекшим сроком действия!
Варианты использования, которые мы видели в реальной жизни: внедрение свежего веб-контекста (моя демонстрация вебинара), обеспечение соблюдения бюджета токенов до того, как они будут потрачены, редактирование