channels.<channel>.streaming.mode: "progress"을 설정하면 OpenClaw는 실제 작업이 시작될 때 메시지를 생성하고, 에이전트가 읽거나, 계획하거나, 도구를 호출하거나, 승인을 기다리는 동안 메시지를 수정한 다음, 이를 최종 답변으로 바꿉니다.
Discord에서는
channels.discord.streaming이 설정되지 않은 경우 이미 기본값으로 streaming.mode: "progress"을 사용하므로, 별도 구성 없이 진행 상황 초안이 표시됩니다. 다른 모든 채널의 기본값은 partial 또는 off입니다. 채널별 전체 기본값 표는 스트리밍 및 청킹을 참조하십시오.빠른 시작
사용자에게 표시되는 내용
원시 도구 진행 상황의 경우 에이전트가 의미 있는 작업을 시작하고 초기 지연 시간 동안 계속 작업하면 레이블이 표시됩니다.
레이블은 순환하는 진행 상황 줄 목록의 맨 위에 있으므로, 구체적인 작업 줄이 충분히 표시되면 스크롤되어 사라집니다. 상태 헤드라인에는 레이블을 명시적으로 구성하지 않는 한 에이전트의 일반 언어 상태만 표시됩니다. 일반 텍스트로만 구성된 답글에는 진행 상황 초안이 표시되지 않습니다. 줄은
🛠️ Bash: run tests, 🔎 Web Search: for "discord edit message", ✍️ Write: to /tmp/file과 같은 실제 작업 업데이트에만 표시됩니다.
채널에서 안전하게 처리할 수 있으면 최종 답변이 초안을 그 자리에서 대체합니다. 그렇지 않으면 OpenClaw는 일반 전송 방식으로 최종 답변을 보내고 초안을 정리하거나 업데이트를 중지합니다(마무리 참조).
모드 선택
channels.<channel>.streaming.mode은 사용자에게 표시되는 진행 중 동작을 제어합니다.
사용자가 답변 텍스트가 토큰 단위로 스트리밍되는 모습을 보는 것보다 “무슨 일이 진행 중인지”를 더 중요하게 여긴다면
progress을 선택하십시오. 답변 텍스트 자체가 진행 상황 신호라면 partial을, 더 큰 미리 보기 청크에는 block을 선택하십시오. Discord와 Telegram에서 streaming.mode: "block"은 여전히 미리 보기 스트리밍이며 일반 블록 답글 전송이 아닙니다. 일반 블록 답글 전송에는 streaming.block.enabled을 사용하십시오.
레이블 구성
진행 상황 레이블은channels.<channel>.streaming.progress 아래에 있습니다. 기본 원시 도구 줄 레이블은 "auto"이며, 일반 기본 제공 Working 레이블을 사용합니다. 상태 헤드라인은 이 암시적 레이블을 숨깁니다. 상태 헤드라인 위에도 레이블을 표시하려면 label: "auto"을 명시적으로 설정하십시오.
label: "auto"인 경우에도 무작위/시드에 따라 선택됨).
진행 상황 줄 제어
진행 상황 줄은 도구 시작, 항목 업데이트, 작업 계획, 승인, 명령 출력, 패치 요약 및 이와 유사한 에이전트 활동 등 실제 실행 이벤트에서 생성됩니다. 기본적으로 활성화되어 있습니다(progress.toolProgress, 기본값 true).
도구는 단일 호출이 계속 실행 중인 동안에도 형식이 지정된 진행 상황을 내보낼 수 있습니다. 이를 통해 느린 가져오기나 검색이 최종 결과를 반환하기 전에 사용자에게 표시되는 초안을 업데이트할 수 있습니다. 진행 상황 업데이트는 모델 콘텐츠가 비어 있고 명시적인 공개 채널 메타데이터가 포함된 부분 도구 결과입니다.
progress.text만 렌더링합니다. 일반 도구 결과는 나중에 content/details로 계속 도착하며, 모델에 반환되는 유일한 부분입니다.
도구에 진행 상황을 추가할 때는 짧고 일반적인 메시지를 내보내고, 작업이 유용할 만큼 충분히 오래 대기 중인 경우에만 표시되도록 지연하십시오. web_fetch은 5초의 지연을 두고 정확히 이 작업을 수행합니다.
세부 정보 모드
OpenClaw는 진행 상황 초안과/verbose에 동일한 포매터를 사용합니다.
"explain"은 기본값이며 간결한 레이블을 사용해 초안을 안정적으로 유지합니다.
"raw"은 사용할 수 있는 경우 내부 명령을 추가합니다. 디버깅할 때 유용하지만 채팅에서는 더 번잡합니다. 예를 들어 node --check /tmp/app.js 호출은 모드에 따라 다르게 렌더링됩니다.
명령/실행 텍스트
streaming.progress.commandText(기본값 "raw")은 위의 세부 정보 모드와 별개로 exec/bash 진행 상황 줄 옆에 표시되는 명령 세부 정보의 양을 제어합니다. 명령 텍스트를 완전히 숨기면서 도구 진행 상황 줄은 계속 표시하려면 "status"로 설정하십시오.
해설 레인
streaming.progress.commentary(기본값 false)은 모델이 도구 사용 전에 제공하는 해설/프리앰블 설명(💬, 예: “먼저 확인한 다음…”)을 초안의 도구 줄 사이에 배치합니다. 채널 간 공유 구성 형태는 스트리밍 및 청킹을 참조하십시오.
해설 레인이 활성화되면 프리앰블은 이러한 중간 삽입 💬 줄로만 렌더링됩니다. 아래의 상태 헤드라인은 표시되지 않으므로 레인이 문서화된 형태를 유지합니다.
상태 헤드라인
Discord와 Telegram의 진행 상황 모드에서는 모델이 도구 사용 전에 형식이 지정된 프리앰블을 제공할 경우 해당 프리앰블이 초안의 상태 헤드라인이 됩니다. 다른 진행 상황 모드 채널은 기존 상태 동작을 유지합니다. 헤드라인은 기본적으로 활성화되어 있으며 짧은 턴에서 일반적인 활동 게이트를 우회하지 않습니다.streaming.progress.commentary을 활성화하면 프리앰블이 대신 중간 삽입 해설 레인으로 전달됩니다.
Discord에서 에이전트에 사용할 유틸리티 모델이 결정되면(명시적인 utilityModel 또는 주 공급자가 선언한 소형 모델 기본값(OpenAI → gpt-5.6-luna, Anthropic → claude-haiku-4-5)), 모델이 프리앰블을 내보내지 않거나 약 20초 동안 응답이 없을 때 짧은 일반 언어 보충 문구를 제공합니다(Telegram의 헤드라인은 현재 프리앰블만 사용합니다).
streaming.progress.narration, 기본값 true) 주 모델로 절대 대체되지 않습니다. 에이전트의 주 공급자에 대해 명시적인 utilityModel 또는 공급자가 선언한 기본값이 있는 경우에만 실행됩니다. 유틸리티 라우팅을 완전히 비활성화하려면 utilityModel: ""로 설정하십시오. 도구 줄은 아래에 계속 누적되며 두 상태 소스가 모두 중지되면 다시 표시됩니다. 초안 수정은 일반적인 활동 게이트와 실제 텍스트 변경을 계속 기다립니다. 이를 통해 빠른 턴에서 순간적으로 표시되는 현상을 방지하고 사용량이 많은 채널에서 수정 횟수를 줄입니다. 유틸리티 모델 보충 문구만 비활성화하려면 narration: false로 설정하십시오. 모델 프리앰블 헤드라인은 계속 활성화됩니다.
commandText: "status"을 사용하면 설명 입력에서도 exec/bash 명령 텍스트가 생략되어 초안에 표시되는 내용과 일치합니다.
줄 제한
표시되는 줄 수를 제한합니다(기본값 8).리치 렌더링(Slack)
Slack에서는 진행 상황 줄을 일반 텍스트 대신 구조화된 Block Kit 필드로 렌더링할 수 있습니다.도구/작업 줄 숨기기
단일 진행 상황 초안은 유지하면서 도구 및 작업 줄을 숨깁니다.toolProgress: false을 사용하면 OpenClaw는 해당 턴의 이전 독립 실행형
도구 진행 메시지를 계속 억제합니다. 레이블이 구성된 경우 해당 레이블을 제외하면
최종 답변이 나올 때까지 채널은 시각적으로 조용한 상태를 유지합니다.
채널 동작
안전한 편집을 지원하지 않는 채널은 입력 중 표시기 또는
최종 답변만 전송하는 방식으로 대체됩니다. 채널별 전체 런타임 동작 분석은
스트리밍 및 청킹을 참조하십시오.
마무리
최종 답변이 준비되면 OpenClaw는 채팅을 깔끔하게 유지하려고 합니다.- Discord의
progress모드에서는 최종 답변이 새 메시지로 전송되고, 작은-#활동 확인 표시가 추가되며(예:-# 🧠 2 thoughts · 🛠️ 5 tool calls · ⏱️ 12s), 해당 답변이 전송되면 상태 초안이 삭제됩니다. 사용량이 많은 채널에서도 답글 위에 고립된 도구 로그가 남지 않습니다. 오류로 끝난 경우에는 실패한 턴의 표시 기록으로 초안이 유지됩니다. - 초안을 안전하게 최종 답변으로 바꿀 수 있는 경우(
partial/block모드), OpenClaw는 해당 초안을 그대로 편집합니다. - 채널에서 네이티브 진행 상황 스트리밍을 사용하면 네이티브 전송 방식이 최종 텍스트를 수락할 때 OpenClaw가 해당 스트림을 마무리합니다.
- 그 밖의 경우(미디어, 승인 프롬프트, 명시적 답글 대상, 너무 많은 청크 또는 편집/전송 실패) OpenClaw는 초안을 덮어쓰는 대신 일반 채널 전송 경로를 통해 최종 답변을 전송합니다.
문제 해결
최종 답변만 표시됩니다. 메시지를 처리한 계정 또는 채널에서channels.<channel>.streaming.mode이
progress인지 확인하십시오. 일부 그룹 또는 인용 답글 경로에서는
채널이 올바른 메시지를 안전하게 편집할 수 없는 경우 해당 턴의 초안 미리보기가
비활성화됩니다.
레이블은 표시되지만 도구 작업 줄은 표시되지 않습니다.
streaming.progress.toolProgress을 확인하십시오. 이 값이 false이면 OpenClaw는
단일 초안 동작을 유지하지만 도구 및 작업 진행 상황 줄은 숨깁니다.
편집된 초안 대신 새 최종 메시지가 표시됩니다.
이는 마무리에 설명된 안전 대체 동작입니다. 미디어 답글,
긴 답변, 명시적 답글 대상, 오래된 Telegram 초안, 누락된 Slack 스레드 대상,
삭제된 미리보기 메시지 또는 네이티브 스트림 마무리 실패 시 발생할 수 있습니다.
독립 실행형 진행 상황 메시지가 계속 표시됩니다.
진행 상황 모드에서는 초안이 활성화된 동안 기본 독립 실행형 도구 진행 메시지를
억제합니다. 독립 실행형 메시지가 계속 표시되면 해당 턴이 실제로
progress 모드를 사용하고 있으며, streaming.mode: "off" 또는 해당 메시지의
초안을 생성할 수 없는 채널 경로를 사용하고 있지 않은지 확인하십시오.
Teams가 Discord 또는 Telegram과 다르게 동작합니다.
Microsoft Teams는 일반적인 전송 후 편집 방식의 미리보기 전송 대신 개인 채팅에서
네이티브 스트림을 사용하며, Discord 및 Telegram과 같은 초안 미리보기 블록 모드가
없으므로 streaming.mode: "block"을 Teams 블록 전송에 매핑합니다.