Progress drafts
기준일: 2026-07-26
공식 기준: Progress drafts
Progress drafts 문서는 OpenClaw 공식 문서(concepts/progress-drafts)를 한국어로 정리한 가이드입니다. Progress drafts: one visible work-in-progress message that updates while an agent runs 명령·설정 키·코드 예시는 공식 문서를 그대로 보존하며, 해석과 절차 안내는 한국어로 제공합니다. 최종 동작은 설치된 CLI 버전과 공식 원문을 확인하세요.
핵심 요약
Progress drafts: one visible work-in-progress message that updates while an agent runs
한국어 가이드 범위: concepts/progress-drafts 경로의 설정·명령·제약·예시를 학습용으로 재구성합니다.
문서 구성
공식 문서의 주요 섹션은 다음과 같습니다.
- 빠른 시작
- What users see
- Choose a mode
- Configure labels
- Control progress lines
- Detail mode
- Command/exec text
- Commentary lane
- Status headline
- Line limits
- Rich rendering (Slack)
- Hide tool/task lines
- Channel behavior
- Finalization
- 트러블슈팅
- 관련 문서
상세 내용
본문
Progress drafts turn one channel message into a live status line while an agent works, instead of a stack of temporary "still working" replies. Set channels..streaming.mode: "progress" and OpenClaw creates the message once real work starts, edits it as the agent reads, plans, calls tools, or waits for approval, then turns it into the final answer.
위 내용은 공식 문서의 해당 섹션 요지입니다. 세부 플래그·기본값은 원문과
--help를 확인하세요.
Working...
📖 from docs/concepts/progress-drafts.md
🔎 Web Search: for "discord edit message"
🛠️ Bash: run tests
빠른 시작
Defaults from here: a start delay of 5 seconds, compact progress lines while useful work happens, and suppression of the older standalone progress messages for that turn. Raw tool-line drafts use an automatic one-word label; a status headline omits that redundant title unless you configure one explicitly.
위 내용은 공식 문서의 해당 섹션 요지입니다. 세부 플래그·기본값은 원문과
--help를 확인하세요.
{
channels: {
discord: {
streaming: {
mode: "progress",
},
},
},
}
What users see
For raw tool progress, the label appears once the agent starts meaningful work and stays busy for the initial delay. It sits at the top of the rolling progress-line list, so it scrolls away once enough concrete work lines appear. A status headline shows only the agent's plain-language status unless a label is configured explicitly. Plain text-only replies never show a progress draft; a line appears only for real work updates, for example 🛠️ Bash: run tests, 🔎 Web Search: for "discord edit message", or ✍️ Write: to /tmp/file.
위 내용은 공식 문서의 해당 섹션 요지입니다. 세부 플래그·기본값은 원문과
--help를 확인하세요.
| Part | Purpose |
|---|---|
| Status headline | On Discord and Telegram, the model preamble; Discord adds a utility filler. |
| Label | Optional starter/status line such as Working. |
| Progress lines | Compact run updates using the same tool icons and detail formatter as /verbose. |
Choose a mode
channels..streaming.mode controls the visible in-progress behavior:
위 내용은 공식 문서의 해당 섹션 요지입니다. 세부 플래그·기본값은 원문과
--help를 확인하세요.
| Mode | Best for | What appears in chat |
|---|---|---|
off |
Quiet channels | Only the final answer. |
partial |
Watching answer text appear | One draft edited with the latest answer text. |
block |
Larger answer-preview chunks | One preview updated or appended in bigger chunks. |
progress |
Tool-heavy or long-running turns | One status draft, then the final answer. |
Configure labels
Progress labels live under channels..streaming.progress. The default raw tool-line label is "auto", which uses the plain built-in Working label. A status headline hides that implicit label; set label: "auto" explicitly if you want a label above it too:
위 내용은 공식 문서의 해당 섹션 요지입니다. 세부 플래그·기본값은 원문과
--help를 확인하세요.
Working
{
channels: {
discord: {
streaming: {
mode: "progress",
progress: {
label: "Investigating",
},
},
},
},
}
{
channels: {
discord: {
streaming: {
mode: "progress",
progress: {
label: "auto",
labels: ["Checking", "Reading", "Testing", "Finishing"],
},
},
},
},
}
{
channels: {
discord: {
streaming: {
mode: "progress",
progress: {
label: false,
},
},
},
},
}
Control progress lines
Progress lines come from real run events: tool starts, item updates, task plans, approvals, command output, patch summaries, and similar agent activity. They are enabled by default (progress.toolProgress, default true).
위 내용은 공식 문서의 해당 섹션 요지입니다. 세부 플래그·기본값은 원문과
--help를 확인하세요.
{
"content": [],
"progress": {
"text": "Fetching page content...",
"visibility": "channel",
"privacy": "public",
"id": "web_fetch:fetching"
}
}
const clearProgressTimer = scheduleToolProgress(
onUpdate,
{ text: "Fetching page content...", id: "web_fetch:fetching" },
5_000,
{ signal },
);
try {
return await runToolWork();
} finally {
clearProgressTimer();
}
Detail mode
OpenClaw uses the same formatter for progress drafts and /verbose:
위 내용은 공식 문서의 해당 섹션 요지입니다. 세부 플래그·기본값은 원문과
--help를 확인하세요.
| Mode | Progress line |
|---|---|
explain |
🛠️ check js syntax for /tmp/app.js |
raw |
🛠️ check js syntax for /tmp/app.js · node --check /tmp/app.js |
{
agents: {
defaults: {
toolProgressDetail: "explain", // explain | raw
},
},
}
Command/exec text
streaming.progress.commandText (default "raw") controls how much command detail shows next to exec/bash progress lines, independent of the detail mode above. Set it to "status" to keep a tool-progress line visible while hiding the command text entirely:
위 내용은 공식 문서의 해당 섹션 요지입니다. 세부 플래그·기본값은 원문과
--help를 확인하세요.
{
channels: {
discord: {
streaming: {
mode: "progress",
progress: {
commandText: "status",
},
},
},
},
}
Commentary lane
streaming.progress.commentary (default false) interleaves the model's pre-tool commentary/preamble narration (💬, for example "I'll check... then ...") with tool lines in the draft. See Streaming and chunking for the shared config shape across channels.
위 내용은 공식 문서의 해당 섹션 요지입니다. 세부 플래그·기본값은 원문과
--help를 확인하세요.
Status headline
On Discord and Telegram in progress mode, the model's typed pre-tool preamble becomes the draft's status headline whenever it is available. Other progress-mode channels keep their existing status behavior. The headline is on by default and does not bypass the normal activity gate for short turns; enabling streaming.progress.commentary hands preambles to the interleaved commentary lane instead.
위 내용은 공식 문서의 해당 섹션 요지입니다. 세부 플래그·기본값은 원문과
--help를 확인하세요.
Updating the default model in your config, then restarting the gateway to pick
it up. One agent listing call failed and is being retried.
{
channels: {
discord: {
streaming: {
mode: "progress",
progress: {
narration: false,
},
},
},
},
}
Line limits
Limit how many lines stay visible (default 8):
위 내용은 공식 문서의 해당 섹션 요지입니다. 세부 플래그·기본값은 원문과
--help를 확인하세요.
{
channels: {
discord: {
streaming: {
mode: "progress",
progress: {
maxLines: 4,
},
},
},
},
}
{
channels: {
discord: {
streaming: {
mode: "progress",
progress: {
maxLineChars: 160,
},
},
},
},
}
Rich rendering (Slack)
Slack can render progress lines as structured Block Kit fields instead of plain text:
위 내용은 공식 문서의 해당 섹션 요지입니다. 세부 플래그·기본값은 원문과
--help를 확인하세요.
{
channels: {
slack: {
streaming: {
mode: "progress",
progress: {
render: "rich",
},
},
},
},
}
Hide tool/task lines
Keep the single progress draft but hide tool and task lines:
위 내용은 공식 문서의 해당 섹션 요지입니다. 세부 플래그·기본값은 원문과
--help를 확인하세요.
{
channels: {
discord: {
streaming: {
mode: "progress",
progress: {
toolProgress: false,
},
},
},
},
}
Channel behavior
Channels without safe edit support fall back to typing indicators or final-only delivery. See Streaming and chunking for the full runtime-behavior breakdown per channel.
위 내용은 공식 문서의 해당 섹션 요지입니다. 세부 플래그·기본값은 원문과
--help를 확인하세요.
| Channel | Progress transport | Notes |
|---|---|---|
| Discord | Send one message, then edit it. | Defaults to progress mode; the final answer carries a -# activity receipt and the status draft is deleted after the answer lands. |
| Matrix | Send one event, then edit it. | Account-level streaming config controls account-level drafts. |
| Microsoft Teams | Native Teams stream in personal chats. | streaming.mode: "block" maps to Teams block delivery instead. |
| Slack | Native stream or editable draft post. | Needs a reply thread target; top-level DMs without one still get draft preview posts and edits. |
| Telegram | Send one message, then edit it. | If a message lands between the progress draft and the answer, the draft reposts below it (post-new-then-delete-old) instead of scroll-jumping the client. |
| Mattermost | Editable draft post. | block mode rotates between completed text and tool-activity posts; other modes fold tool activity into the same draft-style post. |
Finalization
When the final answer is ready, OpenClaw tries to keep the chat clean:
위 내용은 공식 문서의 해당 섹션 요지입니다. 세부 플래그·기본값은 원문과
--help를 확인하세요.
주요 항목:
- In
progressmode on Discord, the final answer is sent as a fresh message - If the draft can safely become the final answer (
partial/blockmodes), - If the channel uses native progress streaming, OpenClaw finalizes that
- Otherwise (media, an approval prompt, an explicit reply target, too many
트러블슈팅
Check that channels..streaming.mode is progress for the account or channel that handled the message. Some group or quote-reply paths disable draft previews for a turn when the channel cannot safely edit the right message.
위 내용은 공식 문서의 해당 섹션 요지입니다. 세부 플래그·기본값은 원문과
--help를 확인하세요.
관련 문서
주요 항목:
- Streaming and chunking
- Messages
- Channel configuration
- Discord
- Matrix
- Microsoft Teams
- Slack
- Telegram
- Mattermost
실습 체크리스트
- 공식 문서와 로컬 버전을 대조합니다:
https://docs.openclaw.ai/concepts/progress-drafts - 관련 CLI는
openclaw --help및 하위 명령--help로 옵션을 확인합니다. - 설정 변경 시
openclaw config/openclaw doctor로 유효성을 검사합니다. - Gateway·채널·플러그인 변경 후에는 필요 시 Gateway를 재시작합니다.
자주 쓰는 명령·설정 예시
Working...
📖 from docs/concepts/progress-drafts.md
🔎 Web Search: for "discord edit message"
🛠️ Bash: run tests
{
channels: {
discord: {
streaming: {
mode: "progress",
},
},
},
}
Working
{
channels: {
discord: {
streaming: {
mode: "progress",
progress: {
label: "Investigating",
},
},
},
},
}
{
channels: {
discord: {
streaming: {
mode: "progress",
progress: {
label: "auto",
labels: ["Checking", "Reading", "Testing", "Finishing"],
},
},
},
},
}
{
channels: {
discord: {
streaming: {
mode: "progress",
progress: {
label: false,
},
},
},
},
}
관련 링크
이 가이드는 공식 문서를 한국어 학습용으로 재구성한 것입니다. 옵션 기본값·플래그 이름은 설치 버전에 따라 달라질 수 있습니다.