---
read_when:
    - คุณต้องการสลับระหว่าง stable/extended-stable/beta/dev
    - คุณต้องการตรึงเวอร์ชัน แท็ก หรือ SHA ที่ระบุไว้โดยเฉพาะ
    - คุณกำลังติดแท็กหรือเผยแพร่รุ่นก่อนเผยแพร่จริง
sidebarTitle: Release Channels
summary: 'ช่องทาง stable, extended-stable, beta และ dev: ความหมาย การสลับ การตรึงเวอร์ชัน และการติดแท็ก'
title: ช่องทางการเผยแพร่
x-i18n:
    generated_at: "2026-07-12T16:17:03Z"
    model: gpt-5.6
    postprocess_version: locale-links-v1
    provider: openai
    source_hash: a99e31f5121c0ab8696e638cb10a7ce16e8f32c81e4b2bef1f703eef71191494
    source_path: install/development-channels.md
    workflow: 16
---

OpenClaw มีช่องทางการอัปเดตสี่ช่องทาง:

- **เสถียร**: npm dist-tag `latest` แนะนำสำหรับผู้ใช้ส่วนใหญ่
- **เสถียรแบบขยาย**: npm dist-tag `extended-stable` ช่องทางแพ็กเกจใหม่แยกต่างหากสำหรับเดือนที่ยังอยู่ในช่วงการรองรับย้อนหลัง ช่องทางนี้รองรับเฉพาะแพ็กเกจ และติดตั้งได้เฉพาะในโหมดเบื้องหน้า การเลือกที่บันทึกไว้จะได้รับเพียงคำแนะนำการอัปเดตแบบอ่านอย่างเดียวเมื่อเปิดใช้ `update.checkOnStart` แต่จะไม่ใช้การอัปเดตโดยอัตโนมัติ
- **เบตา**: npm dist-tag `beta` จะย้อนกลับไปใช้ `latest` เมื่อไม่มี `beta` หรือ `beta` เก่ากว่ารุ่นเสถียรปัจจุบัน
- **รุ่นพัฒนา**: จุดล่าสุดที่เคลื่อนที่ไปเรื่อย ๆ ของ `main` (git) ใช้ npm dist-tag `dev` เมื่อมีการเผยแพร่ `main` มีไว้สำหรับการทดลองและการพัฒนาอย่างต่อเนื่อง โดยอาจมีฟีเจอร์ที่ยังไม่สมบูรณ์หรือการเปลี่ยนแปลงที่ทำให้เข้ากันไม่ได้ อย่าใช้กับ Gateway ในระบบใช้งานจริง

โดยทั่วไป บิลด์เสถียรจะเผยแพร่ไปยัง **เบตา** ก่อน ผ่านการตรวจสอบที่นั่น แล้วจึงเลื่อนขั้นเป็น **`latest`** โดยไม่เพิ่มหมายเลขเวอร์ชัน ผู้ดูแลสามารถเผยแพร่โดยตรงไปยัง `latest` ได้เช่นกัน Dist-tag เป็นแหล่งข้อมูลจริงสำหรับการติดตั้งผ่าน npm

## การสลับช่องทาง

```bash
openclaw update --channel stable
openclaw update --channel extended-stable
openclaw update --channel beta
openclaw update --channel dev
```

`--channel` จะบันทึกตัวเลือกไว้ใน `update.channel` ของการกำหนดค่า และควบคุมเส้นทางการติดตั้งทั้งสองแบบ:

| ช่องทาง | การติดตั้งผ่าน npm/แพ็กเกจ | การติดตั้งผ่าน git |
| ----------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
| `stable` | dist-tag `latest` | แท็ก git เสถียรล่าสุด (ไม่รวม `-alpha.N`, `-beta.N`, `-rc.N`, `-dev.N`, `-next.N`, `-preview.N`, `-canary.N`, `-nightly.N` และส่วนต่อท้ายรุ่นก่อนเผยแพร่ที่มีชื่ออื่น ๆ) |
| `extended-stable` | แปลงตัวเลือก npm สาธารณะ `extended-stable` ตรวจสอบแพ็กเกจที่เลือกอย่างเจาะจง และติดตั้งเวอร์ชันนั้นโดยตรง หากล้มเหลวจะหยุดอย่างปลอดภัยโดยไม่ย้อนกลับไปใช้ `latest`, `beta` หรือ `dev` | ไม่รองรับ: OpenClaw จะคง checkout ไว้โดยไม่เปลี่ยนแปลงและขอให้คุณใช้การติดตั้งแบบแพ็กเกจ |
| `beta` | dist-tag `beta` โดยย้อนกลับไปใช้ `latest` เมื่อไม่มี `beta` หรือ `beta` เก่ากว่า | แท็ก git เบตาล่าสุด โดยย้อนกลับไปใช้แท็ก git เสถียรล่าสุดเมื่อไม่มีเบตาหรือเบตาเก่ากว่า |
| `dev` | dist-tag `dev` (พบไม่บ่อย ผู้ใช้รุ่นพัฒนาส่วนใหญ่ใช้การติดตั้งผ่าน git) | ดึงข้อมูล ทำ rebase ของ checkout บนสาขา `main` ต้นทาง บิลด์ และติดตั้ง CLI ส่วนกลางอีกครั้ง |

สำหรับการติดตั้ง `dev` ผ่าน git ตำแหน่ง checkout เริ่มต้นคือ `~/openclaw` (หรือ `$OPENCLAW_HOME/openclaw` เมื่อตั้งค่า `OPENCLAW_HOME`) กำหนดตำแหน่งอื่นได้ด้วย `OPENCLAW_GIT_DIR`

<Tip>
หากต้องการใช้รุ่นเสถียรและรุ่นพัฒนาควบคู่กัน ให้ใช้ checkout สองชุดแยกกัน และกำหนดให้ Gateway แต่ละตัวชี้ไปยัง checkout ของตนเอง
</Tip>

## การระบุเวอร์ชันหรือแท็กแบบครั้งเดียว

ใช้ `--tag` เพื่อระบุ dist-tag เวอร์ชัน หรือข้อกำหนดแพ็กเกจเฉพาะสำหรับการอัปเดตครั้งเดียว **โดยไม่** เปลี่ยนช่องทางที่บันทึกไว้:

```bash
# ติดตั้งเวอร์ชันเฉพาะ
openclaw update --tag 2026.4.1-beta.1

# ติดตั้งจาก dist-tag เบตา (ครั้งเดียว ไม่บันทึก)
openclaw update --tag beta

# สลับไปยัง checkout ของ GitHub main ที่เคลื่อนที่ต่อเนื่อง (บันทึกถาวร)
openclaw update --channel dev

# ติดตั้งข้อกำหนดแพ็กเกจ npm เฉพาะ
openclaw update --tag openclaw@2026.4.1-beta.1

# ติดตั้งจาก GitHub main ครั้งเดียวโดยไม่บันทึกช่องทาง
openclaw update --tag main
```

หมายเหตุ:

- `--tag` ใช้ได้กับ **การติดตั้งแบบแพ็กเกจ (npm) เท่านั้น** การติดตั้งผ่าน git จะไม่สนใจค่านี้
- แท็กจะไม่ถูกบันทึก การรัน `openclaw update` ครั้งถัดไปจะใช้ช่องทางที่กำหนดค่าไว้
- `--tag main` จะแมปไปยังข้อกำหนดที่เข้ากันได้กับ npm คือ `github:openclaw/openclaw#main` สำหรับการรันครั้งนั้น หากต้องการติดตั้งจาก `main` ที่เคลื่อนที่ต่อเนื่องแบบถาวร ให้ใช้ `openclaw update --channel dev` (การติดตั้งแบบแพ็กเกจจะสลับเป็น checkout ของ git) หรือติดตั้งใหม่ด้วยวิธี git ของตัวติดตั้ง:
  `curl -fsSL https://openclaw.ai/install.sh | bash -s -- --install-method git --version main`
  เส้นทางการติดตั้งผ่าน npm จะปฏิเสธเป้าหมายจากแหล่ง GitHub/git โดยตรง และแนะนำให้ใช้วิธี git แทน
- การป้องกันการดาวน์เกรด: หากเวอร์ชันเป้าหมายเก่ากว่าเวอร์ชันปัจจุบัน OpenClaw จะขอการยืนยัน (ข้ามได้ด้วย `--yes`)
- ช่องทางเสถียรแบบขยายจะใช้เป้าหมายแพ็กเกจที่ระบุแน่นอนและผ่านการตรวจสอบเสมอ ช่องทางนี้ไม่ใช่นามแฝงแบบครั้งเดียวของ `--tag extended-stable` และไม่สามารถใช้ `--tag` ร่วมกับช่องทางเสถียรแบบขยายที่มีผลอยู่ได้
- `--channel beta` แตกต่างจาก `--tag beta`: ขั้นตอนของช่องทางสามารถย้อนกลับไปใช้รุ่นเสถียร/`latest` เมื่อไม่มีเบตาหรือเบตาเก่ากว่า ส่วน `--tag beta` จะระบุ dist-tag `beta` โดยตรงสำหรับการรันครั้งนั้นเสมอ

## การทดลองรัน

ดูตัวอย่างสิ่งที่ `openclaw update` จะดำเนินการโดยไม่ทำการเปลี่ยนแปลง:

```bash
openclaw update --dry-run
openclaw update --channel beta --dry-run
openclaw update --tag 2026.4.1-beta.1 --dry-run
openclaw update --dry-run --json
```

การทดลองรันจะรายงานช่องทางที่มีผล เวอร์ชันเป้าหมาย การดำเนินการที่วางแผนไว้ และระบุว่าจำเป็นต้องยืนยันการดาวน์เกรดหรือไม่

## Plugin และช่องทาง

การสลับช่องทางด้วย `openclaw update` จะซิงค์แหล่งที่มาของ Plugin ด้วย:

- `dev` จะสลับ Plugin ที่ติดตั้งไว้และมีเวอร์ชันรวมมาให้กลับไปใช้แหล่งที่มาแบบรวม (checkout ของ git)
- `stable` และ `beta` จะคืนค่าแพ็กเกจ Plugin ที่ติดตั้งผ่าน npm หรือ ClawHub
- `extended-stable` จะแปลง Plugin npm อย่างเป็นทางการที่มีสิทธิ์ ซึ่งระบุเจตนาแบบเปล่า/ค่าเริ่มต้นหรือ `latest` ให้เป็นเวอร์ชันหลักที่ติดตั้งไว้อย่างเจาะจง โดยจะไม่ค้นหาแท็ก `@extended-stable` ของ Plugin ขณะรัน
- Plugin ที่ติดตั้งผ่าน npm จะได้รับการอัปเดตหลังจากการอัปเดตส่วนหลักเสร็จสิ้น

## การตรวจสอบสถานะปัจจุบัน

```bash
openclaw update status
```

แสดงช่องทางที่ใช้งานอยู่ (พร้อมแหล่งที่ใช้ตัดสินใจ ได้แก่ การกำหนดค่า แท็ก git สาขา git เวอร์ชันที่ติดตั้ง หรือค่าเริ่มต้น) ประเภทการติดตั้ง (git หรือแพ็กเกจ) เวอร์ชันปัจจุบัน และความพร้อมของการอัปเดต

## แนวทางปฏิบัติที่ดีในการติดแท็ก

- ติดแท็กรุ่นที่คุณต้องการให้ checkout ของ git ไปลงที่: `vYYYY.M.PATCH` สำหรับรุ่นเสถียร และ `vYYYY.M.PATCH-beta.N` สำหรับเบตา ส่วนต่อท้ายรุ่นก่อนเผยแพร่ที่มีชื่อ เช่น `-alpha.N`, `-rc.N` และ `-next.N` ไม่ใช่เป้าหมายของรุ่นเสถียรหรือเบตา
- แท็กเสถียรแบบตัวเลขรุ่นเก่า เช่น `vYYYY.M.PATCH-1` และ `v1.0.1-1` ยังคงได้รับการยอมรับเป็นแท็ก git เสถียรเพื่อความเข้ากันได้
- `vYYYY.M.PATCH.beta.N` (คั่นด้วยจุด) ก็ยังได้รับการยอมรับเพื่อความเข้ากันได้เช่นกัน แต่ควรใช้ `-beta.N`
- รักษาแท็กให้เปลี่ยนแปลงไม่ได้: ห้ามย้ายหรือนำแท็กกลับมาใช้ใหม่
- npm dist-tag ยังคงเป็นแหล่งข้อมูลจริงสำหรับการติดตั้งผ่าน npm:
  - `latest` -> เสถียร
  - `extended-stable` -> รุ่นแพ็กเกจสำหรับเดือนที่ยังอยู่ในช่วงการรองรับย้อนหลัง
  - `beta` -> บิลด์ผู้สมัครหรือบิลด์เสถียรที่เผยแพร่ผ่านเบตาก่อน
  - `dev` -> สแนปช็อตของ main (ไม่บังคับ)

## ความพร้อมใช้งานของแอป macOS

บิลด์เบตาและรุ่นพัฒนาอาจ **ไม่มี** รุ่นแอป macOS ซึ่งไม่มีปัญหา:

- แท็ก git และ npm dist-tag ยังสามารถเผยแพร่แยกกันได้
- ระบุว่า "ไม่มีบิลด์ macOS สำหรับเบตานี้" ในบันทึกประจำรุ่นหรือบันทึกการเปลี่ยนแปลง

## เนื้อหาที่เกี่ยวข้อง

- [การอัปเดต](/th/install/updating)
- [กลไกภายในของตัวติดตั้ง](/th/install/installer)
