- 에이전트 구축 과정은 여전히 복잡하며, SDK 추상화가 실제 도구 사용 단계에서 자주 깨지는 문제 존재
- 캐싱 관리는 플랫폼마다 달라 수동 관리가 더 예측 가능하고 효율적이며, Anthropic SDK의 명시적 캐시 포인트 방식이 선호됨
- 강화 루프(reinforcement loop) 는 작업 상태 추적과 실패 복구에 핵심 역할을 하며, 실패는 별도 격리로 루프 붕괴 방지 필요
- 공유 상태 관리를 위해 파일 시스템 유사 계층이 중요하며, 코드 실행·추론 도구 간 데이터 교환의 기반 구조로 사용
- 출력 도구와 모델 선택은 여전히 까다롭고, Haiku·Sonnet·Gemini 모델이 주요 선택지로 유지되는 등 에이전트 설계의 복잡성 지속
에이전트 SDK 선택
- 에이전트를 구축할 때 OpenAI, Anthropic 등의 기본 SDK를 직접 사용할지, Vercel AI SDK나 Pydantic 같은 고수준 추상화 계층을 사용할지 선택 필요
- 작성자는 과거 Vercel AI SDK의 provider abstraction만 사용했으나, 현재는 그 선택을 반복하지 않을 것이라고 언급
- 모델 간 차이가 커서 직접 에이전트 추상화 계층을 구축해야 하며, 기존 SDK의 추상화는 적합하지 않음
- 캐시 제어, 강화 요구사항, 도구 프롬프트 등에서 미묘한 차이가 존재
- Vercel SDK는 provider-side 도구 처리에서 문제 발생
- Anthropic의 웹 검색 도구가 메시지 히스토리를 손상시키는 사례 존재
- Anthropic SDK를 직접 사용할 때 캐시 관리와 오류 메시지가 더 명확함
- 결론적으로, 현재는 추상화 계층 없이 직접 SDK를 사용하는 접근이 더 유리하다고 평가
캐싱 관리의 교훈
- 플랫폼별 캐싱 접근 방식이 다르며, Anthropic은 캐싱에 비용을 부과하고 명시적 관리 요구
- 수동 관리가 비용과 캐시 활용도를 예측 가능하게 만들어 선호됨
- 명시적 캐싱은 대화 분기 실행이나 컨텍스트 편집을 가능하게 함
- 시스템 프롬프트 이후, 대화 초반부 등 여러 캐시 포인트 설정
- 캐시를 유지하기 위해 시스템 프롬프트와 도구 선택은 정적, 시간 등 동적 정보는 이후 메시지로 전달
- 강화 루프를 캐시와 함께 적극 활용하여 비용 예측성과 제어력 향상
에이전트 루프 내 강화(Reinforcement)
- 도구 실행 시 단순 결과 반환 외에 목표·작업 상태·실패 원인 등의 정보를 루프에 재주입 가능
- Claude Code의 todo write 도구처럼 자기 강화(self-reinforcement) 도구가 루프 진행에 도움
- 환경 변화나 실패 복구 시점에 상태 변경 정보를 주입하여 루프 안정성 확보
- 예: 손상된 데이터 기반으로 재시도 시, 이전 단계로 되돌리도록 메시지 삽입
실패 격리(Isolate Failures)
- 반복 실패가 예상되는 작업은 하위 에이전트(subagent) 로 분리 실행 후 성공 결과만 상위 루프에 보고
- 실패 시도 요약은 다음 작업의 학습 자료로 활용
- Anthropic SDK에서는 컨텍스트 편집(context editing) 기능으로 실패 기록을 제거 가능
- 실패 정보 전체를 유지하지 않고 필요한 부분만 남김
- 단, 컨텍스트 편집은 캐시 무효화를 초래해 비용 증가 가능
서브 에이전트와 공유 파일 시스템
- 대부분의 에이전트는 코드 실행·생성 기반으로, 공통 데이터 저장소 필요
- 이를 위해 가상 파일 시스템(VFS) 사용
- 이미지 생성, 압축, 추론 등 다양한 도구가 동일 파일 경로를 공유해야 함
-
ExecuteCode와RunInference도구가 동일 파일 시스템 접근 가능해야 함
-
- 이러한 구조는 데이터 교환의 병목 제거와 루프 내 연속 작업 처리에 필수
출력 도구(Output Tool)
- 에이전트는 채팅 세션이 아닌 비공개 내부 메시지 루프로 동작하며, 외부와의 소통은 출력 도구를 통해 수행
- 출력 도구는 이메일 전송 등 외부 커뮤니케이션 담당
- 출력 도구의 어조·문체 제어가 어렵고, 보조 LLM(Gemini 2.5 Flash) 사용 시 품질 저하 및 지연 발생
- 하위 도구가 충분한 컨텍스트를 갖지 못해 부정확한 결과 생성
- 루프 종료 시 출력 도구가 호출되지 않으면 강화 메시지 삽입으로 호출 유도
모델 선택
- Haiku와 Sonnet은 도구 호출 성능이 우수해 주요 루프 모델로 사용
-
Gemini 2.5는 대형 문서 요약, PDF 처리, 이미지 정보 추출에 적합
- Sonnet 모델은 안전 필터에 자주 걸리는 단점 존재
- GPT 계열 모델은 메인 루프에서 큰 성과 없음
- 토큰 비용만으로는 전체 비용 판단 불가
- 더 나은 도구 호출 모델이 적은 토큰으로 동일 작업 수행 가능
테스트와 평가(Evals)
-
에이전트 테스트 및 평가 자동화가 가장 어려운 문제로 지적
- 프롬프트와 달리 외부 시스템에서 단순 평가 불가
- 실제 실행 데이터 기반의 관측 가능성(observability) 또는 계측(instrumentation) 필요
- 현재까지 만족스러운 평가 방법을 찾지 못했다고 언급
코딩 에이전트 업데이트
- 코딩 에이전트 관련 변화는 크지 않음
- 최근 Amp 에이전트를 시험 중이며, Oracle 서브에이전트와 메인 루프의 상호작용 구조를 높이 평가
- Amp와 Claude Code는 자체 도구를 실제로 사용하는 개발자 중심 설계로 느껴짐