Codex 공식문서 — 핵심 개념

한 줄 요약

OpenAI Codex 공식문서가 말하는 “코딩 에이전트”는 LLM 본체를 둘러싼 운영 골격(하네스) 위에서 돌아가며, 그 골격은 컨텍스트·툴·가드레일·검증이라는 4개 기둥으로 짜여 있다. 왜 배우나 — 같은 모델이라도 이 4기둥을 어떻게 설계하느냐에 따라 결과 품질·안전성·재현성이 크게 달라지기 때문이다.

하네스란?

“하네스(harness)“는 LLM 본체를 둘러싸고 실제로 일을 시키는 운영 골격을 말한다. 마구(馬具)처럼 모델이라는 말(馬)에 씌워 방향을 잡아주는 장치라고 보면 된다. 더 큰 그림은 하네스엔지니어링이란, 용어가 막히면 용어집을 함께 본다.


그림

flowchart TB
    subgraph H["하네스 4기둥 (LLM 본체를 둘러싼 운영 골격)"]
        direction LR
        C["① 컨텍스트<br/>일 시키기 전에<br/>쥐여줄 배경·기억"]
        T["② 툴<br/>외부 세계에<br/>손 뻗는 통로"]
        G["③ 가드레일<br/>넘지 말 선과<br/>멈춤 장치"]
        V["④ 검증<br/>한 일이 맞는지<br/>확인·되돌리기"]
    end
    LLM(["AI 모델 본체"]) --> H
    C --> 작업["에이전트 작업 실행"]
    T --> 작업
    G --> 작업
    V --> 작업
    작업 --> 결과(["검증된 결과물"])
flowchart LR
    A["① AGENTS.md<br/>(기초)"] --> B["② Skills/Plugins<br/>(골조)"]
    B --> Cc["③ MCP<br/>(배관)"]
    Cc --> D["④ Subagents<br/>(인테리어)"]
    A -.->|"맞춤화 권장 빌드 순서<br/>각 층은 경쟁 아닌 보완"| D

쉽게 풀기

새 직원(에이전트)에게 일을 맡긴다고 상상해 보자. 일을 잘 시키려면 네 가지가 필요하다. 이것이 곧 하네스 4기둥이다.

  1. 컨텍스트 — 일 시작 전에 쥐여주는 배경지식과 기억.

    • 신입에게 매번 말로 설명하는 대신 책상에 업무 수칙을 붙여두는 것과 같다.
    • 여기에 들어가는 도구들: 프로젝트 설명서(AGENTS.md), 전역/저장소를 층층이 겹치는 계층형 가이드, 지난 대화를 회상하는 Memories, 의뢰서 역할의 프롬프트, 그리고 맞춤화를 쌓는 권장 순서(Customization 4층).
  2. 툴 — 에이전트가 바깥 세계에 손을 뻗는 통로.

    • 직원이 전화·이메일·결재 시스템을 써야 일이 되듯, 에이전트도 파일을 고치고 명령을 실행하고 외부 서비스에 접속해야 한다.
    • 여기에 들어가는 것들: 재사용 워크플로(Skills), 외부 도구 연결 표준(MCP), 잡무를 위임받는 Subagents, 같은 에이전트를 여러 환경에서 부르는 실행 면(App/IDE/CLI/Cloud), 대화창 없이 자동 호출하는 Non-interactive 모드.
  3. 가드레일 — 넘지 말아야 할 선과, 넘으려 할 때 멈추는 장치.

    • 아이를 놀이터 안에서는 마음껏 뛰게 하되 도로로는 못 나가게 막는 울타리와 같다.
    • 여기에 들어가는 것들: 기술적 경계인 Sandbox, 언제 사람에게 물을지 정하는 Approval Policy, 검토자 에이전트가 대신 판단하는 Auto-review, 명령 단위 예외 규칙(Rules), 권한 묶음(Permissions), 그리고 이들을 합친 종합 보안 운영 모델.
  4. 검증 — 한 일이 진짜 맞는지 확인하고, 틀리면 되돌리는 절차.

    • 수술 전후 사진을 찍어두고 잘못되면 원상복구하는 안전망과 같다.
    • 여기에 들어가는 것들: 동작 시점마다 스크립트를 끼우는 Hooks, 스냅샷·diff 검토(Git 체크포인트/Review), 반복·검증 루프(Workflows), 시행착오로 정립된 Best Practices.

마지막으로 어느 기둥에도 딱 속하지 않고 전 기둥을 받치는 받침 개념이 둘 있다 — 기본값을 저장하는 설정 파일(Config)과, 두뇌의 성능 등급을 고르는 Models다.


핵심 정리

① 컨텍스트 — 일 시키기 전에 무엇을 쥐여줄 것인가

개념한 줄 정의핵심 포인트
AGENTS.md작업 시작 전 항상 먼저 읽는 프로젝트 설명서작게 유지·반복 실수의 교훈을 추가(피드백 루프)
계층형 가이드전역(~/.codex/AGENTS.md)+저장소를 층층이 겹침작업 폴더에 가까운 파일이 우선
Memories선호·관례·함정을 로컬 저장해 다음 작업으로 회상기본 꺼짐·보조 회상용·비밀정보 금지
Prompting”무엇을 원하는지” 전달하는 사용자 메시지의도·범위·맥락이 명확할수록 결과 좋음
Customization 4층맞춤화 권장 빌드 순서AGENTS.md → Skills/Plugins → MCP → Subagents

꼭 지켜야 할 규칙은 어디에?

“반드시 지켜야 할 규칙”은 Memories가 아니라 AGENTS.md/문서에 둔다. Memories는 어디까지나 보조 회상 계층이며 기본 꺼짐 상태, 일부 지역에서는 제공되지 않는다.

② 툴 — 에이전트가 세계에 손을 뻗는 통로

개념한 줄 정의핵심 포인트
Skills반복 작업을 SKILL.md 한 묶음으로 포장한 재사용 워크플로점진적 공개로 컨텍스트 낭비 방지
MCPCodex를 외부 도구·데이터로 잇는 표준 규격Host─Client─Server 구조
Subagents노이즈·전문 작업을 위임하는 보조 에이전트본 에이전트의 집중 보호
실행 면(Surface)App/IDE/CLI/Cloud 등 여러 진입점같은 에이전트를 어디서든 동일하게
Non-interactivecodex exec로 스크립트·CI에서 자동 호출기본 읽기전용·최소 권한만 부여

MCP 서버가 노출하는 3가지

  • Tools — 에이전트가 수행할 수 있는 행동
  • Resources — 에이전트가 읽을 수 있는 데이터
  • Prompts — 재사용 가능한 템플릿

③ 가드레일 — 넘지 말 선과 멈춤 장치

개념한 줄 정의핵심 포인트
Sandbox수정 범위·네트워크를 가두는 기술적 경계승인 피로(approval fatigue) 감소
Approval Policy언제 멈춰 사람에게 물을지 정하는 규칙샌드박스와 별개의 두 통제
Auto-review승인 요청을 검토자 에이전트가 판단권한 확장 아님·경계는 그대로
Rules샌드박스 밖 명령 접두사 허용/확인/금지위험 명령 끼워넣기 분해
Permissions접근 범위를 묶은 권한 프로파일(베타)작업별 자율성 등급 선택
보안 운영 모델위 통제들을 결합한 종합 원칙조직 차원 강제 가능
  • Sandbox 모드 3종 구분: read-only / workspace-write(기본) / danger-full-access
  • Approval Policy 3종 구분: untrusted / on-request / never
  • 샌드박스(경계 자체)와 승인정책(경계 넘을 때 멈출지)은 함께 작동하는 별개의 통제라는 점 이해

④ 검증 — 한 일이 진짜 맞는지 확인·되돌리기

개념한 줄 정의핵심 포인트
Hooks동작 특정 시점에 내 스크립트를 끼우는 확장유출 차단·검증 실행·로깅·메모리 요약
Git 체크포인트/Review작업 전후 스냅샷+diff 사람 검토언제든 원상복구 가능
Workflows작게 쪼개 테스트·리뷰로 반복 검증스스로 점검하며 전진
Best Practices시행착오로 정립된 운영 권장 원칙명확한 지시·작은 단위·검증 가능한 정지조건

Hooks 시점 예시

PreToolUse, PostToolUse, UserPromptSubmit, Stop, SessionStart, SubagentStart — 도구 사용 전후·턴 종료·세션/서브에이전트 시작 등에 끼워 넣는다.

⑤ 받침 개념 (전 기둥 공통)

개념한 줄 정의핵심 포인트
Config (config.toml)기본 동작값을 저장하는 로컬 설정·우선순위 체계매번 손으로 안 맞춰도 됨
Models작업 난이도·속도에 맞춰 두뇌 성능 등급 선택신입 vs 베테랑 고르기

실제 예시

컨텍스트 — AGENTS.md 한 장으로 규칙 물려주기

<!-- 파일경로: <저장소루트>/AGENTS.md -->
# 이 저장소에서 일하는 법
- 빌드: `npm run build` (반드시 통과 후 커밋)
- 테스트: `npm test` — 실패 시 절대 머지 금지
- 리뷰 기준: 함수당 50줄 이하, 주석은 "왜"만
- 폴더 관례: src/ 비즈니스 로직, scripts/ 일회성 도구
 
<!-- 같은 실수가 반복되면 그 교훈을 여기에 추가해 다음 세션이 물려받게 한다 -->

가드레일 — config.toml로 기본 동작값 고정

# 파일경로: ~/.codex/config.toml
# 샌드박스(경계)와 승인정책(멈춤)은 별개의 두 통제
sandbox_mode   = "workspace-write"   # 작업폴더 내 수정만 허용(기본값)
approval_policy = "on-request"        # 경계를 넘을 때만 사람에게 물음

툴 — Non-interactive 모드로 CI에서 자동 호출

# CI 파이프라인에서 대화창 없이 에이전트 실행, 결과만 표준출력으로 받음
# 기본은 읽기전용 샌드박스 — 자동화엔 "필요한 최소 권한"만 부여한다
codex exec "변경된 파일의 타입 에러를 모두 고쳐라" \
  --sandbox workspace-write

요약 & 셀프체크

3줄 요약

  1. Codex 하네스는 컨텍스트·툴·가드레일·검증의 4기둥으로 짜이며, Config·Models가 이를 받친다.
  2. 가드레일에서 핵심은 “샌드박스(경계)“와 “승인정책(멈춤)“이 별개의 두 통제로 함께 작동한다는 점이다.
  3. 규칙은 AGENTS.md/문서에, 회상은 Memories에 — 역할을 섞지 않는 것이 운영 안정성의 출발점이다.

스스로 답해보기

  • 같은 명령이 누군가에겐 막히고 누군가에겐 통과된다면, 샌드박스와 승인정책 중 무엇을 먼저 점검해야 할까?
  • “반드시 지켜야 할 규칙”을 Memories에 넣으면 안 되는 이유는?
  • Customization 4층(AGENTS.md → Skills/Plugins → MCP → Subagents)을 순서대로 쌓는 이유를 집 짓기에 빗대 설명할 수 있는가?

연결

하네스엔지니어링이란 · 용어집


Codex 원문 교차검증 — 수집범위 / 누락

  • 저장한 원문 파일 수: 25개 (_원문아카이브/codex/ 하위, 모두 공식 .md 원문 엔드포인트에서 수집해 내비게이션 잡음 없이 본문만 확보).
  • 저장 목록: overview, quickstart, best-practices, prompting, customization, agents-md, memories, sandboxing, auto-review, subagents-concept, workflows, agent-approvals-security, permissions, rules, hooks, skills, subagents, mcp, config-basic, config-reference, config-advanced, cli-reference, noninteractive, models, glossary.
  • 의도적으로 제외한 영역(하네스/에이전틱 엔지니어링 핵심에서 벗어나 우선순위가 낮음):
    • 플랫폼·UI 운영 디테일: App/IDE 개별 settings·commands·troubleshooting, Windows/Chrome 확장, In-app browser, Appshots, Computer Use.
    • 도메인 use-cases 다수(Figma→코드, RNA-seq, 단백질 폴딩, 받은편지함 관리 등 약 25+건) — 응용 예시라 개념 도출엔 불필요.
    • 결제·조직 운영: pricing, enterprise(admin-setup/governance/managed-config), auth/access-tokens, CI/CD auth, Amazon Bedrock 배포.
    • 통합·배포 채널: GitHub/Slack/Linear integrations, github-action, sdk, app-server, sites, plugins/build, security 플러그인·threat-model.
    • 기타: changelog, videos, migrate, environment-variables, config-sample(=reference로 대체), feature-maturity, open-source, remote-connections, speed.
  • 비고: config-advancedconfig-reference는 분량이 커서(각 45KB/70KB) 원문은 보관하되, 개념 노트에서는 “Config 계층” 한 항목으로 압축.

출처(공식문서 엔드포인트)