Skip to content

daodao97/acpone

Folders and files

NameName
Last commit message
Last commit date

Latest commit

ย 

History

9 Commits
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 

Repository files navigation

ACPone

ๅŸบไบŽ ACP ๅ่ฎฎ - ๅŒๆ—ถ่ฐƒๅบฆๅคšไธช AI Agent ็š„ ChatBotใ€‚

ๅŠŸ่ƒฝ็‰นๆ€ง

  • ๅคš Agent ๆ”ฏๆŒ (Claude Code, Codex ็ญ‰)
  • ๅคšๅทฅไฝœๅŒบ็ฎก็†
  • ไผš่ฏๅކๅฒๆŒไน…ๅŒ–
  • ๅฎžๆ—ถๆตๅผๅ“ๅบ” (SSE)
  • ๆƒ้™็กฎ่ฎคๆœบๅˆถ
  • ๆทฑ่‰ฒ/ๆต…่‰ฒไธป้ข˜
  • ไธญ่‹ฑๆ–‡ๅˆ‡ๆข

้ข„่งˆ

ๅ‰็ฝฎไพ่ต–ๅฎ‰่ฃ…

้…็ฝฎไฝ ็š„ AI ไพ›ๅบ”ๅ•†, ๅŽๅณๅฏไฝฟ็”จ

ๆธ ้“้…็ฝฎ

่Šๅคฉ้กต้ข้ข„่งˆ

ๆžถๆž„ๅ›พ

โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”
โ”‚                         Browser (Vue 3 + TypeScript)                 โ”‚
โ”‚                                                                      โ”‚
โ”‚   โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”   โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”   โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”   โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”  โ”‚
โ”‚   โ”‚ Sidebar  โ”‚   โ”‚ ChatContainer โ”‚   โ”‚ ChatInput โ”‚   โ”‚ Settings โ”‚  โ”‚
โ”‚   โ”‚          โ”‚   โ”‚               โ”‚   โ”‚           โ”‚   โ”‚  Modal   โ”‚  โ”‚
โ”‚   โ”‚ Sessions โ”‚   โ”‚  Messages     โ”‚   โ”‚ @mentions โ”‚   โ”‚          โ”‚  โ”‚
โ”‚   โ”‚ Workspaceโ”‚   โ”‚  ToolCalls    โ”‚   โ”‚ /commands โ”‚   โ”‚ Agents   โ”‚  โ”‚
โ”‚   โ””โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”˜   โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜   โ””โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”˜   โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜  โ”‚
โ”‚        โ”‚                 โ”‚                 โ”‚                        โ”‚
โ”‚        โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜                        โ”‚
โ”‚                          โ–ผ                                          โ”‚
โ”‚                   โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”                                   โ”‚
โ”‚                   โ”‚ session.ts  โ”‚  State Management                 โ”‚
โ”‚                   โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”˜                                   โ”‚
โ”‚                          โ–ผ                                          โ”‚
โ”‚                   โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”                                   โ”‚
โ”‚                   โ”‚  api/       โ”‚  HTTP + Server-Sent Events        โ”‚
โ”‚                   โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”˜                                   โ”‚
โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜
                           โ”‚
                           โ”‚ HTTP / SSE
                           โ–ผ
โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”
โ”‚                          Go Backend                                   โ”‚
โ”‚                                                                       โ”‚
โ”‚   โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”  โ”‚
โ”‚   โ”‚                        HTTP Server                             โ”‚  โ”‚
โ”‚   โ”‚  /api/chat    /api/sessions    /api/agents    /api/workspaces โ”‚  โ”‚
โ”‚   โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜  โ”‚
โ”‚                               โ”‚                                       โ”‚
โ”‚          โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”                 โ”‚
โ”‚          โ–ผ                    โ–ผ                    โ–ผ                 โ”‚
โ”‚   โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”     โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”      โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”          โ”‚
โ”‚   โ”‚   Router    โ”‚     โ”‚  Session    โ”‚      โ”‚ Conversationโ”‚          โ”‚
โ”‚   โ”‚             โ”‚     โ”‚  Storage    โ”‚      โ”‚   Manager   โ”‚          โ”‚
โ”‚   โ”‚ @mention    โ”‚     โ”‚             โ”‚      โ”‚             โ”‚          โ”‚
โ”‚   โ”‚ keywords    โ”‚     โ”‚ ~/.config/  โ”‚      โ”‚  In-memory  โ”‚          โ”‚
โ”‚   โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”˜     โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜      โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜          โ”‚
โ”‚          โ”‚                                                           โ”‚
โ”‚          โ–ผ                                                           โ”‚
โ”‚   โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”   โ”‚
โ”‚   โ”‚                     Agent Manager                            โ”‚   โ”‚
โ”‚   โ”‚                                                              โ”‚   โ”‚
โ”‚   โ”‚   โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”   โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”   โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”       โ”‚   โ”‚
โ”‚   โ”‚   โ”‚   Agent 1   โ”‚   โ”‚   Agent 2   โ”‚   โ”‚   Agent N   โ”‚       โ”‚   โ”‚
โ”‚   โ”‚   โ”‚ (claude)    โ”‚   โ”‚  (codex)    โ”‚   โ”‚   (...)     โ”‚       โ”‚   โ”‚
โ”‚   โ”‚   โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”˜   โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”˜   โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”˜       โ”‚   โ”‚
โ”‚   โ”‚          โ”‚                 โ”‚                 โ”‚               โ”‚   โ”‚
โ”‚   โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜   โ”‚
โ”‚              โ”‚                 โ”‚                 โ”‚                    โ”‚
โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜
               โ”‚ JSON-RPC        โ”‚ JSON-RPC        โ”‚ JSON-RPC
               โ–ผ                 โ–ผ                 โ–ผ
        โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”   โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”   โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”
        โ”‚ claude-code โ”‚   โ”‚   codex     โ”‚   โ”‚    ...      โ”‚
        โ”‚  process    โ”‚   โ”‚  process    โ”‚   โ”‚  process    โ”‚
        โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜   โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜   โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜

ๆถˆๆฏๆต็จ‹ๅ›พ

็”จๆˆท่พ“ๅ…ฅๆถˆๆฏ
      โ”‚
      โ–ผ
โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”
โ”‚  ChatInput.vue  โ”‚  ๆฃ€ๆต‹ @mentions, /commands
โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜
         โ”‚
         โ–ผ
โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”
โ”‚  session.ts     โ”‚  commitStreamItems() + addUserMessage()
โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜
         โ”‚
         โ–ผ
โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”
โ”‚  api/index.ts   โ”‚  POST /api/chat (SSE)
โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜
         โ”‚
         โ–ผ
โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”
โ”‚  chat.go        โ”‚  ่งฃๆž่ฏทๆฑ‚, ่ทฏ็”ฑๅˆฐ Agent
โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜
         โ”‚
         โ–ผ
โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”
โ”‚  router.go      โ”‚  ๆ นๆฎ @mention/keywords ้€‰ๆ‹ฉ Agent
โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜
         โ”‚
         โ–ผ
โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”
โ”‚  manager.go     โ”‚  ่Žทๅ–ๆˆ–ๅฏๅŠจ Agent ่ฟ›็จ‹
โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜
         โ”‚
         โ–ผ
โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”
โ”‚  rpc.go         โ”‚  JSON-RPC ้€šไฟก
โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜
         โ”‚
         โ–ผ
โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”
โ”‚  Agent Process  โ”‚  ๅค„็†่ฏทๆฑ‚, ๆตๅผๅ“ๅบ”
โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜
         โ”‚
         โ”‚ events (message, tool_call, etc.)
         โ–ผ
โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”
โ”‚  chat.go        โ”‚  SSE ๆŽจ้€ๅˆฐๅ‰็ซฏ
โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜
         โ”‚
         โ–ผ
โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”
โ”‚  session.ts     โ”‚  addStreamingText() / addToolCall()
โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜
         โ”‚
         โ–ผ
โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”
โ”‚ ChatContainer   โ”‚  ๅฎžๆ—ถๆธฒๆŸ“ๆถˆๆฏๅ’Œๅทฅๅ…ท่ฐƒ็”จ
โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜

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

1. ๅฎ‰่ฃ…ไพ่ต–

# ๅ‰็ซฏ
cd web && npm install

# ๅŽ็ซฏ (Go 1.21+)
cd backend && go mod download

2. ้…็ฝฎ

้ฆ–ๆฌกๅฏๅŠจๆ—ถ๏ผŒๅฆ‚ๆžœๆฒกๆœ‰ๆ‰พๅˆฐ้…็ฝฎๆ–‡ไปถ๏ผŒไผš่‡ชๅŠจๅˆ›ๅปบ ~/.acpone/acpone.config.jsonใ€‚

ไฝ ไนŸๅฏไปฅๆ‰‹ๅŠจๅคๅˆถ้…็ฝฎๆ–‡ไปถ:

mkdir -p ~/.acpone
cp backend/acpone.config.example.json ~/.acpone/acpone.config.json

3. ๅผ€ๅ‘ๆจกๅผ

# ็ปˆ็ซฏ 1: ๅฏๅŠจๅŽ็ซฏ
cd backend && go run ./cmd/acpone

# ็ปˆ็ซฏ 2: ๅฏๅŠจๅ‰็ซฏ (็ƒญ้‡่ฝฝ)
cd web && npm run dev

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

4. ็”Ÿไบงๆž„ๅปบ

# ๆž„ๅปบๅตŒๅ…ฅๅผๅ•ๆ–‡ไปถ
cd web && npm run build:togo
cd ../backend && go build -o acpone ./cmd/acpone

# ่ฟ่กŒ
./acpone

่ฎฟ้—ฎ http://localhost:3000

้…็ฝฎ่ฏดๆ˜Ž

้…็ฝฎๆ–‡ไปถไฝ็ฝฎ

้…็ฝฎๆ–‡ไปถๆŒ‰ไปฅไธ‹้กบๅบๆœ็ดข๏ผˆไฝฟ็”จ็ฌฌไธ€ไธชๆ‰พๅˆฐ็š„๏ผ‰:

  1. ./acpone.config.json - ๅฝ“ๅ‰็›ฎๅฝ•
  2. ./acpone.json - ๅฝ“ๅ‰็›ฎๅฝ•
  3. ~/.acpone/acpone.config.json - ็”จๆˆท็›ฎๅฝ• (้ฆ–ๆฌกๅฏๅŠจ่‡ชๅŠจๅˆ›ๅปบ)
  4. ~/.config/acpone/config.json - XDG ้…็ฝฎ็›ฎๅฝ•

้…็ฝฎๆ ผๅผ

{
  "agents": [
    {
      "args": [
        "-y",
        "@zed-industries/claude-code-acp"
      ],
      "command": "npx",
      "env": {
        "ANTHROPIC_AUTH_TOKEN": "aicoding-xxxxx",
        "ANTHROPIC_BASE_URL": "https://api.aicoding.sh",
        "API_TIMEOUT_MS": "600000"
      },
      "id": "claude",
      "name": "Claude Code",
      "permissionMode": "default"
    },
    {
      "args": [
        "-y",
        "@zed-industries/codex-acp"
      ],
      "command": "npx",
      "env": {
        "OPENAI_API_KEY": "aicoding-xxxxx",
        "OPENAI_BASE_URL": "https://api.aicoding.sh/v1"
      },
      "id": "codex",
      "name": "Codex CLI",
      "permissionMode": "default"
    }
  ],
  "defaultAgent": "claude",
  "routing": {
    "keywords": {
      "@claude": "claude",
      "@codex": "codex"
    },
    "meta": true
  }
}

Agent ๆƒ้™ๆจกๅผ

  • default: ๆ•ๆ„Ÿๆ“ไฝœ้œ€่ฆ็”จๆˆท็กฎ่ฎค
  • bypass: ่‡ชๅŠจๆ‰นๅ‡†ๆ‰€ๆœ‰ๆ“ไฝœ (่ฐจๆ…Žไฝฟ็”จ)

่ทฏ็”ฑ่ง„ๅˆ™

  • @agent-id: ไฝฟ็”จ @ ๆŒ‡ๅฎš Agent
  • keywords: ๅ…ณ้”ฎ่ฏๅŒน้…่ทฏ็”ฑ
  • meta: ๅฏ็”จๅ…ƒ่ทฏ็”ฑ (Agent ๅฏไปฅ่ทฏ็”ฑๅˆฐๅ…ถไป– Agent)

ๆŠ€ๆœฏๆ ˆ

ๅ‰็ซฏ:

  • Vue 3 (Composition API)
  • TypeScript
  • Vite
  • markstream-vue (Markdown ๆธฒๆŸ“)

ๅŽ็ซฏ:

  • Go 1.21+
  • ๅ†…ๅตŒ้™ๆ€ๆ–‡ไปถ (go:embed)
  • JSON-RPC 2.0

License

MIT