ๅบไบ 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 โ ๅฎๆถๆธฒๆๆถๆฏๅๅทฅๅ
ท่ฐ็จ
โโโโโโโโโโโโโโโโโโโ
# ๅ็ซฏ
cd web && npm install
# ๅ็ซฏ (Go 1.21+)
cd backend && go mod download้ฆๆฌกๅฏๅจๆถ๏ผๅฆๆๆฒกๆๆพๅฐ้
็ฝฎๆไปถ๏ผไผ่ชๅจๅๅปบ ~/.acpone/acpone.config.jsonใ
ไฝ ไนๅฏไปฅๆๅจๅคๅถ้ ็ฝฎๆไปถ:
mkdir -p ~/.acpone
cp backend/acpone.config.example.json ~/.acpone/acpone.config.json# ็ป็ซฏ 1: ๅฏๅจๅ็ซฏ
cd backend && go run ./cmd/acpone
# ็ป็ซฏ 2: ๅฏๅจๅ็ซฏ (็ญ้่ฝฝ)
cd web && npm run dev่ฎฟ้ฎ http://localhost:5173
# ๆๅปบๅตๅ
ฅๅผๅๆไปถ
cd web && npm run build:togo
cd ../backend && go build -o acpone ./cmd/acpone
# ่ฟ่ก
./acpone่ฎฟ้ฎ http://localhost:3000
้ ็ฝฎๆไปถๆไปฅไธ้กบๅบๆ็ดข๏ผไฝฟ็จ็ฌฌไธไธชๆพๅฐ็๏ผ:
./acpone.config.json- ๅฝๅ็ฎๅฝ./acpone.json- ๅฝๅ็ฎๅฝ~/.acpone/acpone.config.json- ็จๆท็ฎๅฝ (้ฆๆฌกๅฏๅจ่ชๅจๅๅปบ)~/.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
}
}default: ๆๆๆไฝ้่ฆ็จๆท็กฎ่ฎคbypass: ่ชๅจๆนๅๆๆๆไฝ (่ฐจๆ ไฝฟ็จ)
@agent-id: ไฝฟ็จ @ ๆๅฎ Agentkeywords: ๅ ณ้ฎ่ฏๅน้ ่ทฏ็ฑmeta: ๅฏ็จๅ ่ทฏ็ฑ (Agent ๅฏไปฅ่ทฏ็ฑๅฐๅ ถไป Agent)
ๅ็ซฏ:
- Vue 3 (Composition API)
- TypeScript
- Vite
- markstream-vue (Markdown ๆธฒๆ)
ๅ็ซฏ:
- Go 1.21+
- ๅ ๅต้ๆๆไปถ (go:embed)
- JSON-RPC 2.0
MIT