Chuyển tới nội dung chính

Tham chiếu bối cảnh

Nhập @ theo sau là tham chiếu để đưa nội dung trực tiếp vào tin nhắn của bạn. Hermes mở rộng tham chiếu nội tuyến và nối thêm nội dung vào phần --- Ngữ cảnh được đính kèm ---.

Tài liệu tham khảo được hỗ trợ

Cú phápMô tả
@file:path/to/file.pyTiêm nội dung tập tin
@file:path/to/file.py:10-25Chèn phạm vi dòng cụ thể (1 chỉ mục, bao gồm)
@folder:path/to/dirChèn danh sách cây thư mục với siêu dữ liệu tệp
@diffTiêm git diff (thay đổi cây làm việc không theo giai đoạn)
@stagedTiêm git diff --staged (thay đổi theo giai đoạn)
@git:5Tiêm N cam kết cuối cùng với các bản vá (tối đa 10)
@url:https://example.comTìm nạp và chèn nội dung trang web

Ví dụ sử dụng

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

Nhiều tài liệu tham khảo hoạt động trong một tin nhắn:

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

Dấu câu ở cuối (,, ., ;, !, ?) tự động bị xóa khỏi giá trị tham chiếu.

Hoàn thành tab CLI

Trong CLI tương tác, việc nhập @ sẽ kích hoạt tự động hoàn thành:

  • @ hiển thị tất cả các loại tham chiếu (@diff, @staged, @file:, @folder:, @git:, @url:)
  • @file: and @folder: trigger filesystem path completion with file size metadata
  • Bare @ followed by partial text shows matching files and folders from the current directory

Line Ranges

The @file: reference supports line ranges for precise content injection:

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

Lines are 1-indexed. Invalid ranges are silently ignored (full file is returned).

Size Limits

Context references are bounded to prevent overwhelming the model's context window:

ThresholdValueBehavior
Soft limit25% of context lengthWarning appended, expansion proceeds
Hard limit50% of context lengthExpansion refused, original message returned unchanged
Folder entries200 files maxExcess entries replaced with - ...
Git commits10 max@git:N clamped to range [1, 10]

Security

Sensitive Path Blocking

These paths are always blocked from @file: references to prevent credential exposure:

  • SSH keys and config: ~/.ssh/id_rsa, ~/.ssh/id_ed25519, ~/.ssh/authorized_keys, ~/.ssh/config
  • Shell profiles: ~/.bashrc, ~/.zshrc, ~/.profile, ~/.bash_profile, ~/.zprofile
  • Credential files: ~/.netrc, ~/.pgpass, ~/.npmrc, ~/.pypirc
  • Hermes env: $HERMES_HOME/.env

These directories are fully blocked (any file inside):

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

Path Traversal Protection

All paths are resolved relative to the working directory. References that resolve outside the allowed workspace root are rejected.

Binary File Detection

Binary files are detected via MIME type and null-byte scanning. Known text extensions (.py, .md, .json, .yaml, .toml, .js, .ts, etc.) bypass MIME-based detection. Binary files are rejected with a warning.

Platform Availability

Context references are primarily a CLI feature. They work in the interactive CLI where @ triggers tab completion and references are expanded before the message is sent to the agent.

In messaging platforms (Telegram, Discord, etc.), the @ syntax is not expanded by the gateway — messages are passed through as-is. The agent itself can still reference files via the read_file, search_files, and web_extract tools.

Interaction with Context Compression

When conversation context is compressed, the expanded reference content is included in the compression summary. This means:

  • Large file contents injected via @file: contribute to context usage
  • If the conversation is later compressed, the file content is summarized (not preserved verbatim)
  • For very large files, consider using line ranges (@file:main.py:100-200) to inject only relevant sections

Common Patterns

# 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

Error Handling

Invalid references produce inline warnings rather than failures:

ConditionBehavior
File not foundWarning: "file not found"
Binary fileWarning: "binary files are not supported"
Folder not foundWarning: "folder not found"
Git command failsWarning with git stderr
URL returns no contentWarning: "no content extracted"
Sensitive pathWarning: "path is a sensitive credential file"
Path outside workspaceWarning: "path is outside the allowed workspace"