Langgraph [Python]: Инструменты игнорируются при прикосновении к состояниюPython

Программы на Python
Ответить Пред. темаСлед. тема
Anonymous
 Langgraph [Python]: Инструменты игнорируются при прикосновении к состоянию

Сообщение Anonymous »

Я работаю над индивидуальным агентом Langgraph. У него есть настройка React, где у меня есть мыслитель, который указывает на инструмент и конец. Ниже приведен пример, у меня есть более сложная сборка, но в основном у нас проблемы. < /P>

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

builder = StateGraph(MyState)

# nodes
builder.add_node("reasoner", agent_main_reasoner)
builder.add_node("tools", ToolNode(mytools)

# edges
builder.add_edge(START, "reasoner")
builder.conditional_edges("reasoner", tools_condition)
builder.add_edge("tools", "reasoner")

# Compile
my_graph = builder.compile()
< /code>
Мне нужно как прочитать, так и записать в мои инструменты. Однако, когда я пытаюсь сделать это - LLM игнорирует инструмент и никогда не запускает его. Например, когда у меня есть базовый инструмент в my_tools 
Как ниже, он будет выполнять нормально.

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

my_tool_desc = "If a user asks about \"yeehaws\" this tool will return up-to-date information"

@tool(name_or_callable="my_tool_fun", description=my_tool_desc)
async def my_tool_func():
print("!!!HELLO FROM MY TOOL!!!")
return "All the 10 yees have hawed."
< /code>
Если я запускаю график, спрашивая: «Сколько дайвов?» - Это выполнит функцию, я увижу печать, и LLM ответит, говоря, как «10 Yeehaws» или что -то в этом роде.class MyState(TypedDict):
user_query: str
model_context: Annotated[List[str], operator.add]
И в этом инструменте я хочу прочитать в user_query из состояния, а затем обновить model_context с результатами. Давайте сделаем это по одному за раз, потому что отделились или вместе оба эти примера инструмента пропускаются с помощью LLM, и я никогда не вижу его выполненной.@tool(name_or_callable="my_tool_fun", description=my_tool_desc)
async def my_tool_func(state: Annotated[MyState, InjectedState]):
q = state["user_query"]
print(f"!!!HELLO FROM MY TOOL!!! Query: {q}")
return "All the 10 yees have hawed."
< /code>
Используя Chatgpt и случайный поток GitHub, в основном он сказал, чтобы попытаться добавить нестоятельный параметр, и его не проигнорируют. Только параметр состояния будет проигнорирован, но безрезультатно. < /P>
my_tool_desc = "If a user asks about \"yeehaws\" this tool will return up-to-date information.\nARGUMENTS:\n\t- query: (str) Pass the User's original query \"user_query\" from state."

@tool(name_or_callable="my_tool_fun", description=my_tool_desc)
async def my_tool_func(query: str, state: Annotated[MyState, InjectedState]):
q = state["user_query"]
print(f"!!!HELLO FROM MY TOOL!!! State: {q} - Generated: {query}")
return "All the 10 yees have hawed."
< /code>
Это также не удается. Имейте в виду, что комбинированная версия также игнорируется, LOL. < /P>
@tool(name_or_callable="my_tool_fun", description=my_tool_desc)
async def my_tool_func() -> Command:
print(f"!!!HELLO FROM MY TOOL!!!")
return Command(update={"model_context": ["All the 10 yees have hawed."]})
< /code>
Как я могу сделать так, чтобы мои инструменты, касающиеся состояния, не игнорируются? Есть способ или я обречен?
Большое спасибо:-)

Подробнее здесь: https://stackoverflow.com/questions/796 ... hing-state
Реклама
Ответить Пред. темаСлед. тема

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

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

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

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

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

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