discord-codex-bot Worker Runtime 강화 보고서
이 보고서는 Sanctum 서비스별 LLM worker를 discord-codex-bot과 agent-runtime에서 어떻게 강제해야 하는지 구체화한다.
discord-bot은 Discord UI 어댑터로 유지하고, workflow state, Codex thread control, RAG retrieval, artifact parsing, approval scope decision, diff guard는 agent-runtime이 소유해야 한다.
Worker Profile 필수 필드
serviceId:wallet-api,kms-api,hd-manager,mpc-manager-rs,party-node-rs,contracts,root-e2ecwd: 기본 작업 디렉터리readAllow: 읽기 가능한 경로와 context packwriteAllow: 직접 수정 가능한 경로proposeOnly: 직접 수정 금지, 제안만 가능한 경로approvalPolicy: 승인 필요 조건handoffRules: 외부 변경 발견 시 전달 대상diffGuard: 작업 후 실제 변경 검증 정책
Sanctum Worker 분리
| Worker | 직접 처리 | Handoff |
|---|---|---|
| wallet-api | wallet request handler, validation, serialization, service tests | contracts, kms-api, hd-manager, root/e2e |
| kms-api | key management API 내부 구현과 테스트 | wallet caller behavior, hd interface, deployment config |
| hd-manager | HD derivation, key lifecycle 내부 구현 | wallet/kms public contract, e2e provisioning flow, MPC 연동 |
| contracts agent | canonical contracts, contract validation tests | service implementation, e2e validation |
| root/e2e agent | integration tests, choreography, rollout plan | individual service internals, canonical contract unless approved |
운영 판단
첫 구현 목표는 완전한 container sandbox가 아니라 profile 기반 실행과 diff guard다. allowlist와 diff guard는 기존 runtime 구조에 빠르게 붙일 수 있고, 경계 위반이 조용히 완료되는 것을 즉시 막는다.
권한 판단은 자연어 keyword table이나 regex intent classifier로 만들면 안 된다. 최종 권한은 worker profile, explicit handoff fields, server metadata, approval records에서 와야 한다.
리스크와 가드레일
- Repo-wide write access는 작업 후 changed files와 diff를 allowed, approved, propose-only violation, denied, preexisting으로 분류해 제어한다.
- Approval scope 오염을 막기 위해 button payload에는
approval_id만 포함한다. - 작업 시작 전 baseline을 기록하고 사용자 변경과 worker 변경의 소유권을 구분한다.
- Graphify/RAG 결과는 context evidence로만 기록한다.