본문으로 건너뛰기

agent_lens.install() 실제 작동 릴리스

agent-lens 0.3.0이 SDK 호환성 오류와 누락된 비동기 추적을 바로잡았습니다.

이 요약은 AI가 원문을 분석해 생성했습니다. 정확한 내용은 원문 기준으로 확인하세요.

TL;DR

agent-lens 0.3.0은 OpenAI SDK가 설치된 환경에서 AttributeError를 일으키던 `agent_lens.install()`과 두 제공자의 비동기 호출 추적 문제를 고쳤습니다. `gpt-4o-mini`를 `gpt-4o` 요금으로 잘못 계산하던 부분과 `unpatch()` 이후 wrapper가 중첩되는 문제도 수정했습니다. 실제 설치된 SDK의 패치 대상과 callback hook이 존재하는지 확인하는 테스트 및 OpenAI, Anthropic, LangChain Core, LlamaIndex Core를 설치하는 CI 검사가 추가됐습니다. 공개되지 않았던 0.2.0의 MCP server, 실행 기록 전문 검색, `compare_runs`, LlamaIndex handler, Colab quickstart도 이번 릴리스에 포함됐습니다.

섹션별 상세

01
agent_lens.install()은 OpenAI SDK가 설치된 환경에서 존재하지 않는 `Completions.acreate`를 패치하려다 Anthropic 처리에 도달하기 전에 AttributeError를 일으켰습니다. 0.3.0은 실제 호출 지점인 `AsyncCompletions.create`와 `AsyncMessages.create`를 기준으로 통합을 고쳐 동기 호출뿐 아니라 비동기 호출도 추적하도록 했습니다. 기존 0.1.0 사용자는 이전 릴리스가 시작되지 않으므로 `pip install -U agentlens-tracer`로 업그레이드해야 하며, 0.1.0의 문제는 2026-05-02부터 지속됐습니다.
02
가격 계산은 모델명을 부분 문자열로 찾는 방식 때문에 `gpt-4o-mini`가 `gpt-4o` 가격군으로 먼저 매칭되면서 실제보다 25–33배 높은 비용으로 기록됐습니다. 0.3.0은 가격군 매칭 순서를 바로잡아 이 문제를 수정하고 `gpt-4-turbo`와 `claude-3-5-sonnet-20241022` 같은 날짜가 붙은 snapshot도 처리합니다. 모델명 선택이 짧은 문자열을 포함하는지에 따라 비용 추정 결과가 크게 달라지는 구조적 오류를 막은 셈입니다.
03
`unpatch()`가 원래 callable을 복원하지 않아 패치와 해제를 반복할 때 wrapper가 중첩되고 모든 span과 event가 중복 생성됐습니다. Anthropic message object의 직렬화 과정에서 예외가 나도 그 예외가 추적 대상 호출 밖으로 전파되지 않도록 바꿨습니다. 관측 도구가 애플리케이션 실행을 중단시키지 않아야 한다는 tracer의 동작 조건을 두 수정이 함께 보완합니다.
04
기존 테스트 네 개는 비동기 경로를 직접 실행했지만 실제 vendor SDK가 아니라 구현 코드가 기대하는 형태를 그대로 복제한 fake SDK를 사용해 모두 통과했습니다. 0.3.0은 반대로 실제 설치된 SDK에서 패치할 속성과 재정의할 callback hook이 존재하는지 확인하는 테스트를 추가했습니다. CI에도 `openai`, `anthropic`, `langchain-core`, `llama-index-core` 설치 단계를 넣어 의존성이 빠져 검사가 건너뛰어지는 상황을 줄였습니다.
05
공개되지 않은 0.2.0에 포함됐던 MCP server, 실행 기록 전문 검색, `compare_runs`, LlamaIndex handler, Colab quickstart가 0.3.0에 함께 들어왔습니다. 따라서 이번 릴리스는 0.1.0의 시작 오류와 추적·비용 계산 버그를 고치는 동시에 미배포 기능을 묶어 제공합니다. 전체 변경 내역은 `CHANGELOG.md`에서 확인할 수 있으며 PyPI Trusted Publishing으로 게시돼 저장소에 API token을 두지 않았습니다.

용어 해설

소프트웨어 개발 키트(SDK)
SDK는 특정 서비스나 플랫폼의 기능을 애플리케이션에서 호출하도록 API, 자료형, 인증 방식 등을 묶어 제공하는 개발 도구입니다. 이 글에서는 OpenAI와 Anthropic이 실제로 제공하는 메서드 구조와 tracer가 패치해야 할 호출 지점을 검증하는 기준으로 쓰였습니다.
추적기(Tracer)
Tracer는 애플리케이션의 함수 호출과 외부 API 요청을 가로채 실행 흐름, 입력·출력, 지연 시간 같은 관측 데이터를 기록하는 구성 요소입니다. 관측 대상의 동작을 방해하지 않으면서 동기·비동기 호출을 모두 포착해야 하므로 실제 SDK와의 호환성이 핵심입니다.
추적 구간(Span)
Span은 하나의 작업이나 API 호출에 걸린 시간과 관련 이벤트를 나타내는 추적 단위입니다. tracer가 SDK 호출을 감싸면 호출마다 span을 만들 수 있지만, 패치가 중복되거나 비동기 경로를 놓치면 span이 여러 번 생성되거나 아예 기록되지 않습니다.
MCP 서버(MCP server)
MCP server는 모델이나 에이전트가 외부 도구와 데이터에 정해진 방식으로 연결되도록 중계하는 서버 구성 요소입니다. 이 릴리스에는 실행 기록을 다루는 MCP server가 포함되어, 추적 데이터에 접근하는 기능 범위가 넓어졌습니다.
PyPI 신뢰 게시(PyPI Trusted Publishing)
PyPI Trusted Publishing은 저장소에 장기 API 토큰을 보관하지 않고 CI나 릴리스 워크플로의 신원을 검증해 패키지를 게시하는 방식입니다. 글에서는 이 릴리스가 API 토큰 없이 배포됐다는 점을 공급망 보안 맥락에서 밝힙니다.

코드 예제

bash
pip install -U agentlens-tracer

기존 0.1.0 설치 환경에서 agentlens-tracer를 0.3.0으로 업그레이드합니다.

python
agent_lens.install()

agent-lens 추적기를 설치하는 문서상의 한 줄 진입점입니다.

기술

  • agent-lens
  • OpenAI SDK
  • Anthropic
  • AsyncCompletions.create
  • AsyncMessages.create
  • MCP server
  • langchain-core
  • llama-index-core
  • LlamaIndex
  • CHANGELOG.md
  • PyPI Trusted Publishing

활용 사례

  • OpenAI 및 Anthropic 기반 LLM 호출 추적
  • 비동기 애플리케이션의 span과 event 기록
  • LLM 실행 비용 모니터링
  • 실행 기록 전문 검색과 run 비교
  • LlamaIndex 연동
AI 분석 전체 내용 보기

AI 요약 · 북마크 · 개인 피드 설정 — 무료

출처 · 인용 안내

원문 발행 2026. 09. 02.수집 2026. 09. 02.출처 타입 RSS

인용 시 "요약 출처: AI Trends (aitrends.kr)"를 표기하고, 사실 확인은 원문 보기 기준으로 진행해 주세요. 자세한 기준은 운영 정책을 참고해 주세요.