การสนทนา

การสนทนา

ภาพรวม

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


ประเภทของข้อความ

การไหลของข้อความในการสนทนาประกอบด้วยประเภทต่อไปนี้:

ประเภทข้อความ วิธีการแสดงผล คำอธิบาย
ข้อความผู้ใช้ ฟองข้อความชิดขวา ข้อความและไฟล์แนบที่ผู้ใช้ส่ง
ข้อความผู้ช่วย แสดงผล Markdown ชิดซ้าย คำตอบข้อความของ Agent รองรับการไฮไลต์โค้ด สูตรคณิตศาสตร์ และตาราง
การเรียกใช้เครื่องมือ แผงพับเก็บ ToolCallGroup ชื่อเครื่องมือ + พารามิเตอร์อินพุต + สถานะการดำเนินการ + ผลลัพธ์เอาต์พุต
กระบวนการคิด บล็อกพับเก็บ Thinking กระบวนการให้เหตุผลของ Agent (โมเดล thinking แบบเนทีฟ เช่น Claude)
การจัดการงาน แผงงาน TaskPanel รายการงานแบบมีโครงสร้าง (รอดำเนินการ/กำลังดำเนินการ/เสร็จสิ้น)
กิจกรรมของ Subagent SubagentToolRow กระบวนการดำเนินการของ Subagent พร้อมเครื่องหมายพิเศษ
การโต้ตอบด้วยคำถาม QuestionWizard คำถามแบบมีโครงสร้างที่ Agent ถามผู้ใช้

การแสดงผลการเรียกใช้เครื่องมือ

เมื่อ Agent เรียกใช้เครื่องมือ หน้าจอจะแสดงคอมโพเนนต์ ToolCallGroup:

工具调用展示-CN

องค์ประกอบที่แสดง คำอธิบาย
ชื่อเครื่องมือ ตัวระบุเครื่องมือที่เรียกใช้ (เช่น Bash, Read File)
พารามิเตอร์อินพุต พารามิเตอร์ที่เครื่องมือรับ (พับเก็บเพื่อดูได้)
สถานะการดำเนินการ loading (ไอคอนหมุน) / success (เครื่องหมายถูกสีเขียว) / error (กากบาทสีแดง)
ผลลัพธ์เอาต์พุต เนื้อหาที่เครื่องมือส่งกลับ (เนื้อหายาวสามารถพับเก็บได้)

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


การส่งออกแบบสตรีม

คำตอบของ Agent จะถูกส่งไปยังหน้าจอแบบเรียลไทม์ผ่านเหตุการณ์แบบสตรีม:

ประเภทเหตุการณ์ คำอธิบาย
text_delta ชิ้นส่วนข้อความ ต่อทีละตัวอักษรไปยังพื้นที่ข้อความ
thinking ชิ้นส่วนกระบวนการคิด (รองรับ thinking แบบเนทีฟของ Anthropic)
tool_use_start เริ่มการเรียกใช้เครื่องมือ แสดงชื่อเครื่องมือและพารามิเตอร์
tool_result ผลลัพธ์การดำเนินการของเครื่องมือ อัปเดตไอคอนสถานะ
error ข้อความแสดงข้อผิดพลาด
done รอบนี้เสร็จสมบูรณ์

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


การจัดการเซสชัน

สร้างเซสชันใหม่

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

การดำเนินการกับรายการเซสชัน

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

สแนปช็อตและการกู้คืนเซสชัน

ฝั่ง APP รองรับการคงอยู่ของสแนปช็อตเซสชัน เพื่อป้องกันการสูญเสียการสนทนาจากการหยุดชะงักโดยไม่คาดคิด:

กลยุทธ์สแนปช็อต คำอธิบาย
every_tool_round (ค่าเริ่มต้น) บันทึกหลังจากการเรียกใช้เครื่องมือแต่ละครั้ง
every_round บันทึกหลังจากการโต้ตอบ LLM แต่ละรอบ
manual บันทึกเฉพาะเมื่อทริกเกอร์ด้วยตนเองเท่านั้น

สแนปช็อตจะถูกจัดเก็บเป็นไฟล์ JSON (เขียนแบบอะตอมมิก ใช้ .tmp + rename เพื่อป้องกันความเสียหาย) และสามารถกู้คืนเซสชันที่หยุดชะงักได้ผ่าน resumeSessionId


การสนทนาในเครื่องและการสนทนาระยะไกล

ในสถานการณ์ที่มีหลายโหนด การสนทนาในรายการเซสชันจะแสดงไอคอนแหล่งที่มาที่แตกต่างกัน:

ไอคอน ความหมาย
本地对话图标 ไอคอนคอมพิวเตอร์ การสนทนาที่เริ่มต้นหรือดำเนินการโดยโหนด APP ในเครื่อง
远程对话图标 ไอคอนเซิร์ฟเวอร์ การสนทนาที่ดำเนินการโดยโหนดระยะไกล
渠道图标 ไอคอนแพลตฟอร์ม การสนทนาจากช่องทาง IM (Telegram, WeChat ฯลฯ)

สิ่งนี้ช่วยให้ผู้ใช้แยกแยะแหล่งที่มาของการดำเนินการสนทนาได้อย่างรวดเร็ว


ความสามารถของ Agent Loop ในงานที่ซับซ้อน

Agent Loop ช่วยให้ Work สามารถจัดการงานที่ซับซ้อนซึ่งต้องการการดำเนินการหลายขั้นตอน:

สถานการณ์ตัวอย่าง: ผู้ใช้ร้องขอ "ช่วยวิเคราะห์โครงสร้างไดเรกทอรีของโปรเจกต์และสร้างเอกสารสถาปัตยกรรม"

รอบที่ 1: Agent เรียกใช้ List Directory เพื่อเรียกดูโครงสร้างโปรเจกต์ รอบที่ 2: Agent เรียกใช้ Glob Files เพื่อค้นหาไฟล์กำหนดค่าสำคัญ รอบที่ 3: Agent เรียกใช้ Read File เพื่ออ่านเนื้อหาไฟล์หลัก รอบที่ 4: Agent เรียกใช้ Search Files เพื่อค้นหาความสัมพันธ์การพึ่งพาของโมดูล รอบที่ 5: Agent วิเคราะห์แบบองค์รวมและสร้างเอกสารสถาปัตยกรรม Markdown รอบที่ 6: Agent เรียกใช้ Write File เพื่อบันทึกเอกสารไปยังเส้นทางที่กำหนด
                      
                      รอบที่ 1: Agent เรียกใช้ List Directory เพื่อเรียกดูโครงสร้างโปรเจกต์
รอบที่ 2: Agent เรียกใช้ Glob Files เพื่อค้นหาไฟล์กำหนดค่าสำคัญ
รอบที่ 3: Agent เรียกใช้ Read File เพื่ออ่านเนื้อหาไฟล์หลัก
รอบที่ 4: Agent เรียกใช้ Search Files เพื่อค้นหาความสัมพันธ์การพึ่งพาของโมดูล
รอบที่ 5: Agent วิเคราะห์แบบองค์รวมและสร้างเอกสารสถาปัตยกรรม Markdown
รอบที่ 6: Agent เรียกใช้ Write File เพื่อบันทึกเอกสารไปยังเส้นทางที่กำหนด

                    
บล็อกโค้ดนี้ในหน้าต่างลอย

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

สำหรับรายละเอียดทางเทคนิค โปรดดูที่ เครื่องยนต์วงจร Agent



เคล็ดลับ: วิธีสนทนากับ Agent อย่างมีประสิทธิภาพยิ่งขึ้น

เคล็ดลับ ตัวอย่าง ผลลัพธ์
ระบุเป้าหมายให้ชัดเจน "ช่วยรีแฟกเตอร์ฟังก์ชัน formatDate ใน utils.ts ให้เปลี่ยนมาใช้ date-fns" Agent ระบุตำแหน่งเป้าหมายและแนวทางได้อย่างแม่นยำ
ร้องขอเป็นขั้นตอน "ก่อนอื่นแสดงรายการไฟล์ .tsx ทั้งหมด แล้วบอกฉันว่าไฟล์ใดใช้คอมโพเนนต์แบบ class" Agent ดำเนินการทีละขั้นตอน ผลลัพธ์ควบคุมได้มากขึ้น
ระบุเครื่องมือ "กรุณาใช้ Bash รัน npm test" Agent ใช้เครื่องมือที่ระบุโดยตรง
ขอการยืนยัน "บอกแผนของคุณก่อน แล้วค่อยดำเนินการหลังจากยืนยัน" ป้องกันไม่ให้ Agent แก้ไขไฟล์โดยตรง
ให้บริบท "นี่คือโปรเจกต์ React + TypeScript ที่สร้างด้วย Vite" Agent ให้คำแนะนำที่เหมาะสมยิ่งขึ้น

วิธียกเลิกงานที่กำลังดำเนินการ

เมื่อ Agent กำลังดำเนินการที่คุณไม่ต้องการ:

  1. คลิกปุ่ม หยุด ที่ด้านล่างของการไหลข้อความ (หรือกด Esc)
  2. Agent จะหยุดหลังจากการดำเนินการเครื่องมือปัจจุบันเสร็จสมบูรณ์
  3. การดำเนินการที่ทำไปแล้ว (เช่น ไฟล์ที่สร้างขึ้นแล้ว) จะไม่ถูกยกเลิกโดยอัตโนมัติ
  4. คุณสามารถสนทนาต่อเพื่อสั่งให้ Agent ยกเลิกการดำเนินการก่อนหน้าได้

หมายเหตุ: คำสั่ง Bash ที่กำลังดำเนินการจะถูกยุติ (ส่ง SIGTERM) แต่ผลของคำสั่งที่ดำเนินการเสร็จสิ้นแล้วไม่สามารถยกเลิกได้โดยอัตโนมัติ


จะทำอย่างไรเมื่อการเรียกใช้เครื่องมือล้มเหลว

สาเหตุของความล้มเหลว วิธีแก้ไข
สิทธิ์ไม่เพียงพอ Agent จะอธิบายว่าต้องการสิทธิ์ใด คุณสามารถอนุญาตในหน้าต่างป็อปอัป หรือปรับระดับความปลอดภัยของเครื่องมือได้
ไม่มีไฟล์อยู่ ตรวจสอบว่าเส้นทางถูกต้องหรือไม่ คุณสามารถให้ Agent ใช้ Glob/List Directory เพื่อยืนยันตำแหน่งไฟล์ก่อนได้
การดำเนินการคำสั่งผิดพลาด Agent มักจะวิเคราะห์ข้อผิดพลาดและลองใหม่โดยอัตโนมัติ หากล้มเหลวเป็นวงจร ให้ป้อนบริบทเพิ่มเติมด้วยตนเอง
หมดเวลาเครือข่าย เครื่องมือเครือข่ายเช่น Web Fetch อาจล้มเหลวเนื่องจากปัญหาเครือข่าย ลองใหม่ในภายหลังได้

เอกสารที่เกี่ยวข้อง