知kdk knowledge
로컬 서버와 공개 화면의 경계프로젝트

Hermes Agent Area: 2D 사무실과 로컬 에이전트 상태

Hermes 프로필·칸반·로그를 2D 사무실 상태로 표현하는 Phaser 화면과 로컬 FastAPI 서버

공개 README는 Hermes 에이전트들을 픽셀아트 사무실에서 보여 주는 데모와 로컬 실시간 연결을 구분한다. 기술 목록은 Phaser 3·Vite 프런트엔드와 Python FastAPI·WebSocket 백엔드다. 이 문서는 정적 데모와 로컬 서버가 어디에서 갈라지는지 코드로 추적했다. 별도의 설치·실행은 하지 않았다. 프로젝트 README · 프런트 설정

해결 대상은 여러 로컬 에이전트의 활동을 한 장면에서 살펴보는 일이다. 서버는 프로필·게이트웨이 로그·칸반 상태에서 캐릭터 상태를 만들고, 책상·집중 책상·회의·휴게 공간의 좌표로 움직임을 표현한다. 상태와 좌표를 정의한 서버

프런트는 연결·알림·칸반·타임라인 버튼으로 장면을 탐색한다. 공개 화면의 mock과 로컬 서버의 실제 프로필·작업·로그는 출처가 다르므로 캐릭터나 완료 건수를 개인 작업 성과로 읽지 않는다. README의 날씨 파티클·말풍선 등 나머지 기능 목록은 이 글에서 실행 검증하지 않았다. 화면 진입 · 기능 목록

냉정한 기술 평가

평가일: 2026-10-28 · 근거 커밋: e3e118fa7eb3fcfcd1fd8ca1d88d63763ddb67a5. 공개 소스의 정적 평가이며 실제 운영 결과나 개인의 기여 범위를 확정하지 않는다.

좋은 점: 데모·로컬 연결의 경계를 UI에 드러내고, 날씨·뉴스 자료에는 대체 경로가 있다. 개선 우선순위: P1 — 파일 미리보기의 경로 포함 검사를 경로 객체 기준으로 고쳐 조회 범위를 지킨다. P2 — 서버의 조회·브리프·미리보기 책임과 환경별 기본 설정을 분리해 이식성을 높인다.

화면 진입과 데모 경계

공개 Pages 화면이 실시간 개인 Hermes 자료에 자동 연결되는 것은 아니다. mock 파일의 존재와 실제 브라우저 표시·애니메이션을 실행해 확인한 일도 구분한다.

로컬 서버의 데이터 흐름

server/main.py 한 파일이 로컬 자료의 조회·해석·전송을 맡는다.

표시 이름은 area.json 또는 office.json의 설정값 → Discord 연결 이름 → SOUL.md에서 읽은 이름 → CLI 프로필 alias → 프로필 ID 순서다. 마지막 ID가 항상 폴더명인 것은 아니다. default 프로필의 자료 루트는 Hermes 홈 자체다. 설정·이름 해석 252–340행과 alias 전달 423–449행

/api/file-preview는 텍스트를 제한된 길이로 읽지만, 위 평가에 적은 경로 포함 검사를 고쳐야 조회 범위를 신뢰할 수 있다. 미리보기 1456–1488행

게이트웨이 로그의 inbound/response 순서로 바쁨 상태를 판정하는 별도 테스트 코드도 읽었다. 테스트 코드는 읽었지만 통과를 실행 검증하지 않았다. 정적 확인한 테스트

README 설명과 코드에서 남는 질문

README는 임의 Hermes 경로에서 쓸 수 있다고 소개한다. 코드에서는 Hermes 홈과 PWA 데이터 루트를 환경변수로 바꿀 수 있지만 기본값은 특정 개인 PC의 경로이고, 세 cron 식별자는 상수다. 다른 기기에서 빈 자료가 보일 때 먼저 확인할 설정이다. 경로·식별자 값 자체는 이 위키에 다시 싣지 않는다. README · 서버 설정 21–35행

공개 mock의 구성은 정적으로 확인했다. 로컬 서버를 실제로 연결했을 때 프로필·칸반·브리프가 정확히 표시되는지, 어느 환경에서 운영하는지는 확인하지 않았다.

검토 기준은 e3e118fa7eb3fcfcd1fd8ca1d88d63763ddb67a5다. hermes-env는 Hermes 환경을 배치하는 별도 저장소이고, 이 문서의 관계 지도에는 코드에서 확인한 선택적 PWA 자료 참조만 연결했다. 화면 이동 링크와 실제 설치·실행 의존성을 혼동하지 않는다. 개인 기여 범위, 매시간 개선이 실제로 실행된 이력이나 성과도 여기서는 검증하지 않았다.

근거 문서

  1. 1hermes-agent-area · README.mdkdkrkwhr/hermes-agent-area · README.md커밋 e3e118f
  2. 2hermes-agent-area · package.jsonkdkrkwhr/hermes-agent-area · package.json커밋 e3e118f
  3. 3hermes-agent-area · src/main.jskdkrkwhr/hermes-agent-area · src/main.js커밋 e3e118f
  4. 4hermes-agent-area · src/connectPanel.jskdkrkwhr/hermes-agent-area · src/connectPanel.js커밋 e3e118f
  5. 5hermes-agent-area · src/mock.jskdkrkwhr/hermes-agent-area · src/mock.js커밋 e3e118f
  6. 6hermes-agent-area · src/scenes/OfficeScene.jskdkrkwhr/hermes-agent-area · src/scenes/OfficeScene.js커밋 e3e118f
  7. 7hermes-agent-area · server/main.pykdkrkwhr/hermes-agent-area · server/main.py커밋 e3e118f
  8. 8hermes-agent-area · server/test_gateway_busy.pykdkrkwhr/hermes-agent-area · server/test_gateway_busy.py커밋 e3e118f

문장과 원본 파일을 사람이 대조했습니다. 원본 링크는 확인한 커밋에 고정했고, Markdown 원문을 그대로 볼 수 있습니다.