도구 출력을 결과로 강제하기

도구 출력을 결과로 강제하기 (Force Tool Output as Result)

CrewAI에서는 도구의 출력을 에이전트 태스크의 결과로 강제할 수 있어요. 에이전트가 도구 결과를 중간에 수정하지 않고, 도구가 낸 값을 태스크 결과로 그대로 캡처·반환하고 싶을 때 유용하죠. 도구를 에이전트에 추가할 때 result_as_answer 파라미터를 True로 설정하기만 하면 됩니다.

출처: 공식문서

본문

도구 출력을 에이전트 태스크 결과로 강제하려면, 에이전트에 도구를 추가할 때 result_as_answer 파라미터를 True로 설정하세요. 이 파라미터는 도구 출력이 에이전트의 어떤 수정도 없이 태스크 결과로 캡처·반환되도록 보장합니다.

from crewai.agent import Agent
from my_tool import MyCustomTool

# Create a coding agent with the custom tool
coding_agent = Agent(
    role="Data Scientist",
    goal="Produce amazing reports on AI",
    backstory="You work with data and AI",
    tools=[MyCustomTool(result_as_answer=True)],
)

# Assuming the tool's execution and result population occurs within the system
task_result = coding_agent.execute_task(task)

실제 동작 흐름 (Workflow in Action)

  1. 커스텀 도구를 result_as_answer=True로 인스턴스화해 에이전트의 tools에 전달합니다.
  2. 에이전트가 태스크를 실행하면서 도구를 호출합니다.
  3. 도구의 출력이 에이전트에 의해 수정되지 않고 태스크 결과로 캡처됩니다.
  4. 최종 태스크 결과에는 에이전트가 다듬은 텍스트 대신 도구의 원본 출력이 담깁니다.

이 기능은 "에이전트가 자체적으로 답을 만들어내는 대신, 도구가 계산하거나 조회한 값을 그대로 신뢰하고 전달"해야 하는 상황에서 정확성을 지키는 데 도움이 돼요.

더 알아보기