ข้ามไปยังเนื้อหา

โหมด

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

มีอยู่สี่โหมดพอดี: chat, review, plan, orchestrate ตัว enum เองไม่พกนโยบายใด ๆ ทุกสิ่งที่โหมดรับประกันถูกประกาศไว้เพียงครั้งเดียวใน โปรไฟล์ความสามารถ ซึ่งทุกชั้นการบังคับใช้ฉายภาพออกมาจาก:

  1. พื้นผิวเครื่องมือ — ว่าในโหมดนั้นมีเครื่องมือใดอยู่จริงบ้าง แสดงออกเป็นระดับการอนุมัติสูงสุด รายการที่อนุญาต รายการที่ปฏิเสธ และชุดของคลาสการกระทำที่ถูกปฏิเสธ
  2. คำกริยาผลลัพธ์ที่จำเป็น — สิ่งที่การรันต้องเรียก จึงจะนับว่าได้ส่งมอบอะไรสักอย่าง
  3. คลาสการกระทำที่ถูกห้าม — สิ่งที่กฎคุมการกระทำปฏิเสธทันที
  4. สถานะการเขียนของ worktree — ว่า worktree ถูกเขียนได้หรือไม่ สิ่งนี้ถูกบังคับใช้โดยการถอดเครื่องมือที่เปลี่ยนแปลงสถานะออกจากพื้นผิว ซึ่งเป็นสิ่งที่ทำให้มันคงอยู่บนทุกโฮสต์ เมื่อโฮสต์มีแซนด์บ็อกซ์ของระบบปฏิบัติการ สถานะเดียวกันนี้ยังกำหนดกฎการเขียนของระบบไฟล์ด้วย — โหมดอ่านอย่างเดียวจะเมานต์ worktree แบบอ่านอย่างเดียว — แต่นั่นเป็นสำเนาที่สองของการรับประกัน ไม่ใช่ตัวที่ทำงานจริง
  5. บล็อกพรอมป์ต์ระบบ — คำนำเรื่องความสามารถที่ ถูกสร้างขึ้น จากรายการเครื่องมือที่ประกอบเข้าจริง บวกกับคำแนะนำที่เขียนด้วยมือ

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

เป็นโหมดเริ่มต้นและเป็นโหมดเดียวที่ไม่มีข้อจำกัดเพิ่มเติม: พื้นผิวเครื่องมือเต็มรูปแบบจนถึงระดับการลงมือทำ, worktree ที่เขียนได้, ไม่มีคลาสการกระทำที่ถูกห้าม และไม่มีข้อกำหนดการเสร็จงาน ใช้สำหรับงานพัฒนา การแก้บั๊ก คำถามเกี่ยวกับโค้ดเบส และงานเฉพาะหน้าใด ๆ

สังเกตป้ายชื่อ: ในช่องเขียนข้อความ โหมดนี้แสดงเป็น “เอเจนต์” ไม่ใช่ “แชท”

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

แผนแสดงเป็นแถวกะทัดรัดในการสนทนา และเปิด Plan Studio ในแท็บข้าง ๆ การอนุมัติแผนจะคอมไพล์กราฟเป็นการประสานงาน รันงานที่ถูกสร้างขึ้น และสลับสเปซที่ใช้เขียนแผนกลับไปเป็นโหมดเอเจนต์

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

ยังมีทางออกที่สองซึ่งแยกกันอยู่: exit_plan_mode มันเป็นด่านอนุมัติแบบแข็ง ไม่ใช่คำกริยาผลลัพธ์ — เอเจนต์ที่เรียกมันแทน submit_plan ยังไม่ได้ส่งมอบอะไรเลย การเรียกครั้งแรกจะเปิดการอนุมัติ plan_exit แบบถาวรและคืนค่า pending โดยสเปซยังคงเป็นอ่านอย่างเดียว; การเรียกซ้ำจะยังคง pending แทนที่จะเปิดด่านที่สอง หลังจากการอนุมัติได้รับอนุญาตแล้วเท่านั้น การเรียกครั้งถัดไปจึงจะสลับสเปซไปเป็นแชท การถูกปฏิเสธทำให้เอเจนต์เปิดคำขอใหม่สำหรับแผนฉบับแก้ไขได้

หากคุณต้องการออกจากโหมดแผนด้วยตัวเอง ให้สลับดรอปดาวน์ของช่องเขียนข้อความ (หรือ Shift+Tab) exit_plan_mode ถูกตัดสินด้วยเครื่องมือ MCP decide_approval แถว “การอนุมัติของเอเจนต์” ในกล่องขาเข้าเป็นคนละเรื่องกัน: พรอมป์ต์ยืนยันต่อเทิร์นจากเอเจนต์ที่กำลังรันอยู่

รีวิว — อ่านอย่างเดียว ไม่มีข้อกำหนดการเสร็จงาน

หัวข้อที่มีชื่อว่า “รีวิว — อ่านอย่างเดียว ไม่มีข้อกำหนดการเสร็จงาน”

โหมดรีวิวใช้สำหรับรีวิว PR มันทำให้ worktree เป็นอ่านอย่างเดียว จำกัดพื้นผิวเครื่องมือให้ต่ำกว่าระดับการลงมือทำ และใช้รายการที่อนุญาตซึ่งคัดสรรมาแล้วสำหรับเครื่องมือรีวิว จัดการตั๋วงาน และการสื่อสาร สเปซที่เปิดขึ้นสำหรับ pull request จะถูกสร้างในโหมดรีวิวโดยอัตโนมัติ

ผลลัพธ์ของเอเจนต์คือข้อค้นพบแบบมีโครงสร้าง — โหนดรีวิว — และเมื่อรีวิวถูกทำให้เสร็จสมบูรณ์ ก็ได้ คำตัดสิน โหนดหนึ่งพาชนิด (bug, suggestion, recommendation, question หรือ ticket) ลำดับความสำคัญตั้งแต่ P0 (ปิดกั้นการเผยแพร่) ถึง P3 (มีก็ดี) ความมั่นใจที่ประเมินด้วยตัวเอง จุดยึดซึ่งไม่บังคับ (ไฟล์บวกช่วงบรรทัด; บันทึกระดับทั้งรีโปไม่มีจุดยึด) และสถานะวงจรชีวิตที่เลื่อนจาก open ไปเป็น consensusReady เมื่อเพื่อนรีวิวเวอร์ — ไม่ใช่ผู้เขียน — ยืนยันมัน ข้อค้นพบที่ลำดับความสำคัญหรือความมั่นใจหายไปหรืออยู่นอกช่วงจะถูกตัดทิ้งที่ขอบเขตการอ่าน แทนที่จะไปปนเปื้อนคำตัดสิน

คำตัดสินคือ ship, hold หรือ block และมันถูกทำให้ รุนแรงขึ้น เท่านั้นโดยผลลัพธ์รายแกนที่พับเข้ามา: แกนที่มีเกตและล้มเหลวบังคับให้เป็น block และแกนที่มีเกตซึ่งรันไม่ได้บังคับให้เป็น hold อย่างน้อย การไม่มีหลักฐานไม่เคยทำให้เกตเป็นสีเขียว

ต่างจากโหมดแผนและโหมดประสานงาน โหมดรีวิว ไม่มีข้อกำหนดการเสร็จงาน ข้อค้นพบสะสมผ่าน add_review_node และถูกเผยแพร่ด้วย finalize_review และทั้งคู่อาจถูกเรียกศูนย์ครั้งได้อย่างชอบธรรม — เอเจนต์ไปป์ไลน์ที่รันในโหมดรีวิวอาจอยู่ตรงนั้นเพื่อปิดตั๋วงานแทนก็ได้

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

ไม่มีสิ่งใดในข้อเสนอถูกดำเนินการจนกว่าคุณจะอนุมัติ เมื่ออนุมัติ ตัวสร้างแบบกำหนดแน่นอนจะจ้างเอเจนต์ สร้างตั๋วงานและโปรเจกต์ และรันไปป์ไลน์ที่ถูกสร้างขึ้น การอนุมัติเป็นสิทธิ์ของผู้ดำเนินการเท่านั้น: ไม่มีเครื่องมือ MCP สำหรับมัน เอเจนต์จึงเสนอได้แต่ไม่มีทางอนุมัติแผนของตัวเอง ข้อเสนอซ้ำที่เอเจนต์เป็นผู้ริเริ่มถูกจำกัดอัตราด้วยคูลดาวน์สองนาที การวางแผนซ้ำติด ๆ กันจึงถูกปฏิเสธและถูกสั่งให้รวมเข้าด้วยกัน ดูการประสานงาน

คำกริยาผลลัพธ์ของโหมดเองไม่เคยถูกห้ามได้ submit_plan และ propose_orchestration ถูกตรึงไว้ในพื้นผิวเครื่องมือและอนุมัติล่วงหน้าผ่านทั้งตัวกรองเครื่องมือ ด่านอนุมัติ และกฎคุมการกระทำ ปุ่มความเป็นอิสระต่อสเปซจึงปิดเสียงสิ่งที่โหมดต้องส่งมอบไม่ได้ ask_user ของฮาร์เนสถูกตรึงไว้ด้วยเหตุผลเดียวกัน: มัน คือ วิธีที่การรันเข้าถึงผู้ดำเนินการ การใส่ด่านให้มันจะทำให้การรันที่ต้องถามอะไรสักอย่างติดตาย มันอยู่ระดับอ่าน ทุกโหมดอ่านอย่างเดียวจึงเก็บมันไว้ และมันได้รับการยกเว้นจากตัวห่อการอนุมัติ — พรอมป์ต์ที่วางไว้หน้าพรอมป์ต์จะล้มเหลวแบบปิดเมื่อไม่มีผู้อนุมัติเชื่อมต่ออยู่ ซึ่งจะปฏิเสธเอเจนต์ในเรื่องการถาม

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

ดรอปดาวน์โหมดของช่องเขียนข้อความมี สาม ตัวเลือก: เอเจนต์ (chat), แผน และประสานงาน review ไม่ให้ผู้ใช้เลือก — มันถูกตั้งโดยระบบเมื่อสเปซรีวิว PR ถูกสร้างขึ้น และโดยขั้นตอนไปป์ไลน์

โหนดไปป์ไลน์ที่ เปิดสเปซ สามารถตรึงโหมดของห้องนั้นได้ด้วยคีย์ extras['mode'] (chat, review หรือ plan) คีย์นี้ต้องตรงตัว: การสะกดแบบอื่นใด — รวมถึง orchestrate — จะถูกเพิกเฉยอย่างเงียบ ๆ และห้องจะได้ค่าเริ่มต้นของ body (review บน body ของ create-space) ขั้นตอนเอเจนต์เข้าร่วมห้องที่มันไม่ได้สร้างและไม่ได้กำหนดสิทธิ์ให้มันใหม่

การตัดสินเลือกโหมดเองนั้นเรียบง่าย ตัวสั่งงานอ่านคอลัมน์ mode ของสเปซ; การสั่งงานที่ไม่มีสเปซ — การรันครั้งเดียว การเรียกผ่าน CLI หรือ id ของสเปซจากเวิร์กสเปซอื่น ซึ่งไม่มีอยู่ในไฟล์ฐานข้อมูลของเวิร์กสเปซนี้อยู่แล้ว — จะตัดสินเป็น chat การเปลี่ยนโหมดมีผลตั้งแต่เทิร์นถัดไป

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

บนทรานสปอร์ต Claude Code โหมดที่ไม่ใช่แชทจะถูกส่งเป็น --permission-mode plan Claude เคารพค่านั้นตามธรรมเนียมปฏิบัติ; เครื่องมืออ่าน เขียน และแก้ไขของมันเองทำงานโดยไม่ถูกมองเห็น และคำสั่งเชลล์ถูกตรวจเพียงโดยฮุกที่อ่านบรรทัดคำสั่ง สำหรับทรานสปอร์ตนั้น โหมดเป็นเพียงคำแนะนำ ไม่ใช่ขอบเขตของ Control Center — ดูโมเดลเอเจนต์

รายการที่อนุญาตจำกัดเครื่องมือระดับเขียนขึ้นไป ระดับอ่านของฮาร์เนสในตัวยังเข้าถึงเครื่องมือที่ไม่มีรายการใดระบุชื่อไว้; บน Claude Code เครื่องมือที่รายการที่อนุญาตละไว้จะถูกปฏิเสธ ไม่ว่าเซิร์ฟเวอร์จะมีเครื่องมือนั้นหรือไม่