Skip to content
← 전체 스펙 문서

에이전트 프로토콜

버전 1.2. 이 프로토콜은 AI 코딩 에이전트가 Deep Work Plan과 함께 일할 때 어떻게 행동해야(MUST) 하는지를 정의합니다. 키워드 MUST, SHOULD, MAY는 RFC 2119를 따릅니다.

v1.2에서 추가. 두 가지 추가, 호환성 변경 없음: (1) 자율 에이전트 플랫폼(OpenClaw, Hermes)이 지원 에이전트 표에 합류; (2) 실행 프로필 절이 무인 실행을 정의 — 제한된 권한, 필수 상태 레이어, 정지 조건, 예약된 계속 실행.

지원 에이전트

이 방법론은 다음 AI 코딩 에이전트를 지원해야(MUST) 합니다. Markdown을 읽고 도구 호출을 실행할 수 있는 미래의 에이전트는 호환성 변경 없이 추가될 수 있습니다(MAY).

에이전트 네이티브 설정 관례 명령 접두사
Claude Code .claude/(.agents/로 심링크됨) /(네이티브 슬래시 명령)
Cursor .cursor/rules/*.mdcAGENTS.md 참조 # 또는 플레인 텍스트
OpenAI Codex .codex/AGENTS.md 참조 # 또는 플레인 텍스트
Google Gemini .gemini/AGENTS.md 참조 # 또는 플레인 텍스트
GitHub Copilot .github/copilot-instructions.mdAGENTS.md 참조 # 또는 플레인 텍스트
Antigravity .antigravity/AGENTS.md 참조 # 또는 플레인 텍스트
OpenClaw 네이티브로 <workspace>/.agents/skills/ 스캔(AgentSkills 표준) 플레인 텍스트
Hermes AgentSkills 표준 스킬 로딩; AGENTS.md 읽음 플레인 텍스트

처음 여섯은 세션에 사람이 있는 대화형 코딩 에이전트입니다. OpenClaw와 Hermes는 자율 에이전트 플랫폼 — 예약된 턴을 가진 장기 실행 데몬 — 이며, 일반적으로 에이전트 작업 공간(참고: 아키타입 §3) 내에서 무인 프로필로 계획을 실행합니다(참고: 실행 프로필).

모든 지원 에이전트는 AGENTS.md를 리포지토리 관례의 단일 진실 공급원으로 취급해야(MUST) 합니다. 에이전트별 설정 파일은 그것을 참조해야(MUST) 하고 내용을 복제해서는 안 됩니다(MUST NOT).

온보딩

계획을 생성하거나 실행하기 전에, 에이전트는 리포지토리에 온보딩해야(MUST) 합니다. 온보딩은 스크립트 기반이 아니라 추론 기반입니다. 에이전트는 리포지토리 구조, 문서, 설정을 읽어 멘탈 모델을 구축합니다.

에이전트는 다음을 식별해야(SHOULD) 합니다.

  • 리포지토리 아키타입(개별 리포지토리, 오케스트레이터 허브, 또는 에이전트 작업 공간).
  • build, test, lint 명령.
  • 스타일, 구조, 명명에 대한 기존 관례.
  • 사용 가능한 스킬과 에이전트.

테스트 및 검증 도구 사슬은 선택적 맥락이 아니라 필수적입니다. 검증 게이트는 신뢰할 수 있는 계획의 중추입니다. 리포지토리가 이미 코드를 검증하는 경우, 에이전트는 그 실제 테스트, lint, 타입 검사 명령과 관례를 기록해야(MUST) 합니다. 리포지토리에 테스트나 lint 도구 사슬이 없는 경우, 에이전트는 단지 그 부재를 언급하는 데 그쳐서는 안 됩니다(MUST NOT) — 스택에 맞는 것을 제안해야(MUST) 합니다(프레임워크와 러너, 테스트 파일 관례, 합리적인 초기 커버리지 목표, 그리고 lint, 타입 검사, 포맷 도구). 이를 테스트 가이드에 목표로 문서화하고, 개발자에게 드러내야 합니다. 자신의 동작을 검증하는 정의된 방법이 없는 리포지토리는 아직 AI-first가 아닙니다.

계획

계획을 생성할 때, 에이전트는 다음을 해야(MUST) 합니다.

  • 목표를 순차적이고 검토 가능한 작업으로 분해합니다.
  • 각 작업을 아홉 절 구조로 작성합니다.
  • 세 개의 필수 최종 작업(보안 검토, 스킬 & 에이전트 발견, 임원 보고서)으로 끝맺습니다.
  • 목표가 모호할 때는 명확히 하는 질문을 합니다.

실행

실행 동안, 에이전트는 다음을 해야(MUST) 합니다.

  • 시작하기 전에 전체 계획을 읽습니다.
  • 의존성이 달리 허용하지 않는 한 작업을 순서대로 실행합니다.
  • 각 작업 후 PROGRESS.md를 갱신합니다.
  • 작업 상태를 정확하게 표시합니다.
  • 새로운 기능을 추가하거나 동작을 변경하는 모든 작업에 대해, 작업을 완료로 표시하기 전에 그 동작에 대한 자동화된 테스트를 추가하거나 갱신하고 리포지토리의 테스트와 lint/타입 검사 검사를 실행합니다. 게이트를 통과시키려고 테스트를 삭제하거나 건너뛰지 않습니다.
  • 인증, 입력 처리, 비밀 값이나 설정, 네트워크 표면, 또는 의존성을 건드리는 모든 작업에 대해, 인수 기준에 선언된 보안 기대치를 충족하고, 커밋하기 전에 diff에 비밀 자료가 없는지 확인합니다.
  • 차단되었을 때는 추측하는 대신 멈추고 질문합니다.

정제

정제할 때, 에이전트는 완료된 작업을 보존하고, 작업 표를 갱신하며, 무엇이 바뀌었는지 기록해야(MUST) 합니다.

재개

재개할 때, 에이전트는 DWP 스펙에 정의된 DWP 재개 프로토콜을 따라야(MUST) 합니다: 계획 README에 재고정하고, 체크포인트를 찾고, state.json을 Markdown과 조정하고, 이음새를 점검하고, 스모크 테스트를 실행한 다음, 정확히 다음 작업으로 계속합니다.

소통

에이전트는 간결하게 보고해야(SHOULD) 합니다. 상태 보고는 완료, 진행 중, 대기 작업을 구분해야(MUST) 합니다.

안전

에이전트는 비밀 값을 커밋해서는 안 되고(MUST NOT), .dwp/를 gitignore된 상태로 유지해야(MUST) 하며, 파괴적인 작업 전에는 질문해야(SHOULD) 합니다. 온보딩은 비파괴적이어야(MUST) 합니다. 에이전트는 기존 파일을 덮어쓰는 대신 감지하고 조정해야(MUST) 하며, 사용자가 이미 가진 것을 교체하거나 삭제하기 전에 명시적인 승인을 받아야(MUST) 합니다.

이 방법론은 Markdown 우선입니다. 네트워크 호출을 하지 않고 원격 측정 데이터도 내보내지 않으며, 에이전트는 소스 코드나 비밀 값을 외부로 유출해서는 안 됩니다(MUST NOT). 스킬을 설치하기 전에 에이전트는 가져온 온보딩 콘텐츠를 신뢰할 수 없는 입력으로 취급하고(SHOULD), 공식 출처로부터의 출처를 확인하며, 공개된 체크섬과 대조하여 해당 릴리스를 검증해야(SHOULD) 합니다.

실행 프로필

모든 계획은 정확히 두 프로필 중 하나로 실행됩니다. 프로필은 누가 지켜보는지를 변경하지, 어떤 게이트가 적용되는지를 변경하지 않습니다 — 검증 규율은 양쪽에서 동일합니다.

대화형 (기본값)

세션에 사람이 있습니다. 에이전트가 제안하고, 사람이 정제된 초안을 승인하며, 에이전트가 작업 단위로 실행하고, 모호함은 질문으로 해결됩니다. 위의 모든 프로토콜 절은 대화형 프로필을 설명합니다.

무인(Unattended)

계획이 사람의 감독 없이 실행됩니다 — 자율 플랫폼의 예약된 턴, 클라우드 세션, 야간 실행. 무인 실행은 계획별로 선택 사항이며 다음 조건을 모두 충족해야(MUST) 합니다.

  • 사전 승인된 계획. 정제된 초안이 무인 턴 전에 사람이 승인했습니다. 에이전트는 한 턴에 계획을 생성하고 무인으로 실행해서는 안 됩니다(MUST NOT); 계획 승인이 사람의 제어 지점입니다.
  • 상태 레이어 REQUIRED. 계획은 manifest.jsonstate.json을 담아야(MUST) 합니다. 그래야 나중의 세션 — 에이전트든 사람이든 — 이 기록을 재생하지 않고 정확한 진행 상황을 읽을 수 있습니다. 참고: 계획 상태.
  • 제한된 권한. 에이전트의 권한은 계획입니다: 범위를 확장해서는 안 되고(MUST NOT), 계획이 명시적으로 승인하지 않은 파괴적이거나 외부를 향하는 작업을 수행해서는 안 되며(MUST NOT), 발견되었지만 계획에 없는 작업을 현재 작업의 지시를 넘어 즉흥적으로 처리해서는 안 됩니다(MUST NOT) — 발견된 작업은 다음 refine을 위해 기록되며, 즉흥적으로 처리되지 않습니다.
  • 턴당 하나의 원자적 작업, 항상 게이트. 각 턴은 DWP 재개 프로토콜을 실행하고, 최대 다음 작업을 실행하며, 검증 게이트를 통과하고, 작업 완료 프로토콜에 따라 완료하고, 양보합니다. 실패하는 게이트는 정지 조건이며, 절대 “어쨌든 계속”이 아닙니다.

정지 조건과 에스컬레이션

무인 에이전트는 다음 중 하나가 발생하면 계획을 중단해야(MUST) 합니다 — state.jsonblocked 필드에 작업, 이유, 필요한 것을 채운 다음 멈춥니다.

  1. 검증 게이트가 실패하고 수정이 작업의 범위 내에 이미 없는 경우.
  2. 작업에 계획이 사전 승인하지 않은 승인, 자격 증명, 또는 결정이 필요한 경우.
  3. 현실이 계획의 가정과 다른 경우(누락된 파일, 변경된 API, 충돌하는 동시 작업, 또는 조정으로 해결할 수 없는 비동기).
  4. 연속 두 턴이 같은 작업에서 검증 가능한 진전을 이루지 못한 경우.

중단은 실패가 아니라 성공입니다: 차단 기록이 에스컬레이션 메시지입니다. 플랫폼의 알림 채널이 그것을 노출해야(SHOULD) 합니다; 사람(또는 refine 세션)이 차단을 해제하면, 다음 예약된 턴이 정상적으로 재개합니다.

예약된 계속 실행

스케줄링이 있는 플랫폼에서 — OpenClaw 하트비트 또는 크론, Hermes 크론, 클라우드 에이전트 깨어남 — 계속 실행은 다음으로 표현되어야(MUST) 합니다: 깨어남 → DWP 재개 프로토콜 실행 → blocked이면 보고하고 양보 → 그렇지 않으면 다음 원자적 작업 실행 → 상태 레이어 갱신 → 양보. 계획이, 세션이 아니라, 연속성의 단위입니다; 계획은 플랫폼 재시작, 모델 변경, 또는 다른 에이전트가 다음 턴을 이어받는 상황에서도 살아남아야(MUST) 합니다.