크라우니인베스트 자율에이전트 경험 4도구
개요
invest.crowny.org(:9876)를 요청-응답형에서
스스로 관측→4상 결정→행동→설명하는 자율에이전트 경험으로 확장. 울트라 병렬 12에이전트(명세=오푸스4 / 글밥=하이쿠2 / 구현·통합=소넷 / 적대검증=오푸스 / 계획·판정=패블) + 수정 소넷 1.
무엇을 했는지
- 일지
핵심/일지.한선 — 활동일지 WAL(PSV 시각|유형|상|내용, 파트 회전, 최하층 무의존). GET /api/agentfeed
- 제안큐
핵심/제안.한선 — 타/음 판정 시 인간승인 대기열(4상 음=이관 실체). append-only 최신레코드 승리, 멱등(중복/미존재/빈body 처리). GET /api/proposals, POST /api/propact {id, act}
- 대화
핵심/대화.한선 — 집사에게 묻기: 집사_의도 라우팅 + 표현.한선 NLG로 한국어 답변. POST /api/ask {q}
- 순찰
핵심/순찰.한선 — 자율 틱: 운영/위기 관측→크라우니사고 4상→티=기록/옴=관찰/타·음=제안 등록+일지. GET /api/patrol + 순찰기.한선(체계 curl 루프 드라이버 — 데이터 쓰기는 서버 프로세스 단독, 경합 회피)
- UI: 인트라넷 "자율에이전트" 섹션(활동 타임라인·제안큐 승인/반려·집사에게 묻기·순찰 버튼), 랜딩 4순환(관측/4상결정/활동일지/승인제안) 소개 섹션. 총 40 API·25모듈.
적대검증 → 치명버그 수정
- [치명] 일지 회전 char≠byte: 회전한계를 글자수(12000 char)로 측정 — 한글 ~3B/char라 읽기() 16384B 한계를 먼저 초과 → data/일지.dat UTF-8 손상+wedge, agentfeed 깨진 JSON. 수정: 회전한계 4500 char(최악 13.5KB), 병합가드 9400 char. 손상본은
data/일지.손상백업.20260613.dat 보존 후 유효 줄 tail 복구. 가드레일 템플릿+메모리(feedback_hanseon_rotation_char_vs_byte) 반영.
- 한글 API 별칭(/api/활동일지 등)은 percent-encoding으로 전부 미동작 — ASCII 정본 명시로 문서 정정.
- 일지_기록 반환 1 → epoch id로 의미화.
- 최종 검증 GREEN: 회전 실증(160틱 → p1 8283B/p2 8288B/p3 976B, 전부 <16KB), 제안 대기→승인 전이, 피드 유효 JSON, 기존 라우트 회귀(status/ops/brief/ask).
관련 파일
/Users/ef/crowny-invest/핵심/{일지,제안,대화,순찰}.한선, 순찰기.한선
/Users/ef/crowny-invest/투자서버.한선 (라우트 5+별칭), public/intranet.html(agent 섹션), public/index.html(autonomous 섹션)
인터페이스.md·CLAUDE.md 계약/규칙 갱신
- 워크플로 스크립트: 세션 디렉토리 invest-autonomous-agent-tools-wf_908b2e85-8db.js
잔여 이슈
- 순찰기.한선 상시 구동(LaunchAgent) 미설정 — 현재는 /api/patrol 수동/버튼 틱.
- 제안큐 데이터에 검증용 레코드(PR10 전이테스트 등) 잔존 — 시연엔 무해.
- 한글 별칭 라우트는 소스에만 존재(죽은 코드) — 추후 percent-decode 라우팅 추가 또는 제거 결정.