본문으로 건너뛰기

컨텍스트 참조

type @ 를 입력하여 메시지를 직접 입력합니다. Hermes는 참조 인라인을 확장하고 --- Attached 컨텍스트 --- 섹션에서 콘텐츠를 추가합니다.

지원된 참고

옵션 정보설명
@file:path/to/file.py파일 내용
@file:path/to/file.py:10-25특정 라인 범위 (1-indexed, 포함)
@folder:path/to/dir파일 metadata로 디렉토리 트리 목록
@diffInject git diff (단일 작업 나무 변경)
@stagedgit diff --staged (단일 변경)
@git:5마지막 N는 패치 (최대 10)로 커밋합니다.
@url:https://example.comFetch and inject 웹 페이지 내용

사용 예제

Review @file:src/main.py and suggest improvements

What changed? @diff

Compare @file:old_config.yaml and @file:new_config.yaml

What's in @folder:src/components?

Summarize this article @url:https://arxiv.org/abs/2301.00001

다중 참조는 단일 메시지에서 작동:

Check @file:main.py, and also @file:test.py.

순회화 (,, ., ;, !, ?)는 참조 값에서 자동으로 벗겨집니다.

CLI 탭 완료

인터렉티브 CLI에서 @ 트리거를 자동 완성합니다

  • @는 모든 참조 유형 (@diff, @staged, @file:, @folder:, @git:, ...)을 보여줍니다
  • @file:@folder: 트리거 파일시스템 경로 완료 파일 크기 메타데이터
  • Bare @는 부분 텍스트가 현재 디렉토리의 파일과 폴더에 매칭합니다

선 범위

@file: 참고는 정확한 내용 주입을 위한 선 범위를 지원합니다:

@file:src/main.py:42        # Single line 42
@file:src/main.py:10-25 # Lines 10 through 25 (inclusive)

라인은 1-indexed입니다. 잘못된 범위는 침묵적으로 무시됩니다 (전체 파일이 반환됩니다).

크기 제한

컨텍스트 References는 모델의 컨텍스트 창을 압도적으로 방지하기 위해 경계를 둡니다:

임계값주요 특징채용 정보
소프트 제한맥락 길이의 25%경고 부과, 확장 진행
단단한 한계컨텍스트 길이의 50%확장 거부, 원래 메시지가 변경되지 않음
폴더 항목최대 200 파일Excess 항목은 -...로 대체됩니다
Git 커밋최대 10@git:N 범위에 클램프 [1, 10]

보안 보안

민감한 경로 차단

이 경로는 항상 @file: 참조에서 차단됩니다

  • SSH 열쇠와 구성: ~/.ssh/id_rsa, ~/.ssh/id_ed25519, ~/.ssh/authorized_keys, ~/.ssh/config
  • 셸 단면도: ~/.bashrc, ~/.zshrc, ~/.profile, ~/.bash_profile, ~/.zprofile
  • Credential 파일: ~/.netrc, ~/.pgpass, ~/.npmrc, ~/.pypirc
  • Hermes env: $HERMES_HOME/.env

다음 위치는 완전히 차단됩니다(그 안의 모든 파일 포함):

  • ~/.ssh/, ~/.aws/, ~/.gnupg/, ~/.kube/, $HERMES_HOME/skills/.hub/

Path Traversal 보호

모든 경로는 작업 디렉터리를 기준으로 해석됩니다. 허용된 workspace root 밖으로 벗어나는 참조는 거부됩니다.

Binary 파일 탐지

binary file은 MIME type과 null byte scan으로 감지됩니다. 알려진 text 확장자(.py, .md, .json, .yaml, .toml, .js, .ts 등)는 MIME 기반 감지를 우회합니다. binary file은 warning과 함께 거부됩니다.

플랫폼 가용성

context reference는 주로 CLI 기능입니다. interactive CLI에서는 @ trigger tab completion이 동작하고, reference가 agent에게 전송되기 전에 확장됩니다.

messaging platform(Telegram, Discord 등)에서는 @ 구문이 gateway에서 확장되지 않습니다. message는 그대로 전달됩니다. agent는 여전히 read_file, search_files, web_extract tool을 통해 참조 파일을 직접 확인할 수 있습니다.

컨텍스트 압축을 가진 상호 작용

대화 context가 압축되면 확장된 reference content가 compression summary에 포함됩니다. 즉:

  • 큰 파일의 @file: content는 context 사용량에 포함됩니다.
  • 대화가 나중에 압축되면 파일 내용은 요약됩니다(원문 그대로 보존되지 않음).
  • 매우 큰 파일은 line range(@file:main.py:100-200)를 사용해 관련 section만 주입하세요.

일반 패턴

# Code review workflow
Review @diff and check for security issues

# Debug with context
This test is failing. Here's the test @file:tests/test_auth.py
and the implementation @file:src/auth.py:50-80

# Project exploration
What does this project do? @folder:src @file:README.md

# Research
Compare the approaches in @url:https://arxiv.org/abs/2301.00001
and @url:https://arxiv.org/abs/2301.00002

오류 처리

잘못된 참조는 실패보다 인라인 경고를 생성합니다

(주)채용 정보
찾을 수 없음경고: "파일을 찾을 수 없습니다"
Binary 파일경고: "기본 파일이 지원되지 않습니다"
찾을 수 없음경고: "찾지 못했습니다"
Git 명령은 실패git stderr로 경고
URL 반환 내용경고: "작용되지 않음"
민감한 경로경고: "path는 민감한 식별 파일"
외부 작업 공간경고: "path는 허용된 업무 공간 밖에 없습니다"