https://forum.langchain.com/t/langchain-create-agent-with-tools-parameter/2030
Langchain create_agent with tools parameter
I’d like to welcome to LangChain version 1.0. I’m currently migrating my workflows to use create_agent, but I noticed that when a tool specified in tools is called, the agent makes an additional LLM call after the normal tool execution to generate an A
forum.langchain.com
1.0 이후 랭체인에서 개선된 부분 중 강력한 부분을 뽑으라면 에이전트 루프에 한 표를 주고 싶습니다.

action & observation 루프는 구글에서 강조한 에이전트의 주요 flow입니다.
랭체인 1.0 이전 버전으로 챗봇을 개발할 때는, 아... 자동화란 멀었구나 하며 개발하곤 했습니다.
[결국엔 내부적으로 조건(분기) 기반의 라우팅으로 처리하고 있어서 현타가 좀 있었죠]
1.0에 들어서는 tools에 툴 목록만 전달하고, 시스템 프롬프트를 간결하게 두어 시스템의 최종 목표가 달성된 시점에 알아서
에이전트 응답이 끝나게 만들 수 있습니다.
현재 이 방법을 통해 기능을 구현하고 있는데, 그래프의 스트리밍 응답을 처리하는 과정에서 tool 선택 과정에 대한 스트리밍 데이터가
그대로 전달되다 보니... 이 기능이 좀 아쉽게 느껴지더군요.
[현재는 툴 데코레이터쪽에 return_direct인자가 False로 처리되어 있습니다.]


툴 내부의 처리 과정을 writer로 별도로 전달하고 있어서, tool 선택을 고민하는 과정에 대한 스트리밍 응답 정보는 필요가 없었습니다.
에이전트 루프의 마지막 과정(AIMessage)만 스트리밍 응답으로 취급할 수 있을까를 찾아봤지만...
그렇다 할 좋은 방법을 찾지 못한 상황입니다. [혹시나 찾으신 분이 있다면 공유해 주시면 정말 감사하겠습니다.]
현재 대안으로 진행하는 방식은 tools를 바인딩한 에이전트 쪽에서의 응답으로부터 Tool 결과 정보를 직접 받고,
END 노드에서 스트리밍 데이터를 뿌려주게끔 구현하는 것입니다.
END 노드는 태그로 메타 데이터 라벨링하고, 랭그래프 쪽 stream에서 태그를 필터링하여 최종 응답을 뿌려주도록 구현하는 것입니다.
*참고: 문서에서는 return_direct가 True인 경우 에이전트 루프를 타지 않고 결과를 바로 반환한다고 안내되어 있긴 하지만,
실제 테스트를 해보면 그렇지는 않습니다. [이 판단에 대해서는 LLM이 진행합니다.]
'직장 생활 > 질문 응답' 카테고리의 다른 글
| 랭그래프에 등록된 노드에서 호출한 에이전트의 writer 이벤트 전달하기 (tool) (0) | 2025.12.08 |
|---|---|
| 에이전트 애플리케이션 고민. 자율성과 신뢰성의 트레이드 오프 (3) | 2025.06.07 |
| 벡터와 임베딩의 차이점이 뭘까? (0) | 2025.05.11 |