TL;DR
Anthropic의 Managed Agents API와 호환되는 오픈소스 서버 castor-server를 구축하며 얻은 결정론적 런타임 설계와 SDK 버그 분석에 대한 기술적 회고이다.
배경
Anthropic이 출시한 Managed Agents 서비스의 프로토콜을 분석하여, 이를 로컬에서 실행하고 타 모델로 확장할 수 있는 와이어 호환 오픈소스 서버 castor-server를 개발한 경험을 공유했다.
의미 / 영향
에이전트 기술의 핵심이 단순한 모델 호출을 넘어 '런타임의 제어권'으로 이동하고 있음을 보여준다. 결정론적 실행 모델을 갖춘 오픈소스 대안이 상용 서비스의 제약을 극복하고 더 복잡한 인간-AI 협업 워크플로우를 가능하게 할 것으로 전망된다.
커뮤니티 반응
작성자가 발견한 SDK 버그와 결정론적 런타임에 대한 심도 있는 분석에 대해 커뮤니티는 매우 긍정적인 반응을 보였으며, 특히 에이전트의 상태 관리 방식에 대한 기술적 토론이 활발하게 이루어졌다.
주요 논점
에이전트 런타임은 반드시 결정론적 재현이 가능하도록 설계되어야 하며, 이는 디버깅과 복잡한 워크플로우 제어의 핵심이다.
Anthropic의 Managed Agents는 편리하지만 폐쇄적이며 데이터가 외부로 흐르는 제약이 있어, castor-server 같은 대안이 필요하다.
합의점 vs 논쟁점
합의점
- 공식 SDK의 추상화 계층이 실제 프로토콜의 기능을 가릴 수 있다는 점에 동의함
- 에이전트 실행 중 상태 변이(Mutation)를 피해야 재현 가능성이 보장된다는 점에 동의함
논쟁점
- 실제 프로덕션 환경에서 결정론적 런타임을 유지하기 위한 성능 오버헤드와 구현 복잡도에 대한 우려
실용적 조언
- Anthropic Managed Agents 사용 시 이벤트가 수신되지 않는다면 SDK 대신 직접 HTTP 스트리밍을 구현하여 테스트할 것
- 에이전트의 대화 기록을 수정해야 할 경우 원본 메시지 리스트를 건드리지 말고 별도의 상태 채널을 활용할 것
- LiteLLM을 활용하여 Anthropic 전용 API를 다른 LLM 제공자로 전환하여 비용과 유연성을 확보할 것
섹션별 상세
async def handle_user_message(db, ...):
# ... logic ...
# FastAPI route
@app.post("/message")
async def post_message(request: Request, db: Session = Depends(get_db)):
asyncio.create_task(handle_user_message(db, ...)) # Bug: session closed when request returns
return {"status": "ok"}FastAPI에서 요청 스코프의 DB 세션을 백그라운드 태스크로 전달할 때 발생하는 세션 종료 버그 예시
용어 해설
- Managed Agents
- — Anthropic이 제공하는 HTTP 서비스로, 에이전트의 생성, 실행, 도구 호출 및 인간 개입(HITL) 과정을 API 뒤로 캡슐화하여 관리하는 기능이다. 에이전트의 생명주기를 직접 관리할 필요 없이 세션 단위로 제어할 수 있게 해준다.
- Deterministic Replay
- — 에이전트의 실행 과정을 시스템 호출(syscall) 단위로 기록하여, 동일한 입력과 환경에서 항상 똑같은 상태로 복구하거나 재실행할 수 있게 하는 기술이다. 에이전트가 중단된 지점부터 정확히 다시 시작하거나 과거 시점으로 되돌아가는 기능을 구현하는 데 필수적이다.
- HITL (Human-In-The-Loop)
- — AI 에이전트가 작업을 수행하는 도중 중요한 결정이나 도구 실행 전에 인간의 승인이나 수정을 거치도록 설계된 워크플로우이다. 에이전트의 자율적 오류를 방지하고 안전성을 높이는 핵심 메커니즘이다.
- Wire Compatibility
- — 네트워크를 통해 전송되는 데이터의 형식(바이트 수준)이 일치하여, 특정 SDK를 사용하지 않더라도 동일한 API 엔드포인트와 통신할 수 있는 상태를 의미한다. 이는 공식 라이브러리의 버그나 제약에서 벗어나 독립적인 구현체를 만들 수 있게 한다.
언급된 도구
Anthropic Managed Agents와 와이어 호환되는 오픈소스 에이전트 서버
다양한 LLM 제공자를 통합된 API로 호출하기 위한 라이브러리
에이전트의 Bash 실행을 위한 격리된 Docker 컨테이너 샌드박스
언급된 리소스
AI 요약 · 북마크 · 개인 피드 설정 — 무료
출처 · 인용 안내
인용 시 "요약 출처: AI Trends (aitrends.kr)"를 표기하고, 사실 확인은 원문 보기 기준으로 진행해 주세요. 자세한 기준은 운영 정책을 참고해 주세요.
