Langgraph Supervisor SDK не сохраняет состоянияPython

Программы на Python
Ответить
Anonymous
 Langgraph Supervisor SDK не сохраняет состояния

Сообщение Anonymous »

Я разрабатываю агент langgraph (Python), используя langgraph SDK, langgraph Supervisor. Мой агент имеет следующую структуру:
  • Основной агент (который будет перенаправлять запросы соответствующему субагенту)

    У него нет никаких инструментов
[*]Агент заказов (который будет создавать/обновлять/сохранять заказы) – Инструменты ниже
  • Код: Выделить всё

    create_order( source, destination, items )
    — это создает порядок на основе изменений запроса пользователя в словаре (с источником, местом назначения и элементами в качестве ключей) и сохраняет его в общем состоянии.
  • Код: Выделить всё

    update_order( source,destination,items)
    — выполняет что-то похожее на create_order
  • Код: Выделить всё

    save_order()
    — получить dict ( Order ) из состояния и отправить в API.

Проблема связана с инструментом save_order. Я пытаюсь получить построенный порядок из состояния графа, но он всегда пуст. Я обновляю состояние графика с помощью метода Command в инструменте create & update_order.

Код: Выделить всё

# AgentStateSchema

from langchain.agents import AgentState

class AgentStateSchema(AgentState):
draft_order: Annotated[dict, update_dicts] = {}

Код: Выделить всё

# Tools

from langchain.tools import tool,BaseTool,ToolRuntime

@tool
def create_order(# Some order related fields):
# Redacted the code for brevity
return Command(
update={
"draft_order" : order,
"messages" : [
ToolMessage(content="Created a Draft Order",tool_call_id=tool_call_id)
]
}
)

@tool
def update_order(# Some order related fields):
# Redacted the code for brevity
return Command(
update={
"draft_order" : updated_order,
"messages" : [
ToolMessage(content="Updated the Draft Order",tool_call_id=tool_call_id)
]
}
)

@tool
def save_order(runtime: ToolRuntime):
# Redacted the code for brevity
draft_order = runtime.state.get("draft_order",{}) ##### The draft_order field is always empty

Код: Выделить всё

# Order Agent

order_agent = create_agent(
model=ChatOpenAI(model="gpt-4o",temperature=0,max_completion_tokens=None,max_retries=2),
tools=[create_order,update_order,save_order],
system_prompt=prompt.format(),
name="order_agent"
)

# Supervisor

primary_assistant = create_supervisor(
agents=[
order_agent
],
model=primary_assistant_llm,
prompt=primary_assistant_prompt,
output_mode="full_history",
supervisor_name="primary_assistant",
state_schema=AgentStateSchema
).compile(name="primary_assistant")
Я пытался перенести состояние на уровень субагента, но все равно выдает ту же ошибку


Подробнее здесь: https://stackoverflow.com/questions/798 ... ing-states
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Python»