전체 그래프
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로 분리. 도구 기반 추론과 함께 사용 가능.

관련 개념