반응형
2026년 4월 14일, Anthropic이 Claude Code Routines를 출시했어요. 3일 뒤인 4월 16일, OpenAI가 Agents SDK를 대규모 업데이트했어요.
타이밍이 우연이 아닌 것 같은 이유:
Claude Code Routines: 노트북 꺼도 클라우드에서 에이전트 실행
OpenAI Agents SDK: 샌드박스에서 에이전트 안전하게 장기 실행
→ 에이전트 인프라 전쟁 시작
뭐가 바뀌었나
기존 Agents SDK의 한계가 있었어요.
기존 문제:
범용 프레임워크 → 유연하지만 GPT 최적화 안 됨
모델 프로바이더 SDK → 모델에 가깝지만 가시성 부족
관리형 에이전트 API → 배포 쉽지만 실행 환경 제한
→ 프로토타입은 쉬운데 프로덕션이 힘들었음
이번 업데이트의 핵심 3가지예요.
1. 네이티브 샌드박스 실행
에이전트가 코드를 실행하고 파일을 다룰 때 격리된 환경에서 안전하게 처리해요.
from agents import Agent, Runner
from agents.sandbox import SandboxConfig
# 샌드박스 설정
sandbox = SandboxConfig(
provider="e2b", # E2B, Cloudflare, Vercel, Blaxel 등
workspace="/workspace",
allowed_tools=["shell", "file_edit", "code_interpreter"]
)
agent = Agent(
name="코드 분석 에이전트",
instructions="""
주어진 코드베이스를 분석하고 버그를 찾아줘.
파일을 읽고, 테스트를 실행하고, 수정 사항을 제안해줘.
""",
sandbox=sandbox
)
# 에이전트가 샌드박스 안에서만 파일 접근, 코드 실행
result = await Runner.run(
agent,
"이 레포지토리에서 보안 취약점 찾아줘",
context={"repo_path": "/workspace/myproject"}
)
지원 샌드박스 프로바이더:
Blaxel - 엔터프라이즈 특화
Cloudflare - 엣지 실행
Daytona - 개발 환경
E2B - 코드 실행 특화
Modal - 서버리스
Runloop - 장기 실행
Vercel - 프론트엔드 통합
2. 새 하네스 — 장기 실행 에이전트
하네스(Harness)는 모델, 툴, 데이터 간의 상호작용을 조율하는 레이어예요.
from agents import Agent, Runner
from agents.harness import HarnessConfig
from agents.memory import SQLiteMemory
# 설정 가능한 메모리
memory = SQLiteMemory(db_path="./agent_memory.db")
# 장기 실행 하네스 설정
harness = HarnessConfig(
memory=memory,
max_turns=200, # 장기 실행 지원
snapshot_interval=10, # 10턴마다 스냅샷
resume_on_failure=True # 실패 시 재개
)
agent = Agent(
name="장기 리서치 에이전트",
instructions="주어진 주제를 깊이 분석해줘",
harness=harness,
tools=[web_search, file_read, code_interpreter]
)
# 중간에 환경이 죽어도 스냅샷에서 재개
result = await Runner.run(
agent,
"GPT-5.4 vs Claude Opus 4.6 성능 비교 분석서 작성해줘"
)
스냅샷과 재개 기능이 핵심이에요.
기존:
에이전트 실행 중 컨테이너 죽으면 → 처음부터 다시
업데이트:
10턴마다 상태 저장 → 죽으면 마지막 체크포인트에서 재개
→ 수십 분짜리 장기 작업 가능
3. 포터블 워크스페이스 — Manifest
로컬에서 개발한 에이전트를 프로덕션에 그대로 올려요.
from agents.manifest import WorkspaceManifest
# 에이전트 워크스페이스 정의
manifest = WorkspaceManifest(
name="data-analysis-agent",
version="1.0.0",
# 마운트할 파일/디렉토리
mounts=[
{"source": "./data", "target": "/workspace/data"},
{"source": "./config", "target": "/workspace/config"}
],
# 출력 디렉토리
outputs=["/workspace/results"],
# 스토리지 연동
storage={
"provider": "aws_s3",
"bucket": "my-agent-outputs",
"prefix": "analysis/"
},
# 의존성
dependencies=["pandas", "numpy", "matplotlib"]
)
# 로컬과 프로덕션 동일한 코드
agent = Agent(
name="데이터 분석",
manifest=manifest,
sandbox_provider="e2b" # 프로덕션에서만 변경
)
이전:
로컬 개발 → 프로덕션 배포 시 환경 재구성 필요
경로, 의존성, 스토리지 연결 전부 다시 설정
이후:
Manifest 한 번 정의 → 로컬, 스테이징, 프로덕션 동일하게 동작
AGENTS.md — 에이전트 커스텀 지시사항
CLAUDE.md처럼 레포지토리 수준의 에이전트 지시사항이에요.
# AGENTS.md
## 프로젝트 컨텍스트
이 레포는 Python 3.11 기반 FastAPI 서버입니다.
테스트는 pytest를 사용합니다.
## 코딩 규칙
- 모든 함수에 타입 힌트 필수
- 에러 처리는 커스텀 Exception 클래스 사용
- 커밋 메시지는 Conventional Commits 형식
## 금지 사항
- 프로덕션 DB 직접 수정 금지
- .env 파일 수정 금지
- main 브랜치 직접 push 금지
## 테스트
새 기능 추가 시 반드시 단위 테스트 작성
커버리지 80% 이상 유지
CLAUDE.md vs AGENTS.md:
Claude Code → CLAUDE.md 읽음
OpenAI Codex/Agents SDK → AGENTS.md 읽음
둘 다 → 각자 읽음 (표준화 진행 중)
실제로 Linux Foundation 산하 Agentic AI Foundation이 두 형식의 통합 표준화를 논의 중이에요.
실전 사용 예시
장기 코드 리뷰 에이전트
from agents import Agent, Runner
from agents.harness import HarnessConfig
from agents.sandbox import SandboxConfig
async def create_code_review_agent():
sandbox = SandboxConfig(provider="e2b")
harness = HarnessConfig(
memory=SQLiteMemory("./reviews.db"),
snapshot_interval=5
)
agent = Agent(
name="코드 리뷰어",
instructions="""
PR을 분석해서 다음을 체크해줘:
1. 보안 취약점 (OWASP Top 10 기준)
2. 성능 병목
3. 테스트 커버리지
4. 코딩 컨벤션
각 이슈마다 심각도(critical/warning/info)와 수정 방법 제시
""",
sandbox=sandbox,
harness=harness,
tools=[read_file, run_tests, search_docs]
)
return agent
# GitHub Action에서 PR 트리거 시 실행
agent = await create_code_review_agent()
review = await Runner.run(
agent,
f"PR #{pr_number} 리뷰해줘",
context={"repo": repo_url, "pr": pr_diff}
)
멀티 에이전트 데이터 파이프라인
from agents import Agent, Runner
# 수집 에이전트
collector = Agent(
name="데이터 수집",
instructions="API에서 데이터 수집하고 정제해줘",
tools=[fetch_api, clean_data]
)
# 분석 에이전트
analyzer = Agent(
name="데이터 분석",
instructions="수집된 데이터를 분석하고 인사이트 도출해줘",
tools=[run_analysis, create_chart]
)
# 보고서 에이전트
reporter = Agent(
name="보고서 작성",
instructions="분석 결과를 경영진 보고서로 작성해줘",
tools=[write_report, send_email]
)
# 핸드오프 체인
collector.add_handoff(analyzer)
analyzer.add_handoff(reporter)
# 실행
result = await Runner.run(
collector,
"지난 달 매출 데이터 분석 보고서 만들어줘"
)
Claude Code Routines vs OpenAI Agents SDK 비교
Claude Code Routines:
→ 출시: 2026년 4월 14일
→ 실행: Anthropic 클라우드 인프라
→ 트리거: 스케줄, API, GitHub 이벤트
→ 설정: 자연어 프롬프트
→ 노트북 불필요: 완전 클라우드 실행
→ 플랜 한도: Pro 5개/일, Max 15개/일
OpenAI Agents SDK:
→ 업데이트: 2026년 4월 16일
→ 실행: 개발자가 선택한 샌드박스
→ 트리거: 코드로 직접 제어
→ 설정: Python 코드 + AGENTS.md
→ 인프라: 직접 관리 또는 프로바이더 선택
→ 요금: API 표준 가격
무엇을 쓸지 기준:
Claude Code Routines:
✅ GitHub 이벤트 기반 자동화
✅ 빠른 설정, 관리 부담 없음
✅ 일일 루틴, 백로그 관리
✅ 비개발자도 설정 가능
OpenAI Agents SDK:
✅ 복잡한 멀티 에이전트 파이프라인
✅ 커스텀 샌드박스 환경 필요
✅ 장기 실행 (수십 분 이상)
✅ 스토리지/인프라 직접 제어 필요
✅ OpenAI 모델 스택 이미 사용 중
반응형
'AI Development' 카테고리의 다른 글
| Spec-Driven Development — Vibe Coding 다음 단계, AI 에이전트 개발 방법론 (1) | 2026.04.17 |
|---|---|
| OpenAI Codex 대규모 업데이트 — 컴퓨터를 대신 써주는 AI 코딩 도구 (0) | 2026.04.17 |
| AI 코딩 툴 보안 실전 — Claude Code 소스 유출 이후 달라진 공격 지형 (0) | 2026.04.16 |
| AI 수익의 74%를 상위 20% 기업이 독식한다 — PwC 2026 AI 성과 연구 (0) | 2026.04.16 |
| Stanford AI Index 2026 핵심 요약 (0) | 2026.04.16 |