Tool: bootstrap, checkpoint, pin_checkpoint, session_close — บันทึกความคืบหน้าที่ agent ตัวถัดไปอ่านต่อได้

กลุ่มคำสั่ง checkpoint บันทึกจุดที่งานกำลังดำเนินอยู่ ตั้งแต่เริ่ม session ระหว่างทาง จนถึงปิดงาน (bootstrap, checkpoint, pin_checkpoint, session_close) เพื่อให้ agent กลับมาทำต่อจากบริบทที่ถูกต้อง
endeavor_memory_bootstrap — เริ่มงานอย่างเป็นทางการครั้งเดียว
เรียกครั้งเดียวตอนเริ่มงานที่ไม่ trivial — คืน handoff ล่าสุด, ผลวินิจฉัย embedding backfill, ความสดของเอกสาร, และสถานะ hook ทั้งหมดในคำเรียกเดียว อาจ initialize/update local database state (ต่างจาก readiness ที่ไม่มีผลข้างเคียงเลย) — docstring เตือนตรงๆ ว่า “Do not call for a simple one-off question” เพราะเป็น tool ที่ทำงานหนักกว่าที่จำเป็นสำหรับคำถามสั้นๆ ที่ไม่ต้องการบริบทเต็มรูปแบบ
endeavor_memory_checkpoint — หัวใจของการส่งต่องาน
Tool ที่สำคัญที่สุดในกลุ่มนี้ — บันทึกความคืบหน้าแบบมีโครงสร้างชัดเจน แยกฟิลด์ตามความหมาย: work_done (งานที่ทำเสร็จจริง), current_state (สถานะจริงตอนนี้ รวมพฤติกรรมที่ยังไม่ยืนยัน), next_steps (ขั้นตอนต่อไปแบบเรียงลำดับชัดเจน — ว่างได้ก็ต่อเมื่องานเสร็จจริงๆ), blockers (อุปสรรคจากภายนอกเท่านั้น) — docstring เน้นย้ำจุดสำคัญ: work_done “do not include planned work” แยกงานที่ทำจริงออกจากงานที่ตั้งใจจะทำอย่างเข้มงวด กันไม่ให้ checkpoint กลายเป็นรายการความหวังที่ยังไม่เกิดขึ้นจริง
status มี 4 ค่าที่มีความหมายชัดเจน: active (ทำต่อ), paused (agent อื่นมา resume ต่อได้), completed (ตรวจสอบแล้วจริงและไม่มีงานที่ต้องทำเหลือ), blocked (ติดขัดจากภายนอก) — เกณฑ์ของ completed เข้มงวด: ต้องverified จริง ไม่ใช่แค่ “น่าจะเสร็จแล้ว”
Auto-start session: ยุบ 2 ขั้นตอนเหลือขั้นตอนเดียว พร้อมกันแข่งกันเขียน
รายละเอียดเชิงเทคนิคที่น่าสนใจที่สุดของ checkpoint คือฟังก์ชัน resolve_or_start_checkpoint_session — ถ้าเรียก checkpoint ด้วย project (ไม่ใช่ session ตรงๆ) พร้อม goal และยังไม่มี session ใดกำลัง active/paused/blocked อยู่ ระบบจะสร้าง session ใหม่ให้อัตโนมัติก่อนเขียน checkpoint — ยุบขั้นตอน “handoff → เริ่ม session → เขียน checkpoint” ให้เหลือแค่การเรียก checkpoint ครั้งเดียวสำหรับงานที่มี session เดียวทั่วไป
จุดที่ต้องระวังเป็นพิเศษ: ถ้ามีสอง agent เรียก checkpoint --project X --goal ... พร้อมกันสำหรับ checkpoint แรกของโปรเจกต์ X ทั้งคู่อาจเห็น “ไม่มี session active” พร้อมกัน แล้วต่างคนต่างสร้าง session ใหม่ของตัวเอง — ทำให้ประวัติงานแตกเป็นสอง session คู่ขนานโดยไม่ตั้งใจ ทางแก้คือการเช็ค-แล้วสร้างทั้งหมดถูก serialize ด้วย BEGIN IMMEDIATE — transaction แรกที่เริ่มก่อนจะล็อกไว้จนกว่าจะ commit เสร็จ transaction ที่สองต้องรอ แล้วเห็น session ที่เพิ่งถูกสร้างไปแล้วแทนที่จะสร้างซ้ำ
auto_files: เติมไฟล์ที่เปลี่ยนจริงให้อัตโนมัติ
พารามิเตอร์ auto_files=true เติม path ไฟล์ที่ตรวจพบจาก git status ใต้ ROOT/<project>/ เข้าไปในรายการ files โดยอัตโนมัติ (เป็น opt-in และจำกัดขอบเขตแค่โปรเจกต์นั้น) — ลดภาระที่ agent ต้องจำและพิมพ์รายชื่อไฟล์ที่แก้ไปเองครบทุกไฟล์
pinned: กันไม่ให้ถูก prune ทิ้งตามอายุ
Checkpoint ทั่วไปถูก prune ตามนโยบาย sliding-window เมื่อเก่าเกินไป — ถ้าตั้ง pinned=true ตอนสร้าง (หรือ pin ย้อนหลังด้วย endeavor_memory_pin_checkpoint) checkpoint นั้นจะรอดจากการ prune ตลอดไป ไม่ว่าจะเก่าแค่ไหนหรือ session จะปิดไปแล้วก็ตาม — docstring เตือนให้ใช้อย่างประหยัด: “for the checkpoint you’d actually want to find months later, not every routine one” ถ้า pin ทุก checkpoint เท่ากับไม่มีการ prune เลย เสียจุดประสงค์ของนโยบายการเก็บรักษาไปโดยสิ้นเชิง
endeavor_memory_session_close — ปิด session อย่างเป็นทางการ
ทำเครื่องหมาย session หนึ่ง (เลือกด้วย session ID หรือโปรเจกต์ที่ไม่กำกวม) ว่า completed หรือ blocked — ต้องระบุ session หรือ project อย่างใดอย่างหนึ่ง ไม่ทั้งคู่พร้อมกัน (ผ่าน oneOf schema) ป้องกันความกำกวมว่ากำลังปิด session ไหนกันแน่
ทำไมเรื่องนี้ถึงสำคัญ
กลุ่ม tool นี้แสดงหลักการที่สำคัญของระบบ handoff ที่ใช้งานได้จริงข้าม session/agent: checkpoint ที่มีประโยชน์ต้องแยกความจริง (ทำอะไรไปแล้ว) ออกจากความตั้งใจ (จะทำอะไรต่อ) อย่างเข้มงวด ไม่งั้น agent ตัวถัดไปที่อ่าน checkpoint จะแยกไม่ออกว่าอะไรเชื่อถือได้จริงกับอะไรเป็นแค่แผน — และรายละเอียดเชิงระบบอย่างการ serialize การสร้าง session ด้วย BEGIN IMMEDIATE แสดงว่าการออกแบบคำนึงถึงสถานการณ์จริงที่หลาย agent ทำงานพร้อมกันบนโปรเจกต์เดียวกัน ไม่ใช่แค่กรณี agent เดียวทำงานตามลำดับ
ความคิดเห็น
กำลังโหลดความคิดเห็น...