← กลับสู่บล็อก

thClaws Enterprise Edition คืออะไร

ช่วงสองสามสัปดาห์ที่ผ่านมา มี email ลักษณะเดียวกันเข้ามาในกล่องจดหมายเรื่อย ๆ

“เราชอบ thClaws มาก แต่ขอให้ทุก LLM call route ผ่าน gateway ภายในของเราได้มั้ย?”

“ขอ SSO ผ่าน Okta ก่อนค่อยอนุมัติให้ทีมใช้นะ”

“ขอ lock plugin ที่ user ติดตั้งได้ — security policy เราเข้มมาก”

“อยากได้โลโก้กับชื่อ product ของบริษัทเราในตัว binary”

บริษัทคนละแห่ง อุตสาหกรรมต่างกัน — bank, healthcare, government contractor, consulting firm — แต่ใต้คำถามทั้งหมด มี ความต้องการสี่ข้อเดียวกัน ที่ขึ้นมาเสมอ

  1. Managed gateway — ทุก LLM request ต้อง route ผ่าน LiteLLM / Portkey / proxy ภายในของเขา เพื่อ cost control, audit log, rate limit แยก user/department
  2. Single sign-on — identity จาก IdP ของบริษัท (Okta, Azure AD, Google Workspace, Auth0) เพื่อให้ audit log แสดง alice@acme.com ไม่ใช่ device-token-X
  3. Lock-down extensions — อนุญาตเฉพาะ plugin / skill / MCP server จาก source ที่ approve เท่านั้น ที่เหลือ reject
  4. Custom branding — ชื่อ logo support contact ของบริษัท ใส่ลงใน binary

เราเลือกได้ระหว่าง: ทำเป็น closed-source fork แยก, หรือใส่ feature ไว้หลัง license check ที่ phone home กลับมาเรา. เราเลือกไม่ทำทั้งสองอย่าง — thClaws Enterprise Edition ปล่อยใน v0.6.0 สัปดาห์นี้ และนี่คือรูปแบบที่เป็น


Architecture: binary เดิม + ไฟล์เพิ่มหนึ่งตัว

thClaws Enterprise Edition คือ binary ตัวเดียวกัน กับ open-source release ไม่มี codebase แยก ไม่มี “EE feature” ซ่อนหลัง paywall code เป็น MIT/Apache เปิดบน GitHub ฟรี

สิ่งที่เปลี่ยนจาก “open-core” เป็น “enterprise client” คือ artifact เดียว — signed organization policy file

┌─────────────────────────────────────────────────────────┐
│         thClaws binary (open source, MIT/Apache)        │
│                                                         │
│              มี policy file ไหม?                         │
│              /  ไม่      มี   \                           │
│             /                \                          │
│        UX เดิมทุกอย่าง         Org rules ทำงาน             │
│        (open-core)          (branding, allow-list,      │
│                             gateway, SSO)               │
└─────────────────────────────────────────────────────────┘

Policy file เป็น JSON sign ด้วย Ed25519 private key ของ org กระจายให้เครื่อง user ผ่านช่องทาง IT ปกติ (MDM, Intune, JAMF, configmap, login script) ตัว binary verify signature กับ public key ที่ embed ไว้ตอน build ถ้า policy ไม่ valid, expired, หรือ sign ด้วย key ผิด → binary ปฏิเสธ start เลย ไม่มี silent fallback ไม่มี “เอ๊ะ งั้น run แบบ open-core ไปก่อน” — fail closed by design

ถ้าไม่มี policy file ก็จบ — thClaws ทำงานเหมือน open-source release ปกติ overhead 0% behavior change 0% สำคัญมาก เพราะ binary ตัวเดียวกันรับทั้ง dev ที่รัน Ollama ส่วนตัว และ Fortune 500 ที่ deploy ผ่าน MDM พร้อม policy enforcement เข้มงวด


สี่ controls ทำงานยังไง

เมื่อ verified policy load สำเร็จ sub-policy สี่ตัวจะ activate แต่ละตัวอิสระจากกัน — org เลือกเปิด/ปิดทีละข้อก็ได้

Branding

ชื่อ product / logo / support email / welcome banner เปลี่ยนจาก default “thClaws” ไปเป็นค่าที่ org กำหนด แม้แต่ system prompt ของโมเดลก็ update ด้วย — เวลา user ถาม agent ว่า “you คือใคร?” agent จะแนะนำตัวด้วยชื่อ product ของ org ไม่ใช่ของเรา

สำหรับ enterprise ที่ rollout thClaws ภายในในชื่อ “ACME Agent” หรือ “Bank Internal AI” หรืออะไรก็แล้วแต่ — binary คือ product ของเขาจริง ๆ. thClaws origin อยู่ใน license file กับ contributor list เท่านั้น ไม่อยู่ใน user-facing surface

Extension allow-list

Plugin / skill / MCP server ติดตั้งได้เฉพาะจาก source ที่ org approve. Pattern รองรับ github.com/acmecorp/* (เฉพาะ repo ของ org นี้) หรือ *.acme.example (เฉพาะ host ภายใน). Skill ที่ ship script executable มาด้วย → reject ออกตรง ๆ. ที่เหลือ — repo random บน GitHub, public registry, ecosystem open-source ทั่วไป — block หมด

Use case คือ data leak prevention. องค์กรที่จัดการ regulated data (PII, PHI, financial records, classified material) ปล่อยให้ employee pull skill มั่ว ๆ จาก internet ไม่ได้ — script malicious อาจ exfiltrate data ออกไป. Allow-list ย้าย “อะไร run บนเครื่องนี้ได้” จาก judgment call ของ employee แต่ละคน → policy ที่ admin manage รวมศูนย์

Gateway enforcement

ทุก LLM call route ผ่าน gateway ภายในของ org. API key ของ user ที่ใส่ไว้ (Anthropic key ส่วนตัว, OpenAI key ส่วนตัว) ถูก ignore. Gateway จัดการ upstream auth, apply cost control, capture audit log

จากมุมโมเดล: ไม่มีอะไรเปลี่ยน — prompt เดิม, response เดิม. จากมุม IT: ทุก byte ของ LLM traffic auditable ได้แล้ว. จากมุมการเงิน: cost มองเห็นแยกตาม user / department / project ใน dashboard เดียว แทนที่จะกระจายใน invoice ของ vendor หลายเจ้า

Single sign-on

User เปิด thClaws → ถูก prompt ให้ sign in กับ IdP ของ org. Browser เปิดขึ้น → user authenticate ตามที่ IT บังคับ (password + MFA, hardware key, SSO chain — แล้วแต่ Okta หรือ Azure AD config) → token กลับมา. Token นั้น tag ทุก gateway request

Audit log ไม่แสดง device-token-X used claude-sonnet-4-6 แล้ว แต่กลายเป็น alice@acme.com used claude-sonnet-4-6, 1247 tokens in, 856 tokens out, 14:23 UTC

วันที่ alice ลาออก → IT disable account ใน IdP → ครั้งถัดไปที่ token พยายาม refresh → fail → alice call LLM ไม่ได้อีก. ไม่ต้อง re-deploy อะไรในฝั่ง thClaws. IdP เป็น source of truth ตามที่ควรเป็น

SSO mechanism ทำงานกับ OIDC provider มาตรฐานทุกตัว — Okta, Azure AD / Entra ID, Auth0, Keycloak, Google Workspace, AWS Cognito, Ping Identity. One implementation, all IdPs. สลับจาก Okta ไป Azure → แก้ policy บรรทัดเดียว


ทำไมเราเลือก architecture แบบนี้

หลักการสามข้อ

Open core ไม่ใช่ closed fork

Cloud-first AI products — Cursor, Claude Code, GitHub Copilot — มี enterprise tier แบบปิดทั้งหมด EE feature ของเขา lock หลัง license check, codebase แยก, sales motion แยก เป็น pattern ที่ใช้กันทั่วไป — และเราเชื่อว่ามัน ผิด pattern สำหรับ tool ที่ value หลักคือการเป็น “infrastructure ที่เชื่อใจได้”

เราเลือก GitLab / Mattermost / Sentry pattern แทน — open-core, commercial wrapper. Feature ตัวจริงอยู่ใน public codebase ใครก็อ่านได้ audit ได้ contribute ได้. ที่ commercial คือ packaging — signed policy bundle, customer-specific branded binary, support contract, deployment assistance

ทีม security ต้อง verify ว่า thClaws ทำตามที่อ้างไว้จริง? อ่าน source ได้ทุกบรรทัด. Customer อยาก fork? ได้. Competitor อยากเอา policy mechanism ไปใช้กับ product เขาเอง? ได้. ทั้งหมดนี้ไม่ทำร้ายเรา — เราขาย ความสัมพันธ์ ไม่ใช่ขาย bytes

Policy file คือ trust boundary

Identity / authority / “ใครทำอะไรได้บ้าง” — ทั้งหมดอยู่ นอก binary. เราไม่ phone home. เราไม่ validate กับ license server. เราไม่ gate feature ตอน runtime จาก check ปริศนาอะไร. Policy file ของ org คือ policy

สำคัญสามข้อ:

  • Binary ไม่ต้อง phone home. องค์กร air-gapped (defense, finance, classified environment) ใช้ได้เหมือนกับ environment ที่ต่อ network
  • IT team ของ org control ทุกอย่าง. Sign policy ตามตารางตัวเอง, distribute ผ่านช่องทางเดิม, revoke + rotate ผ่านช่องทางเดิม. เราไม่อยู่ใน critical path ของเขา
  • เราไม่เห็น customer data เลย ไม่มี “EE telemetry pipeline” เพราะไม่มีอะไรให้ telemeter — binary ไม่คุยกับเรา จบ

Operator UX เป็นส่วนหนึ่งของ security

Design ที่ secure perfectly แต่ต้องให้ admin distribute env var ให้ employee 100 คน → ใน practice จะถูก bypass. Typo สะสม. Credential paste ผิด .env. ไฟล์โดน commit เข้า public GitHub โดยไม่ตั้งใจ. First compromise มาจาก friction

เราออกแบบ EE ให้ deployment ทั่วไปคือ ไฟล์ signed ตัวเดียว. IT sign ครั้งเดียวบนเครื่อง secure → MDM push file ไปเครื่อง user → จบ. Employee ไม่ต้อง manage อะไร, ไม่ต้องพิมพ์อะไร, ไม่มีอะไรให้รั่ว. Friction น้อย → bypass น้อย → security มากขึ้น


ที่ยังไม่มีใน v0.6.0

ขอตรงไปตรงมาเรื่อง scope:

  • Tool-call audit — agent อ่าน/เขียนไฟล์อะไร run shell command อะไร — ผ่าน OS ของ user เอง ไม่ผ่าน gateway. Gate ส่วนนี้ต้องใช้ network firewall หรือ thClaws-side audit hook ในอนาคต. v0.6.0 ยังไม่มี
  • Live tenant smoke test — เรา validate end-to-end กับ Google Workspace แล้ว. Okta และ Azure AD ผ่าน unit test แต่ยังไม่ได้ลองกับ tenant จริงของลูกค้า. Customer แรก ๆ จะเจอ quirk เฉพาะ tenant — เราจะแก้ใน v0.6.x point release
  • Frontend branding — string literal “thClaws” บางจุดใน React UI ยังไม่ route ผ่าน branding module. Rust-side (banner, window title, system prompt) active เต็มแล้ว; GUI strings เป็น follow-up ที่วางไว้

แต่ละข้อพร้อมกลายเป็น v0.6.x release ทันทีที่ลูกค้าขอ. เรา ship same-day มาแล้วในเรื่องคล้าย ๆ — issue #29 (Windows bash crash → v0.4.1) และ issue #30 (context-window override → v0.4.2)


อยากรู้เพิ่ม

ถ้าเป็น IT admin ที่กำลัง evaluate thClaws ให้องค์กร — ทุก artifact ที่ต้องใช้อยู่ใน public repo ไม่ต้อง call ก่อน ไม่ต้อง NDA ไม่มี “ดู demo ก่อนค่อยให้ download”

Download binary, generate keypair ของ org, sign policy, ลอง deploy ดู. มีคำถามเรา standby ตลอด

EE ตัวนี้เราสร้างให้องค์กรที่ขอเรา. ถ้าเป็นคุณ — ประตูเปิดอยู่

🦞