Skip to content

Architecture CN

Jazzen Chen edited this page May 24, 2026 · 9 revisions

架构说明

VibeAround 是一个本地 runtime,主要入口包括桌面、浏览器和 IM 频道。

Desktop UI / Tauri
        |
        v
Rust runtime ---- Web dashboard / WebSocket / Preview proxy
        |
        +---- Agent processes over stdio / PTY
        |
        +---- Channel plugins over stdio JSON-RPC
        |
        +---- Local API bridge for provider/profile routes

仓库结构

路径 作用
src/core Rust runtime:agents、conversations、channels、previews、PTY、tunnels、auth、config
src/server Axum web server:/va/、APIs、WebSocket、pairing、preview proxy、local API bridge routes
src/desktop Tauri shell、desktop IPC commands、窗口设置、onboarding 编排
src/desktop-ui React/Vite 桌面 UI
src/web React/Vite Web Dashboard
src/shared/client-ts Shared TypeScript API client 和 wire types
src/shared/ui Shared React UI primitives
src/shared/i18n Shared localization helpers
src/resources 内置 registries:agents、providers、plugins、tunnels、commands、MCP tools
src/plugins bundled/local channel plugins workspace
src/skills 注入到支持 Agent 的 VibeAround skills

Runtime 职责

模块 职责
Agents 发现、启动、接入本地 CLIs
Conversations Prompt 路由、slash commands、session lifecycle、handover
Channels 启动 channel plugins 并转发消息
Web server Dashboard、APIs、WebSocket、previews、本地 auth
PTY 浏览器 terminal sessions 和 terminal launch integration
Profiles Provider definitions、model metadata、API bridge settings
API bridge 转换模型 API 形态并处理 provider quirks
Tunnels 在启用时暴露 dashboard/previews 到公网
Auth Public browser pairing 和本地 auth cookie

本地 API Bridge

Bridge 会把 profile 配置变成本地 loopback endpoint。它通过共享事件模型转换请求/响应,让 Agent 和 Provider 不需要使用同一种 API 形态。

支持的形态包括:

  • OpenAI Responses
  • OpenAI Chat Completions
  • Anthropic Messages
  • Gemini Generate Content

Provider adapter 会处理:

  • DeepSeek reasoning content
  • Claude model suffix normalization
  • tool-call history repair
  • model alias/fake ID mapping
  • provider-specific headers and endpoints

桌面 UI

桌面 UI 通过 Tauri commands 与 runtime 通信。它负责:

  • onboarding
  • Launch
  • profile editor
  • workspace/session selectors
  • status/previews pages
  • settings

它不会把密钥写进项目仓库。密钥保存在本地 VibeAround home 目录。

Web Dashboard

Dashboard 由同一个 runtime 在 /va/ 下提供。它包含:

  • Web Chat
  • Web Terminal
  • Previews
  • session/workspace views
  • runtime status

开发时,Vite 提供前端并代理 runtime APIs 到 Rust server。

Channel Plugins

Channel plugins 是 Node.js subprocess,通过 stdio JSON-RPC 与 Rust host 通信。Plugin 把平台事件转换为 VibeAround prompt,再把响应渲染回平台。

数据流

  1. 用户从 desktop、web、terminal 或 IM channel 发送 prompt。
  2. VibeAround 解析 workspace、session、selected agent/profile。
  3. Runtime 启动或 resume agent process。
  4. 如果启用了 bridge profile,模型 API 请求经过本地 API bridge。
  5. Agent output stream 回到原入口。
  6. Preview 和 handover helpers 可以暴露额外本地 URL 或 pairing code。

Clone this wiki locally