225
8
장
단일 에이전트에서 멀티 에이전트로
operation_json = json.dumps(operation, ensure_ascii=False)
full_prompt = system_prompt + f"\n\n작업: {operation_json}"
full = [SystemMessage(content=full_prompt)] + history
first: ToolMessage | BaseMessage = specialist_llm.invoke(full)
messages = [first]
if getattr(first, "tool_calls", None):
for tc in first.tool_calls:
print(first)
print(tc['name'])
# 도구 찾기 (모든 도구 이름이 고유하다고 가정)
all_tools = INVENTORY_TOOLS + TRANSPORTATION_TOOLS + SUPPLIER_TOOLS
fn = next(t for t in all_tools if t.name == tc['name'])
out = fn.invoke(tc["args"])
messages.append(ToolMessage(content=str(out), tool_call_id=tc["id"]))
second = specialist_llm.invoke(full + messages)
messages.append(second)
return {"messages": messages}
# 재고 전문가 노드
def ...