Anthropic ได้เปิดตัวฟีเจอร์ทดลอง Cross-session messaging สำหรับ Claude Code ซึ่งอนุญาตให้เซสชันต่างๆ ส่งข้อความถึงกันได้โดยตรง ฟีเจอร์นี้ไม่ได้ส่งข้อมูลบริบททั้งหมด แต่ส่งเฉพาะผลลัพธ์ของงานและข้อมูลการพึ่งพา โดยใช้เครื่องมือภายในสองตัวคือ ListAgents และ SendMessage เซสชันท้องถิ่นแต่ละตัวจะลงทะเบียนลงบนดิสก์และผูกกับ Inbox Socket ข้อความในเครื่องเดียวกันจะถูกส่งผ่าน Socket โดยตรง ส่วนข้อความข้ามเครื่องจะถูกส่งผ่านเซิร์ฟเวอร์ของ Anthropic ข้อความจะกระตุ้น Turn ใหม่เมื่อเซสชันอยู่ในสถานะ Idle และจะถูกอ่านระหว่าง Tool Call เมื่ออยู่ใน Active Turn ฝั่งผู้รับจะแยกข้อความข้ามเซสชันออกจาก User Message ไม่สามารถแทนที่การอนุญาตจากผู้ใช้ได้ และมีโหมดการควบคุมขาเข้าสามแบบคือ accept/hold/refuse ฟีเจอร์นี้ทำงานร่วมกับความสามารถที่มีอยู่แล้ว เช่น Resume Session, Agent Teams และ Worktree เพื่อสร้างชั้นการประสานงานระหว่างเซสชันสำหรับ Claude Codeผู้เขียนบทความ แหล่งที่มา: LeFeng.com
ใน这几天 Anthropic ได้เพิ่มความสามารถเชิงทดลองใหม่ให้กับ Claude Code: การส่งข้อความข้ามเซสชัน
พูดง่ายๆ มันช่วยให้คุณสามารถส่งข้อความถึงกันได้ระหว่างหลายเซสชัน Claude Code ที่ทำงานพร้อมกัน
ตัวอย่างเช่น คุณเปิด Claude Code Session 3 รายการ: รายการหนึ่งรับผิดชอบฐานข้อมูล อีกหนึ่งรายการรับผิดชอบ API ด้านหลัง และอีกหนึ่งรายการรับผิดชอบการทดสอบ ก่อนหน้านี้ แม้ 3 รายการนี้จะทำงานแบบขนานกันได้ แต่ก็ไม่รู้ว่าอีกฝ่ายทำไปถึงไหนแล้ว เมื่อ Session ฐานข้อมูลเปลี่ยน Schema เสร็จ มักต้องใช้ผู้พัฒนาสลับไปยังเทอร์มินัลอีกอันเพื่อแจ้งการเปลี่ยนแปลงให้กับ Session ด้านหลังอีกครั้ง
หลังจากเพิ่มการส่งข้อความข้ามเซสชัน ขั้นตอนนี้สามารถดำเนินการโดย Claude ได้โดยตรง ฐานข้อมูลเซสชันสามารถแจ้งให้เซสชันด้านหลังทราบว่าฟิลด์ใดบ้างที่เปลี่ยนแปลงไป การทดสอบเซสชันพบปัญหาการกลับไปของอินเทอร์เฟซ ก็สามารถส่งผลลัพธ์ไปยังเซสชันที่กำลังแก้ไขโค้ดที่เกี่ยวข้องได้ Claude สามารถตัดสินใจเองว่าเมื่อใดควรแจ้งเซสชันอื่น หรือสามารถติดต่อเซสชันที่ระบุตามคำขอของนักพัฒนา
เพื่อเข้าใจว่ามันทำอะไรอย่างละเอียด ให้ติดตามเส้นทางเต็มของข้อความหนึ่งๆ: มันส่งอะไรไป หาเป้าหมายได้อย่างไร ข้อความเข้าสู่ Claude เมื่อใด และเหตุใดผู้รับจึงไม่สามารถทำตามตรงได้

01
ข้อความข้ามเซสชันไม่ได้เปลี่ยนแปลงการแยกเซสชันเดิมของ Claude Code
เมื่อเซสชัน A ส่งข้อความไปยังเซสชัน B จะไม่ส่งประวัติการสนทนาของตนเอง ไฟล์ที่อ่านแล้ว หรือทั้งหน้าต่างบริบทไปด้วย ตามข้อกำหนดอย่างเป็นทางการ การส่งข้ามเซสชันจะส่งเฉพาะข้อความเท่านั้น หากต้องการย้ายการสนทนาและบริบททั้งหมดไปยังอุปกรณ์อื่น ควรดำเนินการ Resume เซสชันเดิม แทนการใช้การส่งข้อความข้ามเซสชัน
สิ่งนี้กำหนดวิธีการร่วมมือระหว่าง Claude หลายตัว
สมมติว่าเซสชันฐานข้อมูลต้องอ่านไฟล์หลายสิบไฟล์และลองแนวทางต่างๆ หลายชุด ก่อนจะตัดสินใจว่าต้องแก้ไขฟิลด์หนึ่งฟิลด์ เซสชันด้านหลังไม่จำเป็นต้องรู้กระบวนการวิเคราะห์ทั้งหมดที่ผ่านมา แต่แค่ต้องรับข้อมูลการเปลี่ยนแปลงสุดท้าย และการเปลี่ยนแปลงเหล่านี้จะส่งผลกระทบต่อ API ของตนอย่างไร
ดังนั้น Cross-session messaging จึงส่งผลลัพธ์ของงานและข้อมูลการพึ่งพา ไม่ใช่หน่วยความจำงานทั้งหมด

ข้อดีของการทำเช่นนี้คือข้อมูลย่อยที่เกิดจากงานต่างๆ จะไม่ไหลเข้ามาอย่างต่อเนื่องในเซสชันอื่นๆ รายละเอียดที่เกี่ยวข้องกับฐานข้อมูลสามารถเก็บไว้ในเซสชันฐานข้อมูล กระบวนการทดสอบสามารถเก็บไว้ในเซสชันการทดสอบ และข้อมูลที่เกี่ยวข้องจะข้ามขอบเขตเซสชันเฉพาะเมื่อการเปลี่ยนแปลงใดๆ เริ่มส่งผลกระทบต่องานอื่นๆ
มันเป็นแนวคิดที่ต่างจาก “ให้ Agent ทั้งหมดใช้ Context ขนาดใหญ่ร่วมกัน” Cross-session messaging เลือกให้แต่ละเซสชันคงความเป็นอิสระ และสังเกตสถานะที่จำเป็นอย่างชัดเจนเมื่อเกิดการพึ่งพาในงาน
เนื่องจากส่งข้อความที่ชัดเจนแล้ว คำถามถัดไปคือ: Session A จะหา Session B ได้อย่างไร?
02 ต้องหาเซสชันอีกอันก่อน
Claude Code ได้เพิ่มช่องทางการสื่อสารของตนเองสำหรับเซสชันที่รองรับการส่งข้อความข้ามเซสชัน
แต่ละเซสชันท้องถิ่นจะลงทะเบียนข้อมูลที่เกี่ยวข้องลงบนดิสก์ และผูกกับ Inbox Socket หนึ่งอัน Claude สามารถค้นหาเซสชันที่สามารถติดต่อได้ในปัจจุบันผ่าน ListAgents จากนั้นส่งข้อความไปยังเป้าหมายที่ระบุผ่าน SendMessage
ผู้ใช้ไม่จำเป็นต้องดำเนินการเครื่องมือภายในเหล่านี้ด้วยตนเอง แค่แจ้ง Claude ว่าต้องการติดต่อเซสชันใด หรือให้มันแจ้งเตือนผู้อื่นโดยอัตโนมัติเมื่อภารกิจมีการพึ่งพา

ชื่อเซสชันจึงเริ่มมีส่วนร่วมในการระบุที่อยู่ Claude สามารถค้นหาเป้าหมายตามชื่อได้ หากชื่อซ้ำกัน ระบบจะเพิ่มรหัสสั้นเพื่อแยกความแตกต่าง พร้อมแสดง Working Directory เพื่อช่วยให้ระบุว่าแต่ละเซสชันกำลังจัดการโครงการหรือไดเรกทอรีใด
เมื่อพบเป้าหมายแล้ว ข้อความบนเครื่องนี้จะถูกส่งผ่าน Socket ของเซสชันที่เกี่ยวข้องโดยตรง โดยไม่ต้องผ่านเซิร์ฟเวอร์ Anthropic เซสชันบนเครื่องอื่นหรือบน Claude Code Web เท่านั้นที่จะใช้การเชื่อมต่อที่เกี่ยวข้องกับเซิร์ฟเวอร์ Anthropic และ Remote Control

cơ chế phát hiện này cũng xác định ranh giới của giao tiếp cục bộ.
Claude Code ต้องอ่านข้อมูลการลงทะเบียนที่เซสชันอื่นเขียนลงบนดิสก์ ดังนั้น Claude สองตัวแม้จะทำงานบนคอมพิวเตอร์เครื่องเดียวกันทางกายภาพ ก็อาจไม่สามารถตรวจพบกันได้หากระบบไฟล์แยกจากกัน กรณีทั่วไปคือโฮสต์และคอนเทนเนอร์อิสระ หากเซสชันทั้งสองทำงานภายในคอนเทนเนอร์เดียวกัน จะสามารถสื่อสารกันได้ตามปกติ
Inbox Socket ยังถูกจำกัดโดยสิทธิ์ผู้ใช้ของระบบปฏิบัติการ ผู้ใช้ OS อื่นๆ บนเซิร์ฟเวอร์ร่วมไม่สามารถเข้าถึงเซสชันของคุณโดยตรง
ดังนั้น “การสื่อสารในท้องถิ่น” ที่กล่าวถึงที่นี่ จริงๆ แล้วขึ้นอยู่กับว่าข้อมูลการลงทะเบียนสามารถมองเห็นได้หรือไม่ ซ็อกเก็ตสามารถเข้าถึงได้หรือไม่ และระบบปฏิบัติการอนุญาตให้เข้าถึงหรือไม่
ข้อความตอนนี้สามารถหาเป้าหมายและส่งเข้า Inbox ได้แล้ว ต่อไปก็ถึงตา Runtime ของ Claude Code ที่จะตัดสินใจว่าควรส่งข้อความนี้ให้กับโมเดลเมื่อใด

03 หลังจากส่งข้อมูล
สมมติว่าเซสชันด้านหลังกำลังแก้ไขไฟล์ ขณะนี้เซสชันทดสอบส่งข้อความมาแจ้งว่าเพิ่งพบปัญหาการย้อนกลับของอินเทอร์เฟซ
Claude Code จะไม่หยุดเครื่องมือที่กำลังทำงานทันที
หากเซสชันเป้าหมายอยู่ในสถานะ Idle ข้อความสามารถกระตุ้น Turn ใหม่ได้ หาก Claude อยู่ใน Active Turn อยู่แล้ว ข้อความจะรอและถูกอ่านระหว่าง Tool Call สองครั้ง
เหตุผลในการจัดการแบบนี้เกี่ยวข้องกับวิธีการดำเนินการของ Coding Agent อาจมี Claude กำลังเขียนไฟล์ รันการทดสอบ ดำเนินการ Migration หรือจัดการงานอื่นๆ ที่ใช้เวลานาน หากข้อความภายนอกสามารถเปลี่ยนการกระทำปัจจุบันได้ทุกเวลา อาจเกิดสถานการณ์ที่เครื่องมือดำเนินการเพียงบางส่วน แต่ Agent กลับเริ่มวางแผนใหม่ตามข้อมูลที่ได้รับแล้ว
ดังนั้นข้อความนี้จึงมีผลต่อการตัดสินใจของ Claude ในอนาคต แต่ไม่ได้เข้าแทรกการดำเนินการที่กำลังเกิดขึ้นอยู่
สิ่งนี้ยังหมายความว่า Cross-session messaging ได้ถูกรวมเข้ากับ Agentic Loop ของ Claude Code แล้ว ทำให้เป็นแหล่งอินพุตแบบอะซิงโครนัส และช่องทางนี้ไม่ได้ใช้เฉพาะสำหรับ Claude Session อื่นๆ เท่านั้น
Claude Code จะเปิดเผย Messaging Socket ของเซสชันปัจจุบันให้กับกระบวนการลูกที่เริ่มโดย Hook และ Bash เมื่อภารกิจแบบแบ็กกราวด์ที่ทำงานนานจบลง สามารถส่งผลลัพธ์กลับไปยังเซสชันปัจจุบันได้ทันที โดยไม่จำเป็นต้องให้ Claude ตรวจสอบอย่างต่อเนื่องว่าเสร็จสิ้นแล้วหรือยัง

ช่องทางนี้ไม่ใช่คิวข้อความที่เชื่อถือได้ ข้อความซ้ำจะถูกจำกัดอัตราการส่ง และเนื้อหาเดียวกันในช่วงเวลาสั้นๆ อาจถูกลบออก ข้อความที่ได้รับแล้วแต่ Claude ยังไม่ได้อ่าน จะถูกเก็บไว้สูงสุด 50 ข้อความต่อเซสชัน ข้อความที่อยู่ในสถานะ Hold จะใช้บัฟเฟอร์อีกชุดหนึ่ง โดยเก็บไว้สูงสุด 100 ข้อความ
ดังนั้นจึงเหมาะสำหรับส่งการเปลี่ยนแปลงสถานะ ผลลัพธ์ของงาน และการแจ้งเตือนแบบร่วมมือ ข้อเท็จจริงที่ต้องเก็บไว้เป็นระยะเวลานานควรยังคงบันทึกไว้ใน Git ไฟล์ ฐานข้อมูล หรือระบบถาวรอื่นๆ
เมื่อข้อความเข้าสู่ Runtime แล้ว ยังไม่สามารถเปลี่ยนเป็นการกระทำได้ทันที เพราะผู้รับต้องตรวจสอบก่อนว่า ข้อความที่ส่งมาจาก Claude อีกตัวหนึ่งมีสิทธิ์ระดับใด
04 สิทธิ์จะสืบทอดอย่างไร
Claude Code แยกข้อความผู้ใช้และข้อความเซสชันเพื่อนอย่างชัดเจน
เนื้อหาที่ส่งมาจากเซสชันอื่นจะไม่ถือว่าเป็นการอนุญาตของผู้ใช้ ดังนั้นจึงไม่สามารถอนุมัติ Permission Prompt แทนผู้ใช้ หรือขอให้ผู้รับเปลี่ยนการตั้งค่า Permission Settings CLAUDE.md หรือการตั้งค่าอื่นๆ ได้ แม้ว่าข้อความจะมีคำสั่ง Claude Code ก็จะถูกประมวลผลเป็นข้อความธรรมดาเท่านั้น

หากเซสชัน A ขอให้เซสชัน B ลบไฟล์ และการดำเนินการนี้ต้องการการอนุญาตจากผู้ใช้ในเซสชัน B หน้าต่างแจ้งการอนุญาตเดิมจะยังคงปรากฏขึ้น
Claude Code ยังจำกัดวิธีการหลีกเลี่ยงสิทธิ์อีกวิธีหนึ่ง: หากการดำเนินการใดๆ ถูกระบบสิทธิ์ปฏิเสธในเซสชันปัจจุบัน Claude ไม่ควรเปลี่ยนไปขอให้เซสชันอื่นดำเนินการแทน
หากไม่เช่นนั้น เพียงเพราะสิทธิ์ของเซสชันหลายเซสชันแตกต่างกัน เซสชันที่มีสิทธิ์ต่ำก็สามารถส่งต่อการดำเนินการที่ตนเองไม่สามารถทำได้ไปยังเซสชันที่มีสิทธิ์สูง ทำให้ขอบเขตสิทธิ์เดิมสูญเสียความหมาย
นอกเหนือจากสิทธิ์การดำเนินการ ข้อความเองยังมี Inbound Control อยู่อีกชั้นหนึ่ง ผู้รับสามารถตั้งค่าข้อความข้ามเซสชันเป็น accept、hold หรือ refuse:ส่งให้ Claude โดยตรง เก็บไว้ชั่วคราวเพื่อรอการยืนยันเพิ่มเติม หรือทิ้งไปโดยตรง

หากผู้ใช้ไม่ได้กำหนดกฎอย่างชัดเจน Claude Code จะยังคงอ้างอิงไปยัง Permission Mode ปัจจุบันของผู้ส่งและผู้รับ ซึ่งเซสชันที่สามารถข้าม Permission Prompt ทั่วไปจะไม่ถือว่าเป็นแหล่งที่มาของข้อความเดียวกันกับเซสชันทั่วไป; เมื่อสิทธิ์ของผู้รับสูงกว่า ข้อความจากภายนอกอาจถูกส่งเข้าสู่ Hold ก่อน

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

ชั้นการประสานงานระหว่างเซสชัน 05
การวางเส้นทางนี้กลับเข้าไปในความสามารถปัจจุบันของ Claude Code จะทำให้ตำแหน่งของ Cross-session messaging ชัดเจนยิ่งขึ้น
Resume Session ใช้เพื่อดำเนินการต่อการสนทนาและบริบทเดิม Agent Teams ใช้ในการสร้างและจัดการชุด Agent ที่ร่วมมือกัน Worktree รับผิดชอบการแยกการแก้ไขรหัสของแต่ละ Session ส่วน Remote Control แก้ปัญหาการควบคุม Session จากอุปกรณ์อื่น
การส่งข้อความข้ามเซสชันจัดการกับสถานการณ์อีกประเภทหนึ่ง: เมื่อเซสชันที่แต่ละอันทำงานแยกจากกันเกิดความพึ่งพาซึ่งกันและกันในระหว่างกระบวนการงาน วิธีการส่งข้อมูลที่จำเป็นไปยังอีกฝ่ายหนึ่ง
ก่อนหน้านี้ การเปิดหลายเซสชัน Claude Code ช่วยแก้ปัญหาการประมวลผลแบบขนาน แต่นักพัฒนายังต้องติดตามความคืบหน้าของแต่ละเทอร์มินัล และสื่อสารสถานะงานซ้ำๆ ระหว่างมนุษย์กับเซสชัน ตอนนี้ ข้อมูลเช่น การเปลี่ยนแปลงอินเทอร์เฟซ ผลการทดสอบ และการอัปเกรดเสร็จสมบูรณ์ สามารถส่งตรงไปยังเซสชันที่ได้รับผลกระทบได้ทันที
Cross-session messaging ไม่ได้รวม Claude หลายตัวเป็น Agent เดียว แต่เพิ่มความสามารถในการสื่อสารเข้าไปอีกชั้นหนึ่งนอกเหนือจาก Context แบบเดิม ไดเรกทอรีการทำงาน และขอบเขตสิทธิ์
เมื่อมองในบริบทของโครงการที่ใหญ่กว่า การออกแบบนี้เสนอแนวทางหลายตัวแทนอีกแบบ: ตัวแทนต่างๆ ไม่จำเป็นต้องแชร์ Context ที่ใหญ่ขึ้นเรื่อยๆ แต่สามารถประสานงานกันผ่านอินเทอร์เฟซการสื่อสารที่ชัดเจน เมื่อภารกิจ สถานะ และสิทธิ์ถูกแยกออกจากกัน ระบบกลับขยายตัวได้ง่ายขึ้น
เมื่อจำนวนเอเจนต์เพิ่มขึ้นเรื่อยๆ ปัญหาจะค่อยๆ เปลี่ยนจาก “เอเจนต์หนึ่งสามารถทำได้มากแค่ไหน” เป็น “เอเจนต์เหล่านี้สามารถแลกเปลี่ยนสถานะ จัดการการพึ่งพา และส่งต่องานได้อย่างมั่นคงหรือไม่”
แม้ว่าการส่งข้อความข้ามเซสชันจะแก้ไขเพียงส่วนหนึ่งเท่านั้น แต่มันก็ทำให้วิธีการทำงานหลายเซสชันของ Claude Code เริ่มมีโครงสร้างวิศวกรรมที่สมบูรณ์ยิ่งขึ้น อาจในอนาคต กลไกข้ามเซสชันภายในเครือข่ายท้องถิ่นนี้ จะพัฒนาเป็นโปรโตคอลการสื่อสารระหว่างเอเจนต์ข้ามเครื่องและข้ามระบบนิเวศ เมื่อนั้น การสนทนาสั้นๆ ระหว่าง Claude สองตัวนี้ จะเป็นก้าวสำคัญสู่การก่อตัวของโรงงานซอฟต์แวร์ที่มีความอัตโนมัติสูง
