ใคร ด้วยหลักฐานอะไร อนุญาตให้เอเจนต์ทำการเปลี่ยนแปลงนี้?

Saphan Studio คือ control plane ที่ทำให้คำถามนั้นตอบได้เสมอ — สำหรับทุกการเปลี่ยนแปลง อยู่ในบันทึก

ฟลีตของคุณทำงานในภาษาของทีมคุณ — ส่วนบันทึกตอบผู้ตรวจสอบเป็นภาษาอังกฤษ ENالعربيةPolski

Solo preview — สัปดาห์หน้า

Saphan Studio สำหรับนักพัฒนาหนึ่งคน หนึ่งเครื่อง ฟรี ทิ้งอีเมลไว้ แล้วรับลิงก์ดาวน์โหลดในวันที่ปล่อย — ไม่มีอย่างอื่น

ส่งลิงก์ให้ฉัน →

รุ่น Team และ Enterprise ตามมาภายในสิ้นเดือนกันยายน · ติดตั้งในเครื่องของคุณเอง โค้ดและบันทึกไม่ออกจากเครื่อง

สิ่งที่ Saphan Studio มอบให้องค์กร

การกำกับดูแล → ทุกการตัดสินใจที่มีผลตามมาคือการกระทำของมนุษย์ที่อยู่ในบันทึก — ความเงียบไม่มีวันเป็นความยินยอม และการปฏิเสธคือข้อมูล

ความปลอดภัย → เอเจนต์ถูกปฏิบัติเป็นสิ่งที่ไม่ถูกไว้วางใจแม้เมื่อมันไม่ได้ประสงค์ร้าย: การรันถูกจำกัดขอบเขต egress ผ่านนโยบายที่มีชื่อเท่านั้น

ต้นทุน → ทุกการรันถูกเสนอราคาก่อนเริ่ม และลงบัญชีข้างการตัดสินใจที่อนุมัติมัน

เอนเตอร์ไพรส์ → control plane บันทึก และตัวตนอยู่ในโครงสร้างพื้นฐานของคุณ พร้อมการส่งออกข้อมูลตรวจสอบตั้งแต่วันแรก

มาตรการควบคุม → สิ่งที่มีอยู่แล้ววันนี้ ทีละมาตรการ — หนึ่งแถวต่อหนึ่งมาตรการ: มันทำอะไร ปฏิเสธอะไร และบันทึกเก็บอะไรไว้

การปฏิบัติตามข้อกำหนด → หลักฐานที่ ISMS ที่มีอยู่ของคุณต้องการ — ออกแบบให้แม็ปเข้ากับ ISO 27001, ISO/IEC 42001, SOC 2, NIST AI RMF และ EU AI Act

ฟีเจอร์ของผลิตภัณฑ์

Bench → สิ่งที่ฮาร์ดแวร์ของคุณเองให้บริการได้จริง — วัดบนเครื่องของคุณ ไม่ใช่สันนิษฐานเอาจากการ์ดโมเดล

MCP server → บันทึกตอบคำถามได้จากที่ที่คุณแชตอยู่แล้ว: สถานะฟลีต เกตที่รอคุณ ค่าใช้จ่ายตามแกนใดก็ได้ — อ่านอย่างเดียว อยู่หลัง OAuth มาตรฐาน โดยทุกการเข้าถึงถูกบันทึกล็อก

Discovery → ระบบเก่าแก่ที่ไม่มีใครเข้าใจอย่างถ่องแท้ ส่งคืนกลับมาเป็นความเข้าใจที่อ้างอิงหลักฐานและถูกลงนาม — รู้ ไม่ใช่เปลี่ยน พิสูจน์แล้วในงานว่าจ้างจริง ขณะนี้กำลังถูกย้ายมานั่งบน Saphan Protocol

รันไทม์ภายใต้ governance · ใช้งานได้วันนี้

เปลี่ยนเอเจนต์ โดยคงกฎชุดเดิม

Saphan กำกับงานรอบรันไทม์ทั้งหมด: การรับเข้า ตัวตนที่แยกจากกัน dispatch, confinement, ต้นทุน หลักฐาน review และการกระทำของมนุษย์ การเปลี่ยนโมเดลหรือ CLI ไม่สร้างระบบปฏิบัติการชุดที่สอง

01

เอเจนต์เขียนโค้ดจากผู้ให้บริการ

Claude Code, OpenAI Codex, Qwen Code และ Factory Droid ทำงานเป็น backend ที่มีชื่อและแยกตาม seat ภายใต้ stream, gate และ ledger ชุดเดียวกัน

02

Saphan Agent-Loop

ลูปเรียกเครื่องมือในตัวขับโมเดลภายในผ่าน endpoint ที่เข้ากันได้กับ OpenAI รวมถึง Ollama และ vLLM โดยไม่พึ่ง CLI ของผู้ให้บริการบนเส้นทางสำคัญ

03

เครื่องมือแบบกำหนดผลแน่นอน

compiler, test runner, linter และ formatter เป็นผู้กระทำที่บันทึกไว้โดยไม่มีต้นทุนโมเดล เป็นงานที่ถูกกำกับ ไม่ใช่การหนีออกไปยัง shell โดยไร้ร่องรอย

04

การทำงานผ่าน Docker และ Podman

เอเจนต์และ toolchain ทำงานในอิมเมจ OCI ที่ตรึงด้วย digest พร้อม root แบบอ่านอย่างเดียว ผู้ใช้ non-root, mount ที่จำกัด และเพดาน runtime ระบบวัดอิมเมจที่ระบุบนเครื่องที่ระบุก่อน dispatch และปฏิเสธก่อน spawn เมื่อ confinement ไม่เพียงพอ

การอนุมัติของมนุษย์ไปถึง Git forge

Pull request ไม่ได้ข้ามบันทึก

Saphan ผูกการตัดสินใจ merge ของมนุษย์กับ head ของ pull request ที่ระบุ ส่งอำนาจนั้นไปยัง forge และรับรู้การ merge ด้วยการสังเกต repository — ไม่ใช่ด้วยการเชื่อคำตอบ API ที่สำเร็จ

01

การอนุมัติที่ลงนามสำหรับ head ที่ระบุ

Gate บันทึกผู้กระทำ การตัดสินใจ และ SHA ของ PR head การ push ใหม่ทำให้อำนาจนั้นหมดอายุ แทนที่จะขยายไปยังโค้ดที่เปลี่ยนไปโดยเงียบๆ

02

การบังคับใช้ที่ฝั่ง forge

สถานะ saphan/gate ที่บังคับใช้และ branch protection หยุด merge ที่ไม่ผ่าน gate บน forge เอง Saphan ไม่ได้หวังพึ่งเพียงพฤติกรรมของ UI

03

การระบุที่มาใน Git object

Forge สร้าง merge commit พร้อม attribution trailers ของ Saphan บันทึกจะเปลี่ยนเป็น merged หลังจาก fetch และตรวจสอบ commit นั้นแล้วเท่านั้น

04

วัดบน GitHub และ Gitea แล้ว

สัญญา API และ negative controls ถูกทดสอบบน repository จริงของ GitHub และ Gitea 1.26.4 เส้นทางผลิตภัณฑ์ saphan merge --via pr แบบครบวงจรอยู่ระหว่าง implement และยังไม่แสดง adapter อื่นว่าได้ส่งมอบแล้ว

เริ่มคนเดียว และใช้ control plane เดิมเมื่อฝูงเติบโต

หนึ่งระบบ สามขนาดการทำงาน

Solo

นักพัฒนาหนึ่งคน เครื่องหนึ่งเครื่อง ฟรีตลอดไป

เอนจินและ web console ในเครื่อง พร้อม CLI และ workflow ใน editor โดยไม่มีเซิร์ฟเวอร์ส่วนกลาง ประตูเปิดสู่งานเอเจนต์ที่มีวินัย ไม่ใช่ trial ที่หมดอายุ

ความสามารถที่รวมอยู่
  • engine และ web console แบบโลคัล
  • CLI และ workflow ใน editor
  • ขอบเขตตัวตนในเครื่อง
  • dispatch ที่กำกับ gate และการกระทำที่ลงนาม
  • ledger ต้นทุนและผลลัพธ์พร้อมหลักฐาน
  • บันทึกและ projection ในเครื่อง
  • ไม่มีมิเตอร์จำนวนเอเจนต์หรือขนาดฟลีต
รับ preview →

Team

บันทึกการปฏิบัติงานเดียวสำหรับคนและเครื่อง

ตัวตนที่ Saphan จัดการแบบ SaaS และสัญญาณแจ้งเตือนมือถือที่ไม่มีเนื้อหา ส่วนฟลีต โค้ด และบันทึกการปฏิบัติงานอยู่บนโครงสร้างพื้นฐานของคุณ

ทุกอย่างใน Solo พร้อมเพิ่มเติม…
  • saphan-oauth ที่ Saphan ดำเนินการและวงจรชีวิตตัวตน
  • ฟลีต โค้ด หลักฐาน และบันทึกอยู่กับลูกค้า
  • บุคคล เครื่อง และ seat ที่แยกจากกัน
  • ช่องทีมและ Direct Messages ใน Slack — ส่งมอบแล้ว แบบเขียนออกเท่านั้น
  • สัญญาณ push มือถือที่ไม่มีเนื้อหาบันทึก
  • สัญญาการบังคับใช้ PR สำหรับ GitHub และ Gitea — ทดสอบบน forge จริงแล้ว; เส้นทางผลิตภัณฑ์อยู่ระหว่าง implement
  • image runner ที่ต่อยอดจาก base image ของ Saphan — อยู่ระหว่าง implement
  • PostgreSQL แบบ on-prem
  • Microsoft Teams — connector ถัดไป ยังไม่ส่งมอบ
ทำความเข้าใจ Team →

Enterprise

โครงสร้างพื้นฐานของคุณ อำนาจที่ลงนาม หลักฐานพร้อมตรวจสอบ

การควบคุมองค์กรแบบ self-hosted ตัวตนเครื่อง นโยบาย การกักบริเวณ และการส่งออกหลักฐานสำหรับงานภายใต้กฎระเบียบ

ทุกอย่างใน Team พร้อมเพิ่มเติม…
  • saphan-oauth ภายในหรือ IdP ใดๆ ของลูกค้าที่รับไว้
  • control plane, ฟลีต โค้ด หลักฐาน และบันทึกอยู่กับลูกค้า
  • อิมเมจ runner ใดๆ หลังการวัด confinement ของอิมเมจที่ระบุ — อยู่ระหว่าง implement
  • การรับเครื่อง อำนาจจำกัดขอบเขต และการเข้าถึงแบบ fail-closed
  • การส่งออก audit และการแม็ปหลักฐาน compliance
ตรวจมาตรการที่ส่งมอบแล้ว →

เอกสาร · เฉพาะสิ่งที่มีอยู่จริง

อ่านสิ่งที่ผลิตภัณฑ์ทำได้ในวันนี้

Saphan Docs เขียนจากโค้ดที่มีอยู่และพฤติกรรมของผลิตภัณฑ์ที่ตรวจสอบแล้ว ครอบคลุมการติดตั้ง การกำหนดค่า ความปลอดภัย ธรรมาภิบาล การตรวจสอบ และการปฏิบัติงาน ไม่มีแผนงาน ไม่มีคำสัญญา

เปิด Saphan Docs ↗
01 · ติดตั้งและกำหนดค่า02 · ปฏิบัติการฟลีต03 · กำกับและรักษาความปลอดภัย04 · ตรวจสอบบันทึก

มันคืออะไร

01

โต๊ะทำงาน

Saphan Studio คือที่ที่คุณรันฟลีตเอเจนต์ AI: บรีฟออกไป ผลตอบกลับพร้อมหลักฐานเข้ามา ตัดสินใจที่เกตได้จากอีดิเตอร์ของคุณ คุณอ่านผลลัพธ์ ไม่ใช่ทรานสคริปต์

02

หลักประกัน

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

03

บันทึก

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

สิ่งที่มีอยู่แล้ววันนี้ — ทีละมาตรการควบคุม

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

มาตรการควบคุมสิ่งที่มีอยู่สิ่งที่บันทึกเก็บไว้
บันทึกการกำกับดูแลที่ลงนาม ผู้กระทำ การมอบอำนาจ เครื่อง ที่นั่ง และสิทธิ์ทั้งหมดอยู่ในบันทึกแบบต่อท้ายอย่างเดียว (append-only) ที่ลงนามด้วย Ed25519 ทะเบียนที่มนุษย์อ่านได้ทุกฉบับเป็นเพียงภาพฉายของบันทึกนี้ — สร้างใหม่ได้ ไม่ใช่ต้นทาง ประวัติการกำกับดูแลทั้งหมด ตรวจสอบได้โดยบุคคลที่สามที่ถือเพียงกุญแจสาธารณะราก — โดยไม่ต้องเชื่อถือเครื่องที่สร้างบันทึกนั้น
ประตูตัดสินโดยมนุษย์ ไม่มีข้อยกเว้น ไม่มี auto-accept ไม่มี auto-merge ไม่มีการถือว่าหมดเวลาคือการยินยอม ที่ใดในผลิตภัณฑ์ การตัดสินที่ประตูไม่มีค่าเริ่มต้น และถูกปฏิเสธหากผิดลำดับ เครื่องยนต์ทำหน้าที่ส่งต่อเท่านั้น ไม่เคยตัดสินเอง หนึ่งแถวต่อหนึ่งการตัดสิน: ผู้ตัดสิน คำตัดสินจากชุดคำที่ปิด และเวลา “Merged” ไม่เคยถูกประกาศ — สังเกตได้จาก merge commit จริงเท่านั้น
การตัดสินที่ตรวจพบการแก้ไข การยอมรับแต่ละครั้งเป็นชุดข้อมูลที่ผูกกุญแจและตรวจสอบแล้ว และถูกตรวจซ้ำตอน merge แก้ช่องใดภายหลัง การตรวจสอบจะล้ม ชุดข้อมูลนั้น และผลการตรวจสอบตอน merge
ข้อเสนอ ≠ การตัดสิน คำปรึกษา — จาก AI หรือมนุษย์ — ถูกบันทึกเป็นความเห็น การตัดสินเป็นการกระทำของมนุษย์เอง และการตัดสินสวนทางกับข้อเสนอก็ถูกบันทึกไว้เช่นกัน แถวข้อเสนอและแถวการตัดสินแยกกันในทุกประตู — ไม่เพียงว่าตัดสินอะไร แต่ใครเสนออะไร
ตัวตนของเครื่องด้วยใบรับรอง ไม่มี endpoint สำหรับลงทะเบียน ไม่มี join token เครื่องถูกรับเข้าโดยการกระทำที่ชัดแจ้งของเจ้าของ ผูกกับใบรับรอง control plane เชื่อมต่อออกไปข้างนอกเท่านั้น และเครื่องรันไม่ถือ credential ใดของ control plane การรับเข้าในบันทึกที่ลงนาม และห่วงโซ่ใบรับรอง
อำนาจที่มอบหมายและมีขอบเขต การมอบอำนาจที่ลงนามโดยราก มีขอบเขต สายงาน และช่วงเวลาที่ใช้ได้ วันหมดอายุคือเพดาน ไม่ใช่ตัวจุดชนวน การปลดผู้กระทำมีผลทันที ไม่ว่าการมอบอำนาจใดจะยังไม่หมดอายุ การมอบอำนาจ พร้อมลายเซ็นครอบทุกช่อง — ใครให้อะไรแก่ใคร ถึงเมื่อไร
กฎประจำที่ให้สัตยาบัน เอกสารที่กำกับวิธีทำงานถูกลงนามโดยรากเข้าไปใน manifest ที่มีหมายเลขลำดับ เอกสารใดก็ตรวจสอบย้อนกลับถึงรากได้ เอเจนต์ทำงานภายใต้กฎที่พิสูจน์ได้ว่าได้รับแล้ว manifest และบันทึกของแต่ละการรันว่ากฎใดถูกฉีดเข้าไป — พร้อมแฮชของมัน
การกักบริเวณระดับ OS — ในเครื่อง นโยบายเขียนแบบปฏิเสธเป็นค่าเริ่มต้นจาก sandbox ของระบบปฏิบัติการเอง — Seatbelt บน macOS, Bubblewrap บน Linux — ประกอบขึ้นสำหรับแต่ละการรันก่อนที่เอเจนต์จะเริ่ม หากไม่มี sandbox การรันจะถูกปฏิเสธ ไม่ใช่ลดระดับความปลอดภัย บันทึกการรันระบุเครื่องมือที่กักบริเวณ และไดเรกทอรีที่ยังเขียนได้ — ข้อกล่าวอ้างที่ทีมของคุณทำซ้ำได้
การกักบริเวณระดับ OS — เครื่องระยะไกล การกักบริเวณที่บังคับโดยเคอร์เนล (Landlock) สำหรับการรันที่ส่งผ่าน SSH ความสามารถในการกักบริเวณของเครื่องถูกวัดก่อนที่งานจะถูกส่งไปที่นั่น เครื่องที่ยังไม่ถูกวัด หรือวัดแล้วว่าทำไม่ได้ จะปฏิเสธการรัน ความสามารถที่วัดได้บนแถวที่ลงนามของเครื่อง และบันทึกการรันที่ระบุว่าอะไรเป็นตัวบังคับ
การเชื่อมต่อออกคือรายการ การรันที่ประกาศนโยบาย egress จะเข้าถึงเครือข่ายได้ผ่านประตูที่นโยบายนั้นกำกับเท่านั้น: ปลายทางถูกอนุญาตก็ต่อเมื่อนโยบายอนุญาตทั้งโฮสต์และพอร์ต และค่าเริ่มต้นไม่อนุญาตอะไรเลย โฮสต์ที่ตัดเครือข่ายไม่ได้จะปฏิเสธการรัน แทนที่จะเริ่มแบบเปิด ในรุ่นนี้เป็นแบบเลือกเปิดต่อการส่งงาน — ยังไม่มีค่าเริ่มต้นทั้งฟลีต และเราบอกไว้ตรง ๆ digest ของนโยบายที่คอมไพล์แล้วบนแถวของการรัน — รายการใดกำกับการรันนี้ การตัดสินต่อการเชื่อมต่อยังไม่ถูกบันทึก นั่นคือข้อจำกัดของรุ่นนี้ที่ระบุไว้ ไม่ใช่ของการออกแบบ
ไม่มีช่องทางลัดระหว่างเอเจนต์ เอเจนต์ประสานงานกันผ่านพื้นผิวที่ถูกบันทึกเท่านั้น — คำสั่งงาน ไฟล์ช่องทางใน worktree ของสายงานเองที่ถูกนำเข้าบันทึก ประตูตัดสิน และกล่องจดหมายแบบเพิ่มอย่างเดียวสำหรับคำสั่งของเจ้าของ ไม่มีการส่งข้อความระหว่างเอเจนต์ในผลิตภัณฑ์ “ใครบอกอะไรกับใคร เมื่อไร” คือคำค้น ไม่ใช่การสอบถาม — ประวัติการประสานงานของสายงาน เล่นซ้ำได้จากบันทึก
การปฏิเสธคือข้อมูล ทุกการปฏิเสธ — จากเครื่องยนต์ การอนุญาต สคีมา หรือนโยบาย — เป็นแถวที่บันทึกไว้โดยไม่มีต้นทุน พร้อมประเภทที่มีชื่อ สาเหตุการปฏิเสธถูกบันทึก ไม่เคยส่งกลับผ่านสาย สมุดบัญชีการปฏิเสธ: มาตรการควบคุมที่ทำงานจริง ไม่ใช่แค่มีอยู่
การเฝ้าระวัง — เป้าหมาย Prometheus เดมอนที่ให้บริการเปิด GET /metrics ในรูปแบบข้อความมาตรฐานของ Prometheus: การรันแยกตามสถานะและแบ็กเอนด์ การปฏิเสธแยกตามประเภท การตัดสินที่ประตูแยกตามประตูและคำตัดสิน เวอร์ชันสคีมาของที่เก็บ ค่าของ label เป็นชื่อประเภทเท่านั้น — ไม่มีชื่อสายงาน พาธ หรือชื่อผู้กระทำ การปฏิเสธเป็นเมตริกชั้นหนึ่ง — ในสถาปัตยกรรมนี้ การปฏิเสธคือสัญญาณด้านความปลอดภัย ไม่ใช่เสียงรบกวน ดึงข้อมูลด้วย Prometheus ที่คุณใช้อยู่แล้ว ไม่ต้องติดตั้งอะไรเพิ่ม
ความลับไม่แพร่กระจาย ไม่มีระบบย่อยใดเก็บหรือส่งค่าความลับ — ใช้ชื่อตัวแปรและพาธเท่านั้น บังคับในระบบชนิดข้อมูล ไฟล์กุญแจถูกตรวจสิทธิ์การครอบครองก่อนอ่านเนื้อหาเสมอ การตั้งค่าโดยชื่อ ไม่มีค่าใดในบันทึก ล็อก หรือไฟล์ส่งออก
OAuth 2.1 บนพื้นผิวการจัดการ ป้องกันด้วย bearer โดย Team ยืนยันตัวตนผ่าน SaaS saphan-oauth ที่ Saphan ดำเนินการ ส่วน Enterprise รัน saphan-oauth ภายในหรือรับ IdP ใดๆ ของลูกค้าผ่านรายการ issuer ที่มนุษย์อนุมัติ มี scope class การแบ่งระดับแถวต่อผู้เช่า และ fail-closed เป็นค่าเริ่มต้น ล็อกการเข้าถึงระดับตรวจสอบบัญชีบนทุกช่องทาง — รหัสสถานะตรงไปตรงมา ไม่มีค่าหรือ query string ถูกบันทึก
การกำกับต้นทุน ใบเสนอราคาและเพดานแข็งต่อการรัน กำหนดก่อนส่งงาน ตรวจความจุก่อนเริ่ม ชั้นการเรียกเก็บเงินต่อที่นั่ง ต้นทุนจริงและส่วนต่างอยู่ข้างหลักฐาน ไม่ใช่บนใบแจ้งหนี้อีกใบ สมุดบัญชีต้นทุน ต่อสายงานและต่อประตู — “การเปลี่ยนแปลงนี้ราคาเท่าไร” ได้คำตอบบรรทัดเดียวเหมือน “ใครอนุมัติ”
การตรึงห่วงโซ่อุปทาน ไบนารีของเอเจนต์ถูกส่งพร้อม digest ที่คำนวณบนเครื่องผู้รับ และตัวตนถูกตรวจซ้ำ ณ ที่ที่มันทำงาน ต่อการรัน: digest ของไบนารี เวอร์ชัน แฮชของการตั้งค่า กฎประจำที่ถูกฉีดเข้าไปและแฮชของมัน
ที่เก็บบันทึกของคุณ ที่เก็บบันทึก PostgreSQL บนโครงสร้างพื้นฐานที่คุณควบคุม ตั้งค่าโดยชื่อ credential ผ่านชื่อตัวแปรเท่านั้น โค้ด หลักฐาน run และบันทึกการปฏิบัติงานไม่ผ่านโครงสร้างพื้นฐานของ Saphan Team ส่งตัวตนไปยัง OAuth ของ Saphan ส่วน Enterprise เก็บตัวตนไว้ภายใน ทั้งสองแบบใช้สัญญาณมือถือที่มีเพียง gate id แบบทึบและจำนวน badge ได้ ฐานข้อมูลของคุณ บวกไฟล์ธรรมดาใน git ของคุณ อ่านได้โดยไม่ต้องใช้เครื่องมือของเรา
พิสูจน์ด้วยการทดสอบ ไม่ใช่คำกล่าวอ้าง สถานการณ์แบบครบวงจรรันกับไบนารีจริง: วินัยที่ประตู การล็อกการส่งงาน การต้านทาน injection คำสั่งที่ส่งผิดทาง กระบวนการ OAuth การป้องกันด้วย bearer ความสอดคล้องของภาพฉาย ผลการทดสอบความสอดคล้อง ทำซ้ำได้บนการติดตั้งของคุณ

Fail-closed คือธรรมเนียมของบ้านนี้: ค่าตั้งค่าที่ไม่รู้จัก sandbox ที่หายไป ที่อยู่ bind ที่กำกวม — แต่ละอย่างถูกปฏิเสธพร้อมประเภทที่มีชื่อ แทนที่จะถอยไปสู่ท่าทีที่อ่อนแอกว่า ที่ใดที่มาตรการยังไม่บังคับใช้ เอกสารบอกไว้ตรง ๆ และแผนงานระบุชื่อมัน

แถวเหล่านี้สอดคล้องกับ ISO 27001, ISO/IEC 42001, SOC 2, NIST AI RMF และ EU AI Act อย่างไร →

Saphan Studio — โต๊ะทำงาน

การกำกับดูแลคือหลักประกัน ส่วนนี้คืองานประจำวัน

01

บรีฟออกไป

งานเริ่มต้นเป็นคำสั่งงาน (order): บรีฟที่ครบถ้วนในตัวเอง พร้อมขอบเขต ข้อจำกัด และมาตรฐานการพิสูจน์ เอนจินส่งมันไปยังเอเจนต์ของคุณ — ไม่มีบริบทใดหล่นหายในหน้าต่างแชต

02

ผลตอบกลับเข้ามา

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

03

ตัดสินใจในอีดิเตอร์ของคุณ

ภาพฉายของฟลีตอาศัยอยู่ใน VS Code: อะไรกำลังรัน อะไรรอคุณอยู่ หนึ่งคำสั่งต่อหนึ่งการตัดสินใจ เกตการ merge ได้โดยไม่ต้องออกจากไฟล์ที่คุณกำลังอ่านอยู่

04

สะพาน (the bridge)

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

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

+ บรีฟ — สิ่งที่เอเจนต์ได้รับจริง
# ORDER — payments-refactor · wave 1
From: master · To: one executor · Stream: payments-refactor
Worktree: worktrees/payments-refactor · Base: main @ 4f21c09
Protocol: saphan-protocol v1.0 · pinned in PROTOCOL_BASELINE.md

## Context — read first
The payments module calls three providers (stripe, adyen, in-house
ledger) directly from checkout code. Retries are ad hoc; a network
blip on 06-24 double-charged three orders (postmortem PM-12).
ADR-0007 (attached below) ratified one provider interface at STOP-1.
This stream implements it. Nothing here asks you to design — the
design decisions are made and recorded; your job is the build.

## Scope
IN:
a. PaymentProvider interface exactly per ADR-0007 §Decision — the
   Charge/Refund signatures are frozen there; do not redesign them.
b. Three adapters: stripe, adyen, ledger. Existing behavior is
   preserved; parity proven call-for-call against recorded fixtures
   in tests/fixtures/providers/.
c. Retries with idempotency keys (key = order_id + attempt window),
   stored in pending_payments — migration 0042, up AND down.
d. Wire pin W-2: the public /payments API is FROZEN. Golden tests in
   tests/golden/payments_test.go must pass untouched — if a golden
   blocks you, STOP and report; never edit a golden.

OUT (recorded — do not touch): checkout UI · refund flows (wave 2)
· provider timeout policy (carry-forward on ADR-0007).

## Proof standard
build green · full suite, counts as passed-of-total with skipped
named · migration 0042 proven up+down on a schema copy, row counts
pre/post · adapter parity: fixture diff empty · goldens untouched
(git diff --stat on tests/golden = empty) · diff summary per file

## Stops
STOP-1 already passed (ADR-0007). STOP-2: full return per template
before merge. Merge is human-only, from the gate.

## If blocked
Write the blocker under "Open questions" in the return, flag the
stream, stop. Guessing past ambiguity is a protocol violation,
not initiative.

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

+ ผลตอบกลับ — สิ่งที่กลับมา
# RETURN — payments-refactor · STOP-2
Executor: agent-7 · Commits: 6 (head a3f9e12) · Base: main @ 4f21c09

## Claims, with evidence
1. PaymentProvider extracted; 3 providers behind one interface.
   → diff: 14 files (+612 −208) · golden tests untouched, green
2. Retries are idempotent under duplicate delivery.
   → TestRetryIdempotency: 200 duplicate deliveries, 1 charge
3. Migration proven both ways on a copy of the production schema.
   → up 1.2s / down 0.9s · row counts identical pre and post

## Open questions for the gate
Provider timeout is 30s, inherited. Keep or tighten? Out of scope —
flagged, untouched.

## Not done
Refund flows: out of scope per order (recorded — wave 2).

ทุกข้อกล่าวอ้างเดินทางมาพร้อมหลักฐานพิสูจน์ของมัน คุณอ่านสิ่งนี้จบในไม่กี่นาที — ไม่ใช่ทรานสคริปต์ยาวสองชั่วโมง

+ ADR — ทำไมมันจึงเป็นแบบนี้ ตลอดไป
# ADR-0007 — one PaymentProvider interface; providers are adapters
Status: accepted · Date: 2026-06-30 · Actor: marcin · Gate: STOP-1

## Context
Three providers are called directly from checkout code. Each has its
own retry style and error mapping; the test surface triples; adding
or swapping a provider means surgery on callers. Incident 06-24:
a timeout retry double-charged three orders (postmortem PM-12).

## Decision
One interface, signatures frozen:
  Charge(ctx, Order, IdempotencyKey) → (Receipt, error)
  Refund(ctx, ReceiptRef, Amount)    → (Refund, error)
Providers become adapters behind it. Error taxonomy unified as
retryable / terminal / unknown — the mapping is owned by each
adapter and may not leak provider-specific errors upward.

## Consequences
+ one contract to test; parity provable against recorded fixtures
+ retries live in one place, above the adapters — idempotency
  enforced at a single seam, not three
− adapters gain a lint rule: no provider error types cross the seam
− migration 0042 required for idempotency-key storage

## Considered and passed
Per-provider services — triples the test surface, scatters retry
logic. Feature flags per provider — hides the seam from the record.

## Carry-forward
Timeout inherited at 30s. Decide at wave 2 — trigger: refund flows.

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

+ ข้อค้นพบ — วิธีที่ตัววิธีการเรียนรู้
# Finding 4.2 — a number without a definition is not evidence

Seen: a return claimed "tests: 124 passed" while 9 were skipped.
The count was true and the claim was false.
Rule: every number in a return carries its definition — passed of
total, skipped named and justified.
Applied: same cycle. All return templates updated; the gate now
asks for the definition when a bare number appears.

ความล้มเหลวกลายเป็นกฎในรอบเดียวกันกับที่มันถูกพบ โปรโตคอลคือกฎหมายจากคดีจริง ไม่ใช่แถลงการณ์

+ แซนด์บ็อกซ์ — เครื่องจักรทั้งระบบในหนึ่งจอ
# The sandbox — how the pieces talk

 you — the operator
  │ briefs out · gates · reads returns
  ▼
 editor / CLI (VS Code panel · saphan)
  │
  ▼
 saphan engine — self-hosted
  │ dispatch · fleet projection · refusals
  ▼
 worktrees — one isolated sandbox per stream
  ├─ agent-3   payments-refactor  running, wave 1
  ├─ agent-7   atrisk-push        stop-2 — awaiting you
  └─ agent-12  notification-svc   merged, observed
  │
  ▼
 the bridge — plain files in your git
  orders · returns · ADRs · findings · gate log
  │
  ▼
 main — merge is human-only

 The protocol is the language every arrow speaks.
 The record is what every arrow leaves behind.

เอเจนต์รันแบบแยกตัวใน worktree เอนจินพูดภาษาโปรโตคอลทั้งสองทิศทาง และทุกช่วงต่อทิ้งไฟล์ไว้ ไม่มีสิ่งที่มีความหมายใดเกิดขึ้นนอกบันทึก

+ อีดิเตอร์ — ฟลีตเดียวกัน ภายใน VS Code
SAPHAN STUDIO: FLEET
● atrisk-push [running]
● payments-refactor [stop-2]
● notification-svc [merged]

payments-refactor ● awaiting-human

GATE

stop-2 — evidence attached · merge is yours, the engine only observes it

saphan gate payments-refactor --gate stop2 --actor you

EVIDENCE

▸ diff — 14 files (+612 −208) · goldens untouched
▸ tests — 124 of 124 passed, 0 skipped
▸ migration 0042 — proven up + down

ภาพฉายของฟลีตในอีดิเตอร์ของคุณ: เลือกสตรีม อ่านหลักฐาน แล้วเกตมัน — โดยไม่ต้องออกจากไฟล์ที่คุณอยู่

จากเทอร์มินัล

$ saphan fleet show
[awaiting-human] payments-refactor · stop-2 — evidence attached
→ run: saphan gate payments-refactor --gate stop2 --actor you

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

+ การปฏิเสธ — ความพยายามอนุมัติโดยหลักฐานพิสูจน์ไม่ครบ
$ saphan gate payments-refactor --gate stop2 --actor marcin
[refused] evidence incomplete — claims without proof cannot pass
nothing advanced · the gate holds · nothing was merged

การปฏิเสธนี่แหละคือตัวผลิตภัณฑ์ เกตที่พูดว่าไม่ไม่ได้ก็เป็นเพียงตรายาง

+ บันทึก — สิ่งที่ผู้ตรวจสอบมองเห็น
$ saphan gate payments-refactor --gate stop2 --actor marcin
[recorded] stop-2 approved · actor: marcin · 2026-07-14 09:12 +07
evidence: build green · 124 tests passed · diff 6 files · bundle sha256:9f2c…

ใคร ด้วยหลักฐานอะไร อนุญาตมัน — ตอบได้ในบรรทัดเดียว ตลอดไป

+ ฟลีต — สามเอเจนต์ สามสถานะ
$ saphan fleet show
[running]        atrisk-push · wave B in progress
[awaiting-human] payments-refactor · stop-2 — evidence attached
[merged]         notification-service · observed on main

หลายเอเจนต์ หนึ่งภาพฉาย — และทุกสถานะบอกคุณได้ว่าถึงตาของใคร

เอนจินไม่มีวัน merge มันทำให้การตัดสินใจของคุณบันทึกได้ — และปฏิเสธได้

ทำไมต้องมีมนุษย์อยู่ในลูป

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

01

การแก้ทิศ — หันหนึ่งสตรีม ไม่ใช่หนึ่งสัปดาห์

ความต้องการเปลี่ยนกลางทาง เมื่อจับได้ที่เกต ความต้องการที่เปลี่ยนไปมีราคาเพียงหนึ่งสตรีมที่ต้องหันทิศ — ไม่ใช่ผลงานทั้งสัปดาห์ของทั้งฝูงลงถังขยะ เกตคือจุดที่การหันทิศราคาถูกเกิดขึ้น ก่อนที่ทิศทางที่ผิดจะทบต้นลุกลามไปทั่วฟลีต

02

ความเข้าใจ — อธิบายก่อนที่ฉันจะอนุมัติ

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

03

คำถามย้อนกลับ — ทำไมต้องทางนี้?

“ทำไมต้องทางนี้ ไม่ใช่ทางอื่น?” ถูกตอบด้วยเอกสาร — ADR ทางเลือกที่ถูกพิจารณาแล้วไม่ได้เลือก — ไม่ใช่ด้วยความจำของใครคนหนึ่งเกี่ยวกับการตัดสินใจเมื่อหลายสัปดาห์ก่อน เหตุผลอยู่ในบันทึกก่อนที่คำถามจะถูกถามเสียอีก

ทางออกฉุกเฉิน อย่างตรงไปตรงมา

$ saphan gate payments-refactor --gate stop2 --actor auto-approver
[recorded] stop-2 approved · actor: auto-approver · 2026-07-14 09:12 +07

อยากรันฝูงโดยไม่มีมนุษย์เลย? ใส่โมเดลลงใน --actor แล้วมันจะอนุมัติทุกอย่าง ตลอดไป ไม่มีอะไรพัง บันทึกเพียงแสดงไว้ต่อการตัดสินใจแต่ละครั้งว่าเครื่องเป็นผู้ลงนามทุกคำตอบรับ — และความต่างระหว่างการกำกับดูแลกับการประทับตรายางกลายเป็นข้อเท็จจริงที่คิวรีได้ แทนที่จะเป็นข้อถกเถียง เราไม่ห้ามการอนุมัติแบบออโตไพลอต เราทำให้มันถูกลงนาม

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

การจัดเส้นทาง — ระนาบการปฏิบัติงาน

บริษัทวิศวกรห้าสิบคนไม่มีงบโมเดลระดับ frontier สำหรับงานที่สคริปต์ทำได้ กฎการจัดเส้นทางเรียบง่าย: ผู้ปฏิบัติงานที่ถูกที่สุดที่ยังคงผ่านมาตรฐานการพิสูจน์ได้

01

คำสั่งมาก่อนโมเดล

บิลด์ iOS ชุดทดสอบ การแพ็กอาร์ติแฟกต์ — เหล่านี้คือคำสั่ง ไม่ใช่บทสนทนา ภายใต้โปรโตคอล พวกมันคือผู้ปฏิบัติงานเหมือนรายอื่น: ถูกส่งงานด้วยคำสั่งงาน คืนหลักฐานกลับมา ทิ้งบันทึกแบบเดียวกันไว้ ศูนย์โทเคนสำหรับงานที่ toolchain ทำได้ดีกว่า

02

โมเดลโลคัลสำหรับงานกลไกช่วงกลาง

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

03

โมเดล frontier ในที่ที่มันคู่ควร

Claude, Codex หรือรายใดก็ตามที่คุณทำสัญญา — ถูกสงวนไว้โดยนโยบายสำหรับงานที่คู่ควรกับมัน: การออกแบบ การดีบักยาก ๆ การรีวิว นโยบายคือไฟล์ที่คุณเขียนและกำหนดเวอร์ชันเอง ไม่ใช่ค่าปริยายที่ไม่มีใครเป็นคนเลือก

04

ต้นทุนลงจอดข้างหลักฐาน

บันทึกรู้ว่าผู้ปฏิบัติงานรายใดให้บริการแต่ละสตรีม — การระบุที่มาคือฟิลด์ในสัญญา ไม่ใช่การเดา ค่าใช้จ่ายควรอยู่ข้างหลักฐานพิสูจน์ รายสตรีม รายเกต: “การเปลี่ยนแปลงนี้มีต้นทุนเท่าไร” สมควรได้คำตอบบรรทัดเดียวเช่นเดียวกับ “ใครอนุมัติมัน”

05

ที่นั่ง CLI และมิเตอร์ API — ขอบเขตเดียวกัน

คุณจ่ายซ้ำสองทางอยู่แล้ว: วิศวกรขับเอเจนต์จากคอนโซล CLI บนสมาชิกภาพรายที่นั่ง ขณะที่ไปป์ไลน์เผาโทเคนแบบคิดมิเตอร์ผ่าน API — และเครดิตรั่วไหลไปในที่ที่ไม่มีใครระบุที่มา Saphan วางทั้งสองไว้หลังขอบเขตเดียวกัน: คำสั่งงานแบบเดียวกันเข้าไป หลักฐานแบบเดียวกันกลับมา บันทึกฉบับเดียวกัน — ไม่ว่าผู้ปฏิบัติงานจะเป็นเซสชัน CLI แบบโต้ตอบหรือการเรียก API แบบ headless ค่าใช้จ่ายเลิกเป็นปริศนาที่ถูกฉีกแยกอยู่บนใบแจ้งหนี้สองใบ

ระนาบการจัดเส้นทางรันอยู่ในสแต็กของเราเองแล้ววันนี้ — หนึ่งนโยบาย ตั้งแต่เซิร์ฟเวอร์โมเดลโลคัลจนถึง API ระดับ frontier โดยมีเอเจนต์ขับผ่าน CLI ทำงานภายใต้ Saphan อยู่ขณะนี้ เลน headless/API ถูกออกแบบไว้ในสัญญาเดียวกัน พื้นผิวด้านต้นทุนกำลังถูกทำให้เสร็จร่วมกับ design partner — ตะเข็บการระบุที่มานั่งอยู่ในสัญญาแล้ว

Bench — สิ่งที่ฮาร์ดแวร์ของคุณเองรับได้จริง

การจัดเส้นทางตัดสินว่างานคลาสไหนควรอยู่ที่ใด Bench คือวิธีที่คุณค้นพบว่าเครื่องของคุณเองรับอะไรได้ เพื่อให้การตัดสินใจนั้นตั้งอยู่บนการวัดจริงแทนข้อสันนิษฐาน ช่องว่างระหว่างสองสิ่งนี้ไม่เล็กเลย และไม่มีทางรู้ล่วงหน้าได้

$ saphan-verdict
[verdict] class-120b — 120.99 GiB addressable · hot + large fit co-resident
→ note: glm-4.5-air rejected — dominated by gpt-oss-120b on this class
[critical] addressable memory is 63.3 of 125.5 GiB installed — raise the ceiling

ขั้นตอนฟรีนี้ไม่ติดตั้งอะไรและไม่เรียกหาอะไร มันรายงานหน่วยความจำที่ GPU เข้าถึงได้ (addressable) แทนที่จะเป็น RAM ที่ติดตั้ง เพราะบนเครื่องอ้างอิง ค่าทั้งสองต่างกันถึงครึ่งเครื่อง — และทุกการตัดสินใจเรื่องความพอดีต้องเดินตามตัวเลขที่เล็กกว่า

สี่โมเดลถูกวัดบนโหนด 128 GB หนึ่งเครื่อง: GLM-4.5-Air เรือธงที่คุณคงจะเลือก กลับกลายเป็นช้ากว่า 2.1× ทั้งด้านการประมวลผลพรอมป์ตและการสร้างโทเคนเมื่อเทียบกับ gpt-oss-120b — แถมยังหนักกว่า 10 GiB การ์ดโมเดลทั้งสองใบไม่ได้บอกเช่นนั้น เพราะการ์ดโมเดลทั้งสองใบไม่ได้พูดถึงเครื่องของคุณ

อ่านบทสรุป Bench — ผลการวัด และราคาที่จ่ายไปเพื่อเรียนรู้มัน →

สิ่งนี้อยู่ตรงไหน

เฟรมเวิร์กเอเจนต์ — LangGraph, CrewAI, ฟลีตที่สร้างขึ้นเอง — ตัดสินว่าเอเจนต์ทำงานร่วมกันอย่างไร

ชุดเครื่องมือกำกับดูแล AI เฝ้าดูโมเดล ข้อมูล และนโยบายจากด้านบน

ระหว่างทั้งสอง — ตรงจุดที่ผลงานของเอเจนต์กลายเป็นการเปลี่ยนแปลงที่มนุษย์ต้องรับผิดชอบ — ไม่มีเจ้าตลาดครองอยู่ Saphan คือชั้นนั้น: อยู่เหนือเฟรมเวิร์ก ตั้งฉากกับชุดเครื่องมือ เปลี่ยนสแต็กเอเจนต์ได้ ระนาบแห่งอำนาจยังคงอยู่

อะแดปเตอร์ — “เหนือเฟรมเวิร์ก” ทำงานอย่างไร

สัญญาขอบเขตถูกทำให้เล็กโดยตั้งใจ: ผู้ปฏิบัติงานรับคำสั่งงานและคืนหลักฐานกลับมา สิ่งใดก็ตามที่ทำสองอย่างนี้ได้ก็ทำงานภายใต้ Saphan ได้

01

อะไรรันภายใต้มันอยู่วันนี้

เอเจนต์เขียนโค้ดที่ขับผ่าน CLI และคำสั่งเชิงกำหนด — นั่นคือวิธีที่ Saphan สร้างตัวมันเอง ทุกวัน ในโปรดักชัน ไม่ใช่เรื่องสมมุติ: ฟลีตที่ส่งมอบผลิตภัณฑ์ตัวนี้ทำงานอยู่หลังสัญญาฉบับนี้เป๊ะ ๆ

02

สัญญาเรียกร้องอะไรจากผู้ปฏิบัติงาน

รับคำสั่งงานที่ครบถ้วนในตัวเอง ทำงานใน worktree ที่แยกตัว คืนข้อกล่าวอ้างพร้อมหลักฐานพิสูจน์ นั่นคืออินเทอร์เฟซทั้งหมดแล้ว — ไม่มี SDK ให้ฝัง ไม่ต้องรื้อเขียนเฟรมเวิร์กใหม่: อะแดปเตอร์ทำหน้าที่แปลตรงขอบเขต และสแต็กของคุณยังคงเป็นสแต็กของคุณ

03

โรดแมปอะแดปเตอร์ อย่างตรงไปตรงมา

LangGraph, CrewAI, Microsoft Agent Framework, A2A — พื้นผิวอะแดปเตอร์ถูกกำหนดสเปกไว้แล้ว ตัวอะแดปเตอร์แต่ละตัวถูกสร้างร่วมกับ design partner ตามลำดับที่พาร์ตเนอร์จำเป็นต้องใช้จริง เราขอส่งมอบอะแดปเตอร์หนึ่งตัวที่พาร์ตเนอร์ได้ใช้รันจริง ดีกว่าสี่โลโก้บนสไลด์

04

สิ่งนี้ซื้ออะไรให้คุณ

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

Saphan Protocol

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

เครื่องจักรปฏิบัติตามมัน ผู้ตรวจสอบและวิศวกรก็เพียงแค่อ่านมันได้ Protocol v1.0 เผยแพร่พร้อมกับรีลีส

อ่านบทสรุปโปรโตคอล →

ทำไมจึงชื่อ Saphan

Saphan มาจากคำไทยว่า สะพาน ผมสร้างสิ่งนี้ที่หัวหิน ประเทศไทย และตราสัญลักษณ์บนหน้านี้คือสะพานพระราม 8 ในกรุงเทพฯ: เสาสูงต้นเดียวบนฝั่งหนึ่ง แบกพื้นสะพานทั้งผืนไว้ด้วยสายเคเบิลที่คุณนับจำนวนได้ ผมชอบความซื่อตรงแบบนั้น ไม่มีสิ่งใดซ่อนอยู่ในโครงสร้าง — ทุกเส้นแรงมองเห็นได้ และคุณไล่ดูได้อย่างแม่นยำว่าอะไรค้ำจุนอะไร นั่นคือตัวผลิตภัณฑ์ทั้งหมด วาดออกมาเป็นเหล็ก: งานข้ามฟากไป ไม่มีสิ่งใดร่วงหล่นอย่างเงียบเชียบ และคุณมองเห็นได้เสมอว่าอะไรกำลังรับน้ำหนักอยู่

ยังมีเหตุผลที่เก่าแก่กว่านั้นอีกข้อ ทุกระบบที่ผมเคยดูแลมาตลอดหลายสิบปีของงานโครงสร้างพื้นฐานล้วนล้มเหลวที่จุดเดียวกันในท้ายที่สุด — ไม่ใช่ในโค้ด แต่ตรงจุดข้าม: ช่วงเวลาที่งานเคลื่อนจากฝั่งหนึ่งไปอีกฝั่งหนึ่ง แล้วภายหลังไม่มีใครบอกได้ว่าใครปล่อยมันผ่านไป หรือเพราะอะไร เอเจนต์ไม่ได้สร้างปัญหานั้นขึ้นมา พวกมันคูณทวีมันจนเกินกว่าที่ความจำมนุษย์จะรับไหว เครื่องมือนี้จึงถูกตั้งชื่อตามสิ่งที่ขาดหายไปมาโดยตลอด ไม่ใช่กำแพง ไม่ใช่ประตูเพื่อตัวประตูเอง — แต่คือสะพานที่จดจำทุกการข้าม

สถานะ

โปรโตคอลและเอนจินรันอยู่ในโปรดักชันบนโปรเจกต์ของเราเอง — ระบบนี้สร้างและกำกับดูแลตัวมันเอง

การเปิดตัวสาธารณะจัดเป็นลำดับขั้น: protocol v1.0 เอนจิน และชุดตรวจสอบ (audit pack) ส่งมอบพร้อมกัน

เรากำลังคัดเลือก design partner 2–3 ราย (ทีมวิศวกร 50–500 คนที่มีภาระผูกพันด้านการปฏิบัติตามข้อกำหนดจริง)

กลไกเบื้องหลังบันทึกเป็นหัวข้อของคำขอรับสิทธิบัตรในสหรัฐอเมริกา — patent pending

พาร์ตเนอร์

โปแลนด์ — IP Partner, วอร์ซอ IP Partner เป็นตัวแทนของ Saphan ในโปแลนด์: การพูดคุยครั้งแรกเป็นภาษาโปแลนด์ การติดตั้งบนโครงสร้างพื้นฐานของคุณเอง และทีมท้องถิ่นสำหรับองค์กรที่นำเอเจนต์ AI เข้าสู่งานวิศวกรรมที่อยู่ภายใต้กฎระเบียบ ติดต่อ Łukasz Bederski, MBA, Founder — ippartner.pl · LinkedIn

สนใจเป็นตัวแทน Saphan ในตลาดของคุณ? [email protected]

Design partner — ข้อตกลง พูดกันตรง ๆ

01

ปัญหาที่คุณมีอยู่แล้ว

ผลงานของเอเจนต์กำลังวิ่งแซงการรีวิวของคุณ Pull request กองพะเนิน การรีวิวไถลกลายเป็นละครฉากหนึ่ง — และตอนนี้ลูกค้าองค์กรและผู้ตรวจสอบของคุณเริ่มถามว่าใครกำกับดูแลสิ่งที่เอเจนต์เปลี่ยนแปลง “มีซีเนียร์ดูให้แล้ว” ไม่ตอบทั้งสองปัญหา

02

วันที่ 30: สิ่งที่คุณถืออยู่ในมือ

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

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

ข้อกล่าวอ้างที่ทีมขายของคุณพูดกับลูกค้าได้ พร้อมใบเสร็จ: “ฟลีต AI ของเรารันภายใต้ชั้นแห่งอำนาจที่ตรวจสอบได้” คุณขายความไว้วางใจ นี่คือความไว้วางใจที่มีบันทึกกำกับ

03

ราคาที่ต้องจ่าย ในกรณีเลวร้ายที่สุด

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

04

ถ้าพรุ่งนี้เราหายตัวไป

บันทึกคือไฟล์ธรรมดาใน git ของคุณ — อ่านได้โดยไม่ต้องพึ่งเครื่องมือของเรา ตลอดไป โปรโตคอลเผยแพร่อย่างเปิดที่ v1.0: วินัยที่ทีมของคุณได้เรียนรู้ไม่ตายไปพร้อมผู้ขายรายใด ระบบที่คุณโฮสต์เองก็ยังรันต่อไป นี่คือขั้วตรงข้ามของ lock-in โดยโครงสร้าง

05

เราได้อะไร — และนั่นซื้ออะไรให้คุณ

กรณีขอบของคุณกลายเป็นกฎของโปรโตคอล (ผ่านการทำให้เป็นนามธรรม ไม่มีวันเป็นรายละเอียดภายในของคุณ) แรงเสียดทานของคุณกำหนดโรดแมป และระดับ Team — เกตทั่วทั้งองค์กร ภาพฉายที่แชร์ร่วมกัน มุมมองการตรวจสอบ — จะก่อรูปตามองค์กรของคุณ เพราะคุณอยู่ในห้องนั้นด้วย เงื่อนไขผู้ร่วมบุกเบิกเป็นลายลักษณ์อักษร ก่อนที่จะมีราคาสาธารณะใด ๆ ปรากฏ

สอบถามเรื่องการเป็น design partner

ติดต่อเรา — [email protected]