架构
核心以 stable Rust 2021 单 ELF 交付;Tokio 驱动异步,reqwest 使用 rustls,ratatui/crossterm 管理 TUI,Axum/SSE/WebSocket 与嵌入的 Preact 页面管理 Web。MCP/A2A 在设备端内置,companion APK 与 JADX DEX helper 都是可选依赖。
flowchart TB
UI[TUI / Web / CLI] --> Agent[Agent Runner]
Agent <--> Provider[Provider adapter]
Agent --> Tool[Tool Runtime]
MCP[Device MCP] --> Tool
A2A[Device A2A] --> Tasks[Device task service]
Tasks --> Agent
Tool --> Prep[Validate / Prepare]
Prep --> Security[Security + Confirmation]
Security --> Broker[Execution / Privilege Broker]
Broker --> Exec[PTY / Pipeline / Android adapters]
Exec --> Tool
逻辑分三层:Agent 规划层、具名 Tool Runtime、安全执行的平台适配层。MCP 工具直调跳过 Agent 与模型,但保留准备、安全与审批;A2A 和 MCP ask 共用设备任务服务与内置 Agent。工具结果、模型历史、UI 显示和审计各自设限。
模块与扩展
src/agent/:任务循环、历史与预算。src/llm/:协议无关类型、Chat/Responses 与 SSE。src/tools/:按 Android/file/audio/network 等域实现,显式注册表与派生 Schema。src/security/:AST shell 语义与领域策略。src/shell/:提权计划、执行 broker、PTY/管道、取消与恢复。src/config/、src/tui/、src/web/:配置与用户入口。src/protocol/:设备 MCP/A2A、任务持久化、上下文串行与本地审批;Android Bridge 与 JADX helper 为独立 Android 项目和 Git 仓库,各自构建与发布。
新增工具必须保持 prepare → assessment → confirmation → execution;显示组件不得直接执行 Provider JSON。PTY 输出过滤终端控制序列,fd 与进程采用 RAII,异常仍 wait 并恢复终端。
内部完整设计见 ARCHITECTURE.md,视觉约束见 UI_DESIGN.md。计划与项目状态是贡献者上下文,不作为用户手册导航。