PapaCoder Labs

Locale ko · en

AI는 이제 한 명이 아니다: GPT-5.6 Ultra와 에이전트 팀

Published 30 Jul 2026

Summary

GPT-5.6 Ultra의 하위 에이전트와 MCP/A2A 표준을, PapaCoder 에이전트 아키텍처로 초보자가 이해할 수 있게 설명합니다.

AI는 이제 한 명이 아니다: GPT-5.6 Ultra와 '에이전트 팀'이 의미하는 것

한 줄 요약: 2026년 7월, OpenAI의 GPT-5.6 Sol이 Ultra 모드로 여러 하위 에이전트를 동시에 돌리기 시작했습니다. 동시에 업계는 에이전트가 도구·다른 에이전트와 대화하는 표준(MCP, A2A) 을 놓고 움직이고 있습니다. 이 글은 전문 용어를 거의 쓰지 않고, "왜 챗봇 하나가 아니라 팀으로 설계하는가"를 기술적으로 풀어 봅니다.

왜 지금 이 이야기가 중요한가

지난 몇 년, 많은 사람이 AI를 "똑똑한 한 사람" 으로 썼습니다. 질문하면 답을 주고, 코드도 짜 주는 단일 대화창이었죠.

2026년 7월에 공개·확대된 GPT-5.6 시리즈(특히 플래그십 Sol)는 그 그림을 바꿉니다. OpenAI가 소개한 Ultra 모드는 한 번의 요청을 여러 하위 에이전트(subagent) 가 나눠 처리하는 방식입니다. 쉽게 말하면:

보도에 따르면 Terminal-Bench 2.1(에이전트형 코딩·터미널 작업 벤치마크)에서 단일 Sol 대비 Ultra가 더 높은 점수를 기록했다는 숫자가 회자됩니다. 벤치마크 숫자는 벤더·언론 보도에 의존하므로, "항상 더 똑똑하다"의 증거로 단정하지 않는 것이 안전합니다. 중요한 기술적 포인트는 점수 자체가 아니라 구조를 바꿨다는 사실입니다.

같은 시기(7월 중순)에는 Google·Microsoft·Salesforce 등이 에이전트끼리 협력하는 표준(A2A)을 강화하는 움직임이 보도되었고, Anthropic이 시작한 MCP(에이전트가 도구·데이터에 붙는 방식)는 이미 개발 도구 생태계에 깊이 들어와 있습니다. 두 흐름을 한 문장으로 합치면:

AI 제품의 경쟁 축이 "모델이 얼마나 똑똑한가"에서 "일을 어떻게 조직하느냐"로 이동했다.

먼저 용어를 쉽게

초보용 비유
에이전트(Agent)목표를 주고, 도구를 쓰며, 단계를 밟아 일을 끝내는 AI 역할
하위 에이전트(Subagent)큰 일의 일부만 담당하는 전문 역할(조사만, 초안만, 검수만)
오케스트레이션누가 무엇을 어떤 순서로 할지 정하고 결과를 모으는 지휘
컨텍스트 윈도우AI가 한 번에 "책상 위"에 올려두고 볼 수 있는 대화·파일·로그의 양
MCP에이전트가 검색·파일·DB 같은 도구에 안전하게 붙는 플러그 규격
A2A서로 다른 회사/제품의 에이전트끼리 일을 넘기는 규격

핵심: 에이전트 ≠ 챗봇. 챗봇은 대화가 중심이고, 에이전트는 역할·입력·출력·도구·품질 기준이 있는 팀원입니다.

한 명이 오래 일하면 생기는 문제: 컨텍스트 부패

긴 작업을 한 대화에 몰아넣으면, 중간 로그·실패한 시도·도구 출력이 쌓입니다. 나중에는 정작 필요한 정보가 잡음에 묻혀 판단이 흔들립니다. 업계에서는 이를 컨텍스트 로트(context rot) 라고 부르기도 합니다.

Ultra 모드의 설계 아이디어(그리고 Cursor 같은 도구에서 사람이 직접 쓰는 패턴)는 같습니다.

  1. 일을 역할 단위로 쪼갠다
  2. 각 역할은 자기 책상(컨텍스트) 만 본다
  3. 위로는 요약된 결과만 올린다

Wire Blog 등의 분석이 강조하듯, Ultra는 이 격리를 모델 안(가중치/모드) 에서 자동으로 하려는 시도입니다. 프레임워크로 직접 짤 때의 "통제력"과, 모델이 알아서 쪼갤 때의 "편의"가 교환됩니다.

PapaCoder Labs가 그리는 '에이전트 팀' (스펙 11)

PapaCoder Labs의 specs/11-agent-architecture.md 관점은 Ultra 뉴스와 잘 맞습니다. 우리는 거대 단일 프롬프트를 거부하고, 조직을 셋으로 나눕니다.

Platform Intelligence (오케스트레이션)
        │
        ├── Development Team  — 플랫폼을 짓는다
        └── Editorial Team    — 미디어를 운영한다

편집팀만 봐도 역할이 분리되어 있습니다.

에이전트하는 일 (한 줄)
Editor-in-Chief주제·각도·독자·톤 승인
Trend / Research뉴스·출처 수집·교차 검증
Writer원문 분석 초안 (단순 번역·복붙 금지)
Reviewer / Fact Checker문체·구조 / 사실·링크 게이트
SEO Optimizer검색·AI 검색용 메타
Publisher (사람 승인)초안 저장 후 사람이 발행

그리고 계약 규칙이 있습니다.

이 구조는 Ultra가 모델 안에서 하는 "임시 팀"과 방향이 같습니다. 차이는 PapaCoder가 관측 가능하고, 감사 가능하며, 사람이 최종 발행을 쥐는 팀을 코드로 고정한다는 점입니다.

이전 방식과 비교

방식오케스트레이션이 사는 곳장점대가
단일 긴 대화없음(한 줄기로)단순컨텍스트 부패, 역할 혼선
프레임워크 하위 에이전트여러분 코드경계·권한·핸드오프를 직접 설계구현·운영 비용
Ultra(모델 내 하위 에이전트)모델 모드격리·병렬을 자동으로핸드오프가 불투명, 토큰 비용 배수
PapaCoder형 DAG 팀워크플로 + 카드 + 게이트품질·감사·사람 승인파이프라인 설계가 필요

A2A vs MCP 헤드라인은 종종 "전쟁"처럼 보이지만, 기술적으로는 층이 다릅니다.

실무에서는 둘 다 쓸 가능성이 큽니다. "하나만 고르면 된다"는 단순화는 경계하세요.

코드로 보는 '팀 계약' (개념 예제)

아래는 실제 OpenAI Ultra API가 아니라, 스펙 11이 말하는 에이전트 계약을 TypeScript로 단순화한 예시입니다. "자유 문장만 넘기지 말고, 구조화된 산출물을 넘긴다"는 점을 보여 줍니다.

import { z } from "zod";

/** Editor-in-Chief가 내리는 브리프 */
export const EditorialBriefSchema = z.object({
  approvedTopic: z.string(),
  angle: z.string(),
  targetAudience: z.literal("beginner-curious"),
  tone: z.enum(["clear", "analytical", "no-jargon-first"]),
  requiredSections: z.array(z.string()),
  priority: z.enum(["P0", "P1", "P2"]),
});

/** Research가 Writer에게 넘기는 브리프 */
export const ResearchBriefSchema = z.object({
  keyFacts: z.array(
    z.object({
      claim: z.string(),
      sourceUrls: z.array(z.string().url()).min(1),
      confidence: z.enum(["high", "medium", "low"]),
    }),
  ),
  conflictingClaims: z.array(z.string()).default([]),
  gaps: z.array(z.string()).default([]),
});

type EditorialBrief = z.infer<typeof EditorialBriefSchema>;
type ResearchBrief = z.infer<typeof ResearchBriefSchema>;

/** 오케스트레이터: 한 챗봇이 아니라 단계적 핸드오프 */
export async function runEditorialSlice(input: {
  brief: EditorialBrief;
  research: ResearchBrief;
  draftMarkdown: string;
  qualityScore: number;
  accuracyPass: boolean;
}) {
  const brief = EditorialBriefSchema.parse(input.brief);
  const research = ResearchBriefSchema.parse(input.research);

  if (!input.accuracyPass) {
    return { status: "blocked" as const, reason: "accuracy_gate" };
  }
  if (input.qualityScore < 85) {
    return { status: "rewrite" as const, reason: "below_threshold" };
  }

  // 발행은 사람이 한다 — 에이전트는 draft만
  return {
    status: "draft_ready" as const,
    topic: brief.approvedTopic,
    sourceCount: research.keyFacts.length,
  };
}

초보자가 가져갈 한 줄: 좋은 AI 팀은 "말 잘하는 모델"보다 "넘기는 서류 양식"이 먼저입니다.

실무에서 어떻게 쓰면 되나

  1. 한 프롬프트에 다 넣지 마세요. 조사 / 초안 / 검증을 분리하세요.
  2. 사실과 의견을 분리하세요. 벤치마크·가격·출시일은 출처를 붙이고, 해석은 별도 문단으로.
  3. 비용 예산을 잡으세요. 하위 에이전트는 컨텍스트를 여러 개 쓰므로 토큰이 배로 갑니다. Ultra·다중 에이전트는 "항상 ON"이 아니라 난이도 높은 작업용이 합리적입니다.
  4. 권한을 최소로. 검색 에이전트에게 DB 쓰기 권한을 주지 마세요. (스펙 11의 MCP Coordinator / least privilege와 동일)
  5. 사람이 최종 발행. PapaCoder 헌법과 동일: AI는 초안, 발행은 관리자.

뉴질랜드 / 시니어 엔지니어 관점

원격·소규모 팀일수록 "만능 AI 한 명" 유혹이 큽니다. 하지만 프로덕션에서는 재현성·감사·비용이 더 중요합니다.

Cursor에서 바로 적용하기

Cursor는 이미 Task / 하위 에이전트 / MCP로 비슷한 팀을 구성할 수 있습니다. PapaCoder 편집 파이프라인을 로컬에서 흉내 내려면:

  1. 채팅을 기사 하나(슬러그 하나) 에 고정
  2. agents/editorial/editor-in-chief.md 로 브리프 확정
  3. Research → Outline → Writer → Reviewer → Fact Checker 순으로 산출물을 파일/메시지에 구조화
  4. 완성 초안을 Internal API POST /api/internal/drafts 로 올리고
  5. Admin에서 사람이 Publish

예시 지시문(복붙용):

You are Editor-in-Chief. Audience: beginners.
Angle: explain GPT-5.6 Ultra subagents via PapaCoder agent-team architecture (specs/11).
Emit EditorialBrief JSON only, then stop.

그다음 Writer에게:

Write original analytical Markdown for beginners.
Must include: why it matters, comparison, code example, practical use,
NZ/senior perspective, Cursor usage, Sources, FAQ.
No bare news repost. Flag unverified benchmark claims.

FAQ

Q. Ultra 모드를 켜면 항상 결과가 좋아지나요?
A. 아니요. 잘 쪼개지는 병렬 작업에 유리하고, 서로 강하게 얽힌 작업은 조율 비용·토큰만 늘 수 있습니다.

Q. MCP와 A2A 중 무엇을 배워야 하나요?
A. 도구 연동부터면 MCP부터. 서로 다른 에이전트 간 핸드오프가 필요해지면 A2A를 추가하세요. 보통은 대체재가 아니라 층이 다릅니다.

Q. 우리 팀도 OpenAI Ultra가 필요한가요?
A. 먼저 역할 분리·품질 게이트·사람 승인을 갖추세요. 모델 모드보다 조직 설계가 ROI가 큰 경우가 많습니다.

Q. PapaCoder는 AI가 글을 알아서 발행하나요?
A. 아니요. 초안은 에이전트, 발행은 관리자입니다.

Sources

GPT-5.6 Ultra와 AI 에이전트 팀 구조 쉽게 이해하기 · PapaCoder Labs