# ๐Ÿง  AI Hub ๆ™บ่ƒฝๅนณๅฐ โ€” ๆ€ปไฝ“ๆžถๆž„่ฎพ่ฎกไธŽๅฎžๆ–ฝๆ–นๆกˆ > **ๆ–‡ๆกฃ็‰ˆๆœฌ**๏ผšv1.0 > **็›ฎๆ ‡่ฏป่€…**๏ผšๆžถๆž„ๅธˆ / ๅผ€ๅ‘ๅทฅ็จ‹ๅธˆ / ๆŠ€ๆœฏๅ†ณ็ญ–่€… > **ๅผ€ๅ‘ๅทฅๅ…ท**๏ผšTrea / WorkBuddy / Qoder๏ผˆAI ่พ…ๅŠฉ็ผ–็ ๏ผ‰ > **้€‚็”จๅฏน่ฑก**๏ผš้žๆŠ€ๆœฏ่ƒŒๆ™ฏๅˆ›ๅง‹ไบบ / ไบงๅ“็ป็† --- ## ไธ€ใ€้กน็›ฎๆ„ฟๆ™ฏไธŽๆ ธๅฟƒๅฎšไฝ ### 1.1 ไธ€ๅฅ่ฏๅฎšไน‰ > **AI Hub ๆ˜ฏไธ€ไธชใ€ŒAI ่ƒฝๅŠ›ๆ“ไฝœ็ณป็ปŸใ€**โ€”โ€”ๅฎƒๆ—ขๆ˜ฏ็”จๆˆท็š„ๆ™บ่ƒฝๅŠฉๆ‰‹ๅบ•ๅบง๏ผŒไนŸๆ˜ฏๅผ€ๅ‘่€…็š„ๆŠ€่ƒฝๅˆ†ๅ‘ๅธ‚ๅœบ๏ผŒๆ›ดๆ˜ฏ AI ๅบ”็”จ็š„ไธ€็ซ™ๅผๆ‰˜็ฎกไธŽ่ฎก่ดนๅนณๅฐใ€‚ ### 1.2 ไธ‰ๅคงๆ”ฏๆŸฑ็›ฎๆ ‡ | ๆ”ฏๆŸฑ | ๆ ธๅฟƒๅ‘ฝ้ข˜ | ๅ…ณ้”ฎ่ƒฝๅŠ› | |------|---------|---------| | **๐Ÿง  ๆ™บ่ƒฝๅผ•ๆ“Ž** | ่ถŠ็”จ่ถŠๆ‡‚ไฝ ๏ผŒ่ถŠ็”จ่ถŠๅฟซ | ้•ฟๆ–‡ๆœฌ่ฎฐๅฟ†ใ€่ฏญไน‰ๆฃ€็ดขใ€็Ÿฅ่ฏ†่‡ช่ฟ›ๅŒ–ใ€ไธชๆ€งๅŒ– Agent | | **๐Ÿช ่ƒฝๅŠ›้›†ๅธ‚๏ผˆHub๏ผ‰** | ๆŠ€่ƒฝๅฏๅˆ›ไฝœใ€ๅฏไบคๆ˜“ใ€ๅฏๅค็”จ | Skills/MCP/Agent/App ๅ‘ๅธƒใ€ๅฎกๆ ธใ€็‰ˆๆœฌใ€่ฎก่ดน | | **๐Ÿ”Œ ๅบ”็”จๅทฅๅŽ‚** | ไปปไฝ• AI ้กน็›ฎๅฏไธ€้”ฎๆŽฅๅ…ฅๅนณๅฐๅบ•ๅบง | ็ปŸไธ€่ฎค่ฏใ€็ปŸไธ€่ฎก่ดนใ€็ปŸไธ€ๆจกๅž‹ๅบ“ใ€SSOใ€Token ่ฎก้‡ | ### 1.3 ่ฎพ่ฎกๅ“ฒๅญฆ ``` โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ” โ”‚ "Lego ๅผ" ๅนณๅฐ่ฎพ่ฎก โ”‚ โ”‚ โ”‚ โ”‚ ๆ‰€ๆœ‰่ƒฝๅŠ› = ๆ ‡ๅ‡†ๅŒ–็งฏๆœจ๏ผˆSkill / MCP / Agent / App๏ผ‰ โ”‚ โ”‚ ๅนณๅฐ = ็งฏๆœจ็š„่ฟžๆŽฅๅ™จ + ไพ›็”ต็ณป็ปŸ + ๅ•†ๅบ— โ”‚ โ”‚ ็”จๆˆท = ๆญ็งฏๆœจ็š„ไบบ๏ผˆๆ— ไปฃ็  / ไฝŽไปฃ็ ไผ˜ๅ…ˆ๏ผ‰ โ”‚ โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜ ``` --- ## ไบŒใ€ๆ•ดไฝ“็ณป็ปŸๆžถๆž„๏ผˆHigh-Level Architecture๏ผ‰ ### 2.1 ๆžถๆž„ๅ…จๆ™ฏๅ›พ ``` โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ” โ”‚ โ”‚ โ”‚ โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ” โ”‚ โ”‚ โ”‚ ็”จๆˆท็ซฏ๏ผˆWeb/็งปๅŠจ็ซฏ๏ผ‰ โ”‚ โ”‚ โ”‚ โ”‚ Next.js 18 + TS โ”‚ โ”‚ โ”‚ โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜ โ”‚ โ”‚ โ”‚ HTTPS โ”‚ โ”‚ โ–ผ โ”‚ โ”‚ โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ” โ”‚ โ”‚ โ”‚ API Gateway๏ผˆKong/Envoy๏ผ‰ โ”‚ โ—„โ”€โ”€ ้™ๆต/้‰ดๆƒ/่ทฏ็”ฑ โ”‚ โ”‚ โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜ โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ” โ”‚ โ”‚ โ–ผ โ–ผ โ–ผ โ–ผ โ”‚ โ”‚ โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ” โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ” โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ” โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ” โ”‚ โ”‚ โ”‚ ่ฎค่ฏไธŽ็”จๆˆทๆœๅŠก โ”‚ โ”‚ ๆ™บ่ƒฝๅผ•ๆ“ŽๆœๅŠก โ”‚ โ”‚ Hub ้›†ๅธ‚ๆœๅŠก โ”‚ โ”‚ ๅบ”็”จๆ‰˜็ฎกๆœๅŠก โ”‚ โ”‚ โ”‚ โ”‚ (Auth/MS) โ”‚ โ”‚ (Memory/LLM) โ”‚ โ”‚ (Marketplace)โ”‚ โ”‚ (AppFactory) โ”‚ โ”‚ โ”‚ โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜ โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜ โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜ โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜ โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ–ผ โ–ผ โ–ผ โ–ผ โ”‚ โ”‚ โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ” โ”‚ โ”‚ โ”‚ ๅ…ฑไบซๅŸบ็ก€่ฎพๆ–ฝๅฑ‚๏ผˆShared Infrastructure๏ผ‰ โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ PostgreSQL 18+pgvector โ”‚ Redis 7+ โ”‚ ClickHouse โ”‚ S3 โ”‚ Message Queue โ”‚ โ”‚ โ”‚ โ”‚ Vector DB(Qdrant) โ”‚ Keycloak โ”‚ Stripe โ”‚ Docker/K8s โ”‚ โ”‚ โ”‚ โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜ โ”‚ โ”‚ โ”‚ โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜ ``` ### 2.2 ๆŠ€ๆœฏๆ ˆ้€‰ๅž‹ๆ€ป่กจ | ๅฑ‚็บง | ๆŠ€ๆœฏ้€‰ๅž‹ | ้€‰ๅž‹็†็”ฑ | |------|---------|---------| | **ๅ‰็ซฏๆก†ๆžถ** | Next.js 18 (App Router) + TypeScript | ๅ…จๆ ˆไธ€ไฝ“ใ€SSR ๅ‹ๅฅฝใ€็”Ÿๆ€ๆˆ็†Ÿ | | **UI ็ป„ไปถๅบ“** | Ant Design 5.x / shadcn/ui | ไผไธš็บง็ป„ไปถไธฐๅฏŒ / ๅฏๅฎšๅˆถๆ€งๅผบ | | **็Šถๆ€็ฎก็†** | Zustand + TanStack Query | ่ฝป้‡ใ€้€‚ๅˆ AI ๆตๅผๅœบๆ™ฏ | | **ๅŽ็ซฏๆก†ๆžถ** | NestJS (TS) + FastAPI (Python) ๅŒๆ ˆ | TS ็ปŸไธ€ๅ‰็ซฏ/ๅŽ็ซฏ๏ผ›Python ่ดŸ่ดฃ AI/ML | | **API ๅ่ฎฎ** | REST + WebSocket + MCP (Model Context Protocol) | ๅ…ผๅฎนไผ ็ปŸ + ๅฎžๆ—ถๆตๅผ + Agent ๆ ‡ๅ‡†ๅ่ฎฎ | | **ๆ•ฐๆฎๅบ“** | PostgreSQL 18 + pgvector ๆ‰ฉๅฑ• | ๅ…ณ็ณปๆ•ฐๆฎ + ๅ‘้‡ๆฃ€็ดขไธ€ไฝ“ๅŒ– | | **็ผ“ๅญ˜/ไผš่ฏ** | Redis 7 Cluster | ้ซ˜ๆ€ง่ƒฝ็ผ“ๅญ˜ใ€ไผš่ฏใ€้™ๆตใ€ๆถˆๆฏ้˜Ÿๅˆ— | | **ๅ‘้‡ๆ•ฐๆฎๅบ“** | Qdrant๏ผˆไธป๏ผ‰ + pgvector๏ผˆ่ฝป้‡๏ผ‰ | ็”Ÿไบง็บงๅ‘้‡ๆฃ€็ดข + ๅคš็งŸๆˆทๅ‘ฝๅ็ฉบ้—ด้š”็ฆป | | **OLAP/ๅˆ†ๆž** | ClickHouse | ๆ—ฅๅฟ—ๅˆ†ๆžใ€็”จ้‡็ปŸ่ฎกใ€่ฎก่ดนๆŠฅ่กจ๏ผˆๅ‚่€ƒ Langfuse ๆžถๆž„๏ผ‰ | | **ๅฏน่ฑกๅญ˜ๅ‚จ** | MinIO / S3 | ๆ–‡ไปถใ€ๆจกๅž‹ใ€ๅ‘้‡็ดขๅผ•ๅค‡ไปฝ | | **ๆถˆๆฏ้˜Ÿๅˆ—** | RabbitMQ / NATS | ๅผ‚ๆญฅไปปๅŠกใ€Agent ็ผ–ๆŽ’ใ€ไบ‹ไปถ้ฉฑๅŠจ | | **API ็ฝ‘ๅ…ณ** | Kong / Envoy | ็ปŸไธ€ๅ…ฅๅฃใ€้™ๆตใ€้‰ดๆƒใ€่ทฏ็”ฑ | | **่บซไปฝ่ฎค่ฏ** | Keycloak (OIDC/OAuth2) | ไผไธš็บง SSOใ€ๅคš็งŸๆˆทใ€RBAC | | **ๅฎนๅ™จ็ผ–ๆŽ’** | Docker Compose๏ผˆๅผ€ๅ‘/ๅฐ่ง„ๆจก๏ผ‰โ†’ Kubernetes๏ผˆ็”Ÿไบง๏ผ‰ | ๆธ่ฟ›ๅผๆผ”่ฟ› | | **CI/CD** | GitHub Actions + ArgoCD (GitOps) | ่‡ชๅŠจๅŒ–ๆž„ๅปบ้ƒจ็ฝฒ | | **ๅฏ่ง‚ๆต‹ๆ€ง** | OpenTelemetry + Prometheus + Grafana + Langfuse | ๅ…จ้“พ่ทฏ่ฟฝ่ธชใ€Metricsใ€ๆ—ฅๅฟ— | | **ๆ”ฏไป˜/่ฎก่ดน** | Stripe๏ผˆๆตทๅค–๏ผ‰+ ๅพฎไฟก/ๆ”ฏไป˜ๅฎ๏ผˆๅ›ฝๅ†…๏ผ‰ | ๅŒ่ฝจๆ”ฏไป˜ | | **AI ๆจกๅž‹็ฝ‘ๅ…ณ** | LiteLLM Proxy | ็ปŸไธ€ๆŽฅๅ…ฅ OpenAI/Claude/Gemini/ๆœฌๅœฐๆจกๅž‹ | | **Agent ็ผ–ๆŽ’** | LangGraph๏ผˆPython๏ผ‰+ Langflow๏ผˆๅฏ่ง†ๅŒ–็”ปๅธƒ๏ผ‰ | ๅคš Agent ็ผ–ๆŽ’ + ๅฏ่ง†ๅŒ– | | **MCP ่ฟ่กŒๆ—ถ** | MCP Gateway๏ผˆ่‡ช็ ”๏ผ‰+ Docker ๆฒ™็ฎฑ | MCP Server ๆ‰˜็ฎกๆ‰ง่กŒ | --- ## ไธ‰ใ€ๆ”ฏๆŸฑไธ€๏ผšๆ™บ่ƒฝๅผ•ๆ“Ž๏ผˆ่ถŠ็”จ่ถŠๆ‡‚ไฝ ๏ผ‰ ### 3.1 ๆ ธๅฟƒ้—ฎ้ข˜ๆ‹†่งฃ | ้—ฎ้ข˜ | ่งฃๅ†ณๆ–นๆกˆ | ๆŠ€ๆœฏ็ป„ไปถ | |------|---------|---------| | ้•ฟๆ–‡ๆœฌๅญ˜ๅ‚จ | ๅˆ†ๅฑ‚ๅญ˜ๅ‚จ๏ผš็ƒญๆ•ฐๆฎ๏ผˆRedis๏ผ‰+ ๆธฉๆ•ฐๆฎ๏ผˆPostgreSQL๏ผ‰+ ๅ†ทๆ•ฐๆฎ๏ผˆS3๏ผ‰ | Redis + PG + S3 | | ่ฏญไน‰ๆฃ€็ดข | ๅคšๅ‘้‡ + ๆททๅˆๆฃ€็ดข๏ผˆBM25 + ๅ‘้‡๏ผ‰ + Rerank | Qdrant + pgvector + Cohere Rerank | | ็”จๆˆทๆ•ฐๆฎ้š”็ฆป | ็งŸๆˆท็บงๅ‘ฝๅ็ฉบ้—ด + Row-Level Security | Qdrant Collection per tenant + PG RLS | | ่‡ช่ฟ›ๅŒ–่ฎฐๅฟ† | ่ฎฐๅฟ†็”Ÿๅ‘ฝๅ‘จๆœŸ็ฎก็†๏ผˆๆ„Ÿ็Ÿฅโ†’ๅทฉๅ›บโ†’้—ๅฟ˜๏ผ‰ | ่‡ช็ ” Memory Engine | | ไธชๆ€งๅŒ– Agent | ็”จๆˆท็”ปๅƒ + ่กŒไธบๆจกๅผๅญฆไน  + ๅŠจๆ€ Prompt ๆณจๅ…ฅ | User Profile Service | ### 3.2 ้•ฟๆ–‡ๆœฌๅญ˜ๅ‚จไธŽ่ฏญไน‰ๆฃ€็ดขๆžถๆž„ ``` โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ” โ”‚ ็”จๆˆทไธŠไผ /ๅฏน่ฏๅ†…ๅฎน โ”‚ โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜ โ–ผ โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ” โ”‚ ๆ–‡ๆกฃ้ข„ๅค„็† Pipeline โ”‚ โ”‚ โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ” โ”‚ โ”‚ โ”‚ ๆ ผๅผ่งฃๆž(PDF/Word/ โ”‚ โ”‚ โ”‚ โ”‚ MD/HTML/้Ÿณ่ง†้ข‘) โ”‚ โ”‚ โ”‚ โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜ โ”‚ โ”‚ โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ–ผโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ” โ”‚ โ”‚ โ”‚ ๆ™บ่ƒฝๅˆ†ๅ—(10-15% โ”‚ โ”‚ โ”‚ โ”‚ ้‡ๅ +่ฏญไน‰่พน็•Œ) โ”‚ โ”‚ โ”‚ โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜ โ”‚ โ”‚ โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ–ผโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ” โ”‚ โ”‚ โ”‚ ๅคšๆจกๅž‹Embedding โ”‚ โ”‚ โ”‚ โ”‚ (text-embedding-3 โ”‚ โ”‚ โ”‚ โ”‚ + bge-large็ญ‰) โ”‚ โ”‚ โ”‚ โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜ โ”‚ โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜ โ–ผ โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ” โ”‚ ๅˆ†ๅฑ‚ๅญ˜ๅ‚จๅผ•ๆ“Ž โ”‚ โ”œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ค โ”‚ L1 ็ƒญ็ผ“ๅญ˜ โ†’ Redis๏ผˆๆœ€่ฟ‘ไผš่ฏ๏ผ‰ โ”‚ โ”‚ L2 ๅ‘้‡็ดขๅผ• โ†’ Qdrant๏ผˆ็งŸๆˆท้š”็ฆป๏ผ‰ โ”‚ โ”‚ L3 ็ป“ๆž„ๅŒ– โ†’ PostgreSQL + pgvector โ”‚ โ”‚ L4 ๅŽŸๅง‹ๆ–‡ไปถ โ†’ S3/MinIO โ”‚ โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜ โ–ผ โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ” โ”‚ ๆททๅˆๆฃ€็ดขๅผ•ๆ“Ž โ”‚ โ”‚ โ€ข BM25 ๅ…ณ้”ฎ่ฏๆฃ€็ดข โ”‚ โ”‚ โ€ข ๅ‘้‡็›ธไผผๅบฆๆฃ€็ดข โ”‚ โ”‚ โ€ข ๅ›พ่ฐฑๅ…ณ็ณปๆฃ€็ดข โ”‚ โ”‚ โ†’ RRF ่žๅˆๆŽ’ๅบ โ”‚ โ”‚ โ†’ Rerank ็ฒพๆŽ’ โ”‚ โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜ ``` ### 3.3 ่‡ช่ฟ›ๅŒ–่ฎฐๅฟ†็ณป็ปŸ๏ผˆๆ ธๅฟƒๅˆ›ๆ–ฐ๏ผ‰ ๅ‚่€ƒ่ฎค็Ÿฅ็ง‘ๅญฆ็š„ **ACT-R ๆžถๆž„** ไธŽ **่‰พๅฎพๆตฉๆ–ฏ้—ๅฟ˜ๆ›ฒ็บฟ**๏ผŒ่ฎพ่ฎกๅ››ๅฑ‚่ฎฐๅฟ†ไฝ“็ณป๏ผš ``` โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ” โ”‚ ็”จๆˆท่ฎฐๅฟ†็ณป็ปŸ๏ผˆMemory Engine๏ผ‰ โ”‚ โ”œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ค โ”‚ โ”‚ โ”‚ โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ” โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ” โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ” โ”‚ โ”‚ โ”‚ ๆ„Ÿ็Ÿฅๅฑ‚ โ”‚โ”€โ”€โ”€โ–ถโ”‚ ๆ็‚ผๅฑ‚ โ”‚โ”€โ”€โ”€โ–ถโ”‚ ๅ…ณ่”ๅฑ‚ โ”‚ โ”‚ โ”‚ โ”‚ (Perception)โ”‚ โ”‚ (Distill) โ”‚ โ”‚ (Association) โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ€ข ๅฏน่ฏ่งฃๆž โ”‚ โ”‚ โ€ข ๅ…ณ้”ฎไฟกๆฏ โ”‚ โ”‚ โ€ข ็Ÿฅ่ฏ†ๅ›พ่ฐฑๆž„ๅปบ โ”‚ โ”‚ โ”‚ โ”‚ โ€ข ๆ„ๅ›พ่ฏ†ๅˆซ โ”‚ โ”‚ ๆŠฝๅ– โ”‚ โ”‚ โ€ข ่ทจไผš่ฏๅ…ณ่” โ”‚ โ”‚ โ”‚ โ”‚ โ€ข ๆƒ…ๆ„Ÿๅˆ†ๆž โ”‚ โ”‚ โ€ข ๅฎžไฝ“่ฏ†ๅˆซ โ”‚ โ”‚ โ€ข ็”จๆˆทๅๅฅฝๅปบๆจก โ”‚ โ”‚ โ”‚ โ”‚ โ€ข ๅคšๆจกๆ€ โ”‚ โ”‚ โ€ข ๆ‘˜่ฆๅŽ‹็ผฉ โ”‚ โ”‚ โ€ข ่กŒไธบๆจกๅผๅญฆไน  โ”‚ โ”‚ โ”‚ โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜ โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜ โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜ โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ–ผ โ”‚ โ”‚ โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ” โ”‚ โ”‚ โ”‚ ๅทฉๅ›บ/้—ๅฟ˜ๅฑ‚ โ”‚ โ”‚ โ”‚ โ”‚ (Consolidation) โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ€ข ่ฎฐๅฟ†ๆฟ€ๆดปๅบฆ่ฏ„ๅˆ† โ”‚ โ”‚ โ”‚ โ”‚ โ€ข ่‰พๅฎพๆตฉๆ–ฏ่กฐๅ‡ โ”‚ โ”‚ โ”‚ โ”‚ โ€ข ๅ†ฒ็ชๆฃ€ๆต‹่งฃๅ†ณ โ”‚ โ”‚ โ”‚ โ”‚ โ€ข ๅฎšๆœŸๅๆ€้‡็ป„ โ”‚ โ”‚ โ”‚ โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜ โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ค โ”‚ ่ฎฐๅฟ†็ฑปๅž‹๏ผš โ”‚ โ”‚ โ€ข ๆƒ…ๆ™ฏ่ฎฐๅฟ†๏ผˆEpisodic๏ผ‰ โ†’ ็”จๆˆท่ฏด่ฟ‡ไป€ไนˆใ€ๅš่ฟ‡ไป€ไนˆ โ”‚ โ”‚ โ€ข ่ฏญไน‰่ฎฐๅฟ†๏ผˆSemantic๏ผ‰ โ†’ ็”จๆˆท็š„็Ÿฅ่ฏ†้ข†ๅŸŸใ€ไธ“ไธš่ƒŒๆ™ฏ โ”‚ โ”‚ โ€ข ็จ‹ๅบ่ฎฐๅฟ†๏ผˆProcedural๏ผ‰โ†’ ็”จๆˆทไน ๆƒฏ็š„ไบคไบ’ๆจกๅผใ€ๅๅฅฝๅทฅไฝœๆต โ”‚ โ”‚ โ€ข ๆƒ…ๆ„Ÿ่ฎฐๅฟ†๏ผˆEmotional๏ผ‰ โ†’ ็”จๆˆทๅฏนไป€ไนˆ่ฏ้ข˜ๆ•ๆ„Ÿใ€ไป€ไนˆ้ฃŽๆ ผๅ–œๆฌข โ”‚ โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜ ``` **่‡ช่ฟ›ๅŒ–ๆœบๅˆถ่ฏฆ่งฃ๏ผš** 1. **ๆฏๆฌกๅฏน่ฏๅŽ** โ†’ ่‡ชๅŠจๆๅ–ๅ…ณ้”ฎไบ‹ๅฎžๅ†™ๅ…ฅ็”จๆˆท็Ÿฅ่ฏ†ๅ›พ่ฐฑ 2. **ๆฏ N ่ฝฎๅฏน่ฏ** โ†’ ่งฆๅ‘ Reflection Agent๏ผŒๅฝ’็บณ็”จๆˆทๅๅฅฝๆจกๅผ 3. **ๆฏๅ‘จ/ๆœˆ** โ†’ ่ฟ่กŒ Memory Consolidation Job๏ผŒๅŽ‹็ผฉๅ†—ไฝ™ใ€่งฃๅ†ณๅ†ฒ็ชใ€ๅผบๅŒ–้ซ˜้ข‘ 4. **ๅฎžๆ—ถๆฃ€็ดขๆ—ถ** โ†’ ๆ นๆฎๅฝ“ๅ‰ไธŠไธ‹ๆ–‡ๅŠจๆ€ๅŠ ๆƒ่ฎฐๅฟ†๏ผˆๆ—ถ้—ด่กฐๅ‡ + ็›ธๅ…ณๅบฆ + ไฝฟ็”จ้ข‘็އ๏ผ‰ 5. **่ทจไผš่ฏๅญฆไน ** โ†’ ็”จๆˆท็บ ๆญฃไธ€ๆฌก๏ผŒๆฐธไน…็”Ÿๆ•ˆ๏ผˆ"ๆˆ‘ไธๅ–œๆฌขๅคช้•ฟ็š„ๅ›žๅค" โ†’ ๅ…จๅฑ€็”Ÿๆ•ˆ๏ผ‰ ### 3.4 ็”จๆˆทๆ•ฐๆฎ้š”็ฆปๆ–นๆกˆ ``` โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ” โ”‚ ๅคš็งŸๆˆท้š”็ฆป็ญ–็•ฅ๏ผˆDefense in Depth๏ผ‰ โ”‚ โ”œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ค โ”‚ โ”‚ โ”‚ Layer 1: ๅบ”็”จๅฑ‚ โ†’ tenant_id ไฝœไธบๆ‰€ๆœ‰ๆŸฅ่ฏข็š„ๅผบๅˆถๅ‚ๆ•ฐ โ”‚ โ”‚ ๏ผˆSDK ๅฑ‚ๅผบๅˆถๆณจๅ…ฅ๏ผŒๆ— ๆณ•็ป•่ฟ‡๏ผ‰ โ”‚ โ”‚ โ”‚ โ”‚ Layer 2: ๆ•ฐๆฎๅบ“ๅฑ‚ โ†’ PostgreSQL Row-Level Security (RLS) โ”‚ โ”‚ ๆฏไธช่กจ่‡ชๅŠจ้™„ๅŠ  tenant_id ่ฟ‡ๆปค็ญ–็•ฅ โ”‚ โ”‚ โ”‚ โ”‚ Layer 3: ๅ‘้‡ๅฑ‚ โ†’ Qdrant ๆฏ็งŸๆˆท็‹ฌ็ซ‹ Collection/Namespace โ”‚ โ”‚ ็‰ฉ็†้š”็ฆป๏ผŒๆœ็ป่ทจ็งŸๆˆทๆฃ€็ดข โ”‚ โ”‚ โ”‚ โ”‚ Layer 4: ็ผ“ๅญ˜ๅฑ‚ โ†’ Redis Key ๅ‰็ผ€ = tenant_id: โ”‚ โ”‚ ็ผ“ๅญ˜ๅ‡ป็ฉฟไนŸไธๆณ„้œฒๅ…ถไป–็งŸๆˆทๆ•ฐๆฎ โ”‚ โ”‚ โ”‚ โ”‚ Layer 5: ๆ–‡ไปถๅฑ‚ โ†’ S3 Bucket/Prefix ๆŒ‰็งŸๆˆท้š”็ฆป โ”‚ โ”‚ ้ข„็ญพๅ URL ๅธฆ็งŸๆˆทๆ ก้ชŒ โ”‚ โ”‚ โ”‚ โ”‚ Layer 6: ็ฝ‘็ปœๅฑ‚ โ†’ K8s NetworkPolicy ้™ๅˆถ่ทจๅ‘ฝๅ็ฉบ้—ด่ฎฟ้—ฎ โ”‚ โ”‚ ็”Ÿไบง็Žฏๅขƒๅฏ้€‰ gVisor ๆฒ™็ฎฑ โ”‚ โ”‚ โ”‚ โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜ ``` ### 3.5 ๆ™บ่ƒฝๅผ•ๆ“Ž โ€” ่‡ช่ฟ›ๅŒ–้—ญ็Žฏ ``` ็”จๆˆทๆ้—ฎ โ”‚ โ–ผ โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ” ๆฃ€็ดข โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ” โ”‚ Coordinator โ”‚โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ–ถโ”‚ ๆททๅˆๆฃ€็ดขๅผ•ๆ“Ž โ”‚ โ”‚ Agent โ”‚ โ”‚ (ๅ‘้‡+BM25+ๅ›พ่ฐฑ) โ”‚ โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜ โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜ โ”‚ โ”‚ โ”‚ ๆณจๅ…ฅ็”จๆˆท็”ปๅƒ+่ฎฐๅฟ† โ”‚ ่ฟ”ๅ›ž็›ธๅ…ณไธŠไธ‹ๆ–‡ โ–ผ โ–ผ โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ” โ”‚ LLM ๆŽจ็†๏ผˆLiteLLM ่ทฏ็”ฑ๏ผ‰ โ”‚ โ”‚ โ€ข ่‡ชๅŠจ้€‰ๆ‹ฉๆœ€ไผ˜ๆจกๅž‹๏ผˆๆˆๆœฌ/่ดจ้‡/้€Ÿๅบฆ๏ผ‰ โ”‚ โ”‚ โ€ข ๅŠจๆ€ๆณจๅ…ฅ็”จๆˆท่ฎฐๅฟ† + ็Ÿฅ่ฏ†ๅบ“ + Skills โ”‚ โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜ โ”‚ โ–ผ ็”Ÿๆˆๅ›žๅค + ่งฆๅ‘ๅŽๅฐ่ฎฐๅฟ†ๆ›ดๆ–ฐ โ”‚ โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ” โ–ผ โ–ผ ่ฟ”ๅ›ž็”จๆˆท Memory Engine ๅผ‚ๆญฅๅค„็† โ€ข ๆๅ–ๆ–ฐไบ‹ๅฎž โ€ข ๆ›ดๆ–ฐ็”จๆˆท็”ปๅƒ โ€ข ๅˆทๆ–ฐ็Ÿฅ่ฏ†ๅ›พ่ฐฑ โ€ข ่ฐƒๆ•ดๅๅฅฝๆƒ้‡ ``` --- ## ๅ››ใ€ๆ”ฏๆŸฑไบŒ๏ผšHub ่ƒฝๅŠ›้›†ๅธ‚ ### 4.1 ้›†ๅธ‚ๆžถๆž„ๅ…จๆ™ฏ ``` โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ” โ”‚ Hub ้›†ๅธ‚ๆžถๆž„ โ”‚ โ”œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ค โ”‚ โ”‚ โ”‚ โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ” โ”‚ โ”‚ โ”‚ ็”จๆˆท/ๅผ€ๅ‘่€…้—จๆˆท โ”‚ โ”‚ โ”‚ โ”‚ โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ” โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ” โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ” โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ” โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ” โ”‚ โ”‚ โ”‚ โ”‚ โ”‚Skillsๅ•†ๅบ—โ”‚ โ”‚MCPๅธ‚ๅœบ โ”‚ โ”‚Agent็”ปๅธƒ โ”‚ โ”‚ๅบ”็”จๅ•†ๅบ— โ”‚ โ”‚ๆˆ‘็š„ๅˆ›ไฝœ โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜ โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜ โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜ โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜ โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜ โ”‚ โ”‚ โ”‚ โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜ โ”‚ โ”‚ โ”‚ โ”‚ โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ” โ”‚ โ”‚ โ”‚ Hub ๆ ธๅฟƒๆœๅŠกๅฑ‚ โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ค โ”‚ โ”‚ โ”‚ ๅ‘ๅธƒๅผ•ๆ“Ž โ”‚ ๅฎกๆ ธๅผ•ๆ“Ž โ”‚ ็‰ˆๆœฌ็ฎก็† โ”‚ ไบคๆ˜“ๅผ•ๆ“Ž โ”‚ ้ƒจ็ฝฒๅผ•ๆ“Ž โ”‚ โ”‚ โ”‚ โ”‚ Publish โ”‚ Review โ”‚ Versioning โ”‚ Billing โ”‚ Deployment โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ€ข ไธŠไผ /ๅฏผๅ…ฅโ”‚ โ€ข ่‡ชๅŠจๆ‰ซๆ โ”‚ โ€ข SemVer โ”‚ โ€ข ๅ…่ดน/ไป˜่ดนโ”‚ โ€ข GitHub URL โ”‚ โ”‚ โ”‚ โ”‚ โ€ข ๅ…ƒๆ•ฐๆฎ โ”‚ โ€ข ๆฒ™็ฎฑๆต‹่ฏ• โ”‚ โ€ข ็ฐๅบฆๅ‘ๅธƒ โ”‚ โ€ข ่ฎข้˜…ๅˆถ โ”‚ โ€ข AI่‡ชๅŠจๆž„ๅปบ โ”‚ โ”‚ โ”‚ โ”‚ โ€ข ๅˆ†็ฑปๆ ‡็ญพ โ”‚ โ€ข ไบบๅทฅๅฎกๆ ธ โ”‚ โ€ข ๅ›žๆปš โ”‚ โ€ข ๅˆ†ๆˆ็ป“็ฎ— โ”‚ โ€ข Docker้ƒจ็ฝฒ โ”‚ โ”‚ โ”‚ โ”‚ โ€ข ๆœ็ดขๆŽจ่ โ”‚ โ€ข ๅฎ‰ๅ…จๆฃ€ๆต‹ โ”‚ โ€ข Changelogโ”‚ โ€ข ๅ‘็ฅจ โ”‚ โ€ข ๅฅๅบทๆฃ€ๆŸฅ โ”‚ โ”‚ โ”‚ โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜ โ”‚ โ”‚ โ”‚ โ”‚ โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ” โ”‚ โ”‚ โ”‚ ๅฏไบคๆ˜“่ต„ไบง็ฑปๅž‹ โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ค โ”‚ โ”‚ โ”‚ ๐Ÿ“ฆ Skill โ†’ ๅ•ไธ€่ƒฝๅŠ›ๅ•ๅ…ƒ๏ผˆๅฆ‚"PDF่งฃๆž""ๆƒ…ๆ„Ÿๅˆ†ๆž"๏ผ‰ โ”‚ โ”‚ โ”‚ โ”‚ ๐Ÿ”Œ MCP Server โ†’ ๆ ‡ๅ‡†ๅ่ฎฎๆœๅŠก๏ผˆๅฏ่‡ชๆ‰˜็ฎก/ๅนณๅฐๆ‰˜็ฎก๏ผ‰ โ”‚ โ”‚ โ”‚ โ”‚ ๐Ÿค– Agent โ†’ ๅ•/ๅคšAgentๅทฅไฝœๆต โ”‚ โ”‚ โ”‚ โ”‚ ๐ŸŽจ Agent็”ปๅธƒ โ†’ ๅฏ่ง†ๅŒ–็ผ–ๆŽ’็š„ๅคšAgentๅไฝœๆต็จ‹ โ”‚ โ”‚ โ”‚ โ”‚ ๐Ÿ“ฑ ็‹ฌ็ซ‹ๅบ”็”จ โ†’ ๅฎŒๆ•ดAIๅบ”็”จ๏ผˆๅฆ‚MuMuAINovelๅฐ่ฏดๅŠฉๆ‰‹๏ผ‰ โ”‚ โ”‚ โ”‚ โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜ โ”‚ โ”‚ โ”‚ โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜ ``` ### 4.2 ๅ„็ฑป่ต„ไบง่ฏฆ็ป†่ฎพ่ฎก #### 4.2.1 Skills๏ผˆๆŠ€่ƒฝ๏ผ‰ ```yaml # Skill ๆ ‡ๅ‡†ๅฎšไน‰ๆ ผๅผ (skill.yaml) name: pdf-advanced-parser version: 1.2.0 description: "ๆ”ฏๆŒๅคๆ‚ๆŽ’็‰ˆPDF็š„ๆ™บ่ƒฝ่งฃๆž๏ผŒไฟ็•™่กจๆ ผ/ๅ…ฌๅผ/ๅ›พ็‰‡็ป“ๆž„" author: user_12345 category: document-processing tags: [pdf, ocr, table-extraction] pricing: model: freemium # free | freemium | paid | subscription free_quota: 100 # ๆฏๆœˆๅ…่ดนๆฌกๆ•ฐ paid_price: 0.05 # ๆฏๆฌก่ฐƒ็”จไปทๆ ผ(USD) inputs: - name: file_url type: string required: true - name: extract_images type: boolean default: false outputs: - name: parsed_content type: object - name: markdown type: string runtime: language: python framework: fastapi requirements: requirements.txt entrypoint: main.py resources: cpu: "500m" memory: "1Gi" gpu: optional permissions: - file.read - network.outbound metadata: avg_latency_ms: 2300 success_rate: 0.987 total_calls: 15420 rating: 4.7 ``` #### 4.2.2 MCP Server๏ผˆModel Context Protocol ๆœๅŠก๏ผ‰ **ไธค็ง้ƒจ็ฝฒๆจกๅผ๏ผš** ``` ๆจกๅผA๏ผšๅนณๅฐๆ‰˜็ฎก๏ผˆPlatform-Hosted๏ผ‰ โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€ ๅผ€ๅ‘่€…ๆไบค โ†’ GitHub URL โ†’ ๅนณๅฐ่‡ชๅŠจ๏ผš 1. git clone ไป“ๅบ“ 2. ่งฃๆž Dockerfile / docker-compose 3. ๆž„ๅปบ Docker ้•œๅƒ 4. ้ƒจ็ฝฒๅˆฐ K8s๏ผˆๆŒ‰็งŸๆˆท/ๆŒ‰้œ€ๆฑ‚้š”็ฆป๏ผ‰ 5. ๆšด้œฒ HTTPS + SSE ็ซฏ็‚น 6. ่‡ชๅŠจๅฅๅบทๆฃ€ๆŸฅ + ๅผนๆ€งไผธ็ผฉ ๆจกๅผB๏ผš่‡ชๆ‰˜็ฎก๏ผˆSelf-Hosted๏ผ‰ โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€ ๅผ€ๅ‘่€…่‡ชๅทฑ้ƒจ็ฝฒ MCP Server ๅœจๅนณๅฐๆณจๅ†Œ endpoint URL + API Key ๅนณๅฐไฝœไธบไปฃ็†่ทฏ็”ฑ + ่ฎก่ดน่ฎก้‡ ``` **MCP Server ่‡ชๅŠจ้ƒจ็ฝฒๆตๆฐด็บฟ๏ผš** ``` GitHub URL ่พ“ๅ…ฅ โ”‚ โ–ผ โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ” โ”‚ 1. ไป“ๅบ“ๅ…‹้š† & ๅˆ†ๆž โ”‚ โ”‚ โ€ข ๆฃ€ๆต‹่ฏญ่จ€/ๆก†ๆžถ โ”‚ โ”‚ โ€ข ่งฃๆžไพ่ต– โ”‚ โ”‚ โ€ข ่ฏ†ๅˆซ MCP ้…็ฝฎ โ”‚ โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜ โ–ผ โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ” โ”‚ 2. ๅฎ‰ๅ…จๆ‰ซๆ โ”‚ โ”‚ โ€ข ไพ่ต–ๆผๆดžๆ‰ซๆ โ”‚ โ”‚ โ€ข ไปฃ็ ้™ๆ€ๅˆ†ๆž โ”‚ โ”‚ โ€ข ๆถๆ„่กŒไธบๆฃ€ๆต‹ โ”‚ โ”‚ โ€ข ๆƒ้™ๅฃฐๆ˜Ž้ชŒ่ฏ โ”‚ โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜ โ–ผ โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ” โ”‚ 3. ๆฒ™็ฎฑๆต‹่ฏ• โ”‚ โ”‚ โ€ข ๅฏๅŠจไธดๆ—ถๅฎนๅ™จ โ”‚ โ”‚ โ€ข ่ฟ่กŒ MCP ๅ่ฎฎ โ”‚ โ”‚ โ”‚ ๆกๆ‰‹ๆต‹่ฏ• โ”‚ โ”‚ โ€ข ้ชŒ่ฏๅทฅๅ…ทๅˆ—่กจ โ”‚ โ”‚ โ€ข ๆ€ง่ƒฝๅŸบๅ‡†ๆต‹่ฏ• โ”‚ โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜ โ–ผ โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ” โ”‚ 4. ๆž„ๅปบ & ้ƒจ็ฝฒ โ”‚ โ”‚ โ€ข Docker ้•œๅƒๆž„ๅปบโ”‚ โ”‚ โ€ข ๆŽจ้€ๅˆฐๅนณๅฐRegistryโ”‚ โ”‚ โ€ข K8s Deployment โ”‚ โ”‚ โ€ข ้…็ฝฎ Ingress โ”‚ โ”‚ โ€ข ็”Ÿๆˆ API Endpointโ”‚ โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜ โ–ผ โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ” โ”‚ 5. ไธŠ็บฟ & ็›‘ๆŽง โ”‚ โ”‚ โ€ข ๆต้‡ๆŽฅๅ…ฅ โ”‚ โ”‚ โ€ข ็”จ้‡่ฎก้‡ โ”‚ โ”‚ โ€ข ๅผ‚ๅธธๅ‘Š่ญฆ โ”‚ โ”‚ โ€ข ่‡ชๅŠจๆ‰ฉ็ผฉๅฎน โ”‚ โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜ ``` #### 4.2.3 Agent / ๅคš Agent ็”ปๅธƒ **ๅ‚่€ƒๅผ€ๆบ้กน็›ฎ้€‰ๅž‹๏ผš** | ๅทฅๅ…ท | ไผ˜ๅŠฟ | ้€‚้…ๅœบๆ™ฏ | |------|------|---------| | **Langflow**๏ผˆๆŽจ่๏ผ‰ | 140K+ Starsใ€MIT ๅ่ฎฎใ€ๅฏๅฏผๅ‡บไธบ MCP Serverใ€Python ็”Ÿๆ€ | Agent ็”ปๅธƒๆ ธๅฟƒๅผ•ๆ“Ž | | **Flowise** | TypeScript ๆ ˆใ€ไบบๆœบๅไฝœๅฎกๆ‰น่Š‚็‚นใ€ไธŠๆ‰‹ๆœ€ๅฟซ | ๅค‡้€‰/่กฅๅ…… | | **n8n** | 150K+ Starsใ€่‡ชๅŠจๅŒ–ๅทฅไฝœๆตๆœ€ๅผบใ€400+ ้›†ๆˆ | ๅคๆ‚ไธšๅŠกๆต็จ‹็ผ–ๆŽ’ | **Agent ็”ปๅธƒๅŠŸ่ƒฝ่ฎพ่ฎก๏ผš** ``` โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ” โ”‚ Agent ็”ปๅธƒ็ผ–่พ‘ๅ™จ โ”‚ โ”œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ค โ”‚ โ”‚ โ”‚ โ”Œโ”€ ๅทฆไพง็ป„ไปถ้ขๆฟ โ”€โ”€โ”€โ”€โ”€โ” โ”Œโ”€ ไธญๅคฎ็”ปๅธƒ โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ” โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ ๐Ÿ“ฆ Skills โ”‚ โ”‚ โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ” โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ” โ”‚ โ”‚ โ”‚ โ”‚ ๐Ÿ”Œ MCP Tools โ”‚ โ”‚ โ”‚ ็”จๆˆท่พ“ๅ…ฅโ”‚โ”€โ”€โ”€โ–ถโ”‚Router โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ ๐Ÿค– Agent ่Š‚็‚น โ”‚ โ”‚ โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜ โ””โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”˜ โ”‚ โ”‚ โ”‚ โ”‚ ๐Ÿ“ Prompt ๆจกๆฟ โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ ๐Ÿ”€ ๆกไปถๅˆ†ๆ”ฏ โ”‚ โ”‚ โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ” โ”‚ โ”‚ โ”‚ โ”‚ ๐Ÿ”„ ๅพช็Žฏ/่ฟญไปฃ โ”‚ โ”‚ โ–ผ โ–ผ โ–ผ โ”‚ โ”‚ โ”‚ โ”‚ ๐Ÿ’พ ่ฎฐๅฟ†่Š‚็‚น โ”‚ โ”‚ โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ” โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ” โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”โ”‚ โ”‚ โ”‚ ๐ŸŒ API ่ฐƒ็”จ โ”‚ โ”‚ โ”‚Agent A โ”‚ โ”‚Agent B โ”‚ โ”‚Agent C โ”‚โ”‚ โ”‚ โ”‚ โฐ ๅฎšๆ—ถ่งฆๅ‘ โ”‚ โ”‚ โ”‚(็ ”็ฉถ) โ”‚ โ”‚(ๅ†™ไฝœ) โ”‚ โ”‚(ๅฎกๆ ธ) โ”‚โ”‚ โ”‚ โ”‚ ๐Ÿ›ก๏ธ ไบบๅทฅๅฎกๆ‰น โ”‚ โ”‚ โ””โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”˜ โ””โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”˜ โ””โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”˜โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜ โ”‚ โ”‚ โ”‚ โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜ โ”‚ โ–ผ โ”‚ โ”‚ โ”‚ โ”‚ โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ” โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ ่พ“ๅ‡บ โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜ โ”‚ โ”‚ โ”‚ โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜ โ”‚ โ”‚ โ”‚ โ”‚ โ”Œโ”€ ๅณไพงๅฑžๆ€ง้ขๆฟ โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ” โ”‚ โ”‚ โ”‚ ้€‰ไธญ่Š‚็‚น โ†’ ้…็ฝฎๆจกๅž‹/ๅ‚ๆ•ฐ/Prompt/Skills/ๆƒ้™ โ”‚ โ”‚ โ”‚ โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜ โ”‚ โ”‚ โ”‚ โ”‚ ๅŠŸ่ƒฝ๏ผšๅฎžๆ—ถ่ฐƒ่ฏ• | ๅ•ๆญฅๆ‰ง่กŒ | ๅ˜้‡่ฟฝ่ธช | ๆ—ฅๅฟ—ๆŸฅ็œ‹ | ๆ€ง่ƒฝๅˆ†ๆž โ”‚ โ”‚ โ”‚ โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜ ``` #### 4.2.4 ็‹ฌ็ซ‹ๅบ”็”จๆŽฅๅ…ฅ๏ผˆไปฅ MuMuAINovel ไธบไพ‹๏ผ‰ **ๆŽฅๅ…ฅๆต็จ‹๏ผš** ``` ๆญฅ้ชค1๏ผšๅผ€ๅ‘่€…ๅœจๅนณๅฐๆณจๅ†Œๅบ”็”จ โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ” โ”‚ App Name: MuMuAINovel โ”‚ โ”‚ GitHub URL: https://github.com/... โ”‚ โ”‚ Category: Creative Writing โ”‚ โ”‚ Pricing: Freemium โ”‚ โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜ ๆญฅ้ชค2๏ผšๅนณๅฐ่‡ชๅŠจๆณจๅ…ฅๆ ‡ๅ‡†ๅŒ–ๆจกๅ— โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ” โ”‚ ๅŽŸๅบ”็”จ + ๅนณๅฐ SDK = ๆ ‡ๅ‡†ๅŒ–ๆŽฅๅ…ฅ โ”‚ โ”‚ โ”‚ โ”‚ ๆณจๅ…ฅๅ†…ๅฎน๏ผš โ”‚ โ”‚ โ€ข @platform/auth-sdk โ†’ ๅ•็‚น็™ปๅฝ•/็”จๆˆท่ฎค่ฏ โ”‚ โ”‚ โ€ข @platform/billing-sdk โ†’ Token ่ฎก้‡/่ฎข้˜…/่ฎก่ดน โ”‚ โ”‚ โ€ข @platform/model-router โ†’ ็ปŸไธ€ๅคงๆจกๅž‹ๅบ“๏ผˆไธ้™ๅŽŸๆจกๅž‹๏ผ‰ โ”‚ โ”‚ โ€ข @platform/observabilityโ†’ ๆ—ฅๅฟ—/่ฟฝ่ธช/็›‘ๆŽง โ”‚ โ”‚ โ€ข @platform/memory-sdk โ†’ ๆŽฅๅ…ฅๅนณๅฐ่ฎฐๅฟ†็ณป็ปŸ โ”‚ โ”‚ โ€ข docker-compose.platform.yml โ†’ ๅนณๅฐๆ ‡ๅ‡†้ƒจ็ฝฒๆจกๆฟ โ”‚ โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜ ๆญฅ้ชค3๏ผšๅฎกๆ ธ โ†’ ๅ‘ๅธƒ โ†’ ไธŠๆžถๅบ”็”จๅ•†ๅบ— ๆญฅ้ชค4๏ผš็”จๆˆทไธ€้”ฎๅฎ‰่ฃ…/่ฎข้˜… โ†’ ็ปŸไธ€่ฎก่ดน ``` ### 4.3 ๅฎกๆ ธไธŽๅฎ‰ๅ…จไฝ“็ณป ``` โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ” โ”‚ ๅ››ๅฑ‚ๅฎกๆ ธ้˜ฒ็บฟ โ”‚ โ”œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ค โ”‚ Layer 1 โ”‚ Layer 2 โ”‚ Layer 3 โ”‚ Layer 4 โ”‚ โ”‚ ่‡ชๅŠจๆ‰ซๆ โ”‚ ๆฒ™็ฎฑๅŠจๆ€ๆต‹่ฏ• โ”‚ ไบบๅทฅๅฎกๆ ธ โ”‚ ๆŒ็ปญ็›‘ๆŽง โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ€ข ไพ่ต–ๆผๆดž โ”‚ โ€ข ่ฟ่กŒๆ—ถ่กŒไธบ โ”‚ โ€ข ๅŠŸ่ƒฝ้ชŒ่ฏ โ”‚ โ€ข ๅผ‚ๅธธ็”จ้‡ๆฃ€ๆต‹ โ”‚ โ”‚ โ€ข ไปฃ็ ้™ๆ€ๅˆ†ๆžโ”‚ โ€ข ็ฝ‘็ปœ่ฏทๆฑ‚็›‘ๆŽงโ”‚ โ€ข ๅ†…ๅฎนๅˆ่ง„ โ”‚ โ€ข ็”จๆˆทๆŠ•่ฏ‰ๅ“ๅบ” โ”‚ โ”‚ โ€ข ๆถๆ„ไปฃ็  โ”‚ โ€ข ่ต„ๆบๆถˆ่€— โ”‚ โ€ข ่ดจ้‡่ฏ„ไผฐ โ”‚ โ€ข ่‡ชๅŠจไธ‹ๆžถๆœบๅˆถ โ”‚ โ”‚ โ€ข ๆƒ้™ๅฃฐๆ˜Ž โ”‚ โ€ข ่พ“ๅ‡บๅฎกๆ ธ โ”‚ โ€ข ๅฎ‰ๅ…จๅคๆ ธ โ”‚ โ€ข ็‰ˆๆœฌๆ›ดๆ–ฐๅฎกๆ ธ โ”‚ โ”‚ โ€ข ็—…ๆฏ’ๆ‰ซๆ โ”‚ โ€ข ๅŽ‹ๅŠ›ๆต‹่ฏ• โ”‚ โ”‚ โ”‚ โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜ ``` ### 4.4 ไบคๆ˜“ไธŽ่ฎก่ดนๆจกๅž‹ ``` โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ” โ”‚ ไบคๆ˜“ & ่ฎก่ดนๆžถๆž„ โ”‚ โ”œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ค โ”‚ โ”‚ โ”‚ ่ฎก่ดน็ปดๅบฆ๏ผš โ”‚ โ”‚ โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ” โ”‚ โ”‚ โ”‚ โ€ข Token ๆถˆ่€—๏ผˆ่พ“ๅ…ฅ + ่พ“ๅ‡บ๏ผŒๆŒ‰ๆจกๅž‹ๅˆ†ๅˆซ่ฎกไปท๏ผ‰ โ”‚ โ”‚ โ”‚ โ”‚ โ€ข Skill ่ฐƒ็”จๆฌกๆ•ฐ๏ผˆๆŒ‰ๆฌก/ๅŒ…ๆœˆ/่ฎข้˜…๏ผ‰ โ”‚ โ”‚ โ”‚ โ”‚ โ€ข MCP Server ไฝฟ็”จๆ—ถ้•ฟ๏ผˆๆŒ‰ๅฐๆ—ถ/ๆŒ‰่ฐƒ็”จ๏ผ‰ โ”‚ โ”‚ โ”‚ โ”‚ โ€ข Agent ๆ‰ง่กŒๆญฅๆ•ฐ๏ผˆๆŒ‰ๆญฅ/ๅŒ…ๆœˆ๏ผ‰ โ”‚ โ”‚ โ”‚ โ”‚ โ€ข ๅบ”็”จ่ฎข้˜…่ดน๏ผˆๆœˆ่ดน/ๅนด่ดน/็ปˆ่บซ๏ผ‰ โ”‚ โ”‚ โ”‚ โ”‚ โ€ข ๅญ˜ๅ‚จ็”จ้‡๏ผˆ็Ÿฅ่ฏ†ๅบ“ๅคงๅฐ๏ผ‰ โ”‚ โ”‚ โ”‚ โ”‚ โ€ข ๅธฆๅฎฝ็”จ้‡๏ผˆๆ–‡ไปถไธŠไผ ไธ‹่ฝฝ๏ผ‰ โ”‚ โ”‚ โ”‚ โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜ โ”‚ โ”‚ โ”‚ โ”‚ ๅˆ†ๆˆๆจกๅผ๏ผš โ”‚ โ”‚ โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ” โ”‚ โ”‚ โ”‚ ๅนณๅฐ 30% + ๅผ€ๅ‘่€… 70%๏ผˆๆ ‡ๅ‡†ๅบ”็”จๅ•†ๅบ—ๆจกๅผ๏ผ‰ โ”‚ โ”‚ โ”‚ โ”‚ ไผ˜่ดจๅผ€ๅ‘่€…ๅฏ้™่‡ณ 20/80 โ”‚ โ”‚ โ”‚ โ”‚ ๅนณๅฐ่‡ชๆœ‰ Skills ไธๆŠฝๆˆ โ”‚ โ”‚ โ”‚ โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜ โ”‚ โ”‚ โ”‚ โ”‚ ๆ”ฏไป˜้›†ๆˆ๏ผš โ”‚ โ”‚ โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ” โ”‚ โ”‚ โ”‚ Stripe๏ผˆๅ›ฝ้™…ไฟก็”จๅก/่ฎข้˜…๏ผ‰ โ”‚ โ”‚ โ”‚ โ”‚ ๅพฎไฟกๆ”ฏไป˜ + ๆ”ฏไป˜ๅฎ๏ผˆๅ›ฝๅ†…๏ผ‰ โ”‚ โ”‚ โ”‚ โ”‚ ๅนณๅฐ่™šๆ‹Ÿๅธ๏ผˆๅ……ๅ€ผโ†’ๆถˆ่ดน๏ผŒ้™ไฝŽๆ”ฏไป˜ๆ‘ฉๆ“ฆ๏ผ‰ โ”‚ โ”‚ โ”‚ โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜ โ”‚ โ”‚ โ”‚ โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜ ``` --- ## ไบ”ใ€ๆ”ฏๆŸฑไธ‰๏ผšๅนณๅฐๅบ•ๅบงไธŽๆ ‡ๅ‡†ๅŒ– ### 5.1 ็ปŸไธ€ๆžถๆž„ๆ ‡ๅ‡† ``` โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ” โ”‚ ๅนณๅฐๆ ‡ๅ‡†ๅŒ–ไฝ“็ณป โ”‚ โ”œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ค โ”‚ API ๆ ‡ๅ‡† โ”‚ ๆ•ฐๆฎๆ ‡ๅ‡† โ”‚ ้ƒจ็ฝฒๆ ‡ๅ‡† โ”‚ ๅผ€ๅ‘ๆ ‡ๅ‡† โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ€ข RESTful โ”‚ โ€ข ็ปŸไธ€ๆ•ฐๆฎ โ”‚ โ€ข Docker โ”‚ โ€ข Monorepo (pnpm) โ”‚ โ”‚ โ€ข GraphQL โ”‚ Schema โ”‚ Compose โ”‚ โ€ข ไปฃ็ ่ง„่Œƒ (ESLint) โ”‚ โ”‚ โ€ข WebSocket โ”‚ โ€ข ไบ‹ไปถๆ ผๅผ โ”‚ โ€ข K8s Helm โ”‚ โ€ข ๆไบค่ง„่Œƒ (Conven) โ”‚ โ”‚ โ€ข MCP ๅ่ฎฎ โ”‚ โ€ข ๆ—ฅๅฟ—ๆ ผๅผ โ”‚ Charts โ”‚ โ€ข CI/CD ๆจกๆฟ โ”‚ โ”‚ โ€ข OpenAPI 3 โ”‚ โ€ข ่ฟฝ่ธชๆ ผๅผ โ”‚ โ€ข GitOps โ”‚ โ€ข ๆต‹่ฏ•ๆ ‡ๅ‡† (Jest) โ”‚ โ”‚ โ€ข ็‰ˆๆœฌ็ฎก็† โ”‚ โ€ข ้”™่ฏฏ็ ไฝ“็ณป โ”‚ โ€ข IaC (Pulumi)โ”‚ โ€ข ๆ–‡ๆกฃ่ง„่Œƒ (JSDoc) โ”‚ โ”‚ โ€ข ้™ๆตๆ ‡ๅ‡† โ”‚ โ€ข ๅ…ƒๆ•ฐๆฎ่ง„่Œƒ โ”‚ โ€ข ่“็ปฟ้ƒจ็ฝฒ โ”‚ โ€ข ๅฎ‰ๅ…จๆ‰ซๆ (SAST) โ”‚ โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜ ``` ### 5.2 ็ปŸไธ€ API ็ฝ‘ๅ…ณ่ฎพ่ฎก ```yaml # ็ปŸไธ€ API ๅ“ๅบ”ๆ ผๅผ response: success: boolean code: string # ไธšๅŠก้”™่ฏฏ็  message: string # ไบบ็ฑปๅฏ่ฏปๆถˆๆฏ data: object # ไธšๅŠกๆ•ฐๆฎ meta: # ๅ…ƒๆ•ฐๆฎ request_id: uuid # ๅ…จ้“พ่ทฏ่ฟฝ่ธชID latency_ms: number # ๅ“ๅบ”่€—ๆ—ถ quota_remaining: number # ๅ‰ฉไฝ™้…้ข rate_limit: limit: number remaining: number reset_at: datetime pagination: # ๅˆ†้กตไฟกๆฏ page: number per_page: number total: number ``` ### 5.3 ่ฎค่ฏไธŽๅ•็‚น็™ปๅฝ•๏ผˆSSO๏ผ‰ ``` โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ” โ”‚ ็ปŸไธ€่บซไปฝ่ฎค่ฏๆžถๆž„ โ”‚ โ”œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ค โ”‚ โ”‚ โ”‚ ่ฎค่ฏๆ–นๅผ๏ผš โ”‚ โ”‚ โ€ข ้‚ฎ็ฎฑ/ๅฏ†็ ๏ผˆbcrypt + JWT๏ผ‰ โ”‚ โ”‚ โ€ข OAuth 2.0๏ผˆGoogle/GitHub/ๅพฎไฟก๏ผ‰ โ”‚ โ”‚ โ€ข SSO/SAML๏ผˆไผไธš็‰ˆ๏ผ‰ โ”‚ โ”‚ โ€ข Passkey/WebAuthn๏ผˆๆ— ๅฏ†็ ็™ปๅฝ•๏ผ‰ โ”‚ โ”‚ โ”‚ โ”‚ ๆƒ้™ๆจกๅž‹๏ผˆRBAC + ABAC๏ผ‰๏ผš โ”‚ โ”‚ โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ” โ”‚ โ”‚ โ”‚ Role: Super Admin / Tenant Admin / Developer / User / Guestโ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ Policy: ๅŸบไบŽๅฑžๆ€ง๏ผˆ็งŸๆˆท/้กน็›ฎ/่ต„ๆบ/ๆ—ถ้—ด/ๅœฐ็‚น๏ผ‰็š„ๅŠจๆ€ๆŽˆๆƒ โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ Scope: ็ป†็ฒ’ๅบฆ API Key ๆƒ้™๏ผˆ่ฏปๅ†™/ๅช่ฏป/ๆŒ‰่ต„ๆบ/ๆŒ‰ๆ“ไฝœ๏ผ‰ โ”‚ โ”‚ โ”‚ โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜ โ”‚ โ”‚ โ”‚ โ”‚ ๅฎž็Žฐๆ–นๆกˆ๏ผšKeycloak๏ผˆๅผ€ๆบ OIDC ๆไพ›ๅ•†๏ผ‰ โ”‚ โ”‚ โ€ข ๆ”ฏๆŒๅคš็งŸๆˆท้š”็ฆป โ”‚ โ”‚ โ€ข ๆ”ฏๆŒ SSO/SAML/OAuth2/OpenID โ”‚ โ”‚ โ€ข ๆ”ฏๆŒ็คพไบค็™ปๅฝ• โ”‚ โ”‚ โ€ข ๆ”ฏๆŒ MFA/Passkey โ”‚ โ”‚ โ€ข ๆ”ฏๆŒไผไธš LDAP/AD ้›†ๆˆ โ”‚ โ”‚ โ”‚ โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜ ``` ### 5.4 ๅคงๆจกๅž‹็ปŸไธ€่ทฏ็”ฑๅฑ‚๏ผˆLiteLLM Proxy๏ผ‰ ``` โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ” โ”‚ LiteLLM Proxy ็ปŸไธ€ๆจกๅž‹็ฝ‘ๅ…ณ โ”‚ โ”œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ค โ”‚ โ”‚ โ”‚ ๅบ”็”จๅฑ‚ โ”‚ โ”‚ โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ” โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ” โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ” โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ” โ”‚ โ”‚ โ”‚Chat Appโ”‚ โ”‚Agent โ”‚ โ”‚Skill โ”‚ โ”‚MCP โ”‚ โ”‚ โ”‚ โ””โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”˜ โ””โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”˜ โ””โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”˜ โ””โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”˜ โ”‚ โ”‚ โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜ โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ–ผ โ”‚ โ”‚ โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ” โ”‚ โ”‚ โ”‚ LiteLLM Proxy โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ€ข ็ปŸไธ€ OpenAI ๆ ผๅผ โ”‚ โ”‚ โ”‚ โ”‚ โ€ข ๆ™บ่ƒฝ่ทฏ็”ฑ/้™็บง โ”‚ โ”‚ โ”‚ โ”‚ โ€ข ้‡่ฏ•/่ถ…ๆ—ถ/้™ๆต โ”‚ โ”‚ โ”‚ โ”‚ โ€ข Token ่ฎก้‡/่ฎก่ดน โ”‚ โ”‚ โ”‚ โ”‚ โ€ข ๆ•ๆ„Ÿไฟกๆฏ่ฟ‡ๆปค โ”‚ โ”‚ โ”‚ โ”‚ โ€ข ่ฏทๆฑ‚/ๅ“ๅบ”็ผ“ๅญ˜ โ”‚ โ”‚ โ”‚ โ”‚ โ€ข A/B ๆต‹่ฏ• โ”‚ โ”‚ โ”‚ โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜ โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ” โ”‚ โ”‚ โ–ผ โ–ผ โ–ผ โ–ผ โ–ผ โ”‚ โ”‚ โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ” โ”‚ โ”‚ โ”‚OpenAIโ”‚โ”‚Claudeโ”‚โ”‚Geminiโ”‚โ”‚ๆœฌๅœฐ โ”‚โ”‚ๅ…ถไป– โ”‚ โ”‚ โ”‚ โ”‚GPT-4oโ”‚โ”‚3.5 โ”‚โ”‚1.5Proโ”‚โ”‚vLLM โ”‚โ”‚API โ”‚ โ”‚ โ”‚ โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”˜โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”˜โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”˜โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”˜โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”˜ โ”‚ โ”‚ โ”‚ โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜ ``` --- ## ๅ…ญใ€ๅผ€ๆบ้กน็›ฎๅ€Ÿ็”จๆธ…ๅ• ### 6.1 ๅฏ็›ดๆŽฅๅ€Ÿ็”จ็š„ๅผ€ๆบ้กน็›ฎ | ้กน็›ฎ | ็”จ้€” | ๅ่ฎฎ | ้›†ๆˆๆ–นๅผ | |------|------|------|---------| | **Langflow** | Agent ๅฏ่ง†ๅŒ–็”ปๅธƒ + ๅฏๅฏผๅ‡บ MCP | MIT | ๅตŒๅ…ฅๅนณๅฐไฝœไธบ Agent ็ผ–่พ‘ๅ™จ | | **n8n** | ๅคๆ‚ๅทฅไฝœๆต่‡ชๅŠจๅŒ–็ผ–ๆŽ’ | fair-code | ้›†ๆˆไฝœไธบ้ซ˜็บงๆต็จ‹ๅผ•ๆ“Ž | | **LiteLLM** | ็ปŸไธ€ๆจกๅž‹็ฝ‘ๅ…ณ/่ทฏ็”ฑ/่ฎก่ดน | MIT | ๅนณๅฐๆ ธๅฟƒๆจกๅž‹่ทฏ็”ฑๅฑ‚ | | **Langfuse** | LLM ๅฏ่ง‚ๆต‹ๆ€ง/่ฟฝ่ธช/Eval | MIT | ๅตŒๅ…ฅๅนณๅฐไฝœไธบ็›‘ๆŽง้ขๆฟ | | **Keycloak** | ่บซไปฝ่ฎค่ฏ/SSO/RBAC | Apache 2.0 | ๅนณๅฐ็ปŸไธ€่บซไปฝๆœๅŠก | | **Qdrant** | ๅ‘้‡ๆ•ฐๆฎๅบ“๏ผˆๅคš็งŸๆˆท๏ผ‰ | Apache 2.0 | ๅนณๅฐ่ฏญไน‰ๆฃ€็ดขๅผ•ๆ“Ž | | **LangGraph** | ๅคš Agent ็ผ–ๆŽ’ๆก†ๆžถ | MIT | Python ๅŽ็ซฏ Agent ็ผ–ๆŽ’ๆ ธๅฟƒ | | **LobeChat** | ๅผ€ๆบ AI ่Šๅคฉๅ‰็ซฏ๏ผˆๅ‚่€ƒ UI๏ผ‰ | MIT | UI/UX ่ฎพ่ฎกๅ‚่€ƒ + ้ƒจๅˆ†็ป„ไปถ | | **Flowise** | ๅค‡้€‰ๅฏ่ง†ๅŒ– Agent ๆž„ๅปบๅ™จ | MIT | ๅค‡้€‰/่กฅๅ…… | | **Helicone** | LLM ่ฏทๆฑ‚ไปฃ็†/็ผ“ๅญ˜/้™ๆต | MIT | ๅค‡้€‰็ฝ‘ๅ…ณๆ–นๆกˆ | | **Dify** | ๅ‚่€ƒๆ•ดไฝ“ไบงๅ“่ฎพ่ฎก/API ่ฎพ่ฎก | Apache 2.0 | ๆžถๆž„ๅ‚่€ƒ/API ่ฎพ่ฎกๅ‚่€ƒ | | **RAGFlow** | ๆ–‡ๆกฃ่งฃๆž/ๅˆ†ๅ—๏ผˆๆทฑๅบฆๆ–‡ๆกฃ็†่งฃ๏ผ‰ | Apache 2.0 | ้›†ๆˆไฝœไธบ้ซ˜็บงๆ–‡ๆกฃ้ข„ๅค„็† | ### 6.2 ๆžถๆž„ๅ‚่€ƒ้กน็›ฎ | ้กน็›ฎ | ๅ‚่€ƒ็‚น | |------|--------| | **Suna (Kortix)** | Monorepo ็ป„็ป‡ใ€Agent ๅŽ็ซฏๆžถๆž„ใ€Docker ๅ…จๆ ˆ้ƒจ็ฝฒ | | **LobeHub MCP Marketplace** | MCP ้›†ๅธ‚ๆžถๆž„ใ€Capability Registry ่ฎพ่ฎก | | **mipyao-ai-app-monorepo** | Next.js + NestJS + LangChain.js ๅ…จๆ ˆ RAG ๆžถๆž„ | | **MuMuAINovel**๏ผˆ็”จๆˆทๆไพ›็š„้กน็›ฎ๏ผ‰ | ็‹ฌ็ซ‹ AI ๅบ”็”จ็š„ๆ ‡ๅ‡†ๅŒ–ๆ”น้€ ๅ‚่€ƒ | --- ## ไธƒใ€ๆ•ฐๆฎๅบ“ Schema ่ฎพ่ฎก๏ผˆๆ ธๅฟƒ่กจ๏ผ‰ ### 7.1 ๆ ธๅฟƒๆ•ฐๆฎๆจกๅž‹ ```sql -- ============ ็”จๆˆทไธŽ็งŸๆˆท ============ CREATE TABLE tenants ( id UUID PRIMARY KEY, name VARCHAR(255) NOT NULL, plan VARCHAR(50) DEFAULT 'free', quota_tokens BIGINT DEFAULT 0, used_tokens BIGINT DEFAULT 0, created_at TIMESTAMP DEFAULT NOW() ); CREATE TABLE users ( id UUID PRIMARY KEY, tenant_id UUID REFERENCES tenants(id), email VARCHAR(255) UNIQUE NOT NULL, password_hash VARCHAR(255), display_name VARCHAR(255), avatar_url TEXT, preferences JSONB DEFAULT '{}', created_at TIMESTAMP DEFAULT NOW() ); -- ============ ่ฎฐๅฟ†็ณป็ปŸ ============ CREATE TABLE memory_episodic ( id UUID PRIMARY KEY, tenant_id UUID NOT NULL, user_id UUID NOT NULL, content TEXT NOT NULL, embedding VECTOR(1536), importance FLOAT DEFAULT 0.5, decay_factor FLOAT DEFAULT 1.0, last_accessed TIMESTAMP DEFAULT NOW(), created_at TIMESTAMP DEFAULT NOW() ) PARTITION BY LIST (tenant_id); CREATE TABLE memory_semantic ( id UUID PRIMARY KEY, tenant_id UUID NOT NULL, user_id UUID NOT NULL, entity_type VARCHAR(100), entity_value TEXT, confidence FLOAT DEFAULT 1.0, source_conversation_id UUID, created_at TIMESTAMP DEFAULT NOW() ); CREATE TABLE user_profile ( user_id UUID PRIMARY KEY, tenant_id UUID NOT NULL, expertise_domains TEXT[], communication_style JSONB, preferences JSONB, behavior_patterns JSONB, updated_at TIMESTAMP DEFAULT NOW() ); -- ============ ็Ÿฅ่ฏ†ๅบ“ ============ CREATE TABLE knowledge_bases ( id UUID PRIMARY KEY, tenant_id UUID NOT NULL, user_id UUID NOT NULL, name VARCHAR(255), description TEXT, chunk_strategy VARCHAR(50) DEFAULT 'semantic', embedding_model VARCHAR(255), total_documents INTEGER DEFAULT 0, total_chunks INTEGER DEFAULT 0, created_at TIMESTAMP DEFAULT NOW() ); CREATE TABLE documents ( id UUID PRIMARY KEY, kb_id UUID REFERENCES knowledge_bases(id), tenant_id UUID NOT NULL, filename VARCHAR(500), file_type VARCHAR(50), storage_path TEXT, chunk_count INTEGER, status VARCHAR(50) DEFAULT 'processing', metadata JSONB DEFAULT '{}', created_at TIMESTAMP DEFAULT NOW() ); CREATE TABLE document_chunks ( id UUID PRIMARY KEY, doc_id UUID REFERENCES documents(id), tenant_id UUID NOT NULL, content TEXT NOT NULL, embedding VECTOR(1536), chunk_index INTEGER, metadata JSONB DEFAULT '{}' ); -- ============ Hub ้›†ๅธ‚ ============ CREATE TABLE hub_assets ( id UUID PRIMARY KEY, type VARCHAR(50) NOT NULL, -- skill | mcp_server | agent | application name VARCHAR(255) NOT NULL, slug VARCHAR(255) UNIQUE, description TEXT, author_id UUID REFERENCES users(id), version VARCHAR(50) DEFAULT '1.0.0', category VARCHAR(100), tags TEXT[], pricing_model VARCHAR(50), price DECIMAL(10,4) DEFAULT 0, status VARCHAR(50) DEFAULT 'draft', -- draft | pending_review | approved | published | suspended download_count INTEGER DEFAULT 0, rating_avg DECIMAL(3,1) DEFAULT 0, rating_count INTEGER DEFAULT 0, deployment_config JSONB, security_scan_result JSONB, created_at TIMESTAMP DEFAULT NOW(), published_at TIMESTAMP ); CREATE TABLE hub_asset_versions ( id UUID PRIMARY KEY, asset_id UUID REFERENCES hub_assets(id), version VARCHAR(50) NOT NULL, changelog TEXT, artifact_url TEXT, docker_image TEXT, is_latest BOOLEAN DEFAULT FALSE, created_at TIMESTAMP DEFAULT NOW() ); CREATE TABLE hub_transactions ( id UUID PRIMARY KEY, buyer_id UUID REFERENCES users(id), asset_id UUID REFERENCES hub_assets(id), transaction_type VARCHAR(50), -- purchase | subscription | usage amount DECIMAL(10,4), platform_fee DECIMAL(10,4), developer_earnings DECIMAL(10,4), stripe_payment_id VARCHAR(255), created_at TIMESTAMP DEFAULT NOW() ); -- ============ ็”จ้‡ไธŽ่ฎก่ดน ============ CREATE TABLE usage_records ( id UUID PRIMARY KEY, tenant_id UUID NOT NULL, user_id UUID, service_type VARCHAR(50), -- chat | skill | mcp | agent | storage asset_id UUID, model_name VARCHAR(255), input_tokens BIGINT DEFAULT 0, output_tokens BIGINT DEFAULT 0, cost_usd DECIMAL(10,6) DEFAULT 0, request_id UUID, created_at TIMESTAMP DEFAULT NOW() ); -- ============ Agent ็ผ–ๆŽ’ ============ CREATE TABLE agents ( id UUID PRIMARY KEY, tenant_id UUID NOT NULL, creator_id UUID REFERENCES users(id), name VARCHAR(255), description TEXT, graph_definition JSONB NOT NULL, -- LangGraph ็Šถๆ€ๅ›พๅฎšไน‰ system_prompt TEXT, model_config JSONB, skill_bindings UUID[], mcp_bindings UUID[], is_published BOOLEAN DEFAULT FALSE, created_at TIMESTAMP DEFAULT NOW() ); -- ============ ๅฏน่ฏ ============ CREATE TABLE conversations ( id UUID PRIMARY KEY, tenant_id UUID NOT NULL, user_id UUID NOT NULL, title VARCHAR(500), agent_id UUID REFERENCES agents(id), context_summary TEXT, -- ้•ฟๅฏน่ฏๅŽ‹็ผฉๆ‘˜่ฆ message_count INTEGER DEFAULT 0, total_tokens BIGINT DEFAULT 0, created_at TIMESTAMP DEFAULT NOW(), updated_at TIMESTAMP DEFAULT NOW() ); CREATE TABLE messages ( id UUID PRIMARY KEY, conversation_id UUID REFERENCES conversations(id), tenant_id UUID NOT NULL, role VARCHAR(20), -- user | assistant | system | tool content TEXT, metadata JSONB DEFAULT '{}', token_count INTEGER DEFAULT 0, created_at TIMESTAMP DEFAULT NOW() ); -- ============ ่กŒ็บงๅฎ‰ๅ…จ็ญ–็•ฅ ============ ALTER TABLE memory_episodic ENABLE ROW LEVEL SECURITY; CREATE POLICY tenant_isolation ON memory_episodic USING (tenant_id = current_setting('app.current_tenant')::UUID); -- ๅฏนๆ‰€ๆœ‰็งŸๆˆท่กจ้‡ๅคๆญคๆจกๅผ ``` --- ## ๅ…ซใ€้กน็›ฎ็›ฎๅฝ•็ป“ๆž„ ``` ai-hub-platform/ โ”œโ”€โ”€ apps/ โ”‚ โ”œโ”€โ”€ web/ # Next.js ๅ‰็ซฏ โ”‚ โ”‚ โ”œโ”€โ”€ app/ โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ (auth)/ # ็™ปๅฝ•/ๆณจๅ†Œ/SSO โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ (dashboard)/ # ไธปๆŽงๅฐ โ”‚ โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ chat/ # AI ๅฏน่ฏ โ”‚ โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ knowledge/ # ็Ÿฅ่ฏ†ๅบ“็ฎก็† โ”‚ โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ agents/ # Agent ็ฎก็† โ”‚ โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ memory/ # ่ฎฐๅฟ†ๅฏ่ง†ๅŒ– โ”‚ โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ settings/ # ็”จๆˆท่ฎพ็ฝฎ โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ hub/ # ่ƒฝๅŠ›้›†ๅธ‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ skills/ โ”‚ โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ mcp/ โ”‚ โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ agents/ โ”‚ โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ apps/ โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ studio/ # Agent ็”ปๅธƒ็ผ–่พ‘ๅ™จ โ”‚ โ”‚ โ”œโ”€โ”€ components/ โ”‚ โ”‚ โ”œโ”€โ”€ lib/ โ”‚ โ”‚ โ””โ”€โ”€ package.json โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ api/ # NestJS ไธปๅŽ็ซฏ โ”‚ โ”‚ โ”œโ”€โ”€ src/ โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ modules/ โ”‚ โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ auth/ # ่ฎค่ฏๆจกๅ— โ”‚ โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ user/ # ็”จๆˆท็ฎก็† โ”‚ โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ tenant/ # ็งŸๆˆท็ฎก็† โ”‚ โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ memory/ # ่ฎฐๅฟ†ๅผ•ๆ“Ž โ”‚ โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ knowledge/ # ็Ÿฅ่ฏ†ๅบ“ โ”‚ โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ conversation/ # ๅฏน่ฏ็ฎก็† โ”‚ โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ agent/ # Agent ็ผ–ๆŽ’ โ”‚ โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ hub/ # ้›†ๅธ‚ๆ ธๅฟƒ โ”‚ โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ billing/ # ่ฎก่ดน โ”‚ โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ gateway/ # API ็ฝ‘ๅ…ณ โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ shared/ โ”‚ โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ middleware/ โ”‚ โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ guards/ โ”‚ โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ interceptors/ โ”‚ โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ decorators/ โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ main.ts โ”‚ โ”‚ โ””โ”€โ”€ package.json โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ ai-engine/ # Python AI ๅผ•ๆ“Ž โ”‚ โ”œโ”€โ”€ src/ โ”‚ โ”‚ โ”œโ”€โ”€ memory_engine/ # ่ฎฐๅฟ†็ณป็ปŸ โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ perception.py โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ distillation.py โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ association.py โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ consolidation.py โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ reflection.py โ”‚ โ”‚ โ”œโ”€โ”€ retrieval/ # ๆททๅˆๆฃ€็ดข โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ vector_store.py โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ bm25_index.py โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ hybrid_search.py โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ reranker.py โ”‚ โ”‚ โ”œโ”€โ”€ agent_runtime/ # Agent ๆ‰ง่กŒ โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ coordinator.py โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ planner.py โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ executor.py โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ tool_registry.py โ”‚ โ”‚ โ”œโ”€โ”€ model_router/ # ๆจกๅž‹่ทฏ็”ฑ โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ litellm_wrapper.py โ”‚ โ”‚ โ””โ”€โ”€ pipelines/ โ”‚ โ”‚ โ”œโ”€โ”€ ingest.py # ๆ–‡ๆกฃ ingestion โ”‚ โ”‚ โ””โ”€โ”€ embed.py # ๅ‘้‡ๅŒ– โ”‚ โ”œโ”€โ”€ pyproject.toml โ”‚ โ””โ”€โ”€ Dockerfile โ”‚ โ”œโ”€โ”€ packages/ # ๅ…ฑไบซๅŒ… โ”‚ โ”œโ”€โ”€ sdk/ # ๅนณๅฐ SDK๏ผˆไพ›็ฌฌไธ‰ๆ–นๅบ”็”จๆŽฅๅ…ฅ๏ผ‰ โ”‚ โ”‚ โ”œโ”€โ”€ auth/ โ”‚ โ”‚ โ”œโ”€โ”€ billing/ โ”‚ โ”‚ โ”œโ”€โ”€ memory/ โ”‚ โ”‚ โ””โ”€โ”€ model-router/ โ”‚ โ”œโ”€โ”€ ui-kit/ # ๅ…ฑไบซ UI ็ป„ไปถ โ”‚ โ”œโ”€โ”€ config/ # ๅ…ฑไบซ้…็ฝฎ/่ง„่Œƒ โ”‚ โ””โ”€โ”€ types/ # ๅ…ฑไบซ TS ็ฑปๅž‹ๅฎšไน‰ โ”‚ โ”œโ”€โ”€ infra/ # ๅŸบ็ก€่ฎพๆ–ฝ โ”‚ โ”œโ”€โ”€ docker/ โ”‚ โ”‚ โ”œโ”€โ”€ docker-compose.dev.yaml โ”‚ โ”‚ โ”œโ”€โ”€ docker-compose.prod.yaml โ”‚ โ”‚ โ””โ”€โ”€ Dockerfile.*.tpl โ”‚ โ”œโ”€โ”€ k8s/ โ”‚ โ”‚ โ”œโ”€โ”€ helm-charts/ โ”‚ โ”‚ โ”œโ”€โ”€ manifests/ โ”‚ โ”‚ โ””โ”€โ”€ kustomize/ โ”‚ โ”œโ”€โ”€ pulumi/ # IaC (Pulumi) โ”‚ โ”‚ โ”œโ”€โ”€ index.ts โ”‚ โ”‚ โ””โ”€โ”€ Pulumi.yaml โ”‚ โ””โ”€โ”€ monitoring/ โ”‚ โ”œโ”€โ”€ prometheus/ โ”‚ โ”œโ”€โ”€ grafana/ โ”‚ โ””โ”€โ”€ otel-collector/ โ”‚ โ”œโ”€โ”€ services/ # ็‹ฌ็ซ‹ๅพฎๆœๅŠก โ”‚ โ”œโ”€โ”€ mcp-gateway/ # MCP ๅ่ฎฎ็ฝ‘ๅ…ณ โ”‚ โ”œโ”€โ”€ deployment-engine/ # GitHub โ†’ Docker ่‡ชๅŠจ้ƒจ็ฝฒ โ”‚ โ”œโ”€โ”€ review-bot/ # ่‡ชๅŠจๅฎกๆ ธๆœๅŠก โ”‚ โ””โ”€โ”€ billing-engine/ # ่ฎก่ดนๅผ•ๆ“Ž โ”‚ โ”œโ”€โ”€ .github/ โ”‚ โ””โ”€โ”€ workflows/ # CI/CD โ”‚ โ”œโ”€โ”€ ci.yaml โ”‚ โ”œโ”€โ”€ deploy-staging.yaml โ”‚ โ””โ”€โ”€ deploy-prod.yaml โ”‚ โ”œโ”€โ”€ docs/ # ๆ–‡ๆกฃ โ”‚ โ”œโ”€โ”€ architecture/ โ”‚ โ”œโ”€โ”€ api/ โ”‚ โ”œโ”€โ”€ developer-guide/ โ”‚ โ””โ”€โ”€ sdk-docs/ โ”‚ โ”œโ”€โ”€ pnpm-workspace.yaml โ”œโ”€โ”€ package.json โ”œโ”€โ”€ tsconfig.base.json โ””โ”€โ”€ README.md ``` --- ## ไนใ€ๅˆ†้˜ถๆฎตๅฎžๆ–ฝ่ทฏ็บฟๅ›พ ### Phase 1๏ผšMVP ๅบ•ๅบง๏ผˆ็ฌฌ 1-3 ๆœˆ๏ผ‰ **็›ฎๆ ‡**๏ผš่ท‘้€šๆ ธๅฟƒ้—ญ็Žฏโ€”โ€”็”จๆˆทๆณจๅ†Œ โ†’ ๅฏน่ฏ โ†’ ็Ÿฅ่ฏ†ๅบ“ โ†’ ่ฎฐๅฟ†็งฏ็ดฏ | ๅ‘จๆฌก | ไปปๅŠก | ไบงๅ‡บ | |------|------|------| | W1-2 | ้กน็›ฎๅˆๅง‹ๅŒ–ใ€Monorepo ๆญๅปบใ€CI/CD | ๅฏ่ฟ่กŒ็š„็ฉบ้ชจๆžถ | | W3-4 | ็”จๆˆท่ฎค่ฏ๏ผˆKeycloak ้›†ๆˆ๏ผ‰ใ€็งŸๆˆท้š”็ฆป | ๆณจๅ†Œ/็™ปๅฝ•/SSO ๅฏ็”จ | | W5-6 | ๅฏน่ฏๅผ•ๆ“Ž๏ผˆLiteLLM + ๅŸบ็ก€ RAG๏ผ‰ | ๅฏๅฏน่ฏ + ็ฎ€ๅ•็Ÿฅ่ฏ†ๅบ“ | | W7-8 | ๅ‘้‡ๆฃ€็ดข๏ผˆQdrant ้›†ๆˆ๏ผ‰ใ€ๆ–‡ๆกฃไธŠไผ  | ็Ÿฅ่ฏ†ๅบ“่ฏญไน‰ๆฃ€็ดขๅฏ็”จ | | W9-10 | ่ฎฐๅฟ†ๅผ•ๆ“Ž V1๏ผˆๅฏน่ฏๆ‘˜่ฆ + ็”จๆˆท็”ปๅƒ๏ผ‰ | ่ทจไผš่ฏ่ฎฐๅฟ†็”Ÿๆ•ˆ | | W11-12 | ๅ‰็ซฏไธปๆŽงๅฐใ€่ฎก่ดนๅŸ‹็‚น | MVP ๅฏๆผ”็คบ | **ๆŠ€ๆœฏ้ชŒ่ฏๆธ…ๅ•**๏ผš - [ ] ็”จๆˆท A ไธŠไผ ๆ–‡ๆกฃ โ†’ ๅฏน่ฏๆ—ถ่ƒฝๆฃ€็ดขๅˆฐ็›ธๅ…ณๅ†…ๅฎน - [ ] ็”จๆˆท A ็š„ๅฏน่ฏ่ฎฐๅฟ†ไธไผšๆณ„้œฒ็ป™็”จๆˆท B๏ผˆ็งŸๆˆท้š”็ฆป้ชŒ่ฏ๏ผ‰ - [ ] ็”จๆˆท็ฌฌไบŒๆฌกๅฏน่ฏๆ—ถ๏ผŒAI ่ฎฐๅพ—ไน‹ๅ‰็š„ๅๅฅฝ - [ ] Token ๆถˆ่€—่ขซๆญฃ็กฎ่ฎก้‡ๅนถๅฑ•็คบ ### Phase 2๏ผšHub ้›†ๅธ‚ V1๏ผˆ็ฌฌ 4-6 ๆœˆ๏ผ‰ **็›ฎๆ ‡**๏ผšSkills ๅ’Œ MCP Server ๅฏๅ‘ๅธƒใ€ๅฏๅ‘็Žฐใ€ๅฏ่ฐƒ็”จ | ๅ‘จๆฌก | ไปปๅŠก | ไบงๅ‡บ | |------|------|------| | W13-14 | ้›†ๅธ‚ๅ‰็ซฏ๏ผˆๆต่งˆ/ๆœ็ดข/่ฏฆๆƒ…้กต๏ผ‰ | ๅ•†ๅบ— UI ไธŠ็บฟ | | W15-16 | Skill ๅ‘ๅธƒๆต็จ‹ + ๅฎกๆ ธๆตๆฐด็บฟ | ๅผ€ๅ‘่€…ๅฏไธŠไผ  Skill | | W17-18 | MCP Gateway + GitHub URL ่‡ชๅŠจ้ƒจ็ฝฒ | ่พ“ๅ…ฅ GitHub URL โ†’ ่‡ชๅŠจไธŠ็บฟ | | W19-20 | ไบคๆ˜“ๅผ•ๆ“Ž + Stripe ้›†ๆˆ | ไป˜่ดน Skill ๅฏ่ดญไนฐ | | W21-22 | ็‰ˆๆœฌ็ฎก็† + ่ฏ„ๅˆ†่ฏ„่ฎบ | ๅฎŒๆ•ด้›†ๅธ‚้—ญ็Žฏ | | W23-24 | ๅฎ‰ๅ…จๆ‰ซๆ + ๆฒ™็ฎฑๆต‹่ฏ•่‡ชๅŠจๅŒ– | ไธŠๆžถๅ‰่‡ชๅŠจๅฎกๆ ธ | ### Phase 3๏ผšAgent ็”ปๅธƒ + ่‡ช่ฟ›ๅŒ–๏ผˆ็ฌฌ 7-9 ๆœˆ๏ผ‰ **็›ฎๆ ‡**๏ผšๅฏ่ง†ๅŒ– Agent ็ผ–ๆŽ’ + ่ฎฐๅฟ†็ณป็ปŸๅ…จ้ข่‡ช่ฟ›ๅŒ– | ๅ‘จๆฌก | ไปปๅŠก | ไบงๅ‡บ | |------|------|------| | W25-26 | ้›†ๆˆ Langflow ไฝœไธบ Agent ็ผ–่พ‘ๅ™จ | ๆ‹–ๆ‹ฝๅผ Agent ็ผ–ๆŽ’ | | W27-28 | ๅคš Agent ๅไฝœ๏ผˆLangGraph ๅŽ็ซฏ๏ผ‰ | ๅคๆ‚ๅทฅไฝœๆตๅฏๆ‰ง่กŒ | | W29-30 | ่ฎฐๅฟ†ๅผ•ๆ“Ž V2๏ผˆๅๆ€/ๅทฉๅ›บ/้—ๅฟ˜๏ผ‰ | AI ่ถŠ็”จ่ถŠๆ‡‚ไฝ  | | W31-32 | ็”จๆˆท่ฎค็Ÿฅๆจกๅž‹๏ผˆ่กŒไธบๆจกๅผๅญฆไน ๏ผ‰ | ไธชๆ€งๅŒ–ๆŽจ่็”Ÿๆ•ˆ | | W33-34 | Agent ็”ปๅธƒๅฏผๅ‡บไธบ MCP Server | ๅˆ›ไฝœๅณๅฏๅˆ†ๅ‘ | | W35-36 | Eval ็ณป็ปŸ๏ผˆLangfuse ้›†ๆˆ๏ผ‰ | ่ดจ้‡ๅฏ้‡ๅŒ– | ### Phase 4๏ผšๅบ”็”จๅทฅๅŽ‚ + ่ง„ๆจกๅŒ–๏ผˆ็ฌฌ 10-12 ๆœˆ๏ผ‰ **็›ฎๆ ‡**๏ผš็ฌฌไธ‰ๆ–นๅบ”็”จๅฏไธ€้”ฎๆŽฅๅ…ฅ + ๅนณๅฐ่ง„ๆจกๅŒ– | ๅ‘จๆฌก | ไปปๅŠก | ไบงๅ‡บ | |------|------|------| | W37-38 | ๅนณๅฐ SDK ๅผ€ๅ‘๏ผˆAuth/Billing/Memory/Model๏ผ‰ | ๆ ‡ๅ‡†ๅŒ–ๆŽฅๅ…ฅๅทฅๅ…ทๅŒ… | | W39-40 | MuMuAINovel ๆŽฅๅ…ฅ็คบ่Œƒ๏ผˆๆ”น้€ ไธบๅนณๅฐๅบ”็”จ๏ผ‰ | ้ฆ–ไธชๆŽฅๅ…ฅๅบ”็”จไธŠ็บฟ | | W41-42 | ๅบ”็”จๅ•†ๅบ— UI + ่ฎข้˜…็ฎก็† | ๅบ”็”จๅฏไธŠๆžถ/่ดญไนฐ | | W43-44 | K8s ็”Ÿไบง้ƒจ็ฝฒ + ่‡ชๅŠจๆ‰ฉ็ผฉๅฎน | ๅฏๆ‰ฟ่ฝฝๅƒ็บงๅนถๅ‘ | | W45-46 | ็›‘ๆŽงๅ‘Š่ญฆ + SLA ไฟ้šœ | 99.9% ๅฏ็”จๆ€ง | | W47-48 | ๆ–‡ๆกฃๅฎŒๅ–„ + ๅผ€ๅ‘่€…็คพๅŒบๅฏๅŠจ | ๅผ€ๆ”พ็”Ÿๆ€ | --- ## ๅใ€็ป™้žๆŠ€ๆœฏๅˆ›ๅง‹ไบบ็š„ๆ‰ง่กŒๅปบ่ฎฎ ### 10.1 ๅ›ข้˜Ÿ้…็ฝฎๅปบ่ฎฎ | ่ง’่‰ฒ | ไบบๆ•ฐ | ่Œ่ดฃ | ไฝ•ๆ—ถ้œ€่ฆ | |------|------|------|---------| | **ๆŠ€ๆœฏๅˆไผ™ไบบ / ๆžถๆž„ๅธˆ** | 1 | ๆ•ดไฝ“ๆŠ€ๆœฏๅ†ณ็ญ–ใ€ไปฃ็ ๅฎกๆŸฅใ€ๅ…ณ้”ฎๆŠ€ๆœฏๆ”ปๅ…ณ | ็ฌฌ 1 ๅคฉ | | **ๅ…จๆ ˆๅทฅ็จ‹ๅธˆ** | 2-3 | Next.js + NestJS ๅ‰ๅŽ็ซฏๅผ€ๅ‘ | ็ฌฌ 1 ๆœˆ | | **Python/AI ๅทฅ็จ‹ๅธˆ** | 1-2 | ่ฎฐๅฟ†ๅผ•ๆ“Žใ€ๆฃ€็ดขใ€Agent ็ผ–ๆŽ’ | ็ฌฌ 2 ๆœˆ | | **DevOps ๅทฅ็จ‹ๅธˆ** | 1 | Docker/K8s/CI-CD/็›‘ๆŽง | ็ฌฌ 3 ๆœˆ | | **UI/UX ่ฎพ่ฎกๅธˆ** | 1 | ไบงๅ“่ฎพ่ฎกใ€ไบคไบ’่ฎพ่ฎก | ็ฌฌ 1 ๆœˆ | | **ๅฎ‰ๅ…จๅทฅ็จ‹ๅธˆ**๏ผˆๅ…ผ่Œ๏ผ‰ | 1 | ๅฎ‰ๅ…จๅฎก่ฎกใ€ๆธ—้€ๆต‹่ฏ• | ็ฌฌ 4 ๆœˆ | ### 10.2 AI ่พ…ๅŠฉๅผ€ๅ‘ๅทฅๅ…ทไฝฟ็”จๆŒ‡ๅ— ็”ฑไบŽไฝ ไฝฟ็”จ **Trea / WorkBuddy / Qoder**๏ผŒไปฅไธ‹ๆ˜ฏๆœ€ๅคงๅŒ–ๆ•ˆ็އ็š„ๆ–นๆณ•๏ผš ``` 1. ๆฏไธชๆจกๅ—็ป™ AI ๅทฅๅ…ทๆไพ›๏ผš โ”œโ”€โ”€ ๆœฌๆžถๆž„ๆ–‡ๆกฃ๏ผˆ่ฎฉๅฎƒ็†่งฃๅ…จๅฑ€๏ผ‰ โ”œโ”€โ”€ ๅฏนๅบ”ๆจกๅ—็š„่ฏฆ็ป† specs๏ผˆๅœจ docs/ ไธญ๏ผ‰ โ”œโ”€โ”€ ๆ ‡ๅ‡†ไปฃ็ ๆจกๆฟ๏ผˆๅœจ packages/config/ ไธญ๏ผ‰ โ””โ”€โ”€ ๆ˜Ž็กฎ็š„้ชŒๆ”ถๆ ‡ๅ‡†๏ผˆๅฏๆต‹่ฏ•็š„ checklist๏ผ‰ 2. ๆŽจ่ๅทฅไฝœๆต๏ผš ๆžถๆž„ๅธˆๅ‡บๆ–นๆกˆ โ†’ ไบงๅ“็ป็†ๅ†™ specs โ†’ AI ๅทฅๅ…ท็”Ÿๆˆไปฃ็  โ†’ ๅทฅ็จ‹ๅธˆๅฎกๆŸฅ+่ฐƒ่ฏ• 3. ๅ…ณ้”ฎๅŽŸๅˆ™๏ผš โ€ข AI ๅทฅๅ…ท็”Ÿๆˆไปฃ็ ๅŽ๏ผŒๅฟ…้กปไบบๅทฅๅฎกๆŸฅๅฎ‰ๅ…จ็›ธๅ…ณไปฃ็  โ€ข ๆ•ฐๆฎๅบ“ migration ๅฟ…้กปไบบๅทฅ็กฎ่ฎค โ€ข ๆ”ฏไป˜/่ฎก่ดนไปฃ็ ๅฟ…้กปๅŒไบบๅฎกๆŸฅ โ€ข ๆฏไธช PR ๅฟ…้กปๆœ‰ๆต‹่ฏ•่ฆ†็›– ``` ### 10.3 ๅ…ณ้”ฎๆŠ€ๆœฏ้ฃŽ้™ฉไธŽๅบ”ๅฏน | ้ฃŽ้™ฉ | ๅฝฑๅ“ | ๅบ”ๅฏน็ญ–็•ฅ | |------|------|---------| | ็งŸๆˆทๆ•ฐๆฎๆณ„้œฒ | ็พ้šพๆ€ง | ๅคšๅฑ‚้š”็ฆป + ๅฎšๆœŸๆธ—้€ๆต‹่ฏ• + RLS ๅฎก่ฎก | | AI ๆˆๆœฌๅคฑๆŽง | ่ต„้‡‘้ฃŽ้™ฉ | ไธฅๆ ผ้™ๆต + ๆจกๅž‹่ทฏ็”ฑไผ˜ๅŒ– + ็ผ“ๅญ˜ๅ‘ฝไธญ็އ็›‘ๆŽง | | ้›†ๅธ‚ๆถๆ„ไปฃ็  | ๅนณๅฐไฟก่ช‰ | ๅ››ๅฑ‚ๅฎกๆ ธ + ๆฒ™็ฎฑ้š”็ฆป + ็ดงๆ€ฅไธ‹ๆžถๆœบๅˆถ | | ๆจกๅž‹ไพ่ต–้ฃŽ้™ฉ | ไธšๅŠกไธญๆ–ญ | ๅคšๆจกๅž‹ๅค‡ไปฝ + LiteLLM ่‡ชๅŠจ้™็บง + ๆœฌๅœฐๆจกๅž‹ๅ…œๅบ• | | ่‡ช่ฟ›ๅŒ–ๅคฑๆŽง | ็”จๆˆทไฝ“้ชŒ | ่ฎฐๅฟ†่กฐๅ‡ + ็”จๆˆทๅฏๆŸฅ็œ‹/็ผ–่พ‘/ๅˆ ้™ค่ฎฐๅฟ† + ไบบๅทฅๅฎกๆ ธๆŽฅๅฃ | --- ## ๅไธ€ใ€ๆ ธๅฟƒ API ๆŽฅๅฃ่ฎพ่ฎก๏ผˆ็คบไพ‹๏ผ‰ ### 11.1 ๅฏน่ฏๆŽฅๅฃ ```typescript // POST /api/v1/chat/completions interface ChatRequest { conversation_id?: string; message: string; agent_id?: string; context?: { knowledge_base_ids?: string[]; skill_ids?: string[]; memory_enabled?: boolean; }; stream?: boolean; // SSE ๆตๅผ } interface ChatResponse { success: boolean; data: { message_id: string; content: string; reasoning_steps?: ReasoningStep[]; used_skills?: string[]; token_usage: { input: number; output: number; total_cost_usd: number; }; memory_updates?: MemoryUpdate[]; }; meta: { request_id: string; latency_ms: number; quota_remaining: number; }; } ``` ### 11.2 Hub ๅ‘ๅธƒๆŽฅๅฃ ```typescript // POST /api/v1/hub/assets/publish interface PublishRequest { type: 'skill' | 'mcp_server' | 'agent' | 'application'; name: string; description: string; source: { type: 'github_url' | 'upload' | 'platform_built'; url?: string; files?: UploadedFile[]; }; pricing: { model: 'free' | 'freemium' | 'paid' | 'subscription'; price?: number; free_quota?: number; }; metadata: { category: string; tags: string[]; permissions: string[]; }; } // ๅ“ๅบ” interface PublishResponse { success: boolean; data: { asset_id: string; status: 'pending_review' | 'auto_approved'; review_pipeline: { security_scan: 'queued' | 'running' | 'passed' | 'failed'; sandbox_test: 'queued' | 'running' | 'passed' | 'failed'; manual_review: 'pending' | 'approved' | 'rejected'; }; estimated_publish_time: string; }; } ``` ### 11.3 ่ฎฐๅฟ†ๆฃ€็ดขๆŽฅๅฃ ```typescript // GET /api/v1/memory/retrieve interface MemoryQuery { query: string; memory_types?: ('episodic' | 'semantic' | 'procedural')[]; top_k?: number; time_range?: { from: string; to: string }; min_relevance?: number; } // ๅ“ๅบ” interface MemoryRetrieveResponse { success: boolean; data: { memories: Array<{ id: string; type: string; content: string; relevance_score: number; created_at: string; source: string; // ๆฅ่‡ชๅ“ชๆฌกๅฏน่ฏ/ๅ“ชไธชๆ–‡ๆกฃ }>; synthesized_context: string; // AI ่‡ชๅŠจ็ปผๅˆ็š„ไธŠไธ‹ๆ–‡ๆ‘˜่ฆ }; } ``` --- ## ๅไบŒใ€ๆ€ป็ป“๏ผšๆŠ€ๆœฏๅ†ณ็ญ–ไธ€่งˆ | ๅ†ณ็ญ–็‚น | ้€‰ๆ‹ฉ | ็†็”ฑ๏ผˆไธ€ๅฅ่ฏ๏ผ‰ | |--------|------|---------------| | ๅ‰็ซฏๆก†ๆžถ | Next.js 18 | ๅ…จๆ ˆไธ€ไฝ“ใ€SSRใ€็”Ÿๆ€ๆœ€ๆˆ็†Ÿ | | ๅŽ็ซฏไธปๆก†ๆžถ | NestJS (TS) | ไธŽๅ‰็ซฏ็ปŸไธ€่ฏญ่จ€ใ€ๆจกๅ—ๅŒ–ๅผบใ€ไผไธš็บง | | AI/ML ๅผ•ๆ“Ž | Python (FastAPI) | AI ็”Ÿๆ€ๅ‡ ไนŽๅ…จๆ˜ฏ Python | | ๆ•ฐๆฎๅบ“ | PostgreSQL 18 + pgvector | ๅ…ณ็ณป + ๅ‘้‡ไธ€ไฝ“ใ€RLS ๅคฉ็„ถๅคš็งŸๆˆท | | ๅ‘้‡ๆ•ฐๆฎๅบ“ | Qdrant | ๅคš็งŸๆˆทๅ‘ฝๅ็ฉบ้—ดใ€Rust ๆ€ง่ƒฝใ€ๅผ€ๆบ | | ็ผ“ๅญ˜/้˜Ÿๅˆ— | Redis 7 Cluster | ็ผ“ๅญ˜/ไผš่ฏ/้™ๆต/ๆถˆๆฏ ๅ››ไฝไธ€ไฝ“ | | ๅˆ†ๆžๅผ•ๆ“Ž | ClickHouse | ๆตท้‡ๆ—ฅๅฟ—/็”จ้‡ๅˆ†ๆžใ€Langfuse ้ชŒ่ฏ่ฟ‡ | | ่บซไปฝ่ฎค่ฏ | Keycloak | ไผไธš็บง SSOใ€ๅคš็งŸๆˆทใ€ๅผ€ๆบๅฏๆŽง | | ๆจกๅž‹็ฝ‘ๅ…ณ | LiteLLM Proxy | ็ปŸไธ€ๆ ผๅผใ€ๆ™บ่ƒฝ่ทฏ็”ฑใ€ๅ†…็ฝฎ่ฎก่ดน | | Agent ็ผ–ๆŽ’ | LangGraph + Langflow | ็ผ–็จ‹ๅผ + ๅฏ่ง†ๅŒ–ๅŒๆจกๅผ | | ๅฎนๅ™จ็ผ–ๆŽ’ | Docker โ†’ K8s | ๆธ่ฟ›ๅผๆผ”่ฟ›ใ€่กŒไธšๆ ‡ๅ‡† | | ๅฏ่ง‚ๆต‹ๆ€ง | OpenTelemetry + Langfuse | ๅ…จ้“พ่ทฏ่ฟฝ่ธชใ€AI ไธ“้กนๆŒ‡ๆ ‡ | | ๆ”ฏไป˜ | Stripe + ๅพฎไฟก/ๆ”ฏไป˜ๅฎ | ๅ…จ็ƒ่ฆ†็›– + ๅ›ฝๅ†…ๅˆ่ง„ | | CI/CD | GitHub Actions + ArgoCD | GitOps ๆœ€ไฝณๅฎž่ทต | | IaC | Pulumi (TS) | ็”จ TypeScript ๅ†™ๅŸบ็ก€่ฎพๆ–ฝ | --- > **ๆœ€ๅŽ็š„่ฏ**๏ผš่ฟ™ไปฝๆžถๆž„่ฎพ่ฎก็š„ๆ ธๅฟƒ็†ๅฟตๆ˜ฏโ€”โ€”**ไธ่ฆ้‡ๅค้€ ่ฝฎๅญ๏ผŒไฝ†่ฆๆŽŒๆก่ฝฎๅญ็š„ๆŽฅๅฃ**ใ€‚ๆ‰€ๆœ‰่ƒฝๅ€Ÿ็”จ็š„ๅผ€ๆบ้กน็›ฎ้ƒฝๅทฒ็ปๆ ‡ๆณจ๏ผŒไฝ ็š„ๅ›ข้˜Ÿๅบ”่ฏฅไธ“ๆณจไบŽ**ไธšๅŠก้€ป่พ‘ใ€็”จๆˆทไฝ“้ชŒๅ’Œ็”Ÿๆ€ๅปบ่ฎพ**๏ผŒ่€Œไธๆ˜ฏๅบ•ๅฑ‚ๅŸบ็ก€่ฎพๆ–ฝ็š„้‡ๅคๅผ€ๅ‘ใ€‚ > > ็”จ AI ็ผ–็จ‹ๅทฅๅ…ท๏ผˆTrea/WorkBuddy/Qoder๏ผ‰ๆ—ถ๏ผŒๆŠŠ่ฟ™ไปฝๆ–‡ๆกฃไฝœไธบใ€Œ็ณป็ปŸไธŠไธ‹ๆ–‡ใ€ๅ–‚็ป™ AI๏ผŒๅฎƒ่ƒฝ็”Ÿๆˆๆ›ด็ฌฆๅˆๆ•ดไฝ“ๆžถๆž„็š„ไปฃ็ ใ€‚ๆฏไธ€ๆญฅ้ƒฝๅ…ˆๆœ‰่ฎพ่ฎกใ€ๅ†ๆœ‰ไปฃ็ ใ€ๆœ€ๅŽๆœ‰ๆต‹่ฏ•ใ€‚ > > **็ฅไฝ ็š„ AI Hub ๅนณๅฐๆ—ฉๆ—ฅไธŠ็บฟ๏ผ** ๐Ÿš€