---
read_when:
    - การเปลี่ยนลักษณะการทำงานหรือค่าเริ่มต้นของตัวบ่งชี้การพิมพ์
summary: เมื่อ OpenClaw แสดงตัวบ่งชี้ว่ากำลังพิมพ์และวิธีปรับแต่ง
title: ตัวบ่งชี้สถานะกำลังพิมพ์
x-i18n:
    generated_at: "2026-06-27T17:30:39Z"
    model: gpt-5.5
    postprocess_version: locale-links-v1
    provider: openai
    source_hash: fa76889d0f6262f1092abefee02aee8fe944651dc89d3a697ccc86e16558ed60
    source_path: concepts/typing-indicators.md
    workflow: 16
---

ตัวบ่งชี้การพิมพ์จะถูกส่งไปยังช่องแชทในขณะที่การรันยังทำงานอยู่ ใช้
`agents.defaults.typingMode` เพื่อควบคุมว่าเริ่มแสดงการพิมพ์ **เมื่อใด** และใช้ `typingIntervalSeconds`
เพื่อควบคุมว่ารีเฟรช **บ่อยเพียงใด**

## ค่าเริ่มต้น

เมื่อ **ไม่ได้ตั้งค่า** `agents.defaults.typingMode` OpenClaw จะคงพฤติกรรมเดิมไว้:

- **แชทโดยตรง**: การพิมพ์เริ่มทันทีเมื่อลูปโมเดลเริ่มทำงาน
- **แชทกลุ่มที่มีการกล่าวถึง**: การพิมพ์เริ่มทันที
- **แชทกลุ่มที่ไม่มีการกล่าวถึง**: การพิมพ์เริ่มเมื่อการรันที่ถูกรับเข้ามีกิจกรรมที่ผู้ใช้มองเห็นได้ เช่น กิจกรรมการดำเนินการของ harness หรือข้อความ
- **การรัน Heartbeat**: การพิมพ์เริ่มเมื่อการรัน Heartbeat เริ่มต้น หากเป้าหมาย Heartbeat ที่ resolve แล้วเป็นแชทที่รองรับการพิมพ์ และไม่ได้ปิดใช้งานการพิมพ์

## โหมด

ตั้งค่า `agents.defaults.typingMode` เป็นหนึ่งในค่าต่อไปนี้:

- `never` - ไม่มีตัวบ่งชี้การพิมพ์เลย
- `instant` - เริ่มพิมพ์ **ทันทีที่ลูปโมเดลเริ่มทำงาน** แม้ว่าภายหลังการรันจะส่งคืนเฉพาะโทเค็นตอบกลับแบบเงียบ
- `thinking` - เริ่มพิมพ์เมื่อมี **เดลตาการให้เหตุผลรายการแรก** หรือเมื่อมีการดำเนินการ harness ที่ทำงานอยู่หลังจากรับเทิร์นแล้ว
- `message` - เริ่มพิมพ์เมื่อมี **กิจกรรมตอบกลับที่ผู้ใช้มองเห็นได้รายการแรก** เช่น การดำเนินการ harness ที่ทำงานอยู่ หรือเดลตาข้อความที่ไม่ใช่แบบเงียบ โทเค็นตอบกลับแบบเงียบ เช่น `NO_REPLY` จะไม่นับเป็นกิจกรรมข้อความ

ลำดับของ "เริ่มทำงานเร็วแค่ไหน":
`never` → `message`/`thinking` → `instant`

## การกำหนดค่า

ตั้งค่าเริ่มต้นระดับเอเจนต์:

```json5
{
  agents: {
    defaults: {
      typingMode: "thinking",
      typingIntervalSeconds: 6,
    },
  },
}
```

แทนที่โหมดหรือจังหวะต่อเซสชัน:

```json5
{
  session: {
    typingMode: "message",
    typingIntervalSeconds: 4,
  },
}
```

## หมายเหตุ

- โหมด `message` จะไม่เริ่มจากโทเค็นตอบกลับแบบเงียบ แต่การดำเนินการที่ทำงานอยู่ยังสามารถแสดงการพิมพ์ก่อนที่ข้อความของผู้ช่วยจะพร้อมใช้งาน
- `thinking` ยังคงตอบสนองต่อการสตรีมการให้เหตุผล (`reasoningLevel: "stream"`) และยังสามารถเริ่มจากการดำเนินการที่ทำงานอยู่ก่อนที่เดลตาการให้เหตุผลจะมาถึงได้ด้วย
- การพิมพ์ของ Heartbeat เป็นสัญญาณความพร้อมใช้งานสำหรับเป้าหมายการส่งที่ resolve แล้ว โดยจะเริ่มเมื่อการรัน Heartbeat เริ่มต้น แทนที่จะทำตามจังหวะสตรีมของ `message` หรือ `thinking` ตั้งค่า `typingMode: "never"` เพื่อปิดใช้งาน
- Heartbeat จะไม่แสดงการพิมพ์เมื่อ `target: "none"` เมื่อไม่สามารถ resolve เป้าหมายได้ เมื่อการส่งผ่านแชทถูกปิดใช้งานสำหรับ Heartbeat หรือเมื่อช่องไม่รองรับการพิมพ์
- `typingIntervalSeconds` ควบคุม **จังหวะการรีเฟรช** ไม่ใช่เวลาเริ่มต้น ค่าเริ่มต้นคือ 6 วินาที

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

<CardGroup cols={2}>
  <Card title="Presence" href="/th/concepts/presence" icon="signal">
    วิธีที่ Gateway ติดตามไคลเอนต์ที่เชื่อมต่ออยู่และแสดงในแท็บอินสแตนซ์ของ macOS
  </Card>
  <Card title="Streaming and chunking" href="/th/concepts/streaming" icon="bars-staggered">
    พฤติกรรมการสตรีมขาออก ขอบเขตของชังก์ และการส่งที่เฉพาะเจาะจงตามช่อง
  </Card>
</CardGroup>
