Skip to content

架构

┌─────────────────────────────────────────────────┐
│                     宿主层                        │
│  ┌───────────┐  ┌───────────┐  ┌─────────────┐  │
│  │  桌面端    │  │ HTTP 服务  │  │  MCP 服务    │  │
│  │  (Wails)   │  │  (Gin)    │  │ (stdio/SSE) │  │
│  └─────┬─────┘  └─────┬─────┘  └──────┬──────┘  │
│        └───────────────┼───────────────┘         │
│                   ┌────┴────┐                    │
│                   │ engine  │  ← 唯一入口         │
│                   └────┬────┘                    │
│        ┌───────────────┼───────────────┐         │
│   ┌────┴────┐   ┌──────┴──────┐  ┌─────┴─────┐  │
│   │toolloop │   │conversation │  │    llm     │  │
│   └─────────┘   └─────────────┘  └───────────┘  │
│                      core/                       │
├─────────────────────────────────────────────────┤
│   gateway (OpenAPI)       mcp (MCP 协议)          │
│   bootstrap (初始化助手)                           │
└─────────────────────────────────────────────────┘

分层

职责
core/toolloop, conversation, llm纯逻辑层:工具循环、会话管理、LLM 客户端。零外部依赖。
engine/engine宿主唯一入口,隔离 core 内部实现。
service/service共享业务逻辑:Target CRUD、配置管理、LLM 设置。
gateway/gateway解析 OpenAPI spec,构建 LLM 工具定义,执行 HTTP 调用。
mcp/mcp双向 MCP 支持:对外暴露工具或消费外部 MCP 服务。
bootstrap/bootstrap初始化助手:发现工具、构建系统提示词、连接各组件。

宿主

所有宿主通过 engine/ 访问核心,不直接碰 toolloopconversation

  • HTTP 服务 (server/) — 基于 Gin 的 REST + SSE 流式响应。
  • 桌面端 (desktop/) — Wails v2 应用,React 前端。独立 Go module。
  • MCP 服务 — 通过 MCP stdio/SSE 暴露 NLUI 工具,供 Claude Desktop 等客户端使用。