just-bash - สภาพแวดล้อมจำลอง Bash สำหรับเอเจนต์
(github.com/vercel-labs)- “Bash for Agents” ที่สร้างโดย Vercel
- สภาพแวดล้อม Bash เสมือนที่พัฒนาด้วย TypeScript ซึ่งออกแบบมาสำหรับ AI เอเจนต์ที่ต้องการสภาพแวดล้อม bash ที่ปลอดภัยและมีการแซนด์บ็อกซ์
- ทำงานบน ระบบไฟล์เสมือนในหน่วยความจำ (InMemoryFs) และเป็น สภาพแวดล้อมการรันแบบแซนด์บ็อกซ์ ที่ไม่สามารถเข้าถึงดิสก์จริงได้
- โดยค่าเริ่มต้น จะบล็อกการเข้าถึงเครือข่าย และหากจำเป็น รองรับ คำขอเครือข่ายอย่างปลอดภัยตาม URL ที่อนุญาตผ่าน
curl - เข้าถึงได้เฉพาะระบบไฟล์ที่ให้มาเท่านั้น และมีฟังก์ชัน ป้องกันลูปไม่สิ้นสุดและการรันแบบเรียกซ้ำ
- ไม่รองรับการรันไบนารีหรือ WASM
- เมื่อ ใช้งาน API จะมีการแยกกันในระดับ
exec()ทำให้ตัวแปรสภาพแวดล้อม ฟังก์ชัน หรือไดเรกทอรีทำงานจะไม่ถูกคงไว้ระหว่างแต่ละการเรียกใช้ (มีเพียงสถานะของระบบไฟล์เท่านั้นที่คงอยู่) - ตั้งค่ารายละเอียดได้ผ่าน อาร์กิวเมนต์ตอนสร้าง เช่น ไฟล์เริ่มต้น ตัวแปรสภาพแวดล้อม ไดเรกทอรีทำงาน ข้อจำกัดการรัน ฯลฯ
- รองรับ Lazy file loading ทำให้สามารถสร้างเนื้อหาไฟล์เมื่อจำเป็นด้วยฟังก์ชันแบบ synchronous/asynchronous
- มีความสามารถ คำสั่งกำหนดเอง (defineCommand) ที่ช่วยเพิ่มคำสั่งคัสตอมบน TypeScript ได้
- ผ่าน
CommandContextสามารถเข้าถึงfs,cwd,env,stdin,execได้
- ผ่าน
- มี implementation ของระบบไฟล์ให้ 4 แบบ
- InMemoryFs: ทำงานบนหน่วยความจำล้วน
- OverlayFs: อ่านจากดิสก์ เขียนลงหน่วยความจำ
- ReadWriteFs: อ่านและเขียนดิสก์จริงได้
- MountableFs: เมานต์หลายระบบไฟล์ตามพาธเพื่อสร้าง namespace แบบรวม
- รองรับ
bash-toolเป็น เครื่องมือเชื่อมต่อกับ AI SDK- ออกแบบให้ใช้ร่วมกับ
generateText()เพื่อให้ โมเดล AI รันคำสั่ง Bash ได้อย่างปลอดภัย
- ออกแบบให้ใช้ร่วมกับ
- มี API ที่เข้ากันได้กับ Vercel Sandbox
- ใช้งานผ่านคลาส
Sandboxได้ด้วย อินเทอร์เฟซเดียวกับ @vercel/sandbox - หากจำเป็น สามารถเปลี่ยนไปใช้แซนด์บ็อกซ์จริงที่อิง VM ได้ง่าย
- ใช้งานผ่านคลาส
- มี CLI เป็นคำสั่ง
just-bash- รันบนพื้นฐาน OverlayFS และหลังรันเสร็จ การเขียนทั้งหมดจะถูกทิ้งในหน่วยความจำ
- รองรับ การแสดงผลลัพธ์แบบโปรแกรมผ่านตัวเลือก
--json
- มี โหมดเชลล์แบบโต้ตอบ (
pnpm shell)- โดยค่าเริ่มต้นอนุญาตการเข้าถึงอินเทอร์เน็ต และสามารถปิดได้ด้วย
--no-network
- โดยค่าเริ่มต้นอนุญาตการเข้าถึงอินเทอร์เน็ต และสามารถปิดได้ด้วย
- คำสั่งที่รองรับ
- ครอบคลุม คำสั่ง Bash มาตรฐานส่วนใหญ่ เช่น การจัดการไฟล์ การประมวลผลข้อความ การประมวลผลข้อมูล การบีบอัด และเครือข่าย
- รองรับคำสั่งประมวลผลข้อมูลเพิ่มเติมแบบเลือกใช้ เช่น
jq,sqlite3,python3(อิง Pyodide) - ในส่วนของ ฟีเจอร์เชลล์ ได้ implement ไวยากรณ์ Bash ส่วนใหญ่ เช่น pipe, redirection, เงื่อนไข, ลูป, ฟังก์ชัน, ตัวแปร, glob pattern เป็นต้น
- โครงสร้างไดเรกทอรีเริ่มต้น มี
/home/user,/bin,/usr/bin,/tmpเป็นต้น ให้ สภาพแวดล้อมคล้าย Unix - การควบคุมการเข้าถึงเครือข่าย ใช้วิธี whitelist ตาม URL และ HTTP method
- สามารถอนุญาตทั้งหมดได้ด้วยตัวเลือก
dangerouslyAllowFullInternetAccess
- สามารถอนุญาตทั้งหมดได้ด้วยตัวเลือก
- การรองรับ Python และ SQLite เปิดใช้งานแบบเลือกได้
- ใช้ Python บน Pyodide และ SQLite บน WASM (sql.js) เพื่อ รับประกันการรันแบบแซนด์บ็อกซ์อย่างสมบูรณ์
- มี ฟีเจอร์ป้องกันระหว่างการรัน ที่ตั้งขีดจำกัดได้ เช่น ความลึกของฟังก์ชัน จำนวนคำสั่ง จำนวนรอบของลูป ฯลฯ
- ไลเซนส์ Apache-2.0
ยังไม่มีความคิดเห็น