Skip to content

lizhongxuan/aiops_codex

Folders and files

NameName
Last commit message
Last commit date

Latest commit

ย 

History

39 Commits
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 

Repository files navigation

AIOps Codex

AIOps Codex

AI-native ๆ™บ่ƒฝ่ฟ็ปดๅนณๅฐ โ€” ๅฐ† LLM ่ƒฝๅŠ›ๆทฑๅบฆ้›†ๆˆๅˆฐๆœๅŠกๅ™จ่ฟ็ปดๅ…จ้“พ่ทฏ

ๅฟซ้€Ÿๅผ€ๅง‹ ยท ๆ ธๅฟƒ็‰นๆ€ง ยท ๆžถๆž„ ยท ้ƒจ็ฝฒ ยท ๅผ€ๅ‘


็ฎ€ไป‹

AIOps Codex ๆ˜ฏไธ€ไธช้ขๅ‘็”Ÿไบง็Žฏๅขƒ็š„ AI ่ฟ็ปดๅนณๅฐ๏ผŒ้€š่ฟ‡ Chat / Workspace / Runner ไธ‰็งไบคไบ’ๆจกๅผ๏ผŒ่ฎฉ่ฟ็ปดๅทฅ็จ‹ๅธˆไปฅ่‡ช็„ถ่ฏญ่จ€้ฉฑๅŠจๆœๅŠกๅ™จๅทกๆฃ€ใ€ๆ•…้šœ่ฏŠๆ–ญใ€ๅ˜ๆ›ดๆ‰ง่กŒๅ’Œ็›‘ๆŽงๅˆ†ๆžใ€‚

ๅนณๅฐ้ป˜่ฎค้€š่ฟ‡ Bifrost LLM Gateway ่ฟžๆŽฅๆจกๅž‹ๆไพ›ๆ–น๏ผŒๆ”ฏๆŒ OpenAIใ€Anthropicใ€Ollama๏ผŒๅ†้€š่ฟ‡ Host Agent ๅฎ‰ๅ…จๆŽฅๅ…ฅ็›ฎๆ ‡ไธปๆœบ๏ผŒๆ‰€ๆœ‰ๅ˜ๆ›ดๆ“ไฝœ็ป่ฟ‡็ปŸไธ€ๅฎกๆ‰นๅฎก่ฎก๏ผŒ็กฎไฟ AI ่พ…ๅŠฉ่ฟ็ปด็š„ๅฏๆŽงๆ€งๅ’Œๅฏ่ฟฝๆบฏๆ€งใ€‚

ๆ ธๅฟƒ็‰นๆ€ง

๐Ÿค– AI ้ฉฑๅŠจ็š„่ฟ็ปดไบคไบ’

  • Chat ๆจกๅผ โ€” ่‡ช็„ถ่ฏญ่จ€ๅฏน่ฏ๏ผŒAI ่‡ชๅŠจ้€‰ๆ‹ฉๅทฅๅ…ทๆ‰ง่กŒ่ฟ็ปดๆ“ไฝœ
  • Workspace ๅไฝœ โ€” ๅคšไธปๆœบ็ผ–ๆŽ’๏ผŒๆ”ฏๆŒ Planner โ†’ Worker ไปปๅŠกๅˆ†่งฃ
  • Runner ่„šๆœฌ โ€” ๅฏๅค็”จ็š„่‡ชๅŠจๅŒ–่„šๆœฌ๏ผŒๅธฆๅ‚ๆ•ฐ schema ๅ’Œ dry-run ้ข„่งˆ

๐Ÿ” ๆฒป็†ไธŽๅฎกๆ‰น

  • ็ปŸไธ€ๅฎกๆ‰นๆต โ€” ๆ‰€ๆœ‰ๅ˜ๆ›ดๅ‘ฝไปค็ปๅฎกๆ‰นๅŽๆ‰ง่กŒ๏ผŒๆ”ฏๆŒๆ‰‹ๅŠจๅฎกๆ‰นๅ’Œ่‡ชๅŠจๆ”พ่กŒ
  • ๅฎกๆ ธๆตๆฐด โ€” ็ป“ๆž„ๅŒ–ๅฎก่ฎกๆ—ฅๅฟ—๏ผŒๆ”ฏๆŒๆŒ‰ๆ—ถ้—ด/ไธปๆœบ/ๆ“ไฝœไบบ/ๅ†ณ็ญ–ๅคš็ปด็ญ›้€‰
  • ไธปๆœบ็บงๆŽˆๆƒ็™ฝๅๅ• โ€” ๅทฒๆŽˆๆƒๅ‘ฝไปค่‡ชๅŠจ้€š่ฟ‡๏ผŒๆ”ฏๆŒๆ’ค้”€ใ€็ฆ็”จใ€TTL ่ฟ‡ๆœŸ
  • ้ซ˜้ฃŽ้™ฉๅ‘ฝไปคๆ‹ฆๆˆช โ€” rm -rf /ใ€sudo su ็ญ‰ๅฑ้™ฉๅ‘ฝไปคๅผบๅˆถ่ฆๆฑ‚ TTL

๐Ÿ›ก๏ธ ไธ‰ๅฑ‚่ƒฝๅŠ›็ฝ‘ๅ…ณ

ๅฑ‚็บง ่ฏดๆ˜Ž ๅฎกๆ‰น็ญ–็•ฅ
Structured Read 14 ไธชๆ ‡ๅ‡†ๅŒ–ๅช่ฏปๆŽฅๅฃ (host.summary, host.process.top ็ญ‰) ๅ…ๅฎกๆ‰น
Controlled Mutation 5 ไธชๅ—ๆŽงๅ˜ๆ›ดๆŽฅๅฃ (service.restart, config.apply ็ญ‰) ๅผบๅˆถๅฎกๆ‰น
Raw Shell ๅŽŸๅง‹ๅ‘ฝไปคๆ‰ง่กŒๅ…œๅบ• ๆŒ‰็ญ–็•ฅๅฎกๆ‰น

๐Ÿ“Š Coroot ็›‘ๆŽง้›†ๆˆ

  • ๆœๅŠกๅฅๅบทๆ€ป่งˆ โ€” ๅตŒๅ…ฅ Coroot ๆœๅŠก่ง†ๅ›พ๏ผŒๅฎžๆ—ถๅฑ•็คบๅฅๅบท/ๅ‘Š่ญฆ/ๅผ‚ๅธธ็Šถๆ€
  • 7 ไธช MCP ๅŠจๆ€ๅทฅๅ…ท โ€” coroot.list_servicesใ€coroot.service_metricsใ€coroot.rca_report ็ญ‰
  • ็›‘ๆŽงๅ†…ๅตŒ AI โ€” ๅœจ็›‘ๆŽง้กต้ข็›ดๆŽฅ่ฐƒ็”จ AI ๅˆ†ๆž๏ผŒๆ”ฏๆŒ้ขๆฟ่งฃ้‡Šใ€ๅผ‚ๅธธๅฝ’ๅ› ใ€ไฟฎๅคๅปบ่ฎฎ
  • ๅก็‰‡ๆ˜ ๅฐ„ โ€” Coroot ๆŸฅ่ฏข็ป“ๆžœ่‡ชๅŠจๆ˜ ๅฐ„ไธบ็ป“ๆž„ๅŒ– UI ๅก็‰‡

๐Ÿงฉ ่ƒฝๅŠ›ไธญๅฟƒ

  • Skills ็ฎก็† โ€” ๅ†…็ฝฎ + ่‡ชๅฎšไน‰ๆŠ€่ƒฝ๏ผŒๆ”ฏๆŒๅˆ†็ฑปใ€็‰ˆๆœฌใ€ๅฏ็”จ/็ฆ็”จ
  • MCP Servers โ€” ็ปŸไธ€็ฎก็† MCP ๅทฅๅ…ทๆœๅŠก๏ผŒๆ”ฏๆŒๆŽขๆดปๅ’Œๆƒ้™ๆŽงๅˆถ
  • ่ƒฝๅŠ›็ป‘ๅฎš โ€” Skill/MCP ไธŽ Agent Profileใ€Workspace Presetใ€UI Card ็š„็ป‘ๅฎšๅ…ณ็ณป

๐ŸŽด UI ๅก็‰‡็ณป็ปŸ

  • 9 ็งๅ†…็ฝฎๅก็‰‡ โ€” ๆ‘˜่ฆๅกใ€KPI ๆกใ€ๆ—ถๅบๅ›พใ€็Šถๆ€่กจใ€ๆŽงๅˆถ้ขๆฟใ€ๆ“ไฝœ่กจๅ•ใ€็›‘ๆŽง่šๅˆใ€ไฟฎๅค่šๅˆ
  • ๅก็‰‡็ฎก็†ๅŽๅฐ โ€” ๅ…ƒๆ•ฐๆฎ็ผ–่พ‘ใ€่งฆๅ‘่ฐƒ่ฏ•ๅ™จใ€ๅฎžๆ—ถ้ข„่งˆ
  • Bundle ๆœบๅˆถ โ€” Monitor Bundle ๅ’Œ Remediation Bundle ่šๅˆๅคšๅก็‰‡

โš—๏ธ ๆฒ™็›’ๆผ”็ปƒ

  • Lab ็Žฏๅขƒ โ€” ๅˆ›ๅปบ้š”็ฆป็š„ๆฒ™็›’็Žฏๅขƒ๏ผŒๆจกๆ‹Ÿๅคš่Š‚็‚นๆ‹“ๆ‰‘
  • ๅœบๆ™ฏๆจกๆฟ โ€” ้ข„็ฝฎๅŒๅฑ‚ๆžถๆž„ใ€ไธ‰ๅฑ‚ๅพฎๆœๅŠกใ€็ผ“ๅญ˜ๅฑ‚็ญ‰ๆ‹“ๆ‰‘ๆจกๆฟ
  • ๆ•…้šœๆณจๅ…ฅ โ€” ๅฏน mock ่Š‚็‚นๆณจๅ…ฅๆ•…้šœ๏ผŒ้ชŒ่ฏๅ‘Š่ญฆๅ“ๅบ”ๅ’Œไฟฎๅคๆต็จ‹
  • v1 Mock ๆจกๅผ โ€” ๅ‰็ซฏๅฏๆญฃๅธธๆธฒๆŸ“ bundle ๅ’Œ control panel๏ผŒๅ‘ฝไปค่ฟ”ๅ›žๆจกๆ‹Ÿ็ป“ๆžœ

๐Ÿญ Generator Workshop

  • ่‡ชๅŠจ็”Ÿๆˆ โ€” ไปŽ MCP Tool โ†’ Skill ่‰็จฟใ€Script Config โ†’ UI Card ่‰็จฟใ€Coroot โ†’ Bundle Preset ่‰็จฟ
  • 4 ๆญฅๆต็จ‹ โ€” Generate โ†’ Lint โ†’ Preview โ†’ Publish Draft
  • ่‰็จฟ้š”็ฆป โ€” ๆ‰€ๆœ‰็”Ÿๆˆ็‰ฉ้ป˜่ฎค draft ็Šถๆ€๏ผŒไธ่‡ชๅŠจไธŠ็บฟ

ๆžถๆž„ๆฆ‚่งˆ

โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”
โ”‚                        Web Dashboard                         โ”‚
โ”‚   Vue 3 + Pinia + Vue Router + Lucide Icons                  โ”‚
โ”‚   Chat โ”‚ Workspace โ”‚ Terminal โ”‚ ็›‘ๆŽง โ”‚ ็ฎก็†ๅŽๅฐ               โ”‚
โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜
                         โ”‚ HTTP / WebSocket
โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ–ผโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”
โ”‚                     AI Server (Go)                           โ”‚
โ”‚                                                              โ”‚
โ”‚  โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ” โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ” โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ” โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”  โ”‚
โ”‚  โ”‚ Session  โ”‚ โ”‚ Approval โ”‚ โ”‚ Dynamic  โ”‚ โ”‚  Orchestrator โ”‚  โ”‚
โ”‚  โ”‚ Manager  โ”‚ โ”‚ & Audit  โ”‚ โ”‚  Tools   โ”‚ โ”‚  (Workspace)  โ”‚  โ”‚
โ”‚  โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜ โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜ โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜ โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜  โ”‚
โ”‚  โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ” โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ” โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ” โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”  โ”‚
โ”‚  โ”‚  Agent   โ”‚ โ”‚  Coroot  โ”‚ โ”‚ UI Card  โ”‚ โ”‚   Generator   โ”‚  โ”‚
โ”‚  โ”‚ Profile  โ”‚ โ”‚  Client  โ”‚ โ”‚  Store   โ”‚ โ”‚   Service     โ”‚  โ”‚
โ”‚  โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜ โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜ โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜ โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜  โ”‚
โ”‚                         โ”‚                                    โ”‚
โ”‚              Bifrost provider routing                        โ”‚
โ”‚                         โ–ผ                                    โ”‚
โ”‚               Bifrost LLM Gateway (Go)                        โ”‚
โ”‚                         โ”‚                                    โ”‚
โ”‚        OpenAI / Anthropic / Ollama / OpenAI-compatible       โ”‚
โ”œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ค
โ”‚  HTTP :8080    gRPC :18090    Coroot Proxy :8080/coroot      โ”‚
โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜
             โ”‚ gRPC ๅŒๅ‘ๆต              โ”‚ HTTP Reverse Proxy
โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ–ผโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”    โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ–ผโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”
โ”‚    Host Agent (Go)    โ”‚    โ”‚     Coroot Server (ๅค–้ƒจ)        โ”‚
โ”‚  ๆฏๅฐ็›ฎๆ ‡ไธปๆœบไธ€ไธชๅฎžไพ‹   โ”‚    โ”‚   ๆœๅŠก็›‘ๆŽง / ๆ‹“ๆ‰‘ / RCA         โ”‚
โ”‚  ็ปˆ็ซฏ / ๆ‰ง่กŒ / ๆ–‡ไปถ    โ”‚    โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜
โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜

ๆŠ€ๆœฏๆ ˆ

ๅฑ‚็บง ๆŠ€ๆœฏ
ๅ‰็ซฏ Vue 3, Pinia, Vue Router, Lucide Icons, Monaco Editor, xterm.js
ๅŽ็ซฏ Go 1.26, gRPC, net/http
AI ๅผ•ๆ“Ž Bifrost LLM Gateway, ๆ”ฏๆŒ OpenAI / Anthropic / Ollama
็›‘ๆŽง้›†ๆˆ Coroot (HTTP Client + Reverse Proxy)
ๆŒไน…ๅŒ– JSON ๆ–‡ไปถ (ๅ†…ๅญ˜ + ๅผ‚ๆญฅๅ†™็›˜, sync.RWMutex)
ๆต‹่ฏ• Vitest, Playwright, Go testing
้ƒจ็ฝฒ Docker, Docker Compose, systemd

้กน็›ฎ็ป“ๆž„

aiops-codex/
โ”œโ”€โ”€ cmd/
โ”‚   โ”œโ”€โ”€ ai-server/          # AI Server ไธปๅ…ฅๅฃ
โ”‚   โ””โ”€โ”€ host-agent/         # Host Agent ไธปๅ…ฅๅฃ
โ”œโ”€โ”€ internal/
โ”‚   โ”œโ”€โ”€ bifrost/            # ๅคš provider LLM Gateway
โ”‚   โ”œโ”€โ”€ agentloop/          # Bifrost ReAct loop / context / workspace runtime
โ”‚   โ”œโ”€โ”€ server/             # HTTP/gRPC ๆœๅŠกใ€API ่ทฏ็”ฑใ€ๅฎกๆ‰นๆต็จ‹
โ”‚   โ”œโ”€โ”€ store/              # ๅ†…ๅญ˜ๅญ˜ๅ‚จ + JSON ๆŒไน…ๅŒ–
โ”‚   โ”œโ”€โ”€ model/              # ๆ•ฐๆฎๆจกๅž‹ๅฎšไน‰
โ”‚   โ”œโ”€โ”€ config/             # ้…็ฝฎ็ฎก็†
โ”‚   โ”œโ”€โ”€ coroot/             # Coroot HTTP ๅฎขๆˆท็ซฏ
โ”‚   โ”œโ”€โ”€ generator/          # Skill/Card/Bundle ่‡ชๅŠจ็”ŸๆˆๆœๅŠก
โ”‚   โ”œโ”€โ”€ orchestrator/       # Workspace ็ผ–ๆŽ’ๅผ•ๆ“Ž
โ”‚   โ””โ”€โ”€ agentrpc/           # gRPC ๅ่ฎฎๅฎšไน‰
โ”œโ”€โ”€ web/
โ”‚   โ”œโ”€โ”€ src/
โ”‚   โ”‚   โ”œโ”€โ”€ pages/          # 16 ไธช Vue ้กต้ข
โ”‚   โ”‚   โ”œโ”€โ”€ components/     # ๅฏๅค็”จ็ป„ไปถ (Coroot Embed, Monitor AI ็ญ‰)
โ”‚   โ”‚   โ”œโ”€โ”€ lib/            # ๅทฅๅ…ทๅบ“ (MCP Bundle Resolver ็ญ‰)
โ”‚   โ”‚   โ””โ”€โ”€ store.js        # Pinia ๅ…จๅฑ€็Šถๆ€
โ”‚   โ””โ”€โ”€ tests/
โ”‚       โ”œโ”€โ”€ *.spec.js       # Vitest ็ป„ไปถๆต‹่ฏ• (24 ไธชๆ–‡ไปถ, 151 ๆต‹่ฏ•)
โ”‚       โ””โ”€โ”€ e2e/            # Playwright E2E ๆต‹่ฏ• (6 ไธชๆ–‡ไปถ, 55 ๆต‹่ฏ•)
โ”œโ”€โ”€ deploy/docker/          # Docker ๆž„ๅปบๅ’Œ็ผ–ๆŽ’
โ”œโ”€โ”€ proto/                  # Protobuf ๅฎšไน‰
โ”œโ”€โ”€ docs/                   # ๆžถๆž„ๆ–‡ๆกฃ
โ””โ”€โ”€ scripts/                # ่ฟ็ปด่„šๆœฌ

ๅฟซ้€Ÿๅผ€ๅง‹

ๅ‰็ฝฎๆกไปถ

  • Go 1.26+
  • Node.js 22+
  • Docker & Docker Compose (้ƒจ็ฝฒ็”จ)
  • LLM provider ๅ‡ญ่ฏๆˆ–ๆœฌๅœฐๆจกๅž‹ๆœๅŠก

ๆœฌๅœฐๅผ€ๅ‘

# ๅ…‹้š†ไป“ๅบ“
git clone https://github.com/lizhongxuan/aiops-codex.git
cd aiops-codex

# ๅฏๅŠจๅŽ็ซฏ
export LLM_PROVIDER=openai
export LLM_API_KEY=sk-xxx
go run ./cmd/ai-server

# ๅฏๅŠจๅ‰็ซฏ (ๅฆไธ€ไธช็ปˆ็ซฏ)
cd web
npm install
npm run dev

# ่ฎฟ้—ฎ http://localhost:5173

Docker ้ƒจ็ฝฒ

cd deploy/docker
cp .env.example .env
# ็ผ–่พ‘ .env ๅกซๅ…ฅ LLM_PROVIDER / LLM_API_KEY / LLM_BASE_URL ๅ’Œ HOST_AGENT_BOOTSTRAP_TOKEN

# OpenAI-compatible ๆœๅŠกๆˆ– Ollama ๅฏ้€š่ฟ‡ LLM_BASE_URL ๆŒ‡ๅฎš่‡ชๅฎšไน‰ๅœฐๅ€

docker compose build
docker compose up -d

# ่ฎฟ้—ฎ http://localhost:18080

่ฏฆ็ป†้ƒจ็ฝฒๆ–‡ๆกฃ่ง deploy/docker/README.mdใ€‚

API ๆฆ‚่งˆ

Prompt ่ง„ๅˆ™

ไธบ้ฟๅ… prompt ่ง„ๅˆ™ๅ†ๆฌกๆ•ฃ่ฝๅˆฐๅคšไธชๆ–‡ไปถ๏ผŒๅฝ“ๅ‰ไป“ๅบ“้ตๅพช่ฟ™็ป„็บฆๆŸ๏ผš

  • BuildSystemPrompt() ๅช่ดŸ่ดฃ้€š็”จ่บซไปฝใ€ๅฎ‰ๅ…จ่พน็•Œใ€ๅฎกๆ‰นไธŽๆฒ™็ฎฑ่ฏดๆ˜Ž๏ผŒไธๆ‰ฟ่ฝฝๅž‚็ฑปไธšๅŠก่ง„ๅˆ™ใ€‚
  • tool ็š„่ƒฝๅŠ›ใ€่พ“ๅ…ฅ้™ๅˆถใ€host/path/shell/approval ็บฆๆŸๅชๅ†™ๅœจ tool-owned prompt spec๏ผŒไธๅœจ developer instructions ้‡Œ้‡ๅคๅฑ•ๅผ€ใ€‚
  • TurnPolicy ๅชๆ่ฟฐ็ป“ๆž„ๅŒ–ๅˆๅŒ๏ผš
    • KnowledgeFreshness
    • EvidenceContract
    • AnswerContract
    • MinimumIndependentSources
    • RequireSourceAttribution
    • RequiredCitationKinds
    • AllowEarlyStop
  • ๅฝ“ๅ‰/ๅค–้ƒจ factual query ็š„่ฆๆฑ‚ๆŒ‰้€š็”จ freshness/evidence contract ๅˆคๆ–ญ๏ผŒไธๅ…่ฎธๅ†็ปดๆŠค่กŒไธšๆˆ–ๅธ‚ๅœบไธ“็”จๅ…ณ้”ฎ่ฏ็™ฝๅๅ•ใ€‚
  • completion/final-gate repair ๅชๅ…่ฎธ่ฏดๆ˜Žโ€œ็ผบไบ†ไป€ไนˆใ€ไธ‹ไธ€ๆญฅ่ฏฅ่ฐƒ็”จไป€ไนˆๅทฅๅ…ทโ€๏ผŒไธๅ…่ฎธๅ†ๆณจๅ…ฅ market-specific answer style๏ผŒไพ‹ๅฆ‚๏ผš
    • compact snapshot
    • 1-2 sources
    • answer now
  • ๆœ็ดข็ฑปๆœ€็ปˆๅ›ž็ญ”ๅฆ‚ๅ‘ฝไธญ sourced_snapshot ๆˆ– external_facts ๅˆๅŒ๏ผŒๅฟ…้กปๆปก่ถณ็‹ฌ็ซ‹ๆฅๆบๅ’Œๆฅๆบๅฝ’ๅ› ่ฆๆฑ‚๏ผ›่ฟ™็ฑป่ฆๆฑ‚็”ฑ TurnPolicy ๅ’Œ final gate ไฟ่ฏ๏ผŒไธ้  tool prose ไธดๆ—ถๅ…œๅบ•ใ€‚

ๅฆ‚ๆžœๅŽ็ปญ้œ€่ฆๆ–ฐๅขž prompt ่ง„ๅˆ™๏ผŒ่ฏทไผ˜ๅ…ˆๅˆคๆ–ญๅฎƒๅฑžไบŽ๏ผš

  1. ้€š็”จ system rule
  2. tool-owned contract
  3. TurnPolicy ็ป“ๆž„ๅŒ–็บฆๆŸ
  4. ๆžๅฐ‘ๆ•ฐ runtime repair

ไธ่ฆๆŠŠๅŒไธ€ๆก่ง„ๅˆ™ๅŒๆ—ถๅ†™่ฟ› system promptใ€developer instructionsใ€tool description ๅ’Œ loop nudgeใ€‚

ๆ ธๅฟƒ API

็ซฏ็‚น ๆ–นๆณ• ่ฏดๆ˜Ž
/api/v1/healthz GET ๅฅๅบทๆฃ€ๆŸฅ
/api/v1/state GET ๅ…จๅฑ€็Šถๆ€ๅฟซ็…ง
/api/v1/chat/message POST ๅ‘้€่Šๅคฉๆถˆๆฏ
/api/v1/approvals/{id} POST ๅฎกๆ‰นๅ†ณ็ญ–

ๅฎก่ฎกไธŽๆŽˆๆƒ

็ซฏ็‚น ๆ–นๆณ• ่ฏดๆ˜Ž
/api/v1/approval-audits GET ๅฎกๆ ธๆตๆฐดๅˆ—่กจ (ๆ”ฏๆŒ็ญ›้€‰/ๅˆ†้กต)
/api/v1/approval-audits/{id} GET ๅฎกๆ ธๆตๆฐด่ฏฆๆƒ…
/api/v1/approval-grants GET/POST ๆŽˆๆƒ็™ฝๅๅ•็ฎก็†
/api/v1/approval-grants/{id}/revoke POST ๆ’ค้”€ๆŽˆๆƒ
/api/v1/approval-grants/{id}/disable POST ็ฆ็”จๆŽˆๆƒ
/api/v1/approval-grants/{id}/enable POST ๅฏ็”จๆŽˆๆƒ

่ต„ๆบ็ฎก็†

็ซฏ็‚น ๆ–นๆณ• ่ฏดๆ˜Ž
/api/v1/capability-bindings CRUD ่ƒฝๅŠ›็ป‘ๅฎš็ฎก็†
/api/v1/ui-cards CRUD UI ๅก็‰‡ๅฎšไน‰็ฎก็†
/api/v1/ui-cards/{id}/preview POST ๅก็‰‡้ข„่งˆ
/api/v1/script-configs CRUD ่„šๆœฌ้…็ฝฎ็ฎก็†
/api/v1/script-configs/{id}/dry-run POST ่„šๆœฌ Dry-Run
/api/v1/lab-environments CRUD ๆฒ™็›’็Žฏๅขƒ็ฎก็†
/api/v1/lab-environments/{id}/start POST ๅฏๅŠจๆฒ™็›’
/api/v1/lab-environments/{id}/inject POST ๆ•…้šœๆณจๅ…ฅ
/api/v1/lab-environments/{id}/reset POST ้‡็ฝฎๆฒ™็›’

็›‘ๆŽงไธŽ็”Ÿๆˆ

็ซฏ็‚น ๆ–นๆณ• ่ฏดๆ˜Ž
/api/v1/coroot/* GET Coroot ๅๅ‘ไปฃ็† (ๅช่ฏป)
/api/v1/generator/generate POST ็”Ÿๆˆ Skill/Card ่‰็จฟ
/api/v1/generator/lint POST ๆ ก้ชŒ่‰็จฟ
/api/v1/generator/preview POST ้ข„่งˆ่‰็จฟ
/api/v1/generator/publish-draft POST ๅ‘ๅธƒ่‰็จฟ

ๆต‹่ฏ•

# Go ๅŽ็ซฏๆต‹่ฏ•
go test ./internal/... -count=1

# ๅ‰็ซฏ็ป„ไปถๆต‹่ฏ• (Vitest)
cd web && npm test

# ๅ‰็ซฏ E2E ๆต‹่ฏ• (Playwright)
cd web && npx playwright test

ๆต‹่ฏ•่ฆ†็›–

็ฑปๅˆซ ๆ–‡ไปถๆ•ฐ ๆต‹่ฏ•ๆ•ฐ
Go ๅ•ๅ…ƒๆต‹่ฏ• 20+ 80+
Vitest ็ป„ไปถๆต‹่ฏ• 24 151
Playwright E2E 6 55

Agent Profile ็ญ–็•ฅ

Agent Profile ๆŽงๅˆถ AI ็š„ๆƒ้™่พน็•Œ๏ผŒๅˆ†ไธบไธค็บง๏ผš

  • main-agent โ€” ๅ…จๅฑ€็ญ–็•ฅ๏ผŒๆŽงๅˆถๆ‰€ๆœ‰ไผš่ฏ็š„ๅŸบ็บฟๆƒ้™
  • host-agent-default โ€” ่ฟœ็จ‹ไธปๆœบ้ป˜่ฎค็ญ–็•ฅ๏ผŒไธŽ main-agent ๅ–ไบค้›†

็ญ–็•ฅ็ปดๅบฆ๏ผš

capabilityPermissions:
  commandExecution: enabled | approval_required | disabled
  fileRead: enabled
  fileChange: approval_required
  terminal: enabled

commandPermissions:
  defaultMode: allow | approval_required | readonly_only | deny
  allowSudo: false
  categoryPolicies:
    service_mutation: approval_required
    package_mutation: deny

ๅฎ‰ๅ…จ่ฎพ่ฎก

  • ๆ‰€ๆœ‰ๅ˜ๆ›ดๅ‘ฝไปค็ป็ปŸไธ€ๅฎกๆ‰นๆต็จ‹
  • Host Agent ้€š่ฟ‡ Bootstrap Token + ๅฏ้€‰ mTLS ่ฎค่ฏ
  • ็ป“ๆž„ๅŒ–ๆŽฅๅฃๅ‚ๆ•ฐๆ ก้ชŒ๏ผŒๆ‹’็ป shell ๆณจๅ…ฅ (;, &&, `, $( ็ญ‰)
  • ้ซ˜้ฃŽ้™ฉๅ‘ฝไปค (rm -rf /, sudo su, iptables -F) ็ฆๆญขๅˆ›ๅปบๆ—  TTL ๆŽˆๆƒ
  • Coroot ไปฃ็†ไป…ๅ…่ฎธๅช่ฏป่ทฏๅพ„๏ผŒGET ๆ–นๆณ•
  • ๆฒ™็›’็ŽฏๅขƒไธŽ็”ŸไบงๅฎŒๅ…จ้š”็ฆป๏ผŒmock host Kind="lab"
  • ๆ‰€ๆœ‰็”Ÿๆˆ็‰ฉ้ป˜่ฎค draft ็Šถๆ€๏ผŒไธ่‡ชๅŠจๅŠ ่ฝฝๆ‰ง่กŒ

License

MIT

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

Packages

Contributors

Languages