에이전트 하네스 1주차 강의안
지피터스 23기 · 에이전트 하네스 스터디 1주차
다루는 런타임: Hermes(헤르메스) / OpenClaw(오픈클로)
1주차 목표: 매번 말로 설명하던 반복 업무를, 에이전트가 읽을 수 있는 "업무 설명서(Skill)"로 바꾸기
0. 1주차 배운 것 (전체 지도)
단계
질문
배우는 것
1장
하네스가 뭔데?
하네스의 정의와 4요소 공식
2장
무슨 파일들이 있는데?
설정 문서 지도 (법 비유)
3장
에이전트는 그걸 어떤 순서로 읽어?
컨텍스트 로딩 순서 (8단계)
4장
그 순서는 어떻게 정해져?
3계층(Tier) 구분 기준
5장
파일 말고 다른 정보도 들어와?
거기에 내가 개입할 수 있어?
런타임 정보·세션 메타데이터와 그 통제법
6장
화면 설정은 뭐야?
화면 설정 vs 문서 설정
7장
두 런타임은 뭐가 달라?
Hermes vs OpenClaw 비교
8장
에이전트는 어떻게 기억해?
Memory 기능
9~10장
내 설정이 잘 들어갔는지 어떻게 알아?
Context X-Ray / Document Doctor
11장
그래서 뭘 만들면 돼?
SKILL.md 작성법
12장
이번 주 과제는?
실습 코스와 산출물 체크리스트
1장. 에이전트 하네스란 무엇인가
1-1. 하네스가 무엇인지?
이 지구상에서 어떤 사람(에이전트)에 게 에펠탑을 찾도록 하는 상황을 가정
① 프롬프트 없는 AI 사용(No Prompt)
해당 에이전트를 대한민국 서울에서부터 에펠탑을 찾으라고 하는 것과 같음
② 프롬프트 엔지니어링(Prompt Engineering)
해당 에이전트를 프랑스 파리에 데려다주고 에펠탑을 찾으라고 하는 것과 같음
③ 컨텍스트 엔지니어링(Context Engineering)
해당 에이전트를 프랑스 파리에 데려다주고 에펠탑의 모양(삼각뿔의 철탑)과 종류(송신탑)를 알려주고 에펠탑을 찾으라고 하는 것과 같음
④ 하네스 엔니지어링(Harness Engineering)
해당 에이전트를 프랑스 파리에 데려다주고 에이전트에게 네비게이션을 통해 에펠탑까지 가는 길을 지시해서 어디에서 직진을 하고, 어디에서 좌회전, 우회전을 하면 되는지를 알려주는 것과 같음
1-2. 에이전트는 무엇인지?
Agent는 대리인을 의미하고 바이브 코딩에서는 claude code, codex 등을 가리키기도 하고, 또 claude code에서 그 명령을 실행하는 main agent와 main agent로부터 서브작업을 위임받아 수행하는 subagent를 지칭하는 경우가 있지만, 여기서 agent라 함은 openclaw와 hermes를 의미. 따라서 앞으로 에이전트는 Openclaw와 Hermes 2종류를 전제하여 진행
1-3. 그렇다면 Agent Harness란?
Openclaw의 Harness 방식
Hermes의 Harness 방식
1-4. 따라서 이 스터디(에이전트 하네스)에서는 오픈클로와 헤르메스가 하네스를 어떻게 구축하는지, 그 방식에 대해 알아보는 것이 목적
1-5. Claude code를 쓰면 되는데 왜 Openclaw나 Hermes를 사용할까?
(X) 봇을 만들어서 사람들에게 자랑하려고
(X) 남들이 다 쓰는 claude code보다 있어보여서
(세모) 텔레그램/슬랙 등으로 원격제어가 가능해서
(O) 자체적으로 하네스를 구축하고 있어서
1-6. 한 줄 정의
하네스(Harness) = 에이전트가 내 일을 안정적으로, 반복 가능하게 수행할 수 있도록 묶어놓은 종합 작업 환경.
말(프롬프트) 한 번으로 시키는 것은 "일회성 지시"입니다. 하네스는 그 지시를 환경 자체에 붙박아 두는 것입니다. 그래서 새 세션을 열어도, 다른 사람이 실행해도 같은 결과가 나옵니다.
1-7. 하네스의 4요소 공식 ★
누가(SOUL) + 무엇을 알고(CONTEXT / MEMORY) + 무엇으로(TOOLS) + 어떤 순서로(SKILL)
= 하네스(Harness)누가: 에이전트의 성격·말투·가치관
무엇을 알고: 프로젝트 규칙, 사용자 정보, 과거 기억
무엇으로: 사용할 수 있는 도구(웹 검색, 파일 읽기/쓰기, 브라우저 등)
어떤 순서로: 실제 업무를 끝내는 절차(Skill)
이 네 가지 중 하나라도 비어 있으면 에이전트는 "똑똑하지만 매번 다르게 일하는" 상태가 됩니다.
1-8. 꼭 구분해야 할 두 단어: 맥락 vs 기억
맥락(Context)
기억(Memory)
비유
책상 위에 펼쳐놓은 자료
서랍(보관함)에 넣어둔 자료
상태
지금 이 순간 읽고 있음
넣어뒀지만 지금은 안 읽고 있음
언제 쓰나
항상 판단에 영향
필요할 때 꺼내서 맥락에 넣음
예시로 보기 — 3주에 걸친 한 장면
1주차 월요일 — 사용자: "나는 표보다 글머리 기호가 읽기 편해."
→ 에이전트가 이 선호를MEMORY.md에 저장(서랍에 넣음). 이번 대화에서는 더 안 씀.3주차 금요일, 새 세션 — 사용자: "지난달 실적 정리해줘"
🗄️ 서랍에 있던 것: "이 사람은 글머리 기호를 선호한다"
🔍 검색: 이번 요청이 '정리'와 관련 → 관련 기억을 찾아냄
📄 책상 위로 꺼냄: 그 문장이 이번 대화의 맥락에 포함됨
✅ 결과: 시키지도 않았는데 표가 아닌 글머리 기호로 정리해서 제출
만약 기억이 없었다면? 3주차에도 표로 정리해 오고, 사용자는 매번 "글머리 기호로 해줘"를 반복해야 합니다.
🎯 이 반복을 없애는 것이 하네스의 목적입니다. 1주차 내내 하는 일은 결국
"매번 말로 하던 것을 → 파일에 한 번 적어두기"입니다.
이 구분이 1주차 전체의 기초입니다. 뒤에 나오는 X-Ray는 "책상 위"를 찍는 사진이고, Memory는 "서랍"을 관리하는 방법입니다.
2장. 설정 문서 지도 — 법(法)에 비유하기
에이전트의 설정 문서들은 디지털 법전과 같습니다. 각 문서가 어떤 법적 위계를 갖는지 보면 역할이 선명해집니다.
문서
법 비유
담는 내용
SOUL.md
헌법
존재 이유, 가치관, 말투, 성격. "나는 누구인가"
IDENTITY.md
신분증
이름, 역할, 구체적 표현 방식
AGENTS.md
특별법 / 업무 계약서
이 작업공간의 운영 범위, 승인 절차, 완료 기준
TOOLS.md
장비 사용 규정
쓸 수 있는 도구와 명령 관례
USER.md
민법(개인 권리)
사용자의 호칭, 선호, 변하지 않는 사실
MEMORY.md
판례집
과거의 결정, 요약된 지속 정보
HEARTBEAT.md
정기 점검 규정
주기적으로 확인할 항목
BOOTSTRAP.md
개업 신고서
새 작업공간에서만 쓰는 1회성 초기 설정
SKILL.md
업무 매뉴얼(SOP)
특정 업무를 끝내는 구체적 절차
2-1. AGENTS.md와 SKILL.md는 어떻게 다른가
이 둘의 혼동이 가장 많습니다.
AGENTS.md = 무대와 규칙 — "이 폴더에서는 이런 규칙을 지켜라." 작업공간에 있는 내내 항상 적용되는 배경 지침.
SKILL.md = 무대 위의 대본 — "주간 보고서를 쓸 때는 이 순서로 하라." 특정 요청(Trigger)이 들어왔을 때만 활성화되는 절차서.
도구(Tools)가 '손'이라면, Skill은 그 손을 움직이는 '방법'입니다.
실제로 뭐가 달라지나 — 같은 요청, 두 환경
AGENTS.md에 "주간 보고서를 매주 작성한다"는 규칙이 이미 있는 상태에서, 사용자가 똑같이 "주간 보고서 써줘"라고 합니다.
AGENTS.md만 있을 때
SKILL.md까지 있을 때
에이전트의 첫 반응
"어떤 데이터를 볼까요?"
"기간은 어디까지죠?"
"양식은 어떻게 할까요?"
→ 되물음 3회
(질문 없이 바로 실행)
매출 시트 열기 → 전주 대비 계산 → 3줄 요약 → 파일 저장
사용자가 하는 일
매번 3번씩 설명
없음
결과물
매번 형식이 조금씩 다름
매번 같은 절차, 같은 형식
다른 사람이 실행하면
또 다른 결과
같은 결과
규칙(
AGENTS.md)은 "무엇을 지킬지"만 알려줍니다.
"어떻게 할지"는SKILL.md가 없으면 매번 사람이 입으로 채워야 합니다.
→ 1주차에 Skill을 만드는 이유가 정확히 이것입니다.
3장. 컨텍스트 로딩 순서 — 에이전트는 어떤 순서로 읽는가
에이전트가 정보를 읽어오는 순서를 컨텍스트 로딩 순서(Context Loading Order)라고 합니다. 먼저 읽은 정보일수록 사고의 뼈대가 되고, 나중에 읽은 정보는 그 위에서 행동을 미세 조정합니다. 그래서 순서 자체가 곧 우선순위입니다.
두 런타임 모두 8단계지만, 설계 철학이 다릅니다.
3-1. OpenClaw — 파일 기반 "수직적 주입"
정해진 파일들을 위에서 아래로 순서대로 밀어 넣습니다.
단계
파일
역할
01
AGENTS.md
작업공간 운영 기준, 승인 절차
02
SOUL.md
태도와 판단 방향
03
TOOLS.md
도구와 명령 사용 관례
04
IDENTITY.md
이름, 역할, 표현 방식
05
USER.md
호칭, 선호, 안정적 사실
06
HEARTBEAT.md
정기 점검 항목
07
BOOTSTRAP.md
새 작업공간 초기 설정(1회성)
08
MEMORY.md
지속 정보 요약(장기 기억)
특징: 파일명과 역할이 고정되어 있어, 무엇이 언제 영향을 주는지 직관적이고 예측 가능합니다.
"수직적 주입"이 실제로 만드는 결과 — 눈으로 보기
"위에서 아래로 밀어 넣는다"는 말은 비유가 아니라 문자 그대로입니다. 8개 파일의 내용이 순서대로 이어 붙어 한 덩어리의 긴 글이 되고, 에이전트는 그 글 하나를 읽은 상태로 일을 시작합니다.
━━━ 01 AGENTS.md ━━━
외부 전송 전 반드시 승인받는다. 보고서는 3줄 요약.
━━━ 02 SOUL.md ━━━
확실하지 않으면 먼저 묻는다. 과장하지 않는다.
━━━ 03 TOOLS.md ━━━
파일 검색은 rg를 쓴다. 삭제 명령은 사용자에게 확인받는다.
━━━ 04 IDENTITY.md ━━━
나는 리서치 보조 에이전트다.
━━━ 05 USER.md ━━━
사용자 호칭은 "선생님". 표는 간결하게 선호.
━━━ 06 HEARTBEAT.md ━━━
매일 아침 Inbox 폴더 미분류 문서를 점검한다.
━━━ 07 BOOTSTRAP.md ━━━
(새 작업공간일 때만 1회 실행)
━━━ 08 MEMORY.md ━━━
지난주에 1주차 강의안 초안을 작성함.
━━━ 여기서부터 사용자 대화 ━━━
"이 문서 요약해서 팀에 공유해줘"
이 그림에서 바로 읽히는 결과가 세 가지입니다.
① 위에 있는 문장이 아래 문장을 이깁니다 (충돌 시)
01 AGENTS.md: "외부 전송 전 반드시 승인받는다"05 USER.md: "이 사용자는 빠른 처리를 선호한다"
→ 에이전트는 먼저 읽은 승인 규칙을 뼈대로 삼고, 선호는 그 안에서 조정합니다. 결과: 승인은 받되, 승인 요청을 짧고 빠르게 합니다. 승인을 건너뛰지는 않습니다.
② 뒤에 있는 파일은 "규칙"이 아니라 "조정값"으로 작동합니다
같은 문장을 01 AGENTS.md에 쓰면 지켜야 할 기준이 되고, 08 MEMORY.md에 쓰면 참고 정보가 됩니다. → 어느 파일에 쓰느냐가 곧 그 문장의 강도입니다.
③ 파일 하나를 비워두면 그 자리는 그냥 빈칸입니다
04 IDENTITY.md가 없으면 에이전트는 "나는 누구인가"를 모른 채 규칙만 든 상태로 시작합니다. 그래서 말투와 역할이 매번 흔들립니다. → 순서표는 곧 체크리스트이기도 합니다.
한 줄 요약
수직적 주입 = 8개 파일을 순서대로 복사-붙여넣기 해서 만든 한 장짜리 업무 지시서.
위쪽에 쓸수록 "반드시", 아래쪽에 쓸수록 "참고로".
그림 한 장으로: 수직적 주입은 법전 낭독입니다 ★
2장에서 각 문서를 법에 비유했습니다. OpenClaw가 하는 일은 그 법전을 정해진 조문 순서대로 처음부터 낭독하는 것입니다.
폭이 일정하다는 점이 중요합니다. 8개 조문 중 줄어들거나 걸러지는 것은 하나도 없습니다. 전부 그대로 낭독되고, 달라지는 건 읽히는 순서뿐입니다.
📌 이 그림에 안 그려진 것 — 09번째 칸이 하나 더 있습니다
위 8개는 파일만 센 것입니다. 낭독이 끝난 뒤 실행 층(Execution Layer)에서 도구 정의, 도구 실행 결과, 현재 대화가 여기에 결합됩니다. 파일이 아니라서 조문 번호가 없을 뿐, 빠져 있는 게 아닙니다(→ 5장).
Hermes는 같은 정보를 8단계 안에(02·04·05) 번호를 매겨 넣습니다. 차이는 존재 여부가 아니라 배치 위치입니다.
조문 번호 = 우선순위 — 먼저 낭독된 조문이 뒤 조문의 해석 기준이 됩니다.
낭독 순서는 고정 — 오늘도 내일도 01번부터입니다. 그래서 예측 가능합니다.
빠진 조문은 그냥 침묵 —
IDENTITY.md가 없으면 "신분증 없이" 일을 시작합니다.
🔍 여기서 한 번 더 보세요:
01이AGENTS.md(특별법)이고02가SOUL.md(헌법)입니다.
법 상식과 거꾸로죠. OpenClaw는 "나는 누구인가"보다 "여기서 뭘 지켜야 하는가"를 먼저 읽습니다.
→ 이 한 줄이 Hermes와의 가장 큰 차이입니다 (→ 3-3절에서 다시).
이 그림에서 실무 규칙 하나가 바로 나옵니다 ★
어떤 문장을 쓸 때 스스로에게 물어보세요 — "이건 몇 번 조문에 넣을 문장인가?"
어느 폴더에서든 지켜야 한다 → 앞 조문(
AGENTS.md/SOUL.md)이 사람한테만 해당된다 →