-
Notifications
You must be signed in to change notification settings - Fork 0
Open
Description
🐛 [Troubleshooting] AI Agent의 답변 형식 지정 방법
📅 일시: 2025.11.24
**📂 관련 레포/파일/경로: **
레포 : Agent
- app/main.py
- app/agent/agent_graph.py
🏷 태그: #FastAPI #AI Agent #MCP #Python #Langchain
📌 상황 (Context)
작업 내용 : Front(App)에서 요청한 사용자 쿼리에 따라서 AI Agent에 전달되고, MCP Tool을 활용해서 응답을 기다리는 상황
⚠️ 문제 (Problem)
사용자의 입력에 따라 MCP Tool을 사용하고, Front에서 원하는 형식대로 Tool에서 생성이 가능하다.
하지만, 다시 AI Agent를 통해서 값이 return 될 때 자연어로 응답이 되면서 Front에서 처리를 하지 못하는 상황 발생.
🛠 해결 (Solution)
- 원인 파악:
- Front에서 사용할 수 있도록 json 형태로 답을 해야하지만, AI Agent는 MCP Tool에서 json으로 받은 것을 다시 요약해서 return을 하기 때문에 자연어로 응답이 되는 상황이었다.
- 조치:
MultiServerMCPClient를 통해서 MCP client를 설정하고agent = create_react_agent(llm, tools)를 통해 agent와 mcp tool을 통합해서 Agent를 만들어내는 것이다. 이 때 tool을 llm에 넣을 때tool.return_direct = True로 설정해주면 된다. 이는 Tool을 사용했다면 MCP Tool return 값으로 바로 ai agent 에 보내는 것이다. 따라서, ai agent의 llm의 답변의 자료형이ToolMessage라면 json 형태 그대로,AIMessage라면 자연어 형태로 답변을 하도록 한다.
raw_return_tools = ["get_sale_value"] # return_direct를 True로 바꾸고 싶은 MCP operation_id를 작성한다.
for t in loaded:
if t.name in raw_return_tools:
t.return_direct = True # 이 도구는 AI 요약 없이 바로 종료!
print(f"✅ [설정 완료] '{t.name}' 도구는 JSON을 그대로 반환합니다.")
""" (생략) """💡 회고 (Lesson Learned) or 배운 점 (Retrospective)
-
AI Agent의 답변을 조정하는 방법이 프롬프트를 수정하는 것 뿐만 아니라 라이브러리, 파라미터의 상세 조정으로부터 원하는 답변의 형태를 조절할 수 있다.
-
return_direct를 하는 것만으로도 token을 효율적으로 사용할 수 있다.
-
Action Item: return_direct와 같이 필요한 기능만 사용하면서 token을 효율적으로 사용할 수 있게 하는 방법을 연구하여 효율화 진행.
Metadata
Metadata
Assignees
Labels
No labels