— это создает порядок на основе изменений запроса пользователя в словаре (с источником, местом назначения и элементами в качестве ключей) и сохраняет его в общем состоянии.
— получить 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] [code]create_order( source, destination, items )[/code] — это создает порядок на основе изменений запроса пользователя в словаре (с источником, местом назначения и элементами в качестве ключей) и сохраняет его в общем состоянии.
[*][code]update_order( source,destination,items)[/code] — выполняет что-то похожее на create_order
[*][code]save_order()[/code] — получить 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] Я пытался перенести состояние на уровень субагента, но все равно выдает ту же ошибку