1824 words
9 minutes
[Agent]AI Agent 디자인패턴: 우선순위 전략패턴 및 Agent Frameworks 선택
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
- 전략적 의사결정: 우선순위화는 단순한 작업 목록 정렬이 아니라,지금 무엇을 하는 것이 목표 달성에 가장 유리한가?를 끊임없이 판단하는 지능적인 과정.
- 적응성 (Adaptability): 훌륭한 에이전트는 계획을 고수하는 것이 아니라, 상황 변화(새로운 정보, 마감일 임박)에 따라 유연하게 계획을 변경(Re-prioritize).
- 인간 팀의 모방: 이 패턴은 실제 프로젝트 매니저가 업무를 분류(Triage)하고 팀원에게 배분하는 방식을 AI에 적용한 것
- 자원 최적화: 클라우드 리소스 관리나 주식 거래 봇처럼, 가장 중요한 순간에 가장 중요한 곳에 자원을 투입하게 만든다.
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
- 수동적 도구에서 능동적 탐험가로: 에이전트는 단순히 시키는 일만 하는 것이 아니라, 스스로 가설을 세우고 검증하는 연구 파트너(Co-Scientist)로 진화
- 역할 분담의 힘: Google Co-Scientist나 Agent Laboratory 사례처럼, 교수(지시), 박사후연구원(실행), 리뷰어(평가) 등 역할을 세분화한 멀티 에이전트 시스템이 탐험의 효율을 극대화
- 반복과 진화: 한 번에 완벽한 답을 내는 것이 아니라, **[생성 -> 토론 -> 진화]**의 사이클을 통해 지식의 완성도를 높입니다.
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/