[단테랩스] Hermes × Codex 로 세우는 나만의 AI 가상 오피스 (8주 마스터 과정)
계속 반복적으로 나타나는 에러들을 정리해보니 게이트웨이 쪽이네요. AI와 수도없이 대화하면서 내가 뭘 모르는지 잘못한건지 체크해봤는데요.. 그 내용을 정리해봤어요. Windows + WSL2 Ubuntu 환경에서 Hermes를 사용하고 있습니다. Windows에서는 Hermes Desktop을 실행하고, WSL2 안에서는 Hermes CLI로 Dashboard/Gateway를 systemd --user 서비스로 실행하고 있습니다. 현재 목표는 다음과 같습니다. WSL2에서 Hermes Dashboard/Gateway를 상시 실행 Windows Hermes Desktop에서 WSL의 Dashboard/Gateway에 접속 sophie 프로필 전용 Dashboard/Webhook 안정 운영 PC 재시작 또는 터미널 종료 후에도 서비스가 안정적으로 유지되도록 구성 환경은 다음과 같습니다. Windows + WSL2 Ubuntu WSL systemd 사용 중 Hermes Desktop 사용 Hermes CLI 사용 여러 Hermes profile 사용 중 default , sophie , ada , ethan , mia , noah , oliver , sam Dashboard는 hermes-dashboard.service Gateway는 hermes-gateway-sophie.service 같은 profile별 user service로 운영 중 1. WSL2 user systemd / D-Bus 문제 가끔 아래 명령을 실행하면 user systemd 관련 오류가 발생합니다. hermes -p sophie gateway restart 오류 메시지는 다음과 같습니다. ✗ User systemd not reachable: User systemd control sockets are missing even though linger is enabled. systemctl --user cannot reach the user D-Bus session in this shell. 현재 linger 는 켜져 있습니다. loginctl show-user "$USER" -p Linger -p State -p RuntimePath 결과: RuntimePath=/run/user/1000 State=active Linger=yes 하지만 문제가 발생할 때는 systemctl --user 가 user D-Bus session에 접근하지 못하는 상태가 됩니다. 아래 명령을 실행하면 일시적으로 복구됩니다. sudo systemctl restart user@$(id -u).service 그 후에는 다시 아래 명령이 정상 작동합니다. hermes -p sophie gateway restart 정상 출력 예시: ↻ Updated gateway user service definition to match the current Hermes install ⏳ User service restarting gracefully... ✓ User service restarted 질문입니다. WSL2 Ubuntu에서 linger=yes 인데도 systemctl --user 가 user D-Bus에 접근하지 못하는 일이 자주 발생할 수 있나요? sudo systemctl restart user@$(id -u).service 로 복구되는 경우, 근본 원인은 user systemd runtime socket 문제로 봐도 될까요? Hermes gateway를 WSL2에서 상시 운영할 때 systemd --user 방식이 적절한가요? WSL 환경에서는 foreground 실행, Windows 시작 스크립트, 작업 스케줄러 방식이 더 안정적인지 궁금합니다. 2. Windows Hermes Desktop과 WSL Dashboard 연결 방식 현재 구조는 다음과 같습니다. Windows - Hermes Desktop 실행 WSL2 Ubuntu - Hermes Dashboard / Gateway 실행 - Windows Hermes Desktop이 WSL의 Dashboard에 접속 Hermes Desktop에서는 Gateway 설정에 다음 값을 사용하고 있습니다. Remote gateway Remote URL: http://127.0.0.1:9119 Session token: 비어 있음 WSL에서 Dashboard는 현재 아래처럼 실행 중입니다. hermes -p sophie dashboard --isolated --host 127.0.0.1 --port 9119 --no-open Windows에서도 접근은 됩니다. powershell.exe -NoProfile -Command "try { (Invoke-WebRequest -UseBasicParsing http://127.0.0.1:9119 -TimeoutSec 3).StatusCode } catch { $_.Exception.Message }" 결과: 200 다만 Hermes Desktop에서 가끔 다음과 같은 메시지가 나왔습니다. Remote gateway incomplete Enter a remote URL and session token before switching to remote. 또는: Hermes couldn't start Your remote gateway session has expired. Open Settings → Gateway and click "Sign in" again. 질문입니다. Windows Hermes Desktop에서 WSL2의 Hermes Dashboard/Gateway에 붙는 경우 Remote gateway + http://127.0.0.1:9119 구성이 맞나요? 같은 PC 안에서 Windows → WSL로 접속하는 경우에도 Local gateway 가 아니라 Remote gateway 로 보는 것이 맞나요? Dashboard가 127.0.0.1 loopback bind이고 별도 인증이 없다면 Session token을 비워두는 것이 맞나요? Desktop에서 session token 또는 session expired 메시지가 뜨는 것은 실제 gateway 프로세스 문제라기보다 Desktop의 remote gateway session/auth 상태 문제로 보면 될까요? 3. Dashboard host bind: 127.0.0.1 vs 0.0.0.0 처음에는 Windows Desktop에서 접속을 안정화하려고 Dashboard를 0.0.0.0 으로 실행했습니다. hermes dashboard --host 0.0.0.0 --port 9119 --no-open 하지만 이후 sophie 전용 isolated dashboard를 실행할 때는 아래 로그와 함께 거부되었습니다. Refusing to bind dashboard to 0.0.0.0 — the auth gate engages on non-loopback binds, but no auth providers are registered. There is no unauthenticated public-bind option — to keep it local, bind 127.0.0.1 and tunnel in (SSH / Tailscale). 그래서 현재는 아래처럼 127.0.0.1 로 실행하고 있습니다. hermes -p sophie dashboard --isolated --host 127.0.0.1 --port 9119 --no-open 현재 포트 상태는 정상입니다. ss -ltnp | grep ':9119' 예시: LISTEN 127.0.0.1:9119 users:(("hermes",pid=...,fd=...)) 질문입니다. Windows Desktop에서 같은 PC의 WSL Dashboard에 접속하는 용도라면 --host 127.0.0.1 이 권장되는 방식인가요? --host 0.0.0.0 에서 auth provider가 없으면 Dashboard가 실행을 거부하는 것이 정상 동작인가요? WSL 외부나 다른 기기에서 접근하려면 basic auth/OAuth 설정 또는 SSH/Tailscale 터널을 사용하는 것이 맞나요? 4. profile별 Dashboard/Webhook 분리 문제 처음에는 Dashboard 화면에서 magma-inquiry webhook이 보였는데, CLI에서 sophie 프로필로 테스트하면 실패했습니다. hermes -p sophie webhook test magma-inquiry --payload '{"inquiry":{"message":"test"}}' 오류: No subscription named 'magma-inquiry' 확인해보니 해당 webhook이 sophie 가 아니라 default 프로필에 생성되어 있었습니다. 처음에는 아래 명령이면 sophie 전용 Dashboard가 실행된다고 이해했습니다. hermes -p sophie dashboard --host 127.0.0.1 --port 9119 하지만 실제로는 profile이 명확히 분리되지 않는 것 같았고, 이후 --isolated 옵션을 사용했습니다. 현재 systemd override는 다음과 같습니다. [Service] ExecStart= ExecStart=/home/minam/.local/bin/hermes -p sophie dashboard --isolated --host 127.0.0.1 --port 9119 --no-open 현재는 아래 상태입니다. hermes -p sophie webhook list sophie 에는 magma-inquiry 가 있습니다. hermes -p default webhook list default 에는 webhook이 없습니다. Webhook 테스트도 성공했습니다. hermes -p sophie webhook test magma-inquiry --payload '{"inquiry":{"message":"재시작 후 최종 확인입니다."}}' 결과: Response (202): accepted Slack에도 메시지가 도착했습니다. 질문입니다. sophie 프로필 전용 Dashboard/Webhook을 운영하려면 --isolated 옵션을 사용하는 것이 맞나요? hermes -p sophie dashboard 만으로 실행하면 화면은 sophie 처럼 보여도 webhook 저장 위치가 default 가 될 수 있나요? profile별 webhook 충돌을 피하려면 profile마다 isolated dashboard를 쓰는 것이 권장되나요? 5. 현재 사용 중인 구성 현재 최종적으로 사용 중인 구성은 다음과 같습니다. hermes -p sophie dashboard --isolated --host 127.0.0.1 --port 9119 --no-open systemd user service override: [Service] ExecStart= ExecStart=/home/minam/.local/bin/hermes -p sophie dashboard --isolated --host 127.0.0.1 --port 9119 --no-open 확인된 상태는 다음과 같습니다. hermes-dashboard.service active 127.0.0.1:9119 LISTEN 정상 Windows에서 http://127.0.0.1:9119 접근 시 HTTP 200 브라우저에서 Webhooks 화면 접근 가능 magma-inquiry 는 sophie 프로필에만 존재 default 에는 webhook 없음 webhook test 성공 Slack 메시지 도착 확인 hermes-gateway-sophie.service 는 enabled loginctl 결과 RuntimePath=/run/user/1000 , State=active , Linger=yes 질문입니다. 이 구성이 Windows Hermes Desktop + WSL2 Ubuntu + systemd user service 조합에서 권장되는 방식에 가까운가요? 장기적으로 안정적으로 운영하려면 추가로 점검해야 할 설정이 있을까요? Windows 재부팅 후 WSL이 자동으로 시작되지 않는다면, Windows 작업 스케줄러로 WSL을 한 번 깨워서 user systemd service가 올라오게 하는 방식이 적절한가요? 여러 profile gateway와 하나의 isolated dashboard를 동시에 운영할 때 주의해야 할 점이 있다면 알려주시면 감사하겠습니다.
안녕하세요. 10만개 이상의 자바 파일로 구성된 대용량 코드베이스에 codex를 적용할 경우, 컨텍스트의 용량 한계가 있어서 전체 구조(클래스, 함수 등등)를 모두 인식 시킬수 없을것으로 보입니다. 이런 경우 실제 어떻게 대용량 코드베이스를 인식 시키고 codex를 통해서 작업을 진행해 나가는지 궁금합니다. 듣기로는 각 폴더당 AGENTS.md 파일을 만들어서 내용을 인식할 수 있게 만들라고는 하던데, 자바 프로젝트 특성상 폴더가 여러 depth로 나뉘기도 하고 각 폴더에 AGENTS.md 를 만들었다고 하더라도 소스가 변경될때마다 업데이트가 쉽지 않아 보입니다.
[단테랩스] Hermes × Codex 로 세우는 나만의 AI 가상 오피스 (8주 마스터 과정)
안녕하세요. Hermes Agent로 여러 직원을 운영 중인데, 토큰 비용이 비정상적으로 많이 나와서 문의드립니다. 상황: 직원 한 명(코딩 담당)에게 2시간도 안 되는 시간 작업시켰는데, OpenRouter에서 $20 / 189 요청 / 13.3M 토큰 이 나왔습니다. 작업 내용은 단순한 웹 UI 수정 (레이아웃 변경, 버튼 이름, 자막 분할 규칙, 미리보기 박스)뿐이었습니다. 무거운 작업이 아니었습니다. 계산해보니 요청 한 번당 평균 7만 토큰 입니다. 원인을 찾아보니, 직원이 작업할 때마다 스킬 86개 + 도구 설명을 매 요청마다 통째로 LLM에 보내는 것 같습니다. 질문: Hermes에서 직원 작업 시 스킬/도구 설명을 매번 전부 컨텍스트에 싣는 게 맞나요? 이게 요청당 7만 토큰의 원인인가요? 필요한 스킬만 동적으로 로드 하거나, 안 쓰는 스킬은 안 싣게 하는 설정이 있나요? 이걸 직원별로 줄일 수 있나요, 아니면 전역 설정 이어야 하나요? (직원마다 필요한 스킬이 달라서요) 한 직원 설정을 바꿀 때 다른 직원에게 영향이 안 가게 하려면? 그 외 토큰/비용 줄이는 권장 설정이 있을까요? (max_turns, 세션 관리, 모델 분리 등) 단순 UI 수정 2시간에 $20이면, 여러 본부로 확장 시 감당이 안 될 것 같아 비용 구조부터 잡으려 합니다. 감사합니다.
[단테랩스] Hermes × Codex 로 세우는 나만의 AI 가상 오피스 (8주 마스터 과정)
Mac에서 설정 중인데 슬랙 연결하고 설정할 떄 CLI를 설정하고 나면 Saved Slack configuration이 뜨고 이 화면이 계속 반복됩니다. Done 버튼을 누르면 Setup이 완료되었다고 뜨구요. 지금 강의하고 계시는게 Hermes 이전 버젼 같습니다. Setup 화면이 다른게 좀 있어요. 업데이트가 가능할까요?
클로드에 이미지만 보내면 버그가 2개가 생기는데 첫번째 버그는 SkillRegistry 클래스의 HasSkillSlash함수에서 에러가 납니다. 저는 아래 코드를 함수 처음에 추가해서 버그 수정했습니다. if (string.IsNullOrEmpty(SlashName)) return false; 위 문제를 해결하고 이미지만 보내면 생기는 두번째 버그는 클로드에서 BADREQUEST라고 날라옵니다 저는 Conversation 클래스의 ConvertUserInput함수에서 Blocks.Add(new TextBlockParam { Text = Input.Text }); 라는 코드를 if(Input.bHasImage && string.IsNullOrEmpty(Input.Text)) Blocks.Add(new TextBlockParam { Text = "Check Image" }); else Blocks.Add(new TextBlockParam { Text = Input.Text }); 로 바꿔 해결했습니다. 일단 이렇게 수정하면 버그는 해결되는것 같은데 문제가 있다면 알려주시면 감사하겠습니다
[단테랩스] Hermes × Codex 로 세우는 나만의 AI 가상 오피스 (8주 마스터 과정)
10분 37초 처럼 admin username, admin password 값을 입력해도 계속 비밀번호가 틀립니다. 분명 배포할 때 비밀번호 등 제대로 입력했는데 무엇을 놓친건지 모르겠습니다. 혹시 재조정하는 방법 있을까요? 그리고 제가 11분 48초 처럼 로그인 화면이 나타나야할 거 같은데,... 위 이미지처럼 나타나네요.. 제가 놓친게 있는건지 궁금합니다.
[단테랩스] Hermes × Codex 로 세우는 나만의 AI 가상 오피스 (8주 마스터 과정)
slack에선 이렇게 오류가 뜨는데 터미널 통해서 동일 프로필에 동일 llm모델로 물어보니 tool use가 없는 openrouter 모델은 뜰 수 있다는데 하고 막상 터미널에서 동일 세션에서 잘 진행합니다 codex fallback 모델인 owl-alpha 모델 사용중이였고 slack에서의 오류가 뜨고 안되는데 왜 터미널을 통해서 되는지 궁금합니다
[단테랩스] Hermes × Codex 로 세우는 나만의 AI 가상 오피스 (8주 마스터 과정)
저도 슬랙과 텔레그램 중복 토큰 에러가 납니다. 에러가 나면서 슬랙에서 게이트 웨이 재시작 후 /profile 을 해도 디폴트 프로파일이 나옵니다. 혹시 디폴트프로파일과 소피(저는 mgm)의 채널 (텔레그램, 슬랙) 토큰을 서로 다르게 발급받아야 하나요? (두 개가 필요한건가요? )
강의내용에 스킬 리파지토리 pull받은 폴더와 .claude/skills의 파일이 동기화가 자동으로 되도록 어떤 처리가 있었나요? 파일을 수정하는데 두개 파일이 동기화가 된다..? 심볼릭링크 같은걸 사용하신건지요 언급이 없는데 수정하면 반영이 바로 된다는 것처럼 해석되는데 맞나요?
안녕하세요. 좋은 강의 만들어주셔서 감사합니다. 강의 2.3 에서 강사님 코드와 동일하게 작성하고 gpt 모델만 'gpt-5.4-mini' 로 변경 후에 전체 실행 했을 때, 답변이 이렇게 돌아옵니다. {'query': '연봉 5천만원 세금', 'context': [Document(id='9814d06b-07f0-47e3-866c-fdf3940e2649', metadata={'source': 'income_tax.txt'}, page_content='5년 이하: 30만원 → 납입연수\n5년 초과 10년 이하: 150만원 + 50만원 × (납입연수 - 5년)\n10년 초과 20년 이하: 400만원 + 80만원 × (납입연수 - 10년)\n20년 초과: 1,200만원 + 120만원 × (납입연수 - 20년)\n\n② 직장근로자 초과관세환급금을 분배하여 지급받는 경우 세액의 계산 방법 등 필요한 사항은 대통령령으로 정한다. \n<대통령 2014. 12. 23.>\n<전문개정 2009. 12. 31.>\n제64조(부동산매매업자에 대한 세액 계산의 특례)\n1) 대통령령으로 정하는 부동산매매업(이하 “부동산매매업”이라 한다)을 영위하는 거주자가 이하 “부동산매매업자”라 한다)로서 종합소득세법에 제104조제1항제1호(본항을 포함한다) 및 제103조 또는 같은 조 제7항 각 호의 어느 하나에 해당하는 자산의 매매자익(이하 “주택등매매차익”이라 한다)이 있는 자의 종합소득 산출세액은 다음 각 호의 세액 중 많은 것으로 한다. \n<개정 2014. 12. 23., 2017. 12. 19., 2020. 12. 29.>\n1. 종합소득 산출세액\n\n다음 각 목에 따른 세액의 합계액\n 가. 주택등매매차익에 따른 세율을 적용하여 산출한 세액의 합계액\n 나. 종합소득세법 제55조에 따라 주택등매매차익에 대한 개별세액을 공제한 금액을 과세표준으로 하고 이에 제55조에 따른 세율을 적용하여 산출세액'), Document(id='74dc15eb-b151-49b8-9106-1399b7722dd3', metadata={'source': 'income_tax.txt'}, page_content='1. 근속연수에 따라 정한 다음의 금액\n근속연수 | 공제액\n--- | ---\n5년 이하 | 100만원 공제소득\n5년 초과 10년 이하 | 500만원+200만원×(근속연수−5)\n10년 초과 20년 이하 | 1천500만원+250만원×(근속연수−10)\n법제처 | 31 | 국가법령정보센터'), Document(id='1c1ccbad-e1fe-45f7-b08f-223a475212c4', metadata={'source': 'income_tax.txt'}, page_content='소특별판\n경우에는 100분의 30에 해당하는 금액을 해당 과세기간의 종합소득세법에서 공제한다. \n<개정 2014. 12. 23., 2016. 12. 20., 2017. 12. 19, 2021. 12. 8, 2023. 12. 31.>')], 'answer': AIMessage(content='연봉 5천만원의 세금은 공제 항목(4대보험, 근로소득공제, 인적공제 등)에 따라 달라져 정확히 한 숫자로 말하기 어렵습니다. \n제공된 자료만으로는 5천만원 연봉의 실제 세액을 계산할 수 없습니다. \n원하시면 **연봉 5천만원, 1인 가구/부양가족 여부** 기준으로 대략 계산해드릴게요.', additional_kwargs={'refusal': None}, response_metadata={'token_usage': {'completion_tokens': 108, 'prompt_tokens': 848, 'total_tokens': 956, 'completion_tokens_details': {'accepted_prediction_tokens': 0, 'audio_tokens': 0, 'reasoning_tokens': 0, 'rejected_prediction_tokens': 0}, 'prompt_tokens_details': {'audio_tokens': 0, 'cached_tokens': 0}}, 'model_provider': 'openai', 'model_name': 'gpt-5.4-mini-2026-03-17', 'system_fingerprint': None, 'id': 'chatcmpl-DtSMXJU8oQmhDi4TWrlNkXhmwuADF', 'service_tier': 'default', 'finish_reason': 'stop', 'logprobs': None}, id='lc_run--019eedff-fd63-79f1-bb50-9fe5bb58b7c8-0', tool_calls=[], invalid_tool_calls=[], usage_metadata={'input_tokens': 848, 'output_tokens': 108, 'total_tokens': 956, 'input_token_details': {'audio': 0, 'cache_read': 0}, 'output_token_details': {'audio': 0, 'reasoning': 0}})} 결국 답변은 정보가 부족하다는 것 같아 보이는데, retrieve 할 때, k의 개수도 4로 늘려보았지만 답변은 같았습니다. 이러한 경우 어떻게 하는 게 답변을 개선하기 좋을까요?
[단테랩스] Hermes × Codex 로 세우는 나만의 AI 가상 오피스 (8주 마스터 과정)
안녕하세요 강사님 Unit1.13 Telgram 강의를 듣다가 문제가 생겨 질문드립니다. "Credit access paused"라는오류 문구가 떴습니다. 강사님께서는 Chat GPT 유료버전만으로 사용하신걸로 알고있습니다. 혹시 왜 이런 문제가 발생한건지 알 수 있을까요?