Оркестрация агентов: рутины и передача управления
Разбираем паттерны оркестрации из официального cookbook OpenAI: рутины (routines) как system prompt + инструменты, handoffs для передачи управления между агентами, и как это реализуется в Swarm.
Реализуйте двухагентную систему: Triage Agent с инструментом transfer_to_refund, Refund Agent с инструментами look_up_item и execute_refund. Проверьте, что диалог корректно передаётся между агентами.
Проверка задания
Скопируйте и адаптируйте под свой контекст. Текст в треугольных скобках — то, что нужно заменить.
tools = [look_up_item, execute_refund]
tool_schemas = [function_to_schema(t) for t in tools]
tools_map = {t.__name__: t for t in tools}
def run_full_turn(system_msg, messages):
while True:
response = client.chat.completions.create(
model="gpt-4o-mini",
messages=[{"role": "system", "content": system_msg}] + messages,
tools=tool_schemas,
)
msg = response.choices[0].message
messages.append(msg)
if not msg.tool_calls:
return msg
for tc in msg.tool_calls:
result = execute_tool_call(tc, tools_map)
messages.append({"role": "tool",
"tool_call_id": tc.id, "content": result})