도구 출력을 결과로 강제하기
도구 출력을 결과로 강제하기 (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)
- 커스텀 도구를
result_as_answer=True로 인스턴스화해 에이전트의tools에 전달합니다. - 에이전트가 태스크를 실행하면서 도구를 호출합니다.
- 도구의 출력이 에이전트에 의해 수정되지 않고 태스크 결과로 캡처됩니다.
- 최종 태스크 결과에는 에이전트가 다듬은 텍스트 대신 도구의 원본 출력이 담깁니다.
이 기능은 "에이전트가 자체적으로 답을 만들어내는 대신, 도구가 계산하거나 조회한 값을 그대로 신뢰하고 전달"해야 하는 상황에서 정확성을 지키는 데 도움이 돼요.
더 알아보기
- 개념 정리: Tools
- 커스텀 도구 만들기: Create Custom Tools