ภาพรวมสถาปัตยกรรม (Enterprise)

เมื่อต้องใช้ knowledge base ร่วมกัน ข้าม session และข้ามทีม ระดับองค์กร บน on-prem (เชื่อมต่อภายใน ใช้ได้แม้ air-gap) แนวคิดหลักมีประโยคเดียว:

Git คือต้นทางความจริง · MCP server ภายในคือ access layer กลาง

ทุก session และทุก agent — ไม่ว่า framework หรือ model ไหน — ต่อ MCP endpoint ภายในตัวเดียวกัน ประวัติ git คือ "ความจำข้าม session" โดยธรรมชาติ · อ่านเร็วทันที · เขียนผ่าน gate (PR หรือ lease)

แผนภาพ

flowchart TB
  subgraph net["เครือข่ายภายใน (on-prem / air-gap)"]
    MCP["OKF MCP server
search · get · propose / commit"] GIT["Git server (Gitea/GitLab)
= OKF repo · ต้นทางความจริง"] IDX["Search index
BM25 (+ semantic)"] CI["CI runner
okf-validate + viz"] MCP -->|"pull / webhook"| GIT MCP --> IDX GIT -->|"PR/MR triggers"| CI end A1["Agent team A"] -->|"MCP: HTTP/SSE + token/mTLS"| MCP A2["Agent team B"] --> MCP CR["CI / cron"] --> MCP

องค์ประกอบ

#ส่วนตัวเลือก self-hostบทบาท
1Git serverGitea / GitLab CEต้นทางความจริง versioned (repo ต่อทีม หรือ monorepo + CODEOWNERS)
2OKF MCP serverserver/okf_mcp_server.pyaccess layer ที่ทุก agent ต่อ — read/search/propose; stdio + HTTP/SSE
3Search indextools/okf-index.py (+ embed)ค้นเร็วเมื่อ wiki โตเกิน ~150 หน้า
4CI gateGitea Actions / GitLab CIบล็อก merge ที่ไม่ conformant + regen viz
5Reverse proxyCaddy / Traefik / nginxTLS + auth (token / OIDC / mTLS) หน้า MCP

Read path (กรณีปกติ — เร็ว ไม่มี lock)

  1. agent เรียก okf_search("WAU นิยามยังไง") → ได้ Concept ID จัดอันดับ
  2. okf_get_concept("metrics/weekly-active-users") → frontmatter + body โหลดเข้า context
  3. okf_read_index() เมื่อต้องการสำรวจแบบ progressive disclosure

อ่านพร้อมกันได้ไม่จำกัด ไม่มี contention

Write path

มี 2 โมเดลให้เลือก (บทถัดไป):

  • PR-gated (ค่าเริ่มต้น): เขียนผ่าน branch + PR → CI ตรวจ → คน/curator merge — ปลอดภัย มี audit/review
  • Lease/lock: สำหรับทีมที่เขียนหนัก — lease ต่อ concept กันชนกัน เขียนตรงเข้า shared branch

ความหมายของ "ข้าม session / ข้ามทีม"

  • ข้าม session: ไม่มี state ต่อ session — session ใหม่ git pull ได้ทุกอย่างที่ session ก่อนเขียน wiki ทบต้น
  • ข้ามทีม: monorepo + CODEOWNERS ต่อ subtree หรือ federated bundles (repo ต่อโดเมน, MCP server mount หลาย bundle และ namespace ด้วยชื่อ bundle เช่น sales:tables/orders)

ต่อไป: ลงมือ deploy → ติดตั้งแบบ self-host