harness ครบชุด บนโค้ดเบสของคุณ

เชลล์ การค้นหา การแก้ไขไฟล์ งานเบื้องหลัง และแซนด์บ็อกซ์แบบปิด พร้อมโหมดหลายเอเจนต์สี่แบบและการกำหนดสิทธิ์ที่แยกออกว่าอะไรย้อนกลับได้และอะไรย้อนกลับไม่ได้ Perch ถูกสร้างมาเพื่องานที่ต้องรับการตรวจสอบ และปรากฏว่านั่นคือสิ่งที่โค้ดเบสต้องการเช่นกัน

Perch Terminal
Perch Terminal กำลังทำงานกลางทางในโฟลเดอร์ Perch-Demo-AP: Saffron อธิบายว่าจะเขียน scripts/find-duplicates.ts เพื่ออ่านทะเบียนเจ้าหนี้การค้า ตามด้วยการ์ด diff พร้อมไฮไลต์ไวยากรณ์ที่เพิ่ม TypeScript 73 บรรทัดเพื่อแปลง CSV เป็นอินเทอร์เฟซ Invoice ส่วนช่องพิมพ์ข้อความแสดงโฟลเดอร์ในขอบเขต โมเดล สิทธิ์ Take the Wheel และมาตรวัดบริบทแบบเรียลไทม์
งานหนึ่งระหว่างดำเนินการ: Perch อ่านบัญชีแยกประเภท เขียนสคริปต์เพื่อตรวจสอบ และรันมัน เซสชันเดียวกัน โฟลเดอร์เดียวกัน เอเจนต์ตัวเดียวกัน

เครื่องมือที่คุณคาดหวังจาก harness ที่จริงจัง ทั้งบนเดสก์ท็อปและใน CLI

เชลล์และการค้นหา

bash, grep และ glob ของจริง การหาทุกจุดที่เรียกใช้ หมายถึงหาทุกจุดที่เรียกใช้จริงๆ ไม่ใช่การคาดเดาจากความหมายที่หาได้แค่ส่วนใหญ่

การแก้ไขไฟล์

อ่าน เขียน แก้ไขในที่เดิม ย้าย คัดลอก ลบ ทุกการเรียกใช้ผ่านการตรวจสอบกับโฟลเดอร์รากที่อนุมัติสำหรับเวิร์กสเปซของคุณ

งานเบื้องหลัง

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

แซนด์บ็อกซ์แบบปิด

โค้ดรันโดยปิดเครือข่ายภายใต้โปรไฟล์ seatbelt ของ macOS และทุกการรันถูกบันทึกไว้ ผลลัพธ์แต่ละอย่างจึงย้อนกลับไปหาสิ่งที่ผลิตมันออกมาได้

โหมด Plan

Perch สำรวจรีโพและร่างแผนโดยบล็อกเครื่องมือที่แก้ไขข้อมูล ไม่มีอะไรถูกเขียนลงไปขณะที่คุณกำลังอ่านมันอยู่

รายการสิ่งที่ต้องทำและคำถาม

รายการงานที่มองเห็นได้ตลอดการรันยาว และคำถามจริงเมื่อการตัดสินใจเป็นของคุณ แทนที่จะเดาแทนคุณ

harness ส่วนใหญ่มีแค่วิธีเดียว แต่นี่คือรูปแบบงานที่ต่างกันจริงๆ Perch จึงแยกมันไว้แทนที่จะทำเป็นว่ารูปแบบเดียวใช้ได้กับทุกอย่าง

Workers

ถูกสร้างขึ้นระหว่างเทิร์นและรันอยู่ในเทิร์นนั้น เทิร์นจะจบเมื่อพวกมันจบ

Flock

วางแผนทีม รันแบบขนาน และสังเคราะห์เป็นคำตอบเดียว เหมาะกับงานใหญ่ที่แบ่งได้

Delegate

ทำงานแยกออกมา รันด้วยตัวเอง เสนอการเปลี่ยนแปลงไฟล์ และรอการอนุมัติจากคุณก่อนที่อะไรจะถูกเขียนลงไป

Background shell

งานระดับระบบปฏิบัติการที่คุณคอยเช็กได้ การบิลด์ ยังทำงานต่อในขณะที่บทสนทนาเดินหน้าไป

lib/settlement.tsเสนอโดย Delegate
export async function settle(batch: Batch) {
const total = batch.lines.reduce(sum, 0);
const total = await computeTotal(batch.lines);
assertReconciled(total, batch.expected);
return post(total);
}
รอการอนุมัติจากคุณ

เอเจนต์เบื้องหลังเป็นผู้เสนอการเปลี่ยนแปลง และจะไม่มีการเขียนอะไรลงไปจนกว่าคุณจะตกลง

Perch ทำงานกับรีโพ ไม่ใช่แค่ไฟล์ที่อยู่ในนั้น การอ่านประวัติทำได้เสรี ส่วนการเปลี่ยนสิ่งที่คนอื่นเห็นต้องได้รับอนุญาต

อ่านประวัติ

สถานะ diff และประวัติ commit การรีวิวจึงเริ่มจากสิ่งที่เปลี่ยนไปจริง ไม่ใช่จากคำเล่าว่ามันเปลี่ยนอะไร

รีวิว commit และ PR

ไล่ pull request ทีละจุด ตาม regression ไปหา commit ที่ก่อให้เกิด และรายงานกลับมาพร้อมไฟล์ที่อยู่เบื้องหลังข้อความกล่าวอ้างนั้น

แก้ CI ที่พัง

อ่าน CI ที่ล้มเหลว ทำให้เกิดซ้ำในเครื่อง แล้วแก้ไข แทนที่จะบอกให้คุณไปเปิดดู log เอง

เผยแพร่โดยมีด่านตรวจ

การ commit การ push และการเปิด pull request เป็นสิ่งที่ย้อนกลับไม่ได้และกระทบโลกภายนอก จึงต้องผ่านขอบเขตสิทธิ์ที่ระบุชัดเจน

โมเดลที่เขียนมันไม่ใช่ตัวที่ควรให้คะแนนมัน

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

สิ่งนี้เป็นไปได้เพราะคุณไม่ถูกล็อกไว้กับผู้ผลิตโมเดลรายเดียว ทุกโมเดลในคลังโมเดลใช้ได้ คิดค่าบริการตามอัตราที่ประกาศไว้โดยไม่บวกเพิ่ม และเราเผยแพร่เบนช์มาร์กเก้าโมเดลแทนที่จะแค่อ้างผลลัพธ์

ไฟล์โปรเจกต์เป็นเรื่องพื้นฐานที่ทุกตัวควรมี Perch รันหน่วยความจำสามระบบ และบริบททุกส่วนมาพร้อมเหตุผลที่บันทึกไว้ว่าทำไมมันจึงอยู่ตรงนั้น

ไฟล์โปรเจกต์

PERCH.md โน้ตของหน่วยความจำ และกฎต่างๆ อยู่ในโฟลเดอร์ของคุณเป็น markdown ธรรมดาที่คุณเป็นเจ้าของ และถูกอ่านทุกเทิร์น

หน่วยความจำระยะยาว

การ์ดระดับบัญชีที่ดึงมาด้วยการค้นหาแบบผสมทั้งเชิงความหมายและคีย์เวิร์ด รวมผลด้วย reciprocal rank fusion แล้วถ่วงน้ำหนักตามความมั่นใจและความใหม่

เรียนรู้จากการแก้ไข

แก้ Perch เพียงครั้งเดียว การแก้ไขนั้นก็อาจกลายเป็นหน่วยความจำถาวร คุณไม่ต้องไปจดมันไว้เองอีก

หน่วยความจำทำงานอย่างไร รวมถึงวิธีที่เลนและงบโทเค็นกำหนดว่าอะไรจะถึงโมเดลในแต่ละเทิร์น

เอเจนต์ตัวเดียวกันทำงานที่เกี่ยวข้องกับโค้ดด้วย

เอเจนต์เขียนโค้ดหยุดอยู่ที่รีโพ Perch ถูกสร้างมาเพื่องานกฎหมาย การเงิน และเอกสาร ที่คำตอบที่ผิดแต่ฟังดูมั่นใจมีผลกระทบตามมา และกลไกนั้นไม่ได้ปิดตัวเมื่อคุณเปิดโค้ดเบส เซสชันเดียวกันกับที่แก้บั๊กการกระทบยอด สามารถตรวจสอบการจ่ายเงินที่มันคำนวณผิด เทียบตัวเลขกับเอกสารต้นฉบับ และร่างบันทึกข้อความอธิบายเรื่องนั้นพร้อมการอ้างอิงกำกับทุกข้อความกล่าวอ้าง

เอเจนต์เดียว เวิร์กสเปซเดียว หน่วยความจำเดียว คุณไม่ต้องเอาเครื่องมือเขียนโค้ดมาเชื่อมเข้ากับเครื่องมือเอกสารแล้วหวังให้ทั้งคู่ตรงกัน

ชี้มันไปที่รีโพ

Perch Code รันบนเดสก์ท็อปและใน CLI ทั้งคู่ทำงานจากโฟลเดอร์ในเครื่องของคุณ และทั้งคู่รวมอยู่ในทุกแพ็กเกจ