# Hermes Agent 잘 쓰는 법, 공식 문서에서 핵심만 뽑았습니다 Hermes Agent 공식 Tips & Best Practices...
Canonical: https://social-archive.org/babyz79/0LMyvFIdNL
Original URL: https://www.threads.com/@unclejobs.ai/post/DWOqOhrCQKs
Author: 엉클잡스 | Ai 시대, 돈이 되는 정보 전달
Platform: threads
## Content
Hermes Agent 잘 쓰는 법, 공식 문서에서 핵심만 뽑았습니다 Hermes Agent 공식 Tips & Best Practices 문서가 있어요. 꽤 길고 실전적인데, 영어라서 안 읽은 분이 많을 거예요. 핵심만 추려봤습니다. AI 에이전트를 다루는 사람이면 Hermes 아니어도 써먹을 수 있는 내용이 많아요. --- Q. 프롬프트를 어떻게 줘야 하나요? 공식 문서가 첫 번째로 강조하는 건 "구체성"이에요. "코드 고쳐줘"는 안 됩니다. "api/handlers.py 47번째 줄 TypeError 고쳐줘. process_request()가 parse_body()에서 None을 받고 있어." 이렇게 줘야 해요. 파일 경로, 에러 메시지, 기대하는 동작. 이걸 첫 메시지에 전부 넣으라고 합니다. 잘 쓴 메시지 한 번이 애매한 메시지 세 번보다 낫다고요. 에러 트레이스백을 그대로 붙여넣는 것도 권장합니다. 에이전트가 직접 파싱할 수 있으니까요. 그리고 하나 더. "에이전트한테 단계별로 손잡아주지 마라." `tests/test_foo.py` 열고, 42번째 줄 보고... 이렇게 시키는 것보다 "실패하는 테스트 찾아서 고쳐줘"라고 하는 게 낫대요. 에이전트한테 파일 검색, 터미널, 코드 실행 도구가 있으니까 탐색과 반복을 맡기라는 거죠. --- Q. 매번 같은 말을 반복하고 있다면? "AGENTS.md를 쓰라고 합니다." "탭 말고 스페이스 써", "우리는 pytest 쓰고 있어", "API는 /api/v2야." 이런 걸 세션마다 말하고 있다면 프로젝트 루트에 AGENTS.md 파일을 만들어두면 돼요. 에이전트가 매 세션마다 자동으로 읽습니다. 한 번 설정하면 이후로 노력이 제로. 모노레포라면 더 유용해요. Hermes는 디렉토리 트리를 타고 올라가면서 모든 레벨의 AGENTS.md를 발견합니다. 루트에 프로젝트 전체 규칙을 두고, 하위 디렉토리에 팀별 규칙을 두면 전부 합쳐져서 들어가요. --- 성격을 잡고 싶으면 "SOUL.md"를 씁니다. `~/.hermes/SOUL.md`에 "시니어 백엔드 엔지니어처럼 대답해. 간결하게. 설명은 물어볼 때만."을 써두면 모든 대화에 적용돼요. 정리하면 이래요. AGENTS.md는 프로젝트별 지시사항, SOUL.md는 에이전트의 성격. 둘을 분리해서 써야 합니다. 한 가지 주의할 점. 컨텍스트 파일은 매 메시지마다 주입되니까, 쓸데없이 길어지면 토큰 예산을 잡아먹어요. 간결하게 유지하라고 강조합니다. --- Q. 메모리랑 스킬은 뭐가 다른가요? 공식 문서가 명확하게 구분합니다. "메모리는 "무엇"이고 스킬은 "어떻게"에요." 메모리에는 사실을 저장합니다. 내 환경, 선호도, 프로젝트 위치, 에이전트가 나에 대해 배운 것들. 스킬에는 절차를 저장해요. 여러 단계를 거치는 워크플로우, 도구별 사용법, 재사용 가능한 레시피. 5단계 이상 걸리는 작업을 다시 할 것 같으면 "방금 한 걸 deploy-staging이라는 스킬로 저장해"라고 하세요. 다음엔 `/deploy-staging` 한 방이면 끝이에요. --- 메모리 용량이 한정돼 있다는 것도 알아두면 좋습니다. MEMORY.md가 약 2,200자, USER.md가 약 1,375자. 차면 에이전트가 알아서 통합하긴 하는데, "메모리 정리해줘"라고 직접 시키거나 "Python 3.9 메모는 지워. 지금 3.12야"처럼 구체적으로 지시하는 게 낫다고 해요. 중요한 경고가 하나 있어요. 메모리는 세션 시작 시점의 스냅샷이에요. 세션 도중에 저장한 건 디스크에는 바로 쓰이지만, 시스템 프롬프트에는 다음 세션부터 반영됩니다. 이번 세션에서 "이거 기억해"라고 해도 이번 세션 안에서는 적용이 안 된다는 뜻이에요. --- Q. 토큰 비용을 아끼려면? 공식 문서에서 가장 강조하는 건 "프롬프트 캐시를 깨지 말라*"는 거예요. 대부분의 LLM 프로바이더가 시스템 프롬프트 프리픽스를 캐싱합니다. 같은 컨텍스트 파일, 같은 메모리를 유지하면 후속 메시지가 캐시 히트를 타서 훨씬 저렴해져요. 세션 도중에 모델이나 시스템 프롬프트를 바꾸면 캐시가 깨지니까 주의해야 합니다. 그 다음으로 /compress를 적극적으로 쓰라고 해요. 긴 세션은 토큰이 쌓입니다. 응답이 느려지거나 잘리기 시작하면 `/compress`를 돌리세요. 대화 히스토리를 요약해서 핵심 맥락은 유지하면서 토큰을 확 줄여줍니다. `/usage`로 현재 상태를 수시로 체크하고요. --- 병렬 위임도 비용 절감 방법이에요. 세 가지를 동시에 리서치해야 하면 `delegate_task`로 병렬 서브태스크를 돌리라고 합니다. 각 서브에이전트가 독립적으로 작업하고, 요약만 메인 대화로 돌아오니까 메인 세션의 토큰 사용량이 크게 줄어요. 그리고 터미널 명령어를 하나씩 시키지 말고, 스크립트로 한 번에 돌리라는 팁도 있어요. ".jpeg 파일을 전부 .jpg로 바꿔줘"라고 하면 에이전트가 스크립트를 짜서 한 방에 실행하는 게, 파일 하나씩 이름 바꾸는 것보다 싸고 빠릅니다. 모델 선택도 비용에 직접 영향을 줘요. 복잡한 추론이랑 아키텍처 결정에는 프론티어 모델(Claude Sonnet/Opus, GPT-4o)을 쓰고, 포맷팅이나 보일러플레이트 같은 단순 작업에는 빠른 모델로 바꾸라고 합니다. `/model`로 세션 중간에 전환 가능해요. --- Q. CLI 숨은 기능이 있나요? 꽤 있어요 1. Alt+Enter로 여러 줄을 쓸 수 있습니다. Enter를 누르면 메시지가 전송되잖아요. 여러 줄을 쓰고 싶으면 Alt+Enter(또는 Ctrl+J)로 줄바꿈을 넣으면 됩니다. 복잡한 요청을 다 작성한 다음에 Enter로 보내는 거예요. 2. 코드 블록 붙여넣기가 자동 감지됩니다. 에러 트레이스백이나 코드를 붙여넣으면 한 줄씩 보내지 않고 전체를 하나의 메시지로 버퍼링해요. --- 3. Ctrl+C로 방향을 바꿀 수 있어요. 에이전트가 엉뚱한 방향으로 가기 시작하면 Ctrl+C를 한 번 누르고 새 메시지를 보내면 됩니다. 리디렉션이 되는 거예요. 2초 안에 두 번 누르면 강제 종료. 4. hermes -c로 이전 세션을 이어갈 수 있습니다. 어제 대화에서 빠뜨린 게 있으면 `hermes -c`로 바로 복원돼요. `hermes -r "프로젝트 이름"`으로 제목으로도 찾을 수 있고요. 5. Ctrl+V로 이미지를 바로 붙여넣을 수 있어요. 클립보드에 있는 스크린샷, 다이어그램, UI 목업을 파일로 저장할 필요 없이 바로 채팅에 넣을 수 있습니다. 비전으로 분석해줘요. --- Q. 메시징 플랫폼에서 쓸 때 주의할 건? 1. 홈 채널을 먼저 설정하세요. `/sethome`으로 텔레그램이나 디스코드 채팅을 지정하면, 크론 작업 결과나 예약된 태스크 출력이 여기로 옵니다. 안 하면 에이전트가 보낼 곳이 없어요. 2. 세션에 이름을 붙이세요. `/title auth-refactor`처럼. 이름 없는 세션은 쌓이면 구분이 안 됩니다. `hermes -r "auth-refactor"`로 바로 돌아갈 수 있으니까 습관을 들이는 게 좋아요. 3. 메시징에서는 세션이 자동 리셋됩니다. 기본값이 120분 유휴 시 또는 매일 새벽 4시예요. 더 긴 세션이 필요하면 `~/.hermes/gateway.json`에서 플랫폼별로 조정할 수 있습니다. --- Q. 보안 쪽은 뭐가 있나요? 1. "always" 버튼은 신중하게 누르세요. 위험한 명령어를 실행하려 하면 once(이번만), session(이 세션), always(영구), deny(거부) 네 가지가 나와요. "always"는 해당 패턴을 영구적으로 허용하는 거라서, 처음에는 "session"부터 시작하라고 합니다. 2. 신뢰할 수 없는 코드는 컨테이너에서. Docker나 Daytona를 터미널 백엔드로 쓰면 파괴적 명령어가 호스트에 영향을 주지 않아요. `.env`에 `TERMINAL_BACKEND=docker` 한 줄이면 됩니다. 다만 컨테이너 안에서는 위험 명령어 체크가 건너뛰어지니까, 컨테이너 이미지 자체를 잘 잠가야 해요. --- 3. 메시징 봇에는 반드시 허용 목록을 쓰세요. `GATEWAY_ALLOW_ALL_USERS=true`는 절대 쓰지 말라고 합니다. 터미널 접근 권한이 있는 봇을 모든 사용자에게 열어두는 건 재앙이에요. 플랫폼별 허용 목록이나 DM 페어링을 써야 합니다. Hermes Agent가 아니더라도 활용할 수 있는 원칙들이 있어요. 프롬프트 캐시를 의식하라는 것, 메모리와 스킬을 분리하라는 것, 컨텍스트 파일을 간결하게 유지하라는 것, 위험 명령어 승인을 "session"부터 시작하라는 것. --- AI 에이전트를 다루는 사람이면 한 번쯤 읽어볼 가치가 있습니다. 원문 → https://hermes-agent.nousresearch.com/docs/user-guide/tips
