ถอดบทเรียนการสร้าง Shippy: AI Agent ระดับปฏิบัติการเพื่อการปกป้องมหาสมุทร

Shippy คือ maritime AI agent ที่สร้างขึ้นเพื่อการตัดสินใจที่มีเดิมพันสูง ซึ่งคำตอบที่ผิดพลาดส่งผลกระทบต่อโลกจริง นี่คือสถาปัตยกรรมเบื้องหลัง และบทเรียนที่เรากำลังนำไปปรับใช้กับแพลตฟอร์มด้านสิ่งแวดล้อมอื่นๆ ของ Ai2

Shippy answering a live query about Ghana's EEZ

Shippy กำลังตอบคำถามสดเกี่ยวกับเขตเศรษฐกิจจำเพาะ (EEZ) ของประเทศกานา คำตอบแสดงให้เห็นถึงขั้นตอนการทำงาน: แหล่งที่มาของขอบเขต, จุดตัดของข้อมูล (data cutoff), เวลาที่คิวรี และลิงก์เจาะลึกกลับไปยังแผนที่ Skylight เพื่อให้นักวิเคราะห์สามารถตรวจสอบตัวเลขทุกตัวได้

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

ดังนั้น เมื่อทีม Skylight เริ่มพัฒนา Shippy เพื่อยกระดับการรับรู้สถานการณ์ทางทะเลแบบเรียลไทม์ โจทย์หลักจึงไม่ใช่แค่เรื่องโมเดล แต่เป็นการสร้างระบบที่มั่นใจได้ว่าข้อมูลถูกต้อง อยู่ในขอบเขต และตรวจสอบกับข้อมูลสดของ Skylight ที่อัปเดตตลอดเวลาตามสัญญาณดาวเทียมได้ ไม่ใช่แค่ข้อมูลภาพนิ่ง (static snapshot) ทั่วไป

กายวิภาคของ Agent: ส่วนผสมของ Soul, Skills และ Config

เราออกแบบ Shippy โดยแบ่งออกเป็น 3 ส่วนหลัก ได้แก่:

  • Soul: คือ System prompt ที่กำหนดตัวตนและขอบเขตพฤติกรรมของ Shippy
  • Skills: คือชุดคำสั่งที่บอกวิธีจัดการกับคำขอเฉพาะทางต่างๆ

ทั้ง Soul และ Skills จะถูกบรรจุไว้ใน Docker image เพื่อระบุเวอร์ชันและพร้อมใช้งาน ส่วนประกอบสุดท้ายคือ Config ซึ่งครอบคลุม Agent harness (อย่าง OpenClaw), การเลือกใช้ LLM (ปัจจุบันใช้ Claude Opus 4.6) และการตั้งค่า runtime ต่างๆ การแยกส่วนแบบนี้ทำให้การเปลี่ยนโมเดลหรือ harness ทำได้ง่ายเพียงแค่แก้ config โดยไม่ต้องรื้อระบบใหม่ (rebuild)

Skills ของ Shippy อ้างอิงตาม agent-skills spec เช่นเดียวกับ Claude Code โดยปัจจุบันมีความสามารถหลักดังนี้:

  • คิวรี Skylight API: เพื่อดูเหตุการณ์ต่างๆ (เช่น การทำประมงผิดกฎหมายหรือการขนถ่ายสินค้าระหว่างเรือ) และข้อมูลเรือ
  • ค้นหาพื้นที่เขตเศรษฐกิจจำเพาะ (EEZ) และพื้นที่คุ้มครองทางทะเล (MPA)
  • ตีความข้อมูลเส้นทางเดินเรือ (vessel track data): วิเคราะห์ตำแหน่งและการเคลื่อนที่ของเรือโดยต่อยอดจากโมเดลของ Skylight และ Atlantes
  • สร้างลิงก์แผนที่แบบโต้ตอบ: ช่วยให้นักวิเคราะห์คลิกจากแชทไปยังตำแหน่งบนแผนที่ Skylight ได้ทันที

ตัวอย่างการทำงาน เช่น เมื่อผู้ใช้ถามว่า "แสดงกิจกรรมประมงในเขต Panama EEZ เมื่อเดือนที่แล้ว" Shippy จะเรียกใช้ทักษะ Regions API เพื่อดึงพิกัดเชิงเรขาคณิตที่ถูกต้องแทนการคาดเดา แล้วจึงคิวรีข้อมูลประมงในพื้นที่นั้น พร้อมแสดงลิงก์กลับไปยังแผนที่และระบุแหล่งที่มาของข้อมูลจากพันธมิตร เช่น Global Fishing Watch หรือ TMT อย่างชัดเจน

นอกจากนี้ Soul ของ Shippy มีหน้าที่ชัดเจนว่าจะไม่ทำการตัดสินใจทางกฎหมายว่าเรือลำใดละเมิดกฎหมายหรือไม่ เพราะนั่นคือหน้าที่ของมนุษย์ และจะไม่คาดเดาเกินกว่าที่ข้อมูลสนับสนุน ขอบเขตเหล่านี้ถูกระบุไว้ใน System prompt เพื่อให้ตรวจสอบและแก้ไขได้ง่าย

เครื่องมือแบบ Deterministic ในโลกของ Agent ที่มีความไม่แน่นอน

แม้ AI Agent จะมีความไม่แน่นอน (nondeterministic) ในการตัดสินใจ แต่เราสามารถสร้างเครื่องมือที่ให้ผลลัพธ์คาดการณ์ได้ (predictable) Shippy จึงเลือก 'คุย' กับ Skylight ผ่าน CLI ที่สร้างขึ้นเฉพาะแทนการเรียก API โดยตรง เนื่องจาก API ของเรามีความซับซ้อนสูง (เช่น pagination cursors หรือพิกัดเรขาคณิตที่ซ้อนกัน) ในช่วงแรก Shippy มักทำพลาดเล็กๆ น้อยๆ เช่น ใส่ฟอร์แมตผิดทำให้ผลลัพธ์หายไป การใช้ Skylight CLI จึงเข้ามาช่วยลดความซับซ้อน Shippy เพียงแค่ส่งคำสั่งเดียวอย่าง skylight events search พร้อมแฟลกข้อมูลที่ต้องการ CLI จะจัดการการยืนยันตัวตนและการดึงข้อมูลให้อัตโนมัติ พร้อมบันทึกผลลัพธ์เป็นไฟล์ JSON เพื่อป้องกันปัญหา pipe buffer limits เมื่อข้อมูลมีขนาดใหญ่

โครงสร้างที่แบ่งชั้นจาก Typed API ไปจนถึง CLI และ Agent Skills ช่วยให้เราทดสอบแยกส่วนได้แม่นยำขึ้น แต่ละเลเยอร์จะช่วยลดโอกาสเกิดข้อผิดพลาดก่อนจะส่งไม้ต่อให้เลเยอร์ถัดไป

Shippy architecture diagram

การประมวลผลภายใต้ Sandbox และความยืดหยุ่น

Skylight ให้บริการหน่วยงานรัฐบาลและ NGO ในกว่า 70 ประเทศ ข้อมูลของผู้ใช้แต่ละฝ่ายจึงต้องถูกแยกออกจากกันอย่างเด็ดขาด เราจึงสร้าง Mothership แพลตฟอร์มโฮสต์ Agent บน Kubernetes ที่จะสร้างกลุ่ม pods (isolated session) ให้กับผู้ใช้แต่ละรายเมื่อเริ่มการสนทนา โดยใส่โทเค็น API (JWT) เฉพาะบุคคลเข้าไป เพื่อให้ Shippy เข้าถึงได้เฉพาะข้อมูลที่ผู้ใช้คนนั้นมีสิทธิ์เท่านั้น ไฟล์หรือประวัติการวิเคราะห์จะคงอยู่เฉพาะใน sandbox นั้นๆ และระบบจะจำกัดการเชื่อมต่อเครือข่ายไว้เฉพาะบริการที่จำเป็นเพื่อความปลอดภัยสูงสุด

Sandbox architecture diagram

การประเมินผลระบบ (Eval System) แทนการวัดคะแนนโมเดล

เกณฑ์วัด AI ทั่วไปมักใช้คำถามนิ่งๆ แต่ Shippy ต้องทำงานกับ workflow จริง เราจึงสร้างระบบประเมินผลโดยให้ผู้เชี่ยวชาญระบุเกณฑ์ให้คะแนน (rubrics) และกำหนดค่าน้ำหนักตามความสำคัญของงาน เช่น การคิวรีข้อมูลประมงจะเน้นความแม่นยำเป็นอันดับหนึ่ง

ขั้นตอนการวัดผลจะใช้ Harbor รันคำสั่งจำลองเหตุการณ์ผ่าน sandbox จริง จากนั้นใช้ LLM judge ให้คะแนน 0-1 ในแต่ละเกณฑ์พร้อมเหตุผลประกอบ หากเวอร์ชันใดมีคะแนนลดลงจากการอัปเดต จะไม่ถูกนำไปใช้งานจริง

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

Eval pipeline diagram

ผลการประเมิน Shippy ภายในระบบ Skylight จะแสดงคะแนนถ่วงน้ำหนักและเหตุผลประกอบ เพื่อให้ผู้พัฒนามองเห็นจุดบกพร่องที่ต้องแก้ไข

ก้าวถัดไปของ Shippy

เรากำลังทยอยเปิดให้กลุ่ม early adopters ใช้งานเพื่อทดสอบการตอบสนองและปรับปรุง guardrails ให้เข้มงวดขึ้น สิ่งที่กำลังจะเกิดขึ้นในเร็วๆ นี้ ได้แก่:

  • Agent-controlled UI: Shippy จะสามารถสั่งการแผนที่ Skylight ได้โดยตรง เช่น การซูมไปยังพื้นที่หรือการตั้งค่าตัวกรองแทนการส่งเพียงลิงก์ขาเดียว
  • Model Routing: ระบบจะสลับไปใช้โมเดลขนาดเล็กที่เร็วกว่าสำหรับคำถามพื้นฐาน และเก็บโมเดลขนาดใหญ่ไว้เพื่องานสืบสวนซับซ้อน
  • Cross-thread memory: สร้างความจำข้ามการสนทนา เพื่อให้ Shippy จดจำบริบทพื้นฐานของผู้ใช้งานได้ เช่น เขตพื้นที่รับผิดชอบ โดยไม่ต้องระบุใหม่ทุกครั้ง

สถาปัตยกรรม Mothership ที่เราสร้างขึ้นจะไม่ได้หยุดอยู่เพียงแค่ Shippy เท่านั้น แต่จะเป็นรากฐานให้ Agent อื่นๆ ของ Ai2 เช่น EarthRanger (เพื่อการอนุรักษ์สัตว์ป่า) และ OlmoEarth ในอนาคต


Shippy พัฒนาโดยทีม Skylight ที่ Ai2 โดย Skylight เป็นแพลตฟอร์มเพื่อการรับรู้สถานการณ์ทางทะเลที่ให้บริการฟรีแก่พันธมิตรกว่า 300 รายทั่วโลก

Source: Hugging Face Blog
ดูแลงานแปลและเรียบเรียงโดย SirilukP
Shippy eval suite screenshot

ความคิดเห็น (0)

เข้าสู่ระบบเพื่อร่วมแสดงความเห็น

สมัครสมาชิก

มาเป็นคนแรกที่แสดงความเห็นกันเลยโบร