การรวมตัวแทนภายนอก
รวมตัวแทน AI ที่กำหนดเองกับ Edison Watch โดยใช้ Python SDK หรือ HTTP API สำหรับการติดตาม ควบคุม และตรวจสอบกิจกรรมของตัวแทน
Edison Watch ให้ API และ SDK เพื่อรวมตัวแทน AI ภายนอก ช่วยให้คุณสามารถติดตามการเรียกใช้เครื่องมือ บังคับใช้นโยบายความปลอดภัย และตรวจสอบกิจกรรมของตัวแทนแบบเรียลไทม์
ข้อกำหนดเบื้องต้น
ก่อนรวมตัวแทนของคุณ:
- เซิร์ฟเวอร์ Edison Watch ต้องกำลังทำงานและเข้าถึงได้
- คีย์ API จากแดชบอร์ด (Settings → API Keys)
- Python 3.8+ (สำหรับ Python SDK) หรือไคลเอนต์ HTTP (สำหรับ API โดยตรง)
รับคีย์ API ของคุณจากแดชบอร์ด Edison Watch ภายใต้ Settings → API Keys คีย์ API จะตรวจสอบสิทธิ์ตัวแทนของคุณและเชื่อมโยงกิจกรรมกับบัญชีผู้ใช้ของคุณ
ตำแหน่งเซิร์ฟเวอร์: ตั้งค่าตัวแปรสภาพแวดล้อม EDISON_WATCH_API_BASE เป็น URL เซิร์ฟเวอร์ Edison Watch ของคุณ (เช่น https://dashboard.edison.watch) SDK จะอ่านค่านี้เพื่อเชื่อมต่อกับเซิร์ฟเวอร์ของคุณ
เริ่มต้นอย่างรวดเร็ว (Python/LangGraph)
วิธีที่เร็วที่สุดในการรวมคือการใช้ Python SDK edison-watch พร้อมด้วยตัวตกแต่ง @edison.track()
การติดตั้ง
ตัวแปรสภาพแวดล้อม
ตั้งค่าตัวแปรสภาพแวดล้อมเหล่านี้ (หรือส่งผ่านไปยังตัวสร้าง Edison):
จำเป็น: คุณต้องตั้งค่า EDISON_WATCH_API_BASE เป็น URL เซิร์ฟเวอร์ Edison Watch ของคุณ (เช่น https://dashboard.edison.watch)
การรวมขั้นต่ำ
เพิ่มเพียง 4 บรรทัดเพื่อติดตามการเรียกใช้เครื่องมือของตัวแทนของคุณ:
ตัวตกแต่ง @edison.track() จะดำเนินการโดยอัตโนมัติ:
- ส่งข้อมูลเมตาการเรียกใช้เครื่องมือไปยัง Edison Watch ก่อนการทำงาน
- รอการอนุมัติหากการเรียกใช้กระตุ้นนโยบายความปลอดภัย
- บันทึกระยะเวลาและผลลัพธ์หลังการทำงาน
- ปรากฏในไทม์ไลน์ของแดชบอร์ด
การลงทะเบียนตัวแทน (ทางเลือก)
คุณสามารถเลือกที่จะลงทะเบียนตัวแทนที่มีชื่อใน Edison Watch เพื่อการจัดระเบียบและการติดตามที่ดีขึ้น สิ่งนี้มีประโยชน์เมื่อจัดการตัวแทนหลายประเภทหรือหลายบทบาท
สร้างตัวแทน
การตอบกลับ:
agent_id จะถูกสร้างขึ้นโดยอัตโนมัติในรูปแบบ agent:HEX (32 ตัวอักษรฐานสิบหก)
แสดงรายการตัวแทน
การตอบกลับ:
ลบตัวแทน
การตอบกลับ:
การลงทะเบียนตัวแทนเป็น ทางเลือก คุณสามารถใช้ API การติดตามโดยตรงโดยไม่ต้องลงทะเบียนตัวแทน การลงทะเบียนมีประโยชน์หลักสำหรับการจัดระเบียบด้านการบริหารและการรายงาน
อ้างอิง Edison SDK
คลาส Edison ให้ Python SDK สำหรับติดตามกิจกรรมของตัวแทน
ตัวสร้าง
ตัวแปรสภาพแวดล้อม:
EDISON_WATCH_API_BASE: URL เซิร์ฟเวอร์ (จำเป็น - ตั้งค่านี้เป็นเซิร์ฟเวอร์ Edison Watch ของคุณ)EDISON_WATCH_API_KEY: คีย์ API สำหรับการตรวจสอบสิทธิ์ (จำเป็น)
หากไม่ได้ระบุเป็นอาร์กิวเมนต์ของตัวสร้าง ค่าเหล่านี้จะถูกอ่านจากตัวแปรสภาพแวดล้อม
ตัวตกแต่งการติดตาม
ตัวตกแต่ง @edison.track() จะห่อฟังก์ชันเพื่อติดตามการทำงานของมัน:
พารามิเตอร์:
session_id: แทนที่ ID เซสชันสำหรับการเรียกนี้name: แทนที่ชื่อเครื่องมือ (ค่าเริ่มต้นคือชื่อฟังก์ชัน)
พฤติกรรม:
- เรียก
/agent/beginก่อนการทำงาน (การควบคุม + รอการอนุมัติ) - ดำเนินการฟังก์ชัน
- เรียก
/agent/endหลังการทำงานพร้อมสถานะ ระยะเวลา และสรุปผลลัพธ์ - ทำให้เกิด
PermissionErrorหากถูกบล็อกและไม่ได้รับการอนุมัติ
การห่อเครื่องมือ LangChain
สำหรับเครื่องมือ LangChain ใช้ wrap_tools():
หรือใช้ bind_tools() เพื่อห่อและผูกในขั้นตอนเดียว:
การจัดการเซสชัน
เซสชันจัดกลุ่มการเรียกใช้เครื่องมือที่เกี่ยวข้องเข้าด้วยกัน โดยค่าเริ่มต้น อินสแตนซ์ Edison แต่ละตัวจะสร้าง ID เซสชันที่ไม่ซ้ำกัน แต่คุณสามารถแบ่งปันเซสชันได้:
คุณยังสามารถแทนที่เซสชันต่อการเรียก:
HTTP API โดยตรง (ไม่ใช่ Python)
หากคุณไม่ได้ใช้ Python คุณสามารถรวมโดยตรงผ่านจุดสิ้นสุด HTTP
เริ่มติดตามการเรียกใช้เครื่องมือ
การตอบกลับ:
รหัสสถานะ:
200 OK: คำขอได้รับการดำเนินการ (ตรวจสอบฟิลด์approved)400 Bad Request: เนื้อหาคำขอไม่ถูกต้อง401 Unauthorized: คีย์ API หายไปหรือไม่ถูกต้อง
สำคัญ: หาก approved เป็น false แสดงว่าการเรียกใช้เครื่องมือถูกบล็อกโดยนโยบายความปลอดภัย รอการอนุมัติด้วยตนเองในแดชบอร์ด หรือจัดการข้อผิดพลาดอย่างเหมาะสม
เสร็จสิ้นการติดตาม
หลังจากดำเนินการเครื่องมือ ให้เรียก /agent/end:
การตอบกลับ:
การทำชื่อเครื่องมือให้เป็นมาตรฐาน
ชื่อเครื่องมือจะถูกนำหน้าโดยอัตโนมัติด้วย agent_ หากไม่ได้เริ่มต้นด้วย builtin_ หรือ agent_:
web_search→agent_web_searchagent_my_tool→agent_my_tool(ไม่เปลี่ยนแปลง)builtin_system→builtin_system(ไม่เปลี่ยนแปลง)
ตัวอย่าง: การรวมที่สมบูรณ์
การตั้งค่าหลายตัวแทน
เมื่อเรียกใช้ตัวแทนหลายตัวที่มีบทบาทหรือสิทธิ์ต่างกัน ให้สร้างอินสแตนซ์ Edison แยกต่างหากที่มี agent_name และ agent_type ที่แตกต่างกัน:
กิจกรรมของตัวแทนแต่ละตัวจะถูกติดตามแยกต่างหากในแดชบอร์ด และคุณสามารถกำหนดสิทธิ์ที่แตกต่างกันต่อประเภทตัวแทนผ่านการตั้งค่าสิทธิ์ของแดชบอร์ด
การกำหนดค่าสิทธิ์
เครื่องมือที่ติดตามจะถูกตั้งชื่อด้วยคำนำหน้า agent_ ในระบบสิทธิ์ กำหนดค่าผ่านแดชบอร์ด Edison Watch:
- ไปที่ Servers ในแดชบอร์ด
- ค้นหาหรือสร้างเซิร์ฟเวอร์
agent(เครื่องมือที่ติดตามผ่าน SDK จะปรากฏภายใต้เซิร์ฟเวอร์นี้) - คลิกที่เครื่องมือแต่ละรายการเพื่อกำหนดค่าสิทธิ์
การตั้งค่าสิทธิ์:
สำหรับแต่ละเครื่องมือ คุณสามารถกำหนดค่า:
- Enabled: อนุญาตให้เครื่องมือทำงานหรือไม่
- Write Operation: เครื่องมือสามารถแก้ไขข้อมูลได้ (เช่น ส่งอีเมล สร้างไฟล์)
- Read Private Data: เครื่องมือเข้าถึงข้อมูลภายในที่ละเอียดอ่อน
- Read Untrusted Public Data: เครื่องมือประมวลผลเนื้อหาภายนอก/ไม่น่าเชื่อถือ
- ACL: ระดับการควบคุมการเข้าถึง (PUBLIC, PRIVATE, SECRET, TOP_SECRET)
ตัวอย่างการกำหนดค่า:
สำหรับเครื่องมือ web_search ที่ติดตามเป็น agent_web_search:
- Enabled: ✓
- Write Operation: ✗
- Read Private Data: ✗
- Read Untrusted Public Data: ✓
- ACL: PUBLIC
สำหรับเครื่องมือ send_email ที่ติดตามเป็น agent_send_email:
- Enabled: ✓
- Write Operation: ✓
- Read Private Data: ✗
- Read Untrusted Public Data: ✗
- ACL: SECRET
ธงความปลอดภัย:
write_operation: เครื่องมือสามารถแก้ไขข้อมูลได้ (เช่น ส่งอีเมล สร้างไฟล์)read_private_data: เครื่องมือเข้าถึงข้อมูลภายในที่ละเอียดอ่อนread_untrusted_public_data: เครื่องมือประมวลผลเนื้อหาภายนอก/ไม่น่าเชื่อถือ
Lethal Trifecta: หากการเรียกใช้เครื่องมือรวมธงทั้งสาม (ข้อมูลส่วนตัว + เนื้อหาที่ไม่น่าเชื่อถือ + การเขียน) Edison Watch จะหยุดรอการอนุมัติด้วยตนเอง
ระดับ ACL:
PUBLIC: ข้อมูลที่ไม่ละเอียดอ่อนPRIVATE: ข้อมูลความลับหรือภายในSECRET: ข้อมูลละเอียดอ่อนสูง
การบังคับใช้: ข้อมูลไม่สามารถไหลจาก ACL ที่สูงกว่าไปยัง ACL ที่ต่ำกว่า (เช่น SECRET → PUBLIC)
ดู การตั้งค่าสิทธิ์ สำหรับคำแนะนำการกำหนดค่าโดยละเอียด
การจัดการข้อผิดพลาด
การเรียกใช้เครื่องมือที่ถูกบล็อก
หากการเรียกใช้เครื่องมือถูกบล็อกโดยนโยบายความปลอดภัย:
ข้อผิดพลาดของเครือข่าย
SDK จัดการข้อผิดพลาดของเครือข่ายอย่างนุ่มนวลและบันทึกไว้ หาก Edison Watch ไม่สามารถเข้าถึงได้:
- การทำงานของเครื่องมือจะดำเนินต่อไป (การติดตามที่ดีที่สุดเท่าที่จะทำได้)
- ข้อผิดพลาดจะถูกบันทึกแต่จะไม่ทำให้เกิดข้อยกเว้น
- การตรวจสอบสุขภาพจะทำงานในพื้นหลังเพื่อตรวจจับการเชื่อมต่อ
การจัดการการหมดเวลา
หากการอนุมัติด้วยตนเองเกินเวลาที่กำหนด (ค่าเริ่มต้น: 30 วินาที):
พารามิเตอร์ timeout_s ควบคุมระยะเวลาที่จะรอการอนุมัติก่อนที่จะเกิด PermissionError
แนวทางปฏิบัติที่ดีที่สุด
- ใช้ชื่อตัวแทนที่สื่อความหมาย:
hr_assistant,eng_copilot,finance_analyst - ตั้งค่าประเภทตัวแทน: จัดกลุ่มตัวแทนตามบทบาทเพื่อให้จัดการได้ง่ายขึ้น
- แบ่งปันเซสชันอย่างเหมาะสม: ใช้
session_idเดียวกันสำหรับการเรียกใช้เครื่องมือที่เกี่ยวข้องในการสนทนา - จัดการการอนุมัติอย่างนุ่มนวล: การเรียกที่ถูกบล็อกควรรอการอนุมัติหรือล้มเหลวอย่างนุ่มนวล
- กำหนดค่าสิทธิ์ล่วงหน้า: ตั้งค่าสิทธิ์เครื่องมือในแดชบอร์ดก่อนปรับใช้ตัวแทน
- ตรวจสอบแดชบอร์ด: ตรวจสอบกิจกรรมของตัวแทนและปรับสิทธิ์ตามความจำเป็น
การแก้ไขปัญหา
401 Unauthorized
- ตรวจสอบว่า
EDISON_WATCH_API_KEYถูกตั้งค่าอย่างถูกต้อง - ตรวจสอบว่าคีย์ API ใช้งานได้ในแดชบอร์ด
การเรียกใช้เครื่องมือถูกบล็อก
- ตรวจสอบสิทธิ์เครื่องมือในแดชบอร์ด (Servers → agent → Tools)
- ตรวจสอบว่าชื่อเครื่องมือตรงกัน (มีคำนำหน้า
agent_) - อนุมัติการเรียกที่ถูกบล็อกในแดชบอร์ดหากจำเป็น
การเรียกใช้เครื่องมือไม่ปรากฏในแดชบอร์ด
- ตรวจสอบว่าเซิร์ฟเวอร์ Edison Watch กำลังทำงานอยู่
- ตรวจสอบการเชื่อมต่อเครือข่ายไปยัง
api_base - ตรวจสอบบันทึกของเซิร์ฟเวอร์เพื่อหาข้อผิดพลาด
ความล้มเหลวในการตรวจสอบสุขภาพ
- ตรวจสอบให้แน่ใจว่า Edison Watch สามารถเข้าถึงได้ที่
api_base - ตรวจสอบการตั้งค่าไฟร์วอลล์/เครือข่าย
- ตรวจสอบว่าเซิร์ฟเวอร์กำลังทำงาน:
curl https://dashboard.edison.watch/health
ต้องการความช่วยเหลือ? ตรวจสอบคู่มือ แดชบอร์ด สำหรับการติดตามกิจกรรมของตัวแทน หรือส่งอีเมลไปที่ [email protected] สำหรับการสนับสนุน

