전체 그래프
Agno

Agno Reasoning Tools

aiagent-frameworkagnoreasoning

상위: Agno

요약

Agno의 Reasoning Tools는 에이전트에 구조화된 추론 능력을 부여한다. 모든 요청에 추론을 강제하는 Reasoning Agent나 특수 모델이 필요한 Reasoning Model과 달리, Reasoning Tools는 에이전트가 필요할 때만 선택적으로 추론한다. Think → Act → Analyze 패턴을 따른다.

3가지 추론 접근 비교

접근설명단점
Reasoning Agent모든 요청에 체계적 추론 강제간단한 요청에도 오버헤드
Reasoning Modelo1, DeepSeek R1 등 특수 모델모델 종속, 비용
Reasoning Tools에이전트가 필요 시 선택적 사용Agno의 접근. 가장 유연

4가지 Reasoning Toolkit

1. ReasoningTools — 범용 추론

from agno.tools.reasoning import ReasoningTools

agent = Agent(
    model=OpenAIChat(id="gpt-4o"),
    tools=[ReasoningTools(add_instructions=True)],
)
  • 도구: think(), analyze()
  • 용도: 수학 문제, 전략 계획, 논리 분석

2. KnowledgeTools — 지식 기반 추론

from agno.tools.knowledge import KnowledgeTools

agent = Agent(
    tools=[KnowledgeTools(knowledge=my_kb, add_instructions=True)],
)
  • 도구: think(), search_knowledge(), analyze()
  • 용도: 문서 검색, RAG 워크플로우, 다중 반복 리서치

3. MemoryTools — 메모리 기반 추론

from agno.tools.memory import MemoryTools

agent = Agent(
    tools=[MemoryTools(db=my_db, add_instructions=True)],
)
  • 도구: think(), get/add/update/delete_memory(), analyze()
  • 용도: 개인화 상호작용, 선호도 관리, 세션 간 컨텍스트

4. WorkflowTools — 워크플로우 추론

from agno.tools.workflow import WorkflowTools

agent = Agent(
    tools=[WorkflowTools(workflows=[my_workflow], add_instructions=True)],
)
  • 도구: think(), run_workflow(), analyze()
  • 용도: 다단계 자동화, 복잡한 오케스트레이션, A/B 테스트

Think → Act → Analyze 패턴

모든 Reasoning Toolkit이 동일한 패턴을 따른다:

1. THINK   접근 방식을 계획하고 전략을 정제
2. ACT     도메인별 행동 실행 (검색, 메모리 조작, 워크플로우)
3. ANALYZE  결과를 평가하고 다음 단계 결정
4. REPEAT  추가 추론이 필요하면 반복

인간의 문제 해결 방식을 모방한다: 숙고 → 행동 → 평가 → 조정.

다중 Toolkit 조합

여러 Toolkit을 함께 사용할 수 있다. think()analyze()가 중복되므로, 하나의 Toolkit만 이 함수를 활성화한다:

agent = Agent(
    tools=[
        ReasoningTools(add_instructions=True),          # think + analyze 담당
        KnowledgeTools(
            knowledge=my_kb,
            enable_think=False, enable_analyze=False,   # 중복 비활성화
        ),
        MemoryTools(
            db=my_db,
            enable_think=False, enable_analyze=False,
        ),
    ],
)

ReasoningTools가 공유 추론 스크래치패드를 제공하고, 나머지 Toolkit은 도메인 특화 기능만 기여한다.


Reasoning Model

모델 자체의 추론 능력(reasoning_model)을 쓰는 방식은 Agno Reasoning Model로 분리. 도구 기반 추론과 함께 사용 가능.

관련 개념