Documentation Index
Fetch the complete documentation index at: https://docs.openclaw.ai/llms.txt
Use this file to discover all available pages before exploring further.
ฉบับร่างความคืบหน้าทำให้เทิร์นของเอเจนต์ที่ใช้เวลานานรู้สึกมีความเคลื่อนไหวในแชตโดยไม่เปลี่ยน
การสนทนาให้กลายเป็นกองข้อความสถานะชั่วคราว
เมื่อเปิดใช้ฉบับร่างความคืบหน้า OpenClaw จะสร้างข้อความงานที่กำลังดำเนินอยู่ซึ่งมองเห็นได้
เพียงหนึ่งข้อความหลังจากเทิร์นนั้นพิสูจน์แล้วว่ากำลังทำงานจริง อัปเดตข้อความนั้นขณะที่
เอเจนต์อ่าน วางแผน เรียกใช้เครื่องมือ หรือรอการอนุมัติ แล้วเปลี่ยนฉบับร่างนั้น
ให้เป็นคำตอบสุดท้ายเมื่อช่องทางทำได้อย่างปลอดภัย
Shelling...
📖 from docs/concepts/progress-drafts.md
🔎 Web Search: for "discord edit message"
🛠️ Bash: run tests
ใช้ฉบับร่างความคืบหน้าเมื่อคุณต้องการข้อความสถานะที่เรียบร้อยเพียงข้อความเดียวระหว่างงานที่ใช้เครื่องมือจำนวนมาก
และคำตอบสุดท้ายเมื่อเทิร์นเสร็จสิ้น
เริ่มต้นอย่างรวดเร็ว
เปิดใช้ฉบับร่างความคืบหน้าแยกตามช่องทางด้วย streaming.mode: "progress":
{
channels: {
discord: {
streaming: {
mode: "progress",
},
},
},
}
โดยปกติเท่านี้ก็เพียงพอแล้ว OpenClaw จะเลือกป้ายกำกับหนึ่งคำอัตโนมัติ รอ
จนกว่างานจะใช้เวลาอย่างน้อยห้าวินาทีหรือปล่อยเหตุการณ์งานครั้งที่สอง เพิ่มบรรทัด
ความคืบหน้าแบบกะทัดรัดขณะที่มีงานที่เป็นประโยชน์เกิดขึ้น และระงับข้อความคืบหน้าเดี่ยวที่ซ้ำกัน
สำหรับเทิร์นนั้น
สิ่งที่ผู้ใช้เห็น
ฉบับร่างความคืบหน้ามีสองส่วน:
| ส่วน | วัตถุประสงค์ |
|---|
| ป้ายกำกับ | บรรทัดเริ่มต้น/สถานะสั้นๆ เช่น Thinking... หรือ Shelling... |
| บรรทัดความคืบหน้า | อัปเดตการทำงานแบบกะทัดรัดโดยใช้ไอคอนเครื่องมือและตัวจัดรูปแบบรายละเอียดเดียวกับเอาต์พุตแบบละเอียด |
ป้ายกำกับจะปรากฏหลังจากเอเจนต์เริ่มทำงานที่มีความหมาย และยังคงยุ่งอยู่
เป็นเวลาห้าวินาทีหรือปล่อยเหตุการณ์งานครั้งที่สอง ป้ายกำกับเป็นส่วนหนึ่งของรายการบรรทัด
ความคืบหน้าแบบเลื่อนต่อเนื่อง ดังนั้นสถานะเริ่มต้นจะเลื่อนหายไปเมื่อมีงานจริงที่ชัดเจนมากพอ
คำตอบแบบข้อความล้วนเท่านั้นจะไม่แสดงฉบับร่างความคืบหน้า บรรทัดความคืบหน้าจะถูกเพิ่ม
เฉพาะเมื่อเอเจนต์ปล่อยการอัปเดตงานที่เป็นประโยชน์ เช่น 🛠️ Bash: run tests,
🔎 Web Search: for "discord edit message" หรือ ✍️ Write: to /tmp/file
โดยค่าเริ่มต้นจะใช้โหมดอธิบายแบบกะทัดรัดเดียวกับ /verbose; ตั้งค่า
agents.defaults.toolProgressDetail: "raw" เมื่อกำลังดีบักและคุณต้องการให้แนบ
คำสั่ง/รายละเอียดดิบด้วย
คำตอบสุดท้ายจะแทนที่ฉบับร่างเมื่อเป็นไปได้ มิฉะนั้น
OpenClaw จะส่งคำตอบสุดท้ายตามปกติ และล้างหรือหยุดอัปเดต
ฉบับร่างตามการขนส่งของช่องทาง
เลือกโหมด
channels.<channel>.streaming.mode ควบคุมพฤติกรรมระหว่างดำเนินงานที่มองเห็นได้:
| โหมด | เหมาะที่สุดสำหรับ | สิ่งที่ปรากฏในแชต |
|---|
off | ช่องทางที่ต้องการความเงียบ | เฉพาะคำตอบสุดท้าย |
partial | การดูข้อความคำตอบค่อยๆ ปรากฏ | ฉบับร่างหนึ่งข้อความที่แก้ไขด้วยข้อความคำตอบล่าสุด |
block | ชิ้นส่วนพรีวิวคำตอบที่ใหญ่ขึ้น | พรีวิวหนึ่งรายการที่อัปเดตหรือแนบต่อเป็นชิ้นใหญ่ขึ้น |
progress | เทิร์นที่ใช้เครื่องมือจำนวนมากหรือใช้เวลานาน | ฉบับร่างสถานะหนึ่งข้อความ แล้วตามด้วยคำตอบสุดท้าย |
เลือก progress เมื่อผู้ใช้ใส่ใจกับ “สิ่งที่กำลังเกิดขึ้น” มากกว่าการดู
ข้อความคำตอบสตรีมทีละโทเค็น
เลือก partial เมื่อคำตอบเองคือสัญญาณความคืบหน้า
เลือก block เมื่อคุณต้องการอัปเดตพรีวิวฉบับร่างเป็นชิ้นข้อความที่ใหญ่ขึ้น บน
Discord และ Telegram, streaming.mode: "block" ยังคงเป็นการสตรีมพรีวิว ไม่ใช่
การส่งแบบบล็อกปกติ ใช้ streaming.block.enabled หรือ
blockStreaming แบบเดิมเมื่อคุณต้องการคำตอบแบบบล็อกปกติ
กำหนดค่าป้ายกำกับ
ป้ายกำกับความคืบหน้าอยู่ภายใต้ channels.<channel>.streaming.progress
ป้ายกำกับเริ่มต้นคือ auto ซึ่งจะเลือกจากพูลป้ายกำกับแบบ
หนึ่งคำพร้อมจุดไข่ปลาที่มีใน OpenClaw:
Thinking...
Shelling...
Scuttling...
Clawing...
Pinching...
Molting...
Bubbling...
Tiding...
Reefing...
Cracking...
Sifting...
Brining...
Nautiling...
Krilling...
Barnacling...
Lobstering...
Tidepooling...
Pearling...
Snapping...
Surfacing...
ใช้ป้ายกำกับคงที่:
{
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,
},
},
},
},
}
ควบคุมบรรทัดความคืบหน้า
บรรทัดความคืบหน้าถูกเปิดใช้โดยค่าเริ่มต้นในโหมดความคืบหน้า บรรทัดเหล่านี้มาจากเหตุการณ์การทำงานจริง:
การเริ่มใช้เครื่องมือ การอัปเดตรายการ แผนงาน การอนุมัติ เอาต์พุตคำสั่ง สรุปแพตช์
และกิจกรรมของเอเจนต์ในลักษณะคล้ายกัน
OpenClaw ใช้ตัวจัดรูปแบบเดียวกันสำหรับฉบับร่างความคืบหน้าและ /verbose:
{
agents: {
defaults: {
toolProgressDetail: "explain", // explain | raw
},
},
}
"explain" เป็นค่าเริ่มต้นและช่วยให้ฉบับร่างคงที่ด้วยป้ายกำกับที่กระชับ เช่น
🛠️ check JS syntax for /tmp/app.js "raw" จะแนบ
คำสั่ง/รายละเอียดพื้นฐานเมื่อมีอยู่ ซึ่งมีประโยชน์ระหว่างดีบักแต่ทำให้แชตมีเสียงรบกวนมากกว่า
ตัวอย่างเช่น คำสั่งเดียวกันจะแสดงแตกต่างกันตามโหมดรายละเอียด:
| โหมด | บรรทัดความคืบหน้า |
|---|
explain | 🛠️ check JS syntax for /tmp/app.js |
raw | 🛠️ check JS syntax for /tmp/app.js, node --check /tmp/app.js |
จำกัดจำนวนบรรทัดที่ยังคงมองเห็นได้:
{
channels: {
discord: {
streaming: {
mode: "progress",
progress: {
maxLines: 4,
},
},
},
},
}
บรรทัดความคืบหน้าจะถูกบีบอัดโดยอัตโนมัติเพื่อลดการจัดวางฟองแชตใหม่ขณะที่แก้ไขฉบับร่าง
OpenClaw ตัดบรรทัดความคืบหน้าที่ยาวโดยค่าเริ่มต้น เพื่อให้การแก้ไขฉบับร่างซ้ำๆ ไม่
ตัดบรรทัดแตกต่างกันในการอัปเดตแต่ละครั้ง คำนำหน้ายังคงอ่านได้ และรายละเอียดที่ยาว
เช่นพาธหรือคำสั่งดิบจะถูกย่อด้วยจุดไข่ปลา
Slack สามารถเรนเดอร์บรรทัดความคืบหน้าเป็นฟิลด์ Block Kit แบบมีโครงสร้างแทน
เนื้อความข้อความเดี่ยวได้:
{
channels: {
slack: {
streaming: {
mode: "progress",
progress: {
render: "rich",
},
},
},
},
}
การเรนเดอร์แบบ rich ยังคงมี fallback แบบข้อความล้วนเดียวกัน เพื่อให้ช่องทางและไคลเอนต์ที่
ไม่รองรับรูปแบบที่สมบูรณ์กว่า ยังคงแสดงข้อความความคืบหน้าแบบกะทัดรัดได้
คงฉบับร่างความคืบหน้าเดียวไว้ แต่ซ่อนบรรทัดเครื่องมือและงาน:
{
channels: {
discord: {
streaming: {
mode: "progress",
progress: {
toolProgress: false,
},
},
},
},
}
เมื่อใช้ toolProgress: false, OpenClaw ยังคงระงับข้อความ
ความคืบหน้าเครื่องมือแบบเดี่ยวเดิมสำหรับเทิร์นนั้น ช่องทางจะยังคงเงียบทางสายตาจนถึง
คำตอบสุดท้าย ยกเว้นป้ายกำกับหากมีการกำหนดค่าไว้
พฤติกรรมของช่องทาง
แต่ละช่องทางใช้การขนส่งที่สะอาดที่สุดที่รองรับ:
| ช่องทาง | การขนส่งความคืบหน้า | หมายเหตุ |
|---|
| Discord | ส่งข้อความหนึ่งข้อความ แล้วแก้ไขข้อความนั้น | ข้อความสุดท้ายถูกแก้ไขในตำแหน่งเดิมเมื่อพอดีกับข้อความพรีวิวที่ปลอดภัยหนึ่งข้อความ |
| Matrix | ส่งเหตุการณ์หนึ่งรายการ แล้วแก้ไขเหตุการณ์นั้น | การกำหนดค่าสตรีมมิงระดับบัญชีควบคุมฉบับร่างระดับบัญชี |
| Microsoft Teams | สตรีม Teams แบบเนทีฟในแชตส่วนตัว | streaming.mode: "block" แมปไปยังการส่งแบบบล็อกของ Teams |
| Slack | สตรีมเนทีฟหรือโพสต์ฉบับร่างที่แก้ไขได้ | ความพร้อมใช้งานของเธรดมีผลต่อว่าจะใช้สตรีมมิงเนทีฟได้หรือไม่ |
| Telegram | ส่งข้อความหนึ่งข้อความ แล้วแก้ไขข้อความนั้น | ฉบับร่างเก่าที่มองเห็นได้อาจถูกแทนที่ เพื่อให้เวลาประทับสุดท้ายยังมีประโยชน์ |
| Mattermost | โพสต์ฉบับร่างที่แก้ไขได้ | กิจกรรมของเครื่องมือถูกพับรวมเข้าในโพสต์รูปแบบฉบับร่างเดียวกัน |
ช่องทางที่ไม่มีการรองรับการแก้ไขอย่างปลอดภัยมัก fallback ไปใช้ตัวบอกสถานะกำลังพิมพ์หรือ
การส่งเฉพาะคำตอบสุดท้าย
การจบงาน
เมื่อคำตอบสุดท้ายพร้อมแล้ว OpenClaw จะพยายามรักษาแชตให้สะอาด:
- หากฉบับร่างสามารถกลายเป็นคำตอบสุดท้ายได้อย่างปลอดภัย OpenClaw จะแก้ไขในตำแหน่งเดิม
- หากช่องทางใช้สตรีมมิงความคืบหน้าแบบเนทีฟ OpenClaw จะจบสตรีมนั้น
เมื่อการขนส่งเนทีฟยอมรับข้อความสุดท้าย
- หากคำตอบสุดท้ายมีสื่อ พรอมป์อนุมัติ เป้าหมายการตอบกลับที่ระบุชัดเจน
มีชิ้นส่วนมากเกินไป หรือการแก้ไข/ส่งล้มเหลว OpenClaw จะส่งคำตอบสุดท้ายผ่าน
เส้นทางการส่งของช่องทางตามปกติ
เส้นทาง fallback เป็นสิ่งที่ตั้งใจไว้ การส่งคำตอบสุดท้ายใหม่ดีกว่า
การทำข้อความหาย ส่งคำตอบผิดเธรด หรือเขียนทับฉบับร่างด้วยเพย์โหลดที่ช่องทาง
ไม่สามารถแสดงได้อย่างปลอดภัย
การแก้ไขปัญหา
ฉันเห็นเฉพาะคำตอบสุดท้ายเท่านั้น
ตรวจสอบว่า channels.<channel>.streaming.mode ถูกตั้งเป็น progress สำหรับ
บัญชีหรือช่องทางที่จัดการข้อความนั้น บางเส้นทางของกลุ่มหรือการตอบกลับแบบอ้างอิงอาจ
ปิดใช้พรีวิวฉบับร่างสำหรับเทิร์นหนึ่ง เมื่อช่องทางไม่สามารถแก้ไขข้อความที่ถูกต้องได้อย่างปลอดภัย
ฉันเห็นป้ายกำกับแต่ไม่มีบรรทัดเครื่องมือ
ตรวจสอบ streaming.progress.toolProgress หากเป็น false, OpenClaw จะคง
พฤติกรรมฉบับร่างเดี่ยวไว้ แต่ซ่อนบรรทัดความคืบหน้าของเครื่องมือและงาน
ฉันเห็นข้อความสุดท้ายใหม่แทนฉบับร่างที่ถูกแก้ไข
นั่นคือ fallback เพื่อความปลอดภัย อาจเกิดขึ้นกับคำตอบที่มีสื่อ คำตอบยาว
เป้าหมายการตอบกลับที่ระบุชัดเจน ฉบับร่าง Telegram เก่า เป้าหมายเธรด Slack ที่ขาดหาย
ข้อความพรีวิวที่ถูกลบ หรือการจบสตรีมเนทีฟที่ล้มเหลว
ฉันยังเห็นข้อความความคืบหน้าแบบเดี่ยว
โหมดความคืบหน้าจะระงับข้อความความคืบหน้าเครื่องมือแบบเดี่ยวตามค่าเริ่มต้นเมื่อมีฉบับร่าง
ทำงานอยู่ หากข้อความเดี่ยวยังคงปรากฏ ให้ตรวจสอบว่าเทิร์นนั้นกำลัง
ใช้โหมดความคืบหน้าจริง และไม่ใช่ streaming.mode: "off" หรือเส้นทางช่องทางที่
ไม่สามารถสร้างฉบับร่างสำหรับข้อความนั้นได้
Teams มีพฤติกรรมต่างจาก Discord หรือ Telegram
Microsoft Teams ใช้สตรีมเนทีฟในแชตส่วนตัว แทนการขนส่งพรีวิวแบบ
ส่งแล้วแก้ไขทั่วไป Teams ยังถือว่า streaming.mode: "block" เป็น
การส่งแบบบล็อกของ Teams เพราะไม่มีโหมดบล็อกแบบพรีวิวฉบับร่างเดียวกับที่
Discord และ Telegram ใช้
ที่เกี่ยวข้อง