236
2
부
에이전트 시스템의 구축과 확장
messages.append(ToolMessage(content=str(out), tool_call_
id=tc["id"]))
except StopIteration:
print(f"[경고] 도구를 찾을 수 없음: {tool_name}")
except Exception as e:
print(f"[오류] 도구 실행 실패: {tool_name}, {e}")
# 최종 응답 전송
send_logistics_response.invoke({"message": winning_plan.get('plan', '계획
실행 완료')})
final_message = AIMessage(
content=f"선택된 계획: {winning_plan.get('plan', '')} (점수:
{evaluation.get('best_score', 0)})"
)
return {"messages": history + messages + [final_message]}
else:
# 반복: Actor에게 피드백 제공
feedback_message = AIMessage(
content=f"재생성 필요: 개선 사항 - {evaluation.get('feedback', '더 나은
계획이 필요합니다.')}"
)
return {"messages": history + [feedback_message]}
# Actor-Critic 그래프 구성
def construct_actor_critic_graph(): ...