Skip to content

[TROUBLE SHOOTING] AI Agent의 답변 형식 지정 방법 #4

@YoonjinOh0909

Description

@YoonjinOh0909

🐛 [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

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions