Tool: python_exec — รันโค้ด Python ในอินเทอร์พรีเตอร์เดียวกับที่ขับเคลื่อน agent

python_exec รันโค้ด Python สำหรับคำนวณ แปลงข้อมูล และตรวจสอบผลลัพธ์ในงานเดียว เหมาะเมื่อคำสั่ง shell ทำให้ขั้นตอนวิเคราะห์ซับซ้อนเกินจำเป็น
Tool นี้คืออะไร
รันโค้ด Python ที่โมเดลเขียนขึ้น ใช้ อินเทอร์พรีเตอร์เดียวกับที่รัน agent เอง (sys.executable) จึงมี pandas, numpy, matplotlib พร้อมใช้ทันทีโดยไม่ต้องติดตั้งเพิ่ม — เขียนไฟล์ script ชั่วคราวลง workspace แล้วรันผ่าน sandbox เดียวกับ bash
ทำไมไม่ใช้ bash python3 -c "..." แทน
คอมเมนต์ต้นไฟล์อธิบายเหตุผลตรงไปตรงมา 3 ข้อ:
- Shell escaping เป็นฝันร้าย — โค้ด pandas จริง (
df.query(), regex, nested quotes) มี quote ซ้อนกันเยอะ การพยายามใส่โค้ดแบบนี้เป็น argument เดียวของbash -c "..."ทำให้ escaping ผิดพลาดง่ายมาก python3ของระบบไม่มี pandas/matplotlib — ต้องใช้ interpreter ของ environment ที่ agent รันอยู่ (env ที่มี MLX และ dependency ครบ) ซึ่งbashเรียกตรงไม่ได้ถ้าไม่รู้ path ที่แน่นอน- งานวิเคราะห์ข้อมูล (group/agg) ใช้เวลานานกว่าคำสั่ง shell ทั่วไป — ต้องการ timeout ที่สูงกว่า
python_exec จึงเป็น tool แยกที่เขียนโค้ดลงไฟล์ .py ชั่วคราวแล้วรันเป็น script แทนการยัดผ่าน -c — หลีกเลี่ยงปัญหา escaping ได้ทั้งหมด และตั้ง timeout ยาวกว่า bash (120 วินาทีดีฟอลต์ เทียบกับ 30 วินาทีของ bash)
Sandbox เดียวกับ bash แต่เพิ่มข้อยกเว้นให้ skills/
ใช้ _build_sandbox_profile ฟังก์ชันเดียวกับ bash — ป้องกันเหมือนกันทุกประการ (เขียนได้แค่ workspace + /tmp) ยกเว้นจุดเดียว: มีการเปิดสิทธิ์เขียนเพิ่มที่โฟลเดอร์ skills/ ของโปรเจกต์ ด้วยพารามิเตอร์ extra_write_paths — เพราะฟีเจอร์ /build skill (สร้าง skill ใหม่ให้ agent) ต้องเขียนไฟล์ markdown ลงโฟลเดอร์นั้นโดยชอบธรรม เป็นข้อยกเว้นเดียวที่ตั้งใจเปิดไว้ ไม่ใช่ช่องโหว่ที่หลุดมา (มีคอมเมนต์ระบุว่าผ่าน security audit แล้ว)
ขอบเขตการใช้งานชัดเจน
Docstring บอกไว้ตรงๆ ว่า tool นี้เหมาะกับการวิเคราะห์ข้อมูลและสร้างกราฟด้วย matplotlib ไม่ใช่คำสั่ง shell (ใช้ bash แทน) และไม่ใช่การอ่าน/เขียนไฟล์แบบธรรมดาที่ไม่ต้องประมวลผลอะไร (ใช้ read_file/write_file แทน) — การแบ่งขอบเขตให้ชัดแบบนี้ช่วยให้โมเดลเลือก tool ถูกตัวตั้งแต่ต้น ไม่ต้องเดาว่า tool ไหนทำอะไรได้บ้าง
ทำไมเรื่องนี้ถึงสำคัญ
python_exec แสดงหลักการที่ตรงไปตรงมา: ใช้เครื่องมือที่ถูกออกแบบมาสำหรับงานนั้นโดยตรง แทนที่จะฝืนใช้เครื่องมือทั่วไป (bash) ทำงานที่มันไม่ถนัด — เขียนโค้ด Python ผ่านไฟล์ script ตรงๆ ปลอดภัยกว่า เร็วกว่า และ debug ง่ายกว่าการพยายามยัดโค้ดผ่าน shell string escaping
ความคิดเห็น
กำลังโหลดความคิดเห็น...