zshell

ทำงานร่วมกับเอเจนต์ AI

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

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

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

รอผลลัพธ์คำสั่ง

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

ระบบจะปฏิเสธการเรียก exit, logout และ exec โดยตรง เพราะจะจบหรือแทนที่เชลล์เดิม ให้ใช้ /bin/sh -c เพื่อเรียกคำสั่งเหล่านี้ในโปรเซสย่อย

ตั้งค่า

ตรวจ การตั้งค่า → ระบบอัตโนมัติ → AI ซึ่งเปิดโดยค่าเริ่มต้น หากเคยปิด ให้เปิดแล้วเริ่มเทอร์มินัลใหม่หรือเริ่มเอเจนต์ที่กำลังรันใหม่

Zshell รองรับ Codex, Claude Code, Gemini CLI, Grok Build, OpenCode, Cursor Agent, Aider, Amp และ Pi หากพบการตั้งค่าเอเจนต์เดิมขัดกับคุณสมบัตินี้ จะคงการตั้งค่าเดิม คืนสวิตช์สู่สถานะก่อนหน้า และแสดงข้อผิดพลาดในหน้าการตั้งค่า

ขอด้วยภาษาปกติ

บอกเอเจนต์ถึงผลลัพธ์ที่ต้องการ เช่น:

รันการทดสอบที่เกี่ยวข้องในช่องเบื้องหลังแล้วบอกว่าตรงไหนล้มเหลว

มอบหมายบั๊กนี้ให้เอเจนต์ Codex อีกตัว แล้วตรวจผลของมัน

ถามเอเจนต์ที่ทำ API ว่าสคีมาพร้อมหรือยัง แล้วส่งคำตอบให้เอเจนต์ที่รันทดสอบ

เริ่มเซิร์ฟเวอร์พัฒนาข้างเรา รอให้พร้อมแล้วส่ง URL ให้ฉัน

ตรวจว่าเอเจนต์เบื้องหลังเสร็จหรือยัง ถ้าติดขัดบอกว่าต้องการอะไร

เอเจนต์จัดการอินเทอร์เฟซอัตโนมัติของ Zshell ให้ คุณไม่ต้องพิมพ์หรือจำคำสั่งอัตโนมัติ

ให้เอเจนต์ประสานงานระหว่างช่อง

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

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

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

ทำงานต่อระหว่างที่เอเจนต์รัน

ช่องที่มอบหมายอยู่เบื้องหลังจนกว่าคุณจะขอดู เมื่อการผสานวงจรชีวิตของผู้ให้บริการรายงานสถานะ Zshell แสดงบนช่องและแท็บของเอเจนต์:

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

Zshell ให้ความสำคัญกับเหตุการณ์ดั้งเดิมจาก Codex, Claude Code, Pi, OpenCode และ Grok ก่อนรายงานที่โปรแกรมส่งโดยตรง วางเมาส์เหนือป้ายสถานะหรือเปิด Agents เพื่อดูแหล่งที่มา เหตุผลที่รอ เปอร์เซ็นต์ และงานย่อย ต้องตรวจสอบและเชื่อถือ hook ของ Codex ใน /hooks ก่อน โดย Zshell จะไม่ข้ามขั้นตอนนี้

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

โปรแกรมรายงานความคืบหน้าด้วย zshell +agent report และล้างรายงานของตัวเองด้วย zshell +agent clear รายงานจะหมดอายุหลังไม่อัปเดต 120 วินาทีหรือเมื่อกระบวนการเจ้าของสิ้นสุด

เมื่อการผสานรายงานว่าเสร็จหรือต้องการข้อมูล Zshell ส่งการแจ้งเตือนได้ กด Cmd+Shift+A เพื่อไปเอเจนต์ถัดไปที่รายงานว่าต้องการความสนใจ

การใช้บัญชีและขีดจำกัด

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

Codex ต้องมี CLI ที่ติดตั้ง เข้าสู่ระบบ และรายงานขีดจำกัดได้ การใช้ Claude Code ปรากฏเมื่อ Zshell ได้รายงานการใช้ผ่านบรรทัดสถานะจากผู้ให้บริการ ส่วนนี้แสดงเมื่อมีข้อมูลเท่านั้น ช่วงเวลาที่รองรับขึ้นกับผู้ให้บริการและบัญชี นี่คือขีดจำกัดบัญชี ไม่ใช่ยอด token ของเซสชันที่มีโฟกัส

ขั้นตอนทำงานทั่วไป

  1. เริ่มเอเจนต์เขียนโค้ดที่ใช้ตามปกติในเทอร์มินัล Zshell
  2. ขอให้มอบหมายงานที่มีขอบเขตชัด รันงานเบื้องหลัง หรือประสานเอเจนต์อื่น
  3. ทำงานต่อในช่องปัจจุบัน ขณะที่ Zshell แสดงงานที่มอบหมายไว้ในเค้าโครงโปรเจกต์
  4. ติดตามป้าย กำลังทำงาน, ติดขัด หรือ เสร็จแล้ว ที่ผู้ให้บริการรายงาน หากเครื่องมือไม่รายงานวงจรชีวิต ให้เปิดช่องตรวจบทสนทนาหรือเอาต์พุตเอง
  5. ตรวจไฟล์ผลลัพธ์ในแผง Git ดู diff แล้วตัดสินใจว่าจะเก็บอะไร

คุณยังเป็นผู้ควบคุม

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

หากเอเจนต์ไม่ใช้ Zshell

  • ยืนยันว่า การตั้งค่า → ระบบอัตโนมัติ → AI เปิดอยู่
  • เปิดเทอร์มินัล Zshell ใหม่หากตัวปัจจุบันมีอยู่ก่อนเปิดการตั้งค่า
  • เริ่มเอเจนต์ที่รันอยู่ก่อนเปิดการตั้งค่าใหม่
  • ตรวจข้อผิดพลาดการติดตั้งที่แสดงในหน้าการตั้งค่า
  • ขอ “ช่อง Zshell เบื้องหลัง” หรือ “เอเจนต์ Zshell ที่รับมอบหมาย” อย่างชัดเจนเมื่อต้องการใช้ขั้นตอนนี้

สนทนาเดิมต่อ

เมื่อเปิด สนทนากับเอเจนต์ต่อ แผงที่ PTY เดิมไม่พร้อมใช้งานจะกลับไปสนทนา Claude Code, Codex, Pi หรือ OpenCode ที่บันทึกไว้ของแผงนั้น แต่ละแผงมีบทสนทนาของตัวเองแม้ใช้ไดเรกทอรีเดียวกัน

Zshell ติดตั้งฮุก SessionStart สำหรับ Claude Code และ Codex ส่วนขยาย Pi และปลั๊กอิน TUI ของ OpenCode ในการตั้งค่าผู้ให้บริการที่มีอยู่ โดยเก็บฮุก ปลั๊กอิน การตั้งค่าและความคิดเห็น JSONC อื่นไว้ เมื่อผู้ให้บริการถาม ให้เปิดฮุกในคำถามความเชื่อถือของ Claude Code และอนุมัติฮุกใหม่ของ Codex ใน /hooks รีสตาร์ตเอเจนต์ที่ทำงานก่อนติดตั้ง

รองรับเฉพาะบทสนทนาหลักที่ผ่านการตรวจสอบและรายงานโดยการผสานรวมเหล่านี้ เซสชัน Codex app-server ที่ใช้ร่วมกันรองรับเมื่อ ID บทสนทนาที่ตรวจสอบแล้วตรงกับแผง และจะไม่ผูกเมื่อกำกวม สำหรับบทสนทนาบนโฮสต์ระยะไกล โปรดดูเซสชันระยะไกลที่ใช้ร่วมกัน OpenCode ต้องมี API ปลั๊กอิน TUI ไม่รองรับรุ่นเก่า เซสชันเซิร์ฟเวอร์ไม่มีหน้าจอและ opencode attach เอเจนต์ลูกไม่สามารถแทนที่บทสนทนาของแผงหลักได้ Pi ต้องมีไฟล์เซสชันที่บันทึกไว้

ถ้าไม่มีตัวตนที่ตรวจสอบแล้ว ไดเรกทอรีเดิมหรือไฟล์ Pi จะเปิดเชลล์ใหม่ หากหา CLI ไม่พบก็จะกลับสู่เชลล์ Zshell จะไม่รันคำสั่งเริ่มต้นตามอำเภอใจซ้ำหรือเลือกบทสนทนาล่าสุด ข้อผิดพลาดผู้ให้บริการ เช่น บทสนทนาถูกลบ จะแสดงใน CLI

ค้นหาและสนทนาที่บันทึกไว้ต่อ

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

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

เก็บถาวร ซ่อนรายการจากล่าสุด และ ยกเลิกการเก็บถาวร นำกลับมา ลบ… ลบเฉพาะประวัติ Zshell และเก็บไฟล์การสนทนาของผู้ให้บริการไว้

ภายในแผง Zshell ใช้ zshell +agent history --all และ zshell +agent resume --id HISTORY_UUID ได้เฉพาะโปรเจกต์ของแผง จากเทอร์มินัลภายนอกทั่วไป ให้เปิด Zshell ไว้ ค้นหา UUID โปรเจกต์ แล้วระบุให้ชัดเจน:

zshell +agent history projects
zshell +agent history --project PROJECT_UUID --all
zshell +agent resume --project PROJECT_UUID --id HISTORY_UUID --focus

CLI สนทนาต่อในเบื้องหลังจนกว่าจะเพิ่ม --focus หากโปรเจกต์เปิดหลายหน้าต่าง เลือก --window WINDOW_UUID จาก history projects หากมีหลายแอปอินสแตนซ์ ใช้ --connection PATH พร้อมพาธเต็มของไฟล์เชื่อมต่อส่วนตัวที่ CLI แสดง ตัวเลือกเป้าหมายเหล่านี้ใช้กับเทอร์มินัลภายนอกเท่านั้น กระบวนการในแผงยังจำกัดอยู่ในโปรเจกต์เดิม

ติดตามเหตุการณ์โครงการแบบสด

เรียก zshell +events ภายในเทอร์มินัล Zshell เพื่อรับการเปลี่ยนแปลงถัดไปของโครงการและหน้าต่างนั้นเป็น NDJSON โดยไม่สำรวจซ้ำ รองรับ --pane UUID, --event NAME ที่ระบุซ้ำได้, --once และ --timeout MS (0 คือรอไม่จำกัด)

ครอบคลุมการสร้างและปิดเซสชันกับบานหน้าต่าง โฟกัส ความคืบหน้า การขอความสนใจและการเสร็จสิ้นของ Agent รวมถึงคำสั่งเสร็จสิ้น stream.ready เริ่มที่ sequence 0 แล้วเพิ่มตามเหตุการณ์ที่ตรงกัน แต่ละบรรทัดมี version, event, stream_id, sequence, time หน่วยมิลลิวินาที Unix, project_id และ data ไม่มีการเล่นประวัติซ้ำ อ่านผลด้วย +pane wait --task UUID

จำกัด 32 การติดตาม คิวละ 256 เฟรมและ 1 MiB เฟรมละ 64 KiB ผู้อ่านที่ช้าจะได้รับ stream.lagged หากส่งได้แล้วตัดการเชื่อมต่อ การเขียนไม่ได้ 2 วินาทีก็ปิดเช่นกัน ความล่าช้า การตัดที่ไม่คาดคิด หรือลำดับผิดจะคืนรหัสไม่ใช่ศูนย์ ให้ติดตามใหม่และอ่านสถานะปัจจุบัน การปิดเทอร์มินัล เปลี่ยนโทเค็น หรือย้ายไปโครงการ/หน้าต่างอื่นจะยุติการติดตาม ไม่รองรับการควบคุมภายนอกหรือ --project การลบตัวแปรไม่เพิ่มสิทธิ์ --once ที่หมดเวลาโดยไม่ตรงเหตุการณ์คืน 124 การหมดเวลาปกติคืน 0

zshell +events --event command.task.finished --once --timeout 30000

pane.updated: data.from → data (tab_id, pane_id, terminal_id, content).