Paperclip adapter for Hermes Agent — run Hermes as a managed employee in a Paperclip company
이 번역은 AI가 원문 README를 옮긴 것입니다. 원문이 항상 우선합니다.
Paperclip 회사에서 Hermes Agent를 관리형 직원으로 실행할 수 있게 해주는 Paperclip 어댑터입니다.
Hermes Agent는 Nous Research의 풀 기능 AI 에이전트로, 30개 이상의 네이티브 도구, 영구 메모리, 세션 지속성, 80개 이상의 스킬, MCP 지원, 다중 제공업체 모델 액세스를 제공합니다.
이 어댑터는 다음을 제공합니다:
~/.hermes/skills/)을 모두 스캔하며, 동기화/목록/해결 API 제공TranscriptEntry 객체로 파싱하여 Paperclip이 상태 아이콘과 확장/축소 기능이 있는 적절한 도구 카드를 렌더링하도록 함+--+ 테이블 테두리를 깔끔한 GFM 마크다운으로 변환~/.hermes/config.yaml을 읽어 사용자가 구성한 모델로 UI를 미리 채움tool 소스로 태깅--checkpoints--reasoning-effort 전달| 기능 | Claude Code | Codex | Hermes Agent | ||
|---|---|---|---|---|---|
| 영구 메모리 | ❌ | ❌ | ✅ 세션 간 기억 | ||
| 네이티브 도구 | ~5 | ~5 | 30+ (터미널, 파일, 웹, 브라우저, 비전, git 등) | ||
| 스킬 시스템 | ❌ | ❌ | ✅ 80개 이상 로드 가능한 스킬 | ||
| 세션 검색 | ❌ | ❌ | ✅ 과거 대화에 대한 FTS5 검색 | ||
| 하위 에이전트 위임 | ❌ | ❌ | ✅ 병렬 하위 작업 | ||
| 컨텍스트 압축 | ❌ | ❌ | ✅ 긴 대화 자동 압축 | ||
| MCP 클라이언트 | ❌ | ❌ | ✅ 모든 MCP 서버에 연결 | ||
| 다중 제공업체 | Anthropic 전용 | OpenAI 전용 | ✅ 기본 8개 제공업체 |
npm install hermes-paperclip-adapter
pip install hermes-agent)Paperclip 서버의 어댑터 레지스트리(server/src/adapters/registry.ts)에 추가:
import * as hermesLocal from "hermes-paperclip-adapter";
import {
execute,
testEnvironment,
detectModel,
listSkills,
syncSkills,
sessionCodec,
} from "hermes-paperclip-adapter/server";
registry.set("hermes_local", {...hermesLocal,
execute,
testEnvironment,
detectModel,
listSkills,
syncSkills,
sessionCodec,
});
Paperclip UI 또는 API를 통해 어댑터 유형이 hermes_local인 에이전트 생성:
{
"name": "Hermes Engineer",
"adapterType": "hermes_local",
"adapterConfig": {
"model": "anthropic/claude-sonnet-4",
"maxIterations": 50,
"timeoutSec": 300,
"persistSession": true,
"enabledToolsets": ["terminal", "file", "web"]
}
}
Paperclip에서 이슈를 생성하고 Hermes 에이전트에 할당합니다. 각 하트비트에서 Hermes는:
| 필드 | 유형 | 기본값 | 설명 | ||
|---|---|---|---|---|---|
model |
string | anthropic/claude-sonnet-4 |
provider/model 형식의 모델 |
||
provider |
string | (자동 감지) | API 제공업체: auto, openrouter, nous, openai-codex, zai, kimi-coding, minimax, minimax-cn |
||
timeoutSec |
number | 300 |
실행 제한 시간(초) | ||
graceSec |
number | 10 |
SIGKILL 전 유예 기간 |
| 필드 | 유형 | 기본값 | 설명 | ||
|---|---|---|---|---|---|
toolsets |
string | (전체) | 활성화할 도구 세트(쉼표로 구분, 예: "terminal,file,web") |
사용 가능한 도구 세트: terminal, file, web, browser, code_execution, vision, mcp, creative, productivity
| 필드 | 유형 | 기본값 | 설명 | ||
|---|---|---|---|---|---|
persistSession |
boolean | true |
하트비트 간 세션 재개 | ||
worktreeMode |
boolean | false |
Git 작업 트리 격리 | ||
checkpoints |
boolean | false |
롤백을 위한 파일시스템 체크포인트 활성화 |
| 필드 | 유형 | 기본값 | 설명 | ||
|---|---|---|---|---|---|
hermesCommand |
string | hermes |
사용자 정의 CLI 바이너리 경로 | ||
verbose |
boolean | false |
자세한 출력 활성화 | ||
quiet |
boolean | true |
조용한 모드 (배너/스피너 없이 깔끔한 출력) | ||
extraArgs |
string[] | [] |
추가 CLI 인수 | ||
env |
object | {} |
추가 환경 변수 | ||
promptTemplate |
string | (내장) | 사용자 정의 프롬프트 템플릿 | ||
paperclipApiUrl |
string | http://127.0.0.1:3100/api |
Paperclip API 기본 URL |
promptTemplate에서 {{variable}} 구문 사용:
| 변수 | 설명 | ||
|---|---|---|---|
{{agentId}} |
Paperclip 에이전트 ID | ||
{{agentName}} |
에이전트 표시 이름 | ||
{{companyId}} |
회사 ID | ||
{{companyName}} |
회사 이름 | ||
{{runId}} |
현재 하트비트 실행 ID | ||
{{taskId}} |
할당된 작업/이슈 ID | ||
{{taskTitle}} |
작업 제목 | ||
{{taskBody}} |
작업 지침 | ||
{{projectName}} |
프로젝트 이름 | ||
{{paperclipApiUrl}} |
Paperclip API 기본 URL | ||
{{commentId}} |
댓글 ID (댓글로 깨어난 경우) | ||
{{wakeReason}} |
이 실행이 트리거된 이유 |
조건부 섹션:
{{#taskId}}...{{/taskId}} — 작업이 할당된 경우에만 포함{{#noTask}}...{{/noTask}} — 작업이 없는 경우에만 포함 (하트비트 확인){{#commentId}}...{{/commentId}} — 댓글로 깨어난 경우에만 포함Paperclip Hermes Agent
┌──────────────────┐ ┌──────────────────┐
│ 하트비트 │ │ │
│ 스케줄러 │───execute()──▶│ hermes chat -q │
│ │ │ │
│ 이슈 시스템 │ │ 30+ 도구 │
│ 댓글 깨우기 │◀──결과────────│ 메모리 시스템 │
│ │ │ 세션 DB │
│ 비용 추적 │ │ 스킬 │
│ │ │ MCP 클라이언트 │
│ 스킬 동기화 │◀──스냅샷──────│ ~/.hermes/skills│
│ 조직도 │ │ │
└──────────────────┘ └──────────────────┘
어댑터는 Hermes Agent의 CLI를 단일 쿼리 모드(-q)로 실행합니다. Hermes는 전체 도구 모음을 사용하여 작업을 처리한 후 종료됩니다. 어댑터는:
TranscriptEntry 객체로 파싱합니다 (상태 아이콘이 있는 도구 카드).tool 소스로 태깅하여 대화형 사용과 분리합니다.세션 지속성은 Hermes의 --resume 플래그를 통해 작동합니다. 각 실행은 이전 실행이 중단된 지점에서 계속되어 하트비트 간 대화 컨텍스트, 메모리 및 도구 상태를 유지합니다. sessionCodec은 실행 간 세션 상태를 검증하고 마이그레이션합니다.
어댑터는 두 가지 스킬 소스를 스캔하여 병합합니다:
~/.hermes/skills/에서 읽기 전용, 항상 로드됨listSkills / syncSkills API는 통합된 스냅샷을 제공하여 Paperclip UI가 관리형 및 네이티브 스킬을 한 보기에서 표시할 수 있도록 합니다.
git clone https://github.com/NousResearch/hermes-paperclip-adapter
cd hermes-paperclip-adapter
npm install
npm run build
MIT — LICENSE 참조