ce-pickup은(는) 무엇을 하나요?
과거 Hermes 세션에서 로컬 모델을 사용하여 ce-handoff/v1 문서를 추출합니다. 프론티어 토큰 비용이 전혀 들지 않습니다. 출력은 표준 ce-handoff/v1 마크다운이므로 /ce-handoff resume <path>가 즉시 작동합니다.
구독配额를 소모하면서 따라잡아야 하는 콜드 세션에서 /ce-handoff를 실행하는 대신 이 스킬을 사용하세요.
사용 시기
- 사용자가 프론티어 토큰을 사용하지 않고 중단된 세션을 재개하려는 경우
- 하나 이상의 과거 세션에서 핸드오프가 필요하지만 컨텍스트 창이 이미 가득 찬 경우
- 사용자가 오래된 세션에 대한 "픽업" 또는 "캐치업"을 요청하는 경우
- 대규모 콜드 세션에서
/ce-handoff를 실행하는 것이 비용이 많이 드는 경우
빠른 시작
bash ~/.hermes/scripts/ce-pickup.sh SESSION_ID[,SESSION_ID,...]
기본적으로 /tmp/compound-engineering-$(id -u)/ce-pickup/에 출력됩니다.
그런 다음 출력 파일에서 세션을 재개합니다:
/ce-handoff resume /tmp/compound-engineering-<uid>/ce-pickup/<slug>.md
인수
- 인수 1 (필수): 쉼표로 구분된 세션 ID (
session_search또는 Hermes 브라우징에서 확인) - 인수 2 (선택): Ollama 모델 이름 — 기본값
hf.co/ornith-ai/Ornith-1.5-35B-A3B-GGUF:Q5_K_M - 인수 3 (선택): 출력 디렉터리 재정의
환경 변수 재정의 (테스트 및 대체 호스트용): CE_PICKUP_DB (기본값 ~/.hermes/state.db), CE_PICKUP_OLLAMA_URL (기본값 http://localhost:11434/api/chat), CE_PICKUP_MAX_CHARS (기본값 24000).
모델 라우팅
기본값: Ornith-1.5-35B-A3B-GGUF:Q5_K_M — 우수한 추출 품질이 확인됨, 로컬에서 실행.
Ornith가 로드되지 않은 경우, 사용 가능한 모든 로컬 Ollama 모델이 작동합니다. 프론티어 모델을 사용하지 마십시오 (그러면 목적이 무의미해집니다).
사용 가능한 모델 확인: ollama list
작동 방식
sqlite3를 통해~/.hermes/state.db를 읽습니다 — Python 사용 안 함, TCC 프롬프트 없음- 타임스탬프 순서로
user+assistant메시지를 추출합니다 - 대화를 24,000자(~6,000토큰)로 자릅니다 — 의미 있는 추출에 충분한 길이
- 구조화된 추출 프롬프트를 포함하여
curl을 통해 Ollama/api/chat을 호출합니다 ce-handoff/v1프론트매터와 모델 본문을 출력 디렉터리에 씁니다- 파일 이름은 세션 제목의 슬러그입니다. 충돌 시 숫자 접미사가 붙습니다.
출력 형식
모든 출력 파일은 유효한 ce-handoff/v1입니다:
artifact_contract: "ce-handoff/v1"프론트매터 포함- 사용 가능한 경우
session_id,cwd,branch,repository포함 - 추출 내용: 목표, 완료된 작업, 현재 상태, 결정/제약사항, 차단 요소, 실패한 접근 방식, 참조, 다음 단계
컨텍스트 ceiling 감시 프로그램 (동반 도구)
scripts/context-ceiling-watchdog.sh는 현재 진행 중인 세션 컨텍스트를 모니터링하는 결정론적이며 에이전트가 필요 없는 모니터입니다. 각 활성 세션의 현재 컨텍스트를 추정합니다(active=1 메시지 내용 ÷ 4자/토큰 — sessions.input_tokens은 컨텍스트 재읽기를 포함한 누적 청구 볼륨이므로 절대 사용하지 마세요) 그리고 다음을 적용합니다:
>= 50k알림 — 한 줄 알림, 한 시간마다 반복>= 70k경고 — 체크포인트 경고, 30분마다 반복>= 80k추출 — 로컬에서 ce-pickup을 실행하고 ce-handoff/v1 경로를 보고합니다. 추출 후에는 세션이 약 10k 더 증가할 경우에만 다시 경고합니다(CRIT)
임계값이 트리거되지 않으면 출력이 없으므로(표준 출력이 비어 있음) 변경 감지와 함께 에이전트 없는 cron 작업에 바로 사용할 수 있습니다. 상태는 ~/.cache/context-ceiling-watchdog/에 저장됩니다(플랫 TSV — LLM 메모리, 재귀적 연속성 없음). Hermes 설정이나 런타임 상태에는 절대 쓰지 않습니다. state.db는 sqlite3 -readonly로 열립니다.
실제 모델 없이 테스트: bash scripts/mock-ollama.sh 21143 & 그런 다음 bash scripts/test-watchdog.sh (픽스처 DB + 조정된 임계값, 20회 검사) 실행.
함정
Python의 TCC 대화상자 (macOS Sequoia+): 광범위한 권한이 있는 앱의 하위 프로세스로 Python을 실행하면 iCloud Drive 또는 Documents에 대한 TCC 프롬프트가 트리거될 수 있습니다. ~/.hermes/state.db만 읽는 경우에도 마찬가지입니다. 셸 스크립트는 sqlite3 + curl + jq + awk만 사용하므로 TCC를 트리거하지 않습니다. 사용자가 TCC 프롬프트를 명시적으로 수락하지 않는 한 이 워크플로의 Python 기반 구현을 절대 사용하지 마십시오.
대화 자르기: 24,000자는 대부분의 세션을 포함합니다. 매우 긴 세션(대규모 도구 출력이 포함된 200개 이상의 메시지)은 끝 부분이 잘립니다. 핸드오프가 부실하게 느껴지면 더 좁은 질의로 분할하십시오.
Thinking 모델 + num_predict: Ollama의 num_predict는 message.thinking을 포함하여 생성된 총 토큰을 제한합니다. Thinking 모델(Ornith가 그중 하나)은 thinking 채널에서 전체 예산을 소모하고 빈 값 또는 끝이 잘린 message.content를 반환할 수 있습니다. 스크립트는 이 필드만 읽습니다. 증상: "Ollama에서 빈 응답" 또는 문장 중간에서 멈추는 핸드오프로, 페이로드 버그 문제임에도 모델 품질 문제처럼 보입니다. 스크립트는 think:false를 보냅니다(이 플래그를 거부하는 모델을 위해 플래그 없이 재시도하는 폴백 포함). Wesley의 범위 참고: 해당 플래그는 이 기계적 추출 작업에 만 적합합니다 — Ornith의 thinking 능력은 에이전트 엔지니어링 사용 시 자산이며, 추출 실행 결과가 에이전트 능력에 대한 판결을 의미하지는 않습니다. 잘못된 추출을 모델에 대한 평결로 일반화하지 마십시오.
Ollama가 실행 중이어야 함: 호출하기 전에 ollama list로 확인하십시오.
출력은 /tmp: 재부팅 시 OS가 회수할 수 있습니다. 재부팅 후에도 재개하려면 안정적인 경로로 복사하십시오.
스크립트
표준 구현은 이 스킬의 scripts/ce-pickup.sh입니다 — 스킬 경로로 호출하세요. 호스트 측 사본은 예전에 ~/.hermes/scripts/ce-pickup.sh에 있었습니다(심볼릭 링크로 문서화됨). 해당 사본이 존재하지만 심볼릭 링크가 아닌 시스템에서는 오래된 것입니다 — 스킬 디렉터리를 신뢰하세요.
참고: 핸드오프 문서가 생성된 후 재개 워크플로를 위한 ce-handoff 스킬을 확인하세요.