서론
2026년 6월, Anthropic (Claude Fable 5), OpenAI (GPT-5.6), Google (Gemini Omni / 3.5)가 잇따라 '자율 에이전트 (Autonomous Agent)' 기능을 구현했습니다. 특히 Google은 Gemini API 상에서 Managed Agents (격리된 Linux 샌드박스에서 동작하며 상태를 유지하는 자율 에이전트)를 퍼블릭 프리뷰로 공개하고 있습니다.
본 기사에서는 '에이전트'를 직접 구축할 때의 최소 구성을 Python 의사 코드(Pseudo-code)로 정리합니다. 각 사의 SDK는 버전에 따라 차이가 있으므로, 여기서는 **프로바이더 비의존적 설계 패턴 (Provider-agnostic design pattern)**으로 읽어주시기 바랍니다.
에이전트의 최소 루프
자율 에이전트의 본질은 '관측 → 사고 → 행동 → 관측...'의 루프입니다. 채팅과의 차이점은 도구 실행 (Tool execution)을 인간을 거치지 않고 수행한다는 점에 있습니다.
from dataclasses import dataclass, field
from typing import Callable
@dataclass
...
도구 정의의 예
에이전트에게 전달하는 도구는 '이름 · 설명 · 실행 함수'의 3종 세트면 충분합니다. 설명문이 그대로 LLM으로의 프롬프트 (Prompt)가 되기 때문에, 간결하고 모호함이 없는 기술이 품질을 좌우합니다.
def web_search(args: dict) -> str:
q = args.get("query", "")
return f"[검색 결과 더미] query={q}"
...
안전하게 자율 주행시키기 위한 3원칙
Claude Fable 5가 공개 3일 만에 수출 규제를 받은 사실이 보여주듯, 에이전트의 '자율성'은 강력한 만큼 리스크도 따릅니다. 개인 개발에서도 다음 사항은 최소한으로 지켜야 합니다.
- max_steps와 timeout을 반드시 설정할 것 (폭주 및 비용 폭발 방지)
- 쓰기 계열 도구 (전송 · 결제 · 삭제)는 승인 게이트 (Approval gate)를 거칠 것
- 샌드박스 (Sandbox) 내에서 실행할 것 (Gemini의 Managed Agents가 격리된 Linux 환경을 채택하고 있는 것과 동일한 사상)
WRITE_TOOLS = {"send_email", "post_tweet", "delete_file"}
def guarded_run(tool, args, approve):
if tool.name in WRITE_TOOLS and not approve(tool.name, args):
...
요약
- 2026년 6월, Claude · GPT · Gemini가 모두 에이전트 노선으로 합류.
- 에이전트의 핵심은 '관측 → 사고 → 행동'의 자율 루프.
- 강력함의 반대 급부로서,
max_steps / 승인 게이트 / 샌드박스는 필수.
각 사의 Managed Agents 계열 API는 이 설계를 '매니지드 (Managed)' 형태로 제공해 주는 것이므로, 먼저 최소 루프를 직접 만들어 구조를 이해해 두면 API의 추상화 (Abstraction)가 무엇을 대신 처리해 주고 있는지 깊이 이해할 수 있습니다.
본 기사는 2026년 6월 시점의 공개 정보에 기반한 설계 패턴 해설입니다. 실제 API의 파라미터는 각 사의 공식 문서를 참조하십시오.
### Discussion
