Skip to main content

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 ใช้

ที่เกี่ยวข้อง