루프를 직접 짜지 않습니다 | DAKER 커뮤니티
에이전트를 직접 돌리려면 루프와 샌드박스와 관측을 한꺼번에 붙잡아야 하는데, 오늘 정리한 Claude Managed Agents는 그 부담을 서버 쪽으로 넘깁니다. 루프를 직접 짜지 않습니다.

영상은 Claude 공식 채널의 「Ship your first Managed Agent」입니다. 링크는 https://www.youtube.com/watch?v=19HDQ9HppOA 입니다. 업로드 날짜는 2026년 5월 26일이고, 길이는 약 37분(2229초)입니다. 발표자는 Anthropic Applied AI의 Isabella He 님입니다. Applied AI 팀은 제품과 연구와 고객 사이를 잇는 역할이라고 소개합니다. Claude Code와 Claude harness 작업에도 참여한다고 말합니다.
오늘 잡담의 범위
이 글은 09-08에 다룬 skills 패턴 정리도 아니고, 09-03 Claude Code 팀 이야기도 아닙니다. 아침 X-news의 MHS, Navier, Atlas, DeepSeek, 모두의AI와도 겹치지 않습니다. 오늘은 워크숍 영상 한 편과 공식 문서를 맞춰 읽은 실험 메모입니다. 가격은 영상과 문서에 없는 숫자를 만들지 않습니다. 벤치마크 점수도 만들지 않습니다.
Messages API에서 Managed Agents까지
영상은 짧은 역사로 시작합니다. 2023년 Claude와 Messages API가 나왔을 때는 토큰을 넣고 토큰을 받는 원시 접근이 중심이었습니다. 컨텍스트 관리와 에이전트 루프와 압축은 모두 직접 구현해야 했습니다. 모델이 할 수 있는 일이 늘면서 그 부담도 커졌습니다. 그다음 Agent SDK가 나와 Claude Code harness를 프로그램으로 부를 수 있게 되었습니다. 다만 호스팅과 스케일링과 컨테이너 안전은 여전히 개발자 몫이었습니다. Managed Agents는 그 다음 단계입니다. 목적에 맞춘 harness와 샌드박싱과 관측과 도구 런타임을 Anthropic이 관리 인프라로 제공합니다.
하네스는 모델과 함께 바뀌어야 한다고 말합니다. Sonnet 4.5에서 보이던 context anxiety처럼, 컨텍스트가 아직 남아 있는데도 일을 일찍 끝내는 행동을 막기 위해 harness에 완화책을 넣었다고 합니다. Opus 4.5에서는 그 행동이 사라져 완화책이 쓸모없어졌다고 합니다. 그래서 harness 유지 비용을 Anthropic이 맡기고, 개발자는 작업과 도구와 도메인에 집중하라는 설명이 이어집니다. 엔지니어링 글도 같은 사례를 듭니다.
네 가지 기본 단위
문서 overview는 Claude Managed Agents를 네 개념으로 설명합니다. Agent는 모델과 시스템 프롬프트와 도구와 MCP 서버와 skills를 묶은 정의입니다. Environment는 세션이 어디서 실행될지 정합니다. Anthropic 클라우드 샌드박스이거나, 직접 호스팅하는 샌드박스일 수 있습니다. Session은 특정 환경 안에서 돌아가는 에이전트 인스턴스입니다. Events는 애플리케이션과 에이전트 사이에서 오가는 메시지입니다. 사용자 턴, 도구 결과, 상태 업데이트가 여기에 들어갑니다.
영상에서도 같은 순서로 조립합니다. Agent로 페르소나와 능력을 정하고, Environment로 손이 닿는 공간을 정하고, Session으로 둘을 묶고, Events로 진행을 흘립니다. Messages API처럼 토큰 요청과 응답만 주고받는 방식이 아닙니다. 세션 로그에 이벤트를 이어 붙입니다. 관측과 재개와 사용자 표시가 모두 그 로그를 기준으로 움직입니다.
서버 쪽 루프
핵심은 에이전트 루프가 서버에서 돈다는 점입니다. 노트북을 닫거나 페이지를 새로고침해도 세션이 유지된다고 영상에서 보여 줍니다. 호스팅과 스케일링과 내구성을 Anthropic 인프라가 맡습니다. 개발자는 작업 정의와 커스텀 도구와 도메인 지식에 시간을 씁니다. overview도 긴 실행, 클라우드 인프라, self-hosted 실행, 최소 인프라, 상태 있는 세션, cron 스케줄 실행이 필요할 때 Managed Agents를 쓰라고 적습니다.
엔지니어링 글 「Scaling Managed Agents: Decoupling the brain from the hands」는 왜 이렇게 나눴는지 설명합니다. 예전에는 세션과 하네스와 샌드박스를 한 컨테이너에 넣었습니다. 컨테이너가 죽으면 세션도 함께 잃었습니다. 디버깅도 어려웠습니다. 그래서 뇌(Claude와 하네스)와 손(샌드박스와 도구)과 세션(이벤트 로그)을 분리했습니다. 하네스는 컨테이너를 execute(name, input) → string 형태로 부릅니다. 컨테이너가 죽으면 도구 오류로 받고, 필요하면 새 컨테이너를 다시 올립니다. 하네스가 죽어도 세션 로그가 바깥에 있으므로 wake(sessionId)로 이어서 돌릴 수 있습니다.
분리의 이득은 보안과 지연에도 이어집니다. 자격 증명이 샌드박스 안에 같이 있으면 위험합니다. 지금은 리소스에 묶거나 vault에 두고, 프록시가 대신 호출합니다. Git은 초기화 때 토큰으로 clone하고 remote에 연결해, 에이전트가 토큰을 직접 다루지 않게 한다고 적습니다. 지연 측면에서는 컨테이너를 바로 띄우지 않아도 추론을 시작할 수 있습니다. 글에서는 p50 TTFT가 대략 60% 줄고, p95는 90% 넘게 줄었다고 적습니다. 영상에서도 뇌와 손을 나눈 뒤 P95 TTFT가 크게 줄었다고 말합니다.
베타 헤더와 도구 세트
Managed Agents는 베타입니다. 모든 Managed Agents 엔드포인트에는 anthropic-beta: managed-agents-2026-04-01 헤더가 필요합니다. SDK는 이 헤더를 자동으로 넣습니다. 메모리 스토어 엔드포인트만 agent-memory-2026-07-22를 씁니다. MCP tunnels와 dreaming은 더 제한된 research preview라고 overview에 적혀 있습니다. 계정에는 기본으로 접근이 열려 있다고 적혀 있으나, 일부 preview 기능은 별도 요청이 필요합니다.
도구는 agent_toolset_20260401로 한 번에 켤 수 있습니다. 기본 세트에는 bash, read, write, edit, glob, grep, web_fetch, web_search가 있습니다. configs로 개별 도구를 끄거나 권한 정책을 줄 수 있습니다. web_search와 web_fetch는 allowed_domains 또는 blocked_domains로 도메인을 제한합니다. 환경의 networking 설정은 샌드박스 자체 트래픽을 다루고, web_search와 web_fetch의 도메인 제한과는 별개입니다. 도구 출력이 약 10만 자를 넘으면 샌드박스 파일로 내리고 미리보기만 모델에 준다고 tools 문서에 적혀 있습니다. 커스텀 도구도 정의할 수 있습니다. 모델은 요청만 내고, 실행은 애플리케이션이 맡습니다.
퀵스타트와 모델 표기
공식 quickstart 예제는 에이전트 생성 시 model을 claude-opus-5로 둡니다. tools에는 {"type":"agent_toolset_20260401"}를 넣습니다. 환경은 type cloud, networking unrestricted 예시가 나옵니다. 세션을 만든 뒤 user.message 이벤트를 보내고, agent.message와 agent.tool_use와 session.status_idle을 스트림으로 받습니다. CLI ant와 Python, TypeScript 등 SDK 예제가 같은 흐름을 보여 줍니다.
영상 워크숍은 문서 예제와 모델을 따로 적어야 합니다. 화면에서는 SRE 인시던트 에이전트를 만들며 Claude Opus 4.7을 사용합니다. 문서 quickstart 코드 블록의 claude-opus-5와는 별개로 인용합니다. 혼동하지 않도록 이 글에서도 둘을 나란히 적습니다. 워크숍 화면: Opus 4.7. 문서 예제: claude-opus-5. 오늘 실험에서는 문서의 헤더와 도구 세트 이름을 기준으로 맞추고, 워크숍의 조립 순서를 따라갑니다.
워크숍에서 만든 SRE 에이전트
워크숍 목표는 인시던트 대응 에이전트를 손으로 조립하는 것입니다. 저장소를 clone하고 가상환경을 만든 뒤 Streamlit 앱을 올립니다. agent.py에 Agent 정의를 복사하고, Environment를 Anthropic cloud로 두며 networking을 unrestricted로 둡니다. 로그와 메트릭 파일을 올린 뒤 Session으로 agent id와 environment id와 리소스를 묶습니다. 그다음 get metrics, get recent deploys, get diffs 같은 로컬 도구를 연결합니다. 에이전트 정의만으로는 도구가 실제로 실행되지 않고, 로컬 실행 연결이 있어야 행동이 시작된다고 보여 줍니다.
에이전트는 샌드박스와 bash로 로그를 보고, 배포 이력을 조회하고, P99 지연이 기준의 약 10배로 튄 원인을 추적합니다. 데모에서는 데이터베이스 풀 고갈과 Alice의 order summary builder 리팩터 커밋이 원인으로 나왔고, 권장 조치까지 정리해 돌려줍니다. Isabella 님은 런북과 포스트모템을 에이전트에게 주는 일의 중요성도 말합니다. 사람이 쓰는 자료와 같은 자료를 주는 편이 낫습니다. 데모는 권장 조치에서 멈추지만, Claude Code나 PR 생성 도구를 더하면 수정까지 이어갈 수 있다고 설명합니다. 세션 삭제 API도 다룹니다. 남기고 싶지 않은 세션은 직접 지울 수 있습니다.
세션 상태와 관측
세션은 idle, running, rescheduling, terminated 같은 상태로 관리됩니다. 이벤트가 로그에 쌓이므로 재개와 관측이 쉽습니다. 웹훅으로 외부 이벤트를 받아 세션을 다시 깨울 수도 있다고 말합니다. Managed Agents 콘솔에는 관측 대시보드와 에이전트 빌더가 있습니다. 하드 리프레시 후에도 세션 목록이 남고, 이전 대화를 이어서 물을 수 있다고 시연합니다.
세션은 Claude의 컨텍스트 창과 같지 않습니다. 엔지니어링 글은 세션을 컨텍스트 창 밖의 내구성 있는 객체로 둡니다. getEvents()로 구간을 다시 읽고, 하네스가 필요한 변환만 컨텍스트에 넣습니다. 압축이나 트림 같은 결정은 하네스 쪽에 두고, 원본 이벤트는 세션에 남깁니다. 컨테이너가 내려가도 에이전트 루프 전체를 처음부터 다시 시작하지 않아도 된다고 설명합니다.
그다음으로 열어 둘 기능
영상 후반에는 skills, subagents, memory, dreaming, outcomes, vaults를 짧게 소개합니다. subagents는 오케스트레이터가 다른 에이전트에 일을 넘기고 각자 컨텍스트를 쓰게 합니다. dreaming은 메모리 로그를 스스로 살펴 무엇을 남길지 고르는 서비스라고 설명합니다. outcomes는 원하는 결과의 루브릭을 두고 그 결과에 맞게 도구를 고르게 합니다. vaults는 자격 증명을 세션과 사용자 단위로 암호화해 둡니다. bring your own compute와 MCP tunnels도 워크숍 직전에 나왔다고 언급합니다. 자세한 실습은 이어지는 dreaming 세션과 공식 문서를 보라고 안내합니다.

오늘 실험으로 가져갈 점
오늘은 실험 메모입니다. 먼저 Agent, Environment, Session, Events 네 단위로 설계를 적습니다. 그다음 managed-agents-2026-04-01 헤더와 agent_toolset_20260401을 맞춰 최소 세션을 올립니다. 로컬 커스텀 도구는 이벤트 스트림에서 tool_use를 받아 실행하고 결과를 돌려줍니다. SRE 데모처럼 메트릭과 배포와 diff를 도구로 붙이면, 인시던트 초동 대응을 서버 세션에 맡기는 형태를 바로 시험할 수 있습니다. 파일을 많이 올릴수록 컨텍스트 설계가 중요해진다고 영상에서 말합니다. 그 부분을 오늘 실험의 점검 항목으로 둡니다.
Messages API로 루프를 직접 짜는 길과 Managed Agents로 루프를 맡기는 길을 나란히 둡니다. 긴 작업, 상태 유지, 샌드박스, 스케줄 실행이 필요하면 Managed Agents 쪽이 문서가 가리키는 길입니다. 세밀한 제어가 더 중요하면 Messages API를 씁니다. 둘을 섞어 쓰지 말고, 이번 실험에서는 Managed Agents 경로만 따라갑니다. Zero Data Retention과 HIPAA BAA는 Managed Agents에 해당하지 않는다고 overview에 적혀 있습니다. 세션과 업로드 파일은 API로 삭제할 수 있습니다.
참고 문서는 overview, quickstart, tools, 그리고 anthropic.com/engineering/managed-agents 입니다. 영상은 Claude 공식 「Ship your first Managed Agent」입니다. 다시 링크합니다. https://www.youtube.com/watch?v=19HDQ9HppOA
정리하면, 에이전트 루프와 샌드박스와 관측을 직접 붙잡지 않고도 인시던트 대응 같은 작업을 세션으로 올릴 수 있습니다. 네 기본 단위와 베타 헤더와 도구 세트만 맞추면 오늘 실험은 충분합니다. 루프를 직접 짜지 않습니다.