Я разрабатываю агент 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.
# 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
Я разрабатываю агент langgraph (Python), используя langgraph sdk, langgraph Supervisor. Мой агент имеет следующую структуру: [list] [*]Основной агент (который будет перенаправлять запросы соответствующему субагенту)
У него нет никаких инструментов [/list]
[*]Агент заказов (который будет создавать/обновлять/сохранять заказы) – Инструменты ниже [list] create_order( source,destination,items ) — создает порядок на основе изменений запроса пользователя в словаре (с источником, местом назначения, элементами в качестве ключей) и сохраняет в общем состоянии.
[*]update_order( source,destination,items ) — выполняет что-то похожее на create_order
[*]save_order() — извлекает dict ( Order ) из состояния и отправить в API
[/list]
Проблема связана с инструментом save_order. Я пытаюсь получить построенный порядок из состояния графа, но он всегда пуст. Я обновляю состояние графика с помощью метода Command в инструменте create & update_order. [code]# AgentStateSchema
from langchain.agents import AgentState
class AgentStateSchema(AgentState): draft_order: Annotated[dict, update_dicts] = {} [/code] [code]# 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 [/code] [code]# Order Agent
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") [/code] Я пытался перевести состояние на уровень субагента, но все та же ошибка