1824 words
9 minutes
[Agent]AI Agent 디자인패턴: 우선순위 전략패턴 및 Agent Frameworks 선택
2026-01-19
2026-02-28

20. Prioritization#

기본적으로 자원이 한정되어 있거나 목표가 상충되는 상황에서 Agent에 어떤 것을 우선순위로 둘지 결정하는 전략적 사고 관련 패턴

Pattern Overview#

  • Prioritization 은 Agent가 잠재적인 작업, 목표, 행동들을 특정 기준(중요도, 긴급성, 의존성 등)에 따라 평가하고 순위를 매기는 프로세스
  • 이를 통해 에이전트는 무작위로 행동하거나 모든 일을 동시에 처리하려다 실패하는 대신, 가장 가치 있고 시급한 작업에 자원을 집중하여 효율성과 목표 달성률을 극대화

우선 순위 판단을 위한 주요 기준

  • Urgency (긴급성) : 작업 자체의 시간 민감도
  • Importance (중요도) : 목표달성에 미치는 영향력
  • Dependencies (의존성) : 이후 작업을 위한 선행조건인지 여부

Core Concepts#


Concept

  • Dynamic Re-prioritization: 새로운 상황에 대해 에이전트가 기존 계획을 수정하고 우선순위를 다시 매기는 것

Code Snippet#

# LangChain 기반 Product Management Agentcy
from langchain_core.prompts import ChatPromptTemplate
class Task(BaseModel):
id: str
description: str
priority: Optional[str] = None # P0, P1, P2
pm_prompt_template = ChatPromptTemplate.from_messages([
("system", """
당신은 유능한 프로젝트 매니저 AI입니다. 다음 단계에 따라 작업을 관리하세요:
1. 먼저, 요청된 작업의 설명을 바탕으로 새로운 Task를 생성하세요.
2. 사용자의 요청을 분석하여 '우선순위'나 '담당자'가 있는지 확인하세요.
- **긴급성 판단:** "urgent", "critical", "ASAP" 같은 단어가 있으면 **P0 (최우선)**로 설정하세요.
- 정보가 없다면 합리적인 기본값(P1)을 할당하세요.
3. 도구를 사용하여 작업을 등록하고, 최종 상태를 리스트로 보여주세요.
가용 우선순위: P0 (Highest), P1 (Medium), P2 (Lowest)
"""),
("human", "{input}"),
("placeholder", "{agent_scratchpad}")
])

Key Takeaways#

  1. 전략적 의사결정: 우선순위화는 단순한 작업 목록 정렬이 아니라,지금 무엇을 하는 것이 목표 달성에 가장 유리한가?를 끊임없이 판단하는 지능적인 과정.
  2. 적응성 (Adaptability): 훌륭한 에이전트는 계획을 고수하는 것이 아니라, 상황 변화(새로운 정보, 마감일 임박)에 따라 유연하게 계획을 변경(Re-prioritize).
  3. 인간 팀의 모방: 이 패턴은 실제 프로젝트 매니저가 업무를 분류(Triage)하고 팀원에게 배분하는 방식을 AI에 적용한 것
  4. 자원 최적화: 클라우드 리소스 관리나 주식 거래 봇처럼, 가장 중요한 순간에 가장 중요한 곳에 자원을 투입하게 만든다.

21. Exploration and Discovery#

Agent가 단순 문제해결을 넘어 알려지지 않은 미지의 영역(Unknown Unknowns)을 탐색하고 새로운 지식을 창출하는 패턴

Pattern Overview#

  • Agent가 낯선 영역으로 적극적으로 진입하여 새로운 가설을 세우고 실험하며 지식을 확장하는 방식
  • 정적인 지식만으로는 해결할 수 없는 개방형(Open-ended) 문제를 해결하는 데 필수적
  • 핵심은 과학적 방법론의 모방. 관찰 -> 가설 설정 -> 실험 -> 검증 -> 수정의 과정을 에이전트 루프에 적용

가설 검증 프로세스 예시

  • 생성자(Generation): 가설을 제안.
  • 비평가(Reflection/Reviewer): 가설을 검증하고 비판.
  • 진화(Evolution): 피드백을 바탕으로 아이디어를 발전시킴.

Code Snippet#

Agent Laboratory 프로젝트에서 인간의 동료 평가(Peer Review)를 모방하기 위해 3명의 서로 다른 페르소나를 가진 리뷰어 에이전트를 사용하여 연구 결과를 다각도로 평가하는 로직입니다.

class ReviewersAgent:
def __init__(self, model="gpt-4o-mini"):
self.model = model
def inference(self, plan, report):
# 1. 엄격한 리뷰어
reviewer_1_persona = "You are a harsh but fair reviewer... expect insights."
review_1 = get_score(plan, report, reviewer_type=reviewer_1_persona)
# 2. Impact 중시 리뷰어
reviewer_2_persona = "You are looking for an idea that would be impactful in the field."
review_2 = get_score(plan, report, reviewer_type=reviewer_2_persona)
# 3. 개방적 리뷰어
reviewer_3_persona = "You are looking for novel ideas that have not been proposed before."
review_3 = get_score(plan, report, reviewer_type=reviewer_3_persona)
# 3명의 리뷰 결과를 종합하여 반환 (Tripartite Judgment)
return f"Reviewer #1:\\n{review_1}, \\nReviewer #2:\\n{review_2}, \\nReviewer #3:\\n{review_3}"
# *get_score 함수는 내부적으로 LLM에게 JSON 포맷으로 강점, 약점, 독창성 점수 등을 요청함

Key Takeaways#

  1. 수동적 도구에서 능동적 탐험가로: 에이전트는 단순히 시키는 일만 하는 것이 아니라, 스스로 가설을 세우고 검증하는 연구 파트너(Co-Scientist)로 진화
  2. 역할 분담의 힘: Google Co-Scientist나 Agent Laboratory 사례처럼, 교수(지시), 박사후연구원(실행), 리뷰어(평가) 등 역할을 세분화한 멀티 에이전트 시스템이 탐험의 효율을 극대화
  3. 반복과 진화: 한 번에 완벽한 답을 내는 것이 아니라, **[생성 -> 토론 -> 진화]**의 사이클을 통해 지식의 완성도를 높입니다.

Agentic Frameworks#

1. 주요 컨셉들#

  • Abstraction : 추상화 정도
  • Agency : LLM의 자율성 정도
  • 두 컨셉은 독립적이며 함께 증가하는 경우가 많을 뿐 동일하지 않음

2. Tradeoff의 핵심 축별 영향#

Predictability#

  • Abstraction 증가
    • 내부 제어 흐름이 암묵적
    • 동일 입력에도 실행 경로 파악 어려움
  • Agency 증가
    • 의미 기반 판단 → 실행 경로 비결정적
  • 결과
    • Abstraction 높음 + Agency 높음 → 재현성 낮음
    • Abstraction 낮음 + Agency 낮음 → 실행 경로 결정적

Debugging#

  • Abstraction 증가
    • 실패 원인 분해 불가 (프롬프트 / 프레임워크 / 모델 구분 어려움)
  • Agency 증가
    • 왜 특정 tool을 선택했는지 설명 불가
  • 결과
    • 두 요소가 함께 높을수록 블랙박스화

오류전파#

  • Agency 높음
    • 잘못된 판단이 연쇄적 tool 호출로 확대
  • Abstraction 높음
    • 안전장치가 일반화되어 도메인 불변식 보호 불가
  • 결과
    • 단일 판단 오류가 시스템 전반에 영향

변경 비용#

  • Abstraction 증가
    • 초기 개발 속도는 빠름
    • 프레임워크 내부 구조 변경 시 종속성 문제 발생
  • Agency 증가
    • 프롬프트 변경 → 전체 행위 변화 (behavior drift)
  • 결과
    • 초기 비용 ↓, 장기 유지보수 비용 ↑

테스트#

  • Agency 증가
    • 단위 테스트 불가
    • 통계적·확률적 테스트 필요
  • Abstraction 증가
    • 내부 상태 mocking 및 관찰이 어려움
  • 결과
    • CI/CD에서 안정적 검증 어려움

책임 분리#

  • Agency 증가
    • 판단 주체가 불명확
  • Abstraction 증가
    • 프레임워크 의존적 사고 고착
  • 결과
    • 장애 대응 및 책임 소재 모호
    • 신규 인력 온보딩 비용 증가

3. Tradeoff#

  • Abstraction의 tradeoff
    • 개발 속도 vs 통제 가능성
  • Agency의 tradeoff
    • 유연성 vs 안정성
  • 둘이 동시에 높아질 경우
    • 시스템은 똑똑하고 합리적으로 보이지만 엔지니어링 및 운영 검증이 어려워짐

Abstraction은 제어를 숨기고 Agency는 결정을 위임함

Agentic Framworks Example#

https://github.com/mastra-ai/mastra

Mastra#

  • Abstraction: 높음
  • Agency: 중간
  • 프론트엔드 친화적 구조
  • JS 생태계 중심

Agno#

https://github.com/agno-agi/agno

  • Abstraction: 높음
  • Agency: 높음
  • Python기반
  • 대규모 multi agent orchestration 지원

References#

[Agent]AI Agent 디자인패턴: 우선순위 전략패턴 및 Agent Frameworks 선택
https://yjinheon.netlify.app/posts/04ml/agent/agentic_design_pattern_05/
Author
Datamind
Published at
2026-01-19
License
CC BY-NC-SA 4.0