บล็อก

Claude Code Projects: ผู้ประสานงาน เธรด และข้อจำกัดของเบต้า

Markdown

เธรดงานบนคลาวด์ของ Claude Code Projects ทำงานอย่างไร: GitHub App, คำแนะนำ, หน่วยความจำ, ความขัดแย้ง และข้อจำกัดของเบต้า

อ่านบทความฉบับเต็ม

เมื่อไม่นานมานี้ Anthropic ได้ออกแบบ Projects ใน Claude Code ใหม่ ตอนนี้เป็นบทสนทนาประสานงานเดียวที่เปิดเซสชันบนคลาวด์แบบขนาน หรือเธรด สำหรับทำงานต่าง ๆ และรับรายงานจากเธรดเหล่านั้น ควรสร้างโปรเจ็กต์เมื่องานของคุณมีเป้าหมายที่กินเวลานานกว่าเซสชันเดียวและจะก่อให้เกิดงานใหม่ เช่น การพัฒนา repository ของ GitHub เป็นเวลาหลายสัปดาห์ การต้องทำงานแบบขนานเพียงอย่างเดียวยังไม่เพียงพอ หากคุณต้องแก้ไฟล์เดียวอย่างรวดเร็วในตอนนี้ เซสชันปกติก็เพียงพอแล้ว

ผู้ประสานงานเป็นผู้ดูแลงาน ซึ่งก็คือบทสนทนาที่ดำเนินต่อเนื่องยาวนาน โดย Claude จะตัดสินใจว่าจะเปลี่ยนส่วนใดจากข้อความของคุณให้เป็นงานสำหรับเธรด เธรดเป็นผู้เขียนโค้ด แต่ละเธรดคือเซสชัน Claude Code บนคลาวด์แยกต่างหากบน branch ของ repository ของตัวเอง หลายเธรดทำงานพร้อมกันได้ โดยแต่ละเธรดมีบริบทและ branch ของตนเอง ผู้ประสานงานเห็นรายงานที่เธรดส่งเมื่อทำงานเสร็จ แต่ไม่เห็นทุกขั้นตอนที่เธรดทำ ผู้ประสานงานรายงาน pull request ที่เสร็จแล้ว (คำขอรวมการเปลี่ยนแปลง) ให้คุณทราบ และเมื่อคุณสั่ง ก็จะขอให้เธรดแก้ไขหรือรวม pull request เหล่านั้น ต่อไปนี้เป็นภาพรวมที่อิงจากเอกสารทางการของ Anthropic ว่าต้องตั้งค่าอะไร จัดระเบียบงานอย่างไร และเบต้ามีข้อจำกัดอะไรบ้าง

เบต้ากำลังทยอยเปิดให้ใช้งาน โดยเริ่มจากบัญชี Pro และ Max ที่เคยใช้เซสชัน Claude Code บนคลาวด์แล้ว และยังไม่เคยสร้างโปรเจ็กต์ในแชตปกติหรือ Cowork หากคุณยังไม่เห็นส่วน Projects คุณสามารถเข้าร่วมรายชื่อรอได้

คำแนะนำเชิงปฏิบัติสำหรับการใช้งาน Ailoot อยู่ในเอกสารประกอบ

Claude Code Projects คืออะไร อธิบายง่าย ๆ

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

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

ลองนึกภาพว่ามีหลายแท็บ แต่ละแท็บเป็นเซสชัน Claude Code ในเครื่อง และอยู่ในสำเนาสำหรับทำงานของ repository คนละชุด สำเนาแบบนี้เรียกว่า worktree ซึ่งเป็นโฟลเดอร์แยกสำหรับ branch หนึ่ง เพื่อไม่ให้เซสชันในเครื่องรบกวนกัน คุณต้องสลับไปมาระหว่างเซสชันเองและตัดสินใจว่าจะมอบหมายอะไรให้แต่ละเซสชัน เธรดบนคลาวด์ไม่ต้องใช้ worktree เพราะแต่ละเธรดจะโคลน repository ไปไว้ในสภาพแวดล้อมบนคลาวด์ที่แยกจากกัน Projects จัดการการประสานงาน โดยตัดสินใจว่าเมื่อใดควรสร้างเธรดใหม่ และเมื่อใดไม่จำเป็น

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

ต่างจากเซสชันปกติและทีมเอเจนต์อย่างไร

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

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

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

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

สิ่งที่ควรตั้งค่าก่อนสร้างโปรเจ็กต์แรก

ก่อนสร้างโปรเจ็กต์ ให้ตรวจสอบสามอย่าง

1. บัญชี GitHub และ Claude GitHub App หากคุณเชื่อมต่อ GitHub ผ่าน /web-setup แล้ว โทเค็นดังกล่าวจะทำให้เซสชันบนคลาวด์ปกติของคุณเข้าถึง repository ได้ แต่ยังไม่เพียงพอสำหรับเธรดของโปรเจ็กต์ คุณต้องเชื่อมต่อบัญชี GitHub ที่มีสิทธิ์ push ไปยัง repository และติดตั้ง Claude GitHub App สำหรับ repository นั้น หากไม่มีสิ่งเหล่านี้ เธรดจะโคลน repository หรือเปิด pull request ไม่ได้

2. คำแนะนำของโปรเจ็กต์ คำแนะนำของโปรเจ็กต์คือข้อความที่มีความยาวได้สูงสุด 16 000 อักขระ ซึ่งส่งให้เธรดใหม่แต่ละเธรดและตัวผู้ประสานงานเอง ให้บันทึกข้อมูลที่คุณไม่อยากต้องอธิบายซ้ำทุกเซสชันไว้ที่นี่ เช่น โครงสร้าง repository แนวทางการเขียนโค้ด และการตรวจสอบที่ต้องทำก่อนเปิด pull request

3. โมเดลและระดับความพยายาม โดยค่าเริ่มต้น โปรเจ็กต์ใหม่จะใช้โมเดล Opus กับความพยายามระดับสูงสำหรับแต่ละเธรด และใช้ความพยายามระดับต่ำสำหรับผู้ประสานงาน เอกสารระบุว่าการตั้งค่านี้ “ใช้โควตาของแพ็กเกจคุณเร็วที่สุด” (แปล; ต้นฉบับ: draws on your plan fastest) หากงานของคุณไม่ซับซ้อน คุณสามารถเลือกโมเดลที่มีค่าใช้จ่ายต่ำกว่า หรือลดระดับความพยายามได้ที่ Project settings > General การตั้งค่าของเธรดและผู้ประสานงานเปลี่ยนแยกกัน เอกสารอธิบายตัวเลือกที่ประหยัดกว่าไว้ด้วย

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

หากเธรดแก้ไขโค้ดส่วนเดียวกันควรทำอย่างไร

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

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

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

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

ข้อจำกัดของเบต้าที่ควรรู้ล่วงหน้า

ก่อนสร้างโปรเจ็กต์สำหรับงานสำคัญ ให้ตรวจสอบข้อจำกัดของเบต้า:

  • ใช้งานได้เฉพาะใน Pro และ Max ยังไม่รองรับ Team และ Enterprise
  • จำกัดเธรดใหม่ 200 เธรดต่อวัน ต่อบัญชี รวมทุกโปรเจ็กต์
  • โปรเจ็กต์เป็นของผู้ใช้คนเดียว คุณไม่สามารถให้บุคคลอื่นเข้าถึงโปรเจ็กต์หรือเธรดใดเธรดหนึ่งร่วมกันได้ และเบต้ายังไม่มีการตั้งค่าองค์กรสำหรับทีม
  • เข้าถึงได้ผ่าน claude.ai/code แอปเดสก์ท็อป และแอปมือถือเท่านั้น Projects ใช้งานไม่ได้ในเทอร์มินัล CLI ผ่าน Amazon Bedrock, Google Cloud Agent Platform หรือ Microsoft Foundry
  • โปรเจ็กต์ไม่สามารถมองเห็นไฟล์และเครื่องมือในเครื่องได้ เธรดทำงานกับ repository ของ GitHub ไฟล์ที่อัปโหลด และโฟลเดอร์ Google Drive ได้ แต่ทำงานกับสิ่งที่มีอยู่เฉพาะบนเครื่องของคุณไม่ได้

หากต้องใช้เทอร์มินัลหรือเครื่องมือที่มีให้ใช้เฉพาะบนเครื่องของคุณ ให้ใช้เซสชันในเครื่องหรือมุมมองเอเจนต์สำหรับเซสชันเหล่านั้นหลายเซสชัน หากหลายคนจำเป็นต้องทำงานร่วมกันในพื้นที่ทำงานเดียว Anthropic มีผลิตภัณฑ์แยกต่างหากสำหรับทีมในแพ็กเกจ Team และ Enterprise ชื่อ Claude Tag ซึ่งอยู่ในช่อง Slack สมาชิกคนใดก็สามารถมอบหมายงานให้ Claude ได้ และทุกคนในช่องสามารถเห็นและกำกับงานได้ โปรเจ็กต์ทำงานต่างออกไป โดยเป็นของคุณคนเดียว หากคุณต้องใช้เพียงไฟล์ในเครื่องบางไฟล์ ก็อัปโหลดไฟล์เหล่านั้นไปยังโปรเจ็กต์ได้ แล้วแต่ละเธรดจะเข้าถึงไฟล์เหล่านั้นได้ วิธีนี้ไม่ได้ทำให้เข้าถึงเครื่องมือในเครื่องได้

ขั้นต่อไป

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

คุณสามารถสำรวจ Ailoot ต่อได้ที่ ailoot.ai

รายละเอียดเพิ่มเติม

คำถามที่พบบ่อย

แค่อยากทำขนานเป็นเหตุผลพอสร้าง Project หรือไม่?

ใช้ Project กับเป้าหมายต่อเนื่องหลายเซสชันที่ได้ประโยชน์จาก repository คำสั่ง และ memory ร่วม งานแก้ในเครื่องสั้น ๆ อยู่เซสชันธรรมดาได้ ส่วนเธรด Projects ทำงานในสภาพแวดล้อมคลาวด์แยกกัน

เธรด clone repository ไม่ได้ควรตรวจอะไร?

ตรวจสิทธิ์ push ของบัญชี GitHub ที่เชื่อมและการติดตั้ง Claude GitHub App สำหรับ repository นั้น โทเค็นของเซสชันคลาวด์ปกติที่มีอยู่ไม่พอสำหรับเธรด Project

บทความทั้งหมด