CHAT
news.example.com/article/2026-09-25-market
m
조이
Buddy
Manager
⤡ ✕
옆에서 같이 이야기해요 MANA1,420
mos-happy
옆에서 같이 이야기해요 대화와 기억만 써요. Mon을 부르거나 일을 맡기지 않아요. 일을 맡기려면 Manager로 바꿔 주세요. 빈 상태 · Mos는 먼저 말하지 않아요
인사 말풍선 · 추천 버튼 없음
+
Buddy · 대화 전용
↑
SSE AG-UI 이벤트 스트림 0 events
수명주기 상태 텍스트 메시지 추론 도구 호출 서브에이전트 커스텀
GUIDE 디자이너 기준 — 이벤트가 그리는 것
00 모드 × 도구 · 미들웨어 맵 mosmos-nexus/core@dev · casts/mos/modules/agents.py 조립 순서 그대로
Buddy 도구 3 · 미들웨어 8 · Gemini Manager 도구 7 + 계획 1 + 파일 7 + zoom_image · 미들웨어 16(+캐싱) · Claude ✓ ×n = 이미지당 크롭 횟수
도구출처BUDDYMANAGER사용자 화면화면 표현
search_memories도구✓✓보여줌"기억 n개를 떠올렸어요" 한 줄 · 펼치면 떠올린 기억을 문장으로
update_persona도구✓✓보여줌"말투를 기억했어요 · 다음 대화부터 적용돼요" 한 줄 · 펼치면 저장한 문장. 승인 없음
zoom_imageAttachment 등록✓ ×1✓ ×3숨김카드 없음. 크롭은 모델 내부 확인용 — 사용자는 첨부 썸네일만 봐요
ask_user도구—✓보여줌질문 카드만. 도구 줄은 그리지 않아요
propose_brief도구 · 신규—✓보여줌작업 요약 카드(CH-17). 도구 줄 없음
search_mons도구—✓보여줌"Mon n개에게 맡길게요" 한 줄 · 펼치면 이름 — 맡을 일. Hub 공개 Mon만 찾아요. 맞는 Mon이 약하면 선택 카드(CH-22)
call_mon도구—✓보여줌Mon 카드 하나(이름 · 지금 하는 일 · 결과). 도구 줄 없음
escalate_tier도구—✓숨김카드 · 배지 없음. 티어는 사용자에게 보여주지 않아요
write_todosTodoList—✓보여줌본문 한 줄 + 계획 진행 바(CH-08)
write_file · edit_fileFilesystem—✓선택/files/에 쓴 결과물만 파일 행으로. 중간 임시 파일은 숨김
deleteFilesystem · 승인—✓보여줌실행 승인 카드(CH-19) · 파일별로 고름. 도구 줄 없음
ls · read_file · glob · grepFilesystem—✓숨김내부 탐색. 카드 없음
read_file(/skills/)Skills—✓숨김Mos Skill 참고. 카드 없음
execute (셸)———숨김모델에 노출되지 않아요. 그리지 않음
미들웨어출처BUDDYMANAGER사용자 화면화면 표현
ManagerTierModelMiddleware미들웨어—✓숨김티어 판정. 화면에 그리지 않음
ManagerClarificationMiddleware미들웨어 · 신규—✓숨김질문 3개 제한 · 명확도 2 이상이면 승인된 요약 없이 새 위임 거절. 화면 요소 없음 — FE는 결과(질문 카드 · 요약 카드)만 그려요
AttachmentMiddleware미들웨어✓✓보여줌입력창 첨부 칩 · 말풍선 썸네일(+ 버튼)
TodoListMiddleware미들웨어—✓보여줌write_todos → 계획 진행 바(CH-08)
FilesystemMiddleware미들웨어—✓선택파일 도구 — 위 행 기준
MonFitMiddleware미들웨어—✓숨김search_mons 결과에 적합도 주석. 사용자에게 점수 노출 안 함
PersonaPromptMiddleware미들웨어✓✓숨김모드 헌장 · 페르소나 조립
PatchToolCallsMiddleware미들웨어✓✓숨김끊긴 도구 기록 보정
MemorizingMiddleware미들웨어✓✓숨김선호 주입 · 턴 기록
SessionHydrationMiddleware미들웨어✓✓숨김세션 맥락 주입(Buddy는 재회 톤)
SelectedMonsMiddleware미들웨어—✓보여줌입력창 Mon 칩(Mon 버튼으로 붙인 것) — 먼저 위임
SkillsMiddleware미들웨어—✓숨김Mos Skill 목록 주입
ContextEditingMiddleware미들웨어—✓숨김오래된 도구 결과 정리
SpendCheckMiddleware미들웨어✓✓보여줌Mana 부족 배너(경고 톤). 응답 도중에도 멈출 수 있어요
CompactionRolloverMiddleware미들웨어✓✓선택구분선 "대화를 정리했어요" 1회(session.rollover)
CostMiddleware미들웨어✓✓숨김원가 기록 — 브라우저로 오지 않음
Anthropic · Bedrock PromptCaching미들웨어—✓숨김캐시. 그리지 않음
08 그리지 않는 이벤트 MANAGER_TIER_DECISION · mosmos.manager.tier_escalation · PERSONA_SAVED · COST_RECORDED · COST_UNBILLED api가 소비하고 브라우저에는 오지 않아요. 티어(manager_tier)는 화면에 그리지 않아요.
09 작업 요약 · 질문 제한 — Manager 신규 core@dev · tools/brief.py · middlewares/clarification.py · tools/mon.py · docs/agui-gateway-contract.md §3 · §4.4 시나리오 m7 – m10에서 재생
작업 요약 카드 · propose_brief · 언제: 요청이 모호할 때(명확도 2 이상), 새 Mon에게 맡기기 전에 떠요. 승인해야 위임이 시작돼요. · 그리는 법: interrupt의 toolCallId → 같은 id의 TOOL_CALL(toolCallName: propose_brief) → TOOL_CALL_ARGS JSON을 절별로 그려요. · 절: 목표(goal) · 할 일(deliverables) · 완료 기준(acceptance_criteria) · 가정(assumptions) · 나중에 정할 것(decide_later). 빈 절은 숨겨요. · 선택지: 첫 줄이 승인(approve_label), 그 아래 고칠 선택지 1–3개(change_options). 직접 쓰기는 항상 열어 둬요. "기타"를 따로 넣지 마세요. · 답: payload { [question]: label 또는 직접 쓴 글 }. approve_label과 글자가 같을 때만 승인이에요. · 승인이 아니면 조이가 고쳐서 다시 제안해요. 카드는 한 번에 하나만 떠요. 건너뛰기 버튼은 두지 않아요.· 승인은 그 위임에 한 번 쓰이면 풀려요. 다음 새 목표는 새 요약을 받아요. 상단에 고정하지 않아요. 폼을 못 그리는 경우의 대체: metadata.questions[0].question에 전체 요약이 " / "로 이어진 한 줄로 와요.
질문 제한 · 목표 하나에 질문 3개까지예요. ask_user는 질문 수만큼, 요약 카드는 1개로 세요. · 명확도 2 이상이면 마지막 1개는 요약 카드 몫이에요. 그래서 ask_user는 최대 2개예요. · 3개를 다 쓰면 조이는 더 묻지 않고, 쓴 가정을 답변에 적은 뒤 바로 맡겨요(m9). · 되돌릴 수 없는 일의 확인(예: 발송 · 삭제)은 이 3개에 들지 않아요. 남은 질문 수는 FE로 오지 않아요(STATE_SNAPSHOT에 없음). 카운터 UI를 그리지 마세요.