Vercel เปิดตัว durable-harness โอเพนซอร์สช่วย Coding Agents ทำงานไม่สะดุด

Vercel เปิดตัว durable-harness แพ็กเกจโอเพนซอร์สใหม่ที่ออกแบบมาเพื่อรักษาเซสชันการทำงานของ coding agent ให้คงอยู่ตลอดเวลา แม้จะเกิดปัญหาระบบล่มหรือการหมดเวลา (timeout) โดยตัวเครื่องมือจะทำหน้าที่ครอบ (wrap) harness เดิมที่มีอยู่ เช่น Pi, OpenCode, Claude Code และ Codex โดยไม่มีการเปลี่ยนแปลงใดๆ
กลไกสำคัญคือการบันทึกทุกเซสชันลงในบันทึกที่ทนทาน (durable log) ทำให้การหยุดทำงานของ function ไม่ได้หมายถึงการสูญเสียงานที่ทำค้างไว้ ซึ่งถือเป็นการปิดช่องว่างสำคัญสำหรับทีมพัฒนาที่กำลังย้ายการทำงานของ agent จากเครื่องแล็ปท็อปขึ้นสู่ระบบคลาวด์
TL;DR
- ขนาด: เป็นแพ็กเกจ npm เวอร์ชัน 0.0.x ภายใต้สัญญาอนุญาต Apache-2.0 รองรับ adapter สำหรับ 5 harness ได้แก่ Pi, OpenCode, fx, Claude Code และ Codex
- การรันระบบ: ใช้งานบน Vercel Functions ร่วมกับ Vercel Queues รองรับ Node.js 22+ พร้อม Postgres หรือไฟล์บนแล็ปท็อป ทั้งนี้ Claude Code และ Codex จำเป็นต้องใช้ Vercel Sandbox
- ประสิทธิภาพ: Vercel ยังไม่ได้เผยแพร่ผลทดสอบ latency หรือ throughput โดยข้อมูลเรื่องการกู้คืนระบบทั้งหมดเป็นรายงานจากทาง Vercel เอง
- จุดเด่น: ระบบจะอ่าน log ย้อนกลับสำหรับการเรียกใช้ model และ tool ที่เสร็จสิ้นแล้ว ทำให้ไม่มีการรันซ้ำและไม่เสียค่าบริการ token ซ้ำซ้อน
- จุดด้อย: ยังเป็น API เวอร์ชันทดลอง 0.0.x และกรณีของ Claude Code กับ Codex ต้องรันบน Vercel Sandbox เท่านั้น แม้จะเป็นการติดตั้งแบบ self-hosted ก็ตาม
durable-harness คืออะไร?
durable-harness คือชุด adapter จาก Vercel ที่ทำหน้าที่จัดเก็บเซสชันของ harness ไว้ใน Workflow SDK ที่ชื่อว่า World ซึ่ง World จะทำหน้าที่รวมการจัดเก็บข้อมูล คิว และสตรีมไว้ภายใต้อินเทอร์เฟซเดียว โดยใช้กลไกเดียวกับที่ขับเคลื่อน Workflow SDK ของ Vercel
ทำไม coding agents ถึงสูญเสียงานบนคลาวด์?
ตามปกติแล้ว harness อย่าง Pi และ Claude Code ถูกออกแบบมาให้ทำงานเป็นกระบวนการในเครื่อง (local processes) ที่รันต่อเนื่องและเก็บข้อมูลไว้ในหน่วยความจำ ซึ่งบนเครื่องส่วนตัวจะมี workspace และประวัติการทำงานอยู่บนดิสก์เดียวกัน
ทว่าเมื่อย้ายไปอยู่บนคลาวด์ VM ที่มีการจัดเก็บข้อมูลถาวรมักไม่ได้ติดตามว่าการเรียกใช้ (call) ใดเสร็จสิ้นไปแล้วบ้าง ทีม Vercel ระบุว่าความล้มเหลวในแต่ละรอบการทำงาน (turn) หรือข้อผิดพลาดของเครือข่ายเพียงเล็กน้อย จึงอาจส่งผลให้งานที่ทำมาทั้งหมดสูญหายได้ทันที
durable-harness ทำงานอย่างไร?
ระบบจะเขียนขั้นตอนในแต่ละรอบลงใน durable log โดยจะบันทึกความจำนง (intent) ก่อนเรียกใช้ model หรือ tool และบันทึกผลลัพธ์ (outcome) เมื่อการเรียกนั้นเสร็จสิ้น แต่ละรอบการทำงานจะถูกรองรับด้วยข้อความบน Vercel Queues หาก function หยุดทำงาน คิวจะส่งงานรอบนั้นไปยัง function ใหม่เพื่อให้รันงานต่อจาก log เดิมได้ทันที
หลังจากการล่ม log จะแสดงสถานะงานอย่างชัดเจน:
- การเรียกที่เสร็จสมบูรณ์ จะถูกอ่านจาก log ทำให้ไม่ต้องจ่ายค่า token ซ้ำสอง
replay: 'safe'toolsreplay: 'never'tools
นอกจากนี้ ไฟล์เซสชันของ harness จะถูกทำสำเนา (mirror) ลงใน log ด้วย ซึ่งครอบคลุมทั้ง transcript ของ Claude Code, rollout ของ Codex และ event store ของ OpenCode
ไฟล์และคำสั่ง shell รันที่ไหน?
คำสั่งที่โมเดลเลือกจะไม่มีการรันบนดิสก์ของ function โดยตรง ซึ่งในเอกสารระบุตัวเลือก workspace ไว้ 3 รูปแบบคือ:
virtual()virtual({ durable: false })sandbox()- ใช้งานผ่าน Vercel Sandbox พร้อมพื้นที่/workspaceบน Drive
สำหรับเอกสารโครงสร้าง JSON เช่น รายการสิ่งที่ต้องทำ (to-do list) จะถูกเก็บไว้ใน log เช่นกัน โดยรองรับขนาดสูงสุดชิ้นละ 64 KB
ช่องทางการใช้งาน durable-harness
โค้ดของ agent จะยังคงโครงสร้างเดิมในทุกสภาพแวดล้อมของ World:
- Vercel: ใช้งานผ่าน Vercel World พร้อมระบบติดตามเซสชันใน Agent Runs
- Local: ทำงานเป็นไฟล์บนเครื่องได้ทันทีโดยไม่ต้องตั้งค่าเพิ่มเติม
- Self-hosted: รองรับ Postgres World เวอร์ชัน 5.0.4 ขึ้นไป บน Node.js 22+ นอกจากนี้ยังรองรับ MongoDB, Redis และ Turso ตามที่ระบุในบล็อกของ Vercel
ผู้ใช้สามารถย้าย agent ไปยัง Postgres ได้ง่ายๆ ผ่านตัวแปรสภาพแวดล้อม WORKFLOW_TARGET_WORLD และ WORKFLOW_POSTGRES_URL
การเปรียบเทียบ durable-harness
| คุณสมบัติ | durable-harness | Temporal + OpenAI Agents SDK | Inngest AgentKit | Cloudflare Agents SDK |
|---|---|---|---|---|
| คืออะไร | Durability adapters สำหรับ coding harnesses | Durable execution wrapper สำหรับ OpenAI Agents SDK | TypeScript multi-agent framework | Stateful agents บน Durable Objects |
| ครอบ Claude Code / Codex | ใช่ (รุ่นทดลอง, เฉพาะ Sandbox) | ไม่เปิดเผย | ไม่เปิดเผย | ไม่เปิดเผย |
| ระบบหลังบ้าน | Workflow SDK World (Vercel, local, Postgres) | Temporal server หรือ Temporal Cloud | Inngest orchestration engine | Durable Objects, Cloudflare Workflows |
| ภาษา | TypeScript | Python | TypeScript | TypeScript |
| สัญญาอนุญาต | Apache-2.0 | MIT (server) | Apache-2.0 | MIT |
| สถานะ | 0.0.x (รุ่นทดลอง) | GA ตั้งแต่ 23 มี.ค. 2026 | ไม่เปิดเผย | ไม่เปิดเผย |
สรุปประเด็นสำคัญ
- durable-harness ช่วยบันทึกทุกกิจกรรมของ model และ tool เพื่อให้สามารถรันงานต่อได้ทันทีเมื่อระบบเกิดปัญหา
- ป้องกันการเสียค่าใช้จ่ายซ้ำซ้อน เนื่องจาก token ที่ประมวลผลเสร็จแล้วจะไม่ถูกเรียกซ้ำ
- Pi และ OpenCode สามารถรันใน function ปกติได้ แต่ Claude Code และ Codex จำเป็นต้องใช้ Vercel Sandbox
- รองรับการทำ Self-hosting ผ่าน Postgres ด้วยการตั้งค่าเพียงเล็กน้อย
- ปัจจุบันยังเป็นเวอร์ชันทดลอง 0.0.x และยังไม่มีรายงานตัวเลขประสิทธิภาพอย่างเป็นทางการ
ความคิดเห็น (0)
เข้าสู่ระบบเพื่อร่วมแสดงความเห็น
สมัครสมาชิกมาเป็นคนแรกที่แสดงความเห็นกันเลยโบร
