


























很多同学问我:“做一个桌面版 AI Copilot,到底该怎么分层?难道就是界面套个 API 吗?”
今天不聊虚的,直接基于 Stargazer AI Copilot(.NET 10 + Avalonia)的源码结构,用一张图 + 四个核心层,带你看看一个成熟的桌面 Copilot 长什么样。
flowchart TB subgraph UI层 A[Views 界面] -->|绑定| B[ViewModels 视图模型] B -->|命令| C[Services 应用服务] end subgraph 大脑层 C --> D[Agent 编排核心] D --> E{Workflow 决策} E -->|Single| F[单Agent] E -->|Sequential| G[流水线] E -->|Handoff| H[接力棒] E -->|Agent-as-Tools| I[主从协作] end subgraph 手脚层 D --> J[Tools 工具集] J --> K[本地工具<br>Bash/Git/File] J --> L[远程工具<br>MCP 协议] end subgraph 外部世界 M[LLM Providers<br>OpenAI/DeepSeek/混元] N[(SQLite 数据库)] O[操作系统<br>Browser/Docker/DB] end D <--> M C <--> N J <--> O
在这个项目里,UI 不仅仅是“输入框 + 气泡”。
ChatViewModel 只负责消息集合和状态,ChatView 只负责渲染。普通的 WebView 太重,这个项目自己写了一个 MarkdownView 控件:
file:///),永不失效经验之谈:做桌面 Copilot,UI 一定要把 “流式输出” 和 “消息持久化” 当成一等公民,否则后期改起来会非常痛苦。
这是和普通 ChatBot 最大的区别:Agent 不是一段 Prompt,而是一个可配置的对象。
Agent {
Instructions // 人格设定
Provider // 用哪家 LLM
Tools // 能调用什么工具
Skills // 挂载什么技能
Workflow // 怎么协作
}
这是架构最精彩的地方:
| 模式 | 场景 | 数据流 |
|---|---|---|
| Single | 简单问答 | 用户 → AI → 回复 |
| Sequential | 流水线作业 | 搜索 → 分析 → 写作 |
| Handoff | 专家会诊 | 客服 → 技术 → 售后(带完整上下文) |
| Agent-as-Tools | 项目经理模式 | 主 Agent 按需调用 代码/测试/文档 Agent |
这是 Stargazer 的杀手锏。它解决了 “Prompt 越写越长,越难维护” 的问题。
想象你在配置一个“全栈开发助手”:
定义技能:
代码审查:指令(关注安全)+ 工具(Git/Bash)联网搜索:指令(查最新资料)+ 工具(Search)组合 Agent:
运行时自动合成:
你是一个助手。
(追加) 请关注代码安全性...
(追加) 请先搜索最新资料...
可用工具:Git + Bash + Search。
这就实现了 Prompt 的模块化复用。
Agent 必须能干活,但不能“乱干”。
| 类型 | 示例 | 安全策略 |
|---|---|---|
| 本地工具 | Bash, Git, File | 拦截 rm -rf /、sudo |
| 浏览器 | Playwright | 输入操作需用户确认 |
| 数据库 | MySQL/PG/SQLServer | 仅限配置的 Connection String |
| 远程 MCP | 企业内部 API | JSON-RPC 隔离 |
通过 Model Context Protocol (MCP),它可以连接远程服务器:
tools/list)为了让你更直观,这是一个消息从发起到回复的全过程:
用户输入
↓
ChatViewModel (判断是否带历史 Context)
↓
AgentService (加载 Agent 配置 + 解析 Skills)
↓
LLM Provider (OpenAI SDK 兼容接口)
↓
[AI 思考中...]
↓
如果需要调用工具 (Tool Calling)
↓
执行工具 (Bash / Search / Browser / MCP)
↓
结果返回给 AI
↓
流式输出到 UI (MarkdownView 渲染)
↓
存入 SQLite (对话历史)
Stargazer AI Copilot 的架构并不神秘,它只是把混乱的 AI 调用整理成了三层:
这种架构最大的好处是:无论以后换什么新模型,或者加什么新工具,核心逻辑都不用大改。
💡 如果你也想拥有这样一个完全可控的桌面 Copilot:
📥 立即下载体验:
https://pan.baidu.com/s/1QtHeAsaL-AexmfT0alaelg?pwd=pucf 提取码: pucf
💼 商业合作 / 源码授权 / 定制开发:
👉 https://work.weixin.qq.com/ca/cawcdeb5a5bd6ac6b8
此内容由惯性聚合(RSS阅读器)自动聚合整理,仅供阅读参考。 原文来自 — 版权归原作者所有。