เหตุการณ์
บัญชีแยกประเภทที่ทนทานซึ่งบันทึกสิ่งที่เอเจนต์ทำและเหตุผล
หน้าที่การทำงาน
งานระหว่างเอเจนต์จะถูกบันทึกเป็นงาน (tasks), เหตุการณ์ (events), ขอบเชื่อมโยง (edges) และอาร์ติแฟกต์ (artifacts) ในบัญชีแยกประเภท Postgres ที่คงอยู่แม้จะรีสตาร์ทและสามารถเล่นซ้ำได้ บัสภายในกระบวนการ (in-process bus) แบบระบุประเภทจะส่งเหตุการณ์โดเมนประมาณเก้าสิบประเภทไปยังผู้รับข้อมูลภายในโหนด ซึ่งเมื่อรวมกันแล้วจะช่วยให้คุณเห็นไทม์ไลน์ว่า: มีการร้องขออะไร มอบหมายงานให้ใคร ผลลัพธ์คืออะไร และติดขัดที่จุดใด
ทำไมสิ่งนี้จึงสำคัญ
เมื่อห่วงโซ่เอเจนต์ทำบางสิ่งที่ไม่คาดคิด คำถามเดียวที่มีประโยชน์คือ "แสดงขั้นตอนให้ฉันดู" บัญชีแยกประเภทงานที่ทนทานจะทำให้สิ่งนั้นเป็นเพียงการสืบค้นข้อมูล แทนที่จะเป็นโครงการขุดค้นทางโบราณคดี และทำให้การลองใหม่และการยกเลิกเป็นขั้นตอนการทำงานจริง ไม่ใช่แค่ความหวัง
วิธีการทำงาน
บัญชีแยกประเภทงานมีความทนทานและสามารถเล่นซ้ำได้
งาน, เหตุการณ์, ขอบเชื่อมโยงการมอบหมาย และอาร์ติแฟกต์จะถูกเก็บเป็นแถวข้อมูลใน Postgres ดังนั้นการรีสตาร์ทจะไม่ทำให้ร่องรอยสูญหาย และสามารถลองใหม่อีกครั้งในจุดที่ติดขัดได้
การยกเลิกและการลองใหม่เป็นฟีเจอร์ระดับเฟิร์สคลาส (first-class)
การดำเนินการกับงานที่กำลังรันอยู่จะถูกบันทึกเป็นเหตุการณ์ด้วยเช่นกัน ดังนั้นการแทรกแซงจึงเป็นส่วนหนึ่งของไทม์ไลน์
บัสภายในกระบวนการ (in-process bus) มีความตรงไปตรงมาเกี่ยวกับขอบเขตของมัน
มันเป็นตัวส่งสัญญาณแบบโหนดเดียว (single-node emitter) ที่ระบุประเภท เราไม่ได้อธิบายว่ามันเป็นโครงสร้างหลักของเหตุการณ์แบบกระจายศูนย์ (distributed event backbone) เพราะมันไม่ใช่
คำถาม
- นี่คือ Kafka ใช่ไหม?
- ไม่ใช่ บัสภายในกระบวนการเป็นตัวส่งสัญญาณแบบระบุประเภทเฉพาะในโหนด (node-local) และความทนทานมาจากบัญชีแยกประเภทงาน Postgres หากคุณต้องการสตรีมมิ่งข้ามคลัสเตอร์ สิ่งนี้ไม่ใช่สิ่งนั้น
- ฉันสามารถดูสิ่งที่เอเจนต์ทำได้หรือไม่?
- ได้: ไทม์ไลน์งานพร้อมเหตุการณ์ เส้นทางการมอบหมายงาน และอาร์ติแฟกต์ รวมถึงการแทรกแซงที่เกิดขึ้นกับงานนั้น
The rest of the bag
การกำหนดสิทธิ์รายเอกสารที่กรองคำตอบ ไม่ใช่แค่หน้าเว็บ
การประมวลผลนโยบายจะถูกแคชไว้ต่อเซสชันเพื่อความรวดเร็ว การเปลี่ยนแปลงสิทธิ์จะส่งผลเมื่อแคชถูกล้างข้อมูล แทนที่จะส่งผลทันทีกับทุกคำขอที่กำลังดำเนินการอยู่
ทุกโฟลเดอร์และเอกสารย่อยจะมีนโยบายการเข้าถึง: สาธารณะ, ลงชื่อเข้าใช้แล้ว, หรือได้รับการอนุมัติจากเจ้าของ นโยบายเหล่านี้จะถูกประมวลผลเป็นกรอบข้อมูลต่อเซสชันเพื่อกรองสิ่งที่เอเจนต์สามารถดึงข้อมูลได้ก่อนที่จะตอบกลับ ทะเบียนความสามารถ (capability registry) จะควบคุมฟีเจอร์ทั้งหมดตามผู้เช่า (tenant) และการตรวจสอบการเข้าถึงที่สำคัญจะถูกปิดกั้นการเข้าถึงเมื่อเกิดข้อผิดพลาด (fail closed)
เอกสาร
โครงสร้างโฟลเดอร์ที่เอเจนต์ใช้อ่าน และไฟล์กำหนดค่าที่เอเจนต์ปฏิบัติตาม
การดึงข้อมูลครอบคลุมไฟล์ PDF, สเปรดชีต และบันทึกการสนทนา ส่วนไฟล์ไบนารีรูปแบบพิเศษจะไม่ถูกแยกวิเคราะห์
เมล
เอเจนต์ของคุณมีกล่องจดหมายเข้าของตัวเอง ไม่ใช่การแชร์กล่องจดหมายของคุณ
ข้อความขาเข้าจะมาถึงผ่าน webhook จากผู้ให้บริการอีเมล เราไม่ได้รันเซิร์ฟเวอร์ MX หรือ SMTP ของเราเอง
That was step 6 of 6: a reply leaves, and the trail stays. นั่นคือเส้นทางทั้งหมด ตั้งแต่การมาถึงไปจนถึงบันทึกที่สามารถเล่นซ้ำได้