惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

cs.CV updates on arXiv.org
cs.CV updates on arXiv.org
Engineering at Meta
Engineering at Meta
量子位
云风的 BLOG
云风的 BLOG
P
Proofpoint News Feed
月光博客
月光博客
A
About on SuperTechFans
博客园 - 聂微东
Spread Privacy
Spread Privacy
B
Blog
NISL@THU
NISL@THU
小众软件
小众软件
Threat Intelligence Blog | Flashpoint
Threat Intelligence Blog | Flashpoint
C
Cyber Attacks, Cyber Crime and Cyber Security
Google DeepMind News
Google DeepMind News
Last Week in AI
Last Week in AI
T
Threatpost
Stack Overflow Blog
Stack Overflow Blog
博客园 - 叶小钗
Cyberwarzone
Cyberwarzone
Scott Helme
Scott Helme
P
Privacy & Cybersecurity Law Blog
C
Cisco Blogs
Cisco Talos Blog
Cisco Talos Blog
酷 壳 – CoolShell
酷 壳 – CoolShell
P
Palo Alto Networks Blog
C
Check Point Blog
O
OpenAI News
Cyber Security Advisories - MS-ISAC
Cyber Security Advisories - MS-ISAC
IT之家
IT之家
T
Threat Research - Cisco Blogs
Recent Commits to openclaw:main
Recent Commits to openclaw:main
Know Your Adversary
Know Your Adversary
T
The Exploit Database - CXSecurity.com
N
News and Events Feed by Topic
P
Privacy International News Feed
B
Blog RSS Feed
Google DeepMind News
Google DeepMind News
H
Heimdal Security Blog
Martin Fowler
Martin Fowler
Schneier on Security
Schneier on Security
Webroot Blog
Webroot Blog
The GitHub Blog
The GitHub Blog
V
Visual Studio Blog
V2EX - 技术
V2EX - 技术
V
Vulnerabilities – Threatpost
博客园 - 司徒正美
C
CERT Recently Published Vulnerability Notes
H
Hacker News: Front Page
PCI Perspectives
PCI Perspectives

博客园 - 黄明基

StargazerLab Copilot使用说明 🚀 用 .NET + Avalonia 打造你的专属 AI Copilot 桌面端 分布式应用框架Microsoft Orleans - 7、基于 Microsoft Orleans 构建模块化微服务:用户、消息与存储三大核心模块解析 Semantic Kernel人工智能开发 - 第六章:Semantic Kernel的安全与过滤器机制——构建可信赖的AI应用防护体系 Semantic Kernel人工智能开发 - 第五章:提示词工程与模板优化——释放大语言模型真正潜力 Semantic Kernel人工智能开发 - 第四章:Semantic Kernel内存管理系统——为AI注入持久记忆与上下文感知能力 Semantic Kernel人工智能开发 - 第三章:Semantic Kernel插件系统详解——扩展AI能力的核心引擎 Semantic Kernel人工智能开发 - 第二章:环境搭建与第一个AI应用——从零开始构建智能对话系统 Semantic Kernel人工智能开发 - 第一章:Semantic Kernel框架概览——开启智能应用开发之门 结合.NET Aspire与Spring Boot:构建可观测的云原生Java应用 分布式应用框架Microsoft Orleans - 6、构建高可用Orleans应用:集群配置与容灾机制详解 分布式应用框架Microsoft Orleans - 5、掌握Orleans高级特性:计时器、提醒与流处理详解 分布式应用框架Microsoft Orleans - 4、掌握Microsoft Orleans状态管理:从持久化配置到事务处理 分布式应用框架Microsoft Orleans - 3、深入解析Orleans核心要素:Grain与Silo的工作原理 分布式应用框架Microsoft Orleans - 2、动手实践:构建你的第一个Microsoft Orleans应用程序 分布式应用框架Microsoft Orleans - 1、Microsoft Orleans简介 AI真的太好用啦!Aspire Dashboard集成GitHub Copilot。 智能助手客户端 设计模式学习:状态模式实现订单状态流转 设计模式学习:在支付系统中的实战应用 跨平台桌面应用开发:解锁 Electron 与 shadcn/ui 的潜力 构建你的.NET Aspire解决方案
解剖一个桌面级 AI Copilot 的架构:Stargazer AI Copilot(.NET 10 + Avalonia)是怎么“分层”的
黄明基 · 2026-05-26 · via 博客园 - 黄明基

🏗️ 拆解 Stargazer AI Copilot:它是如何把 .NET + AI 搭起来的?

很多同学问我:“做一个桌面版 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


1️⃣ UI 层:为什么 Avalonia + MVVM 是桌面 Copilot 的绝配?

在这个项目里,UI 不仅仅是“输入框 + 气泡”。

核心设计

  • Shell 模式:左侧导航(聊天/Agent/技能/MCP/设置),右侧内容区。
  • 数据驱动ChatViewModel 只负责消息集合和状态,ChatView 只负责渲染。

难点突破:Markdown 渲染

普通的 WebView 太重,这个项目自己写了一个 MarkdownView 控件:

  • ✅ 支持代码块、表格、图片
  • ✅ 图片存本地(file:///),永不失效
  • ✅ 一键复制 Markdown / HTML

经验之谈:做桌面 Copilot,UI 一定要把 “流式输出”“消息持久化” 当成一等公民,否则后期改起来会非常痛苦。


2️⃣ 大脑层:Agent 才是真正的“业务对象”

这是和普通 ChatBot 最大的区别:Agent 不是一段 Prompt,而是一个可配置的对象

Agent 的核心属性

Agent {
    Instructions  // 人格设定
    Provider       // 用哪家 LLM
    Tools          // 能调用什么工具
    Skills         // 挂载什么技能
    Workflow       // 怎么协作
}

四种协作模式(Workflow)

这是架构最精彩的地方:

模式 场景 数据流
Single 简单问答 用户 → AI → 回复
Sequential 流水线作业 搜索 → 分析 → 写作
Handoff 专家会诊 客服 → 技术 → 售后(带完整上下文)
Agent-as-Tools 项目经理模式 主 Agent 按需调用 代码/测试/文档 Agent

3️⃣ 技能系统(Skills):像搭积木一样拼 Prompt

这是 Stargazer 的杀手锏。它解决了 “Prompt 越写越长,越难维护” 的问题。

技能 = 指令 + 工具 + 依赖

想象你在配置一个“全栈开发助手”:

  1. 定义技能

    • 代码审查:指令(关注安全)+ 工具(Git/Bash)
    • 联网搜索:指令(查最新资料)+ 工具(Search)
  2. 组合 Agent

    • Agent 指令:你是一个助手。
    • 勾选技能:✅ 代码审查 + ✅ 联网搜索。
  3. 运行时自动合成

    你是一个助手。

    (追加) 请关注代码安全性...

    (追加) 请先搜索最新资料...

    可用工具:Git + Bash + Search。

这就实现了 Prompt 的模块化复用。


Agent 必须能干活,但不能“乱干”。

工具分类

类型 示例 安全策略
本地工具 Bash, Git, File 拦截 rm -rf /sudo
浏览器 Playwright 输入操作需用户确认
数据库 MySQL/PG/SQLServer 仅限配置的 Connection String
远程 MCP 企业内部 API JSON-RPC 隔离

MCP 协议的关键作用

通过 Model Context Protocol (MCP),它可以连接远程服务器:

  • 自动发现工具(tools/list
  • 动态注入到 Agent
  • 企业可以把敏感操作放在内网 MCP 服务器上,桌面端只负责调用。

🔄 一条消息的生命周期

为了让你更直观,这是一个消息从发起到回复的全过程:

用户输入
  ↓
ChatViewModel (判断是否带历史 Context)
  ↓
AgentService (加载 Agent 配置 + 解析 Skills)
  ↓
LLM Provider (OpenAI SDK 兼容接口)
  ↓
[AI 思考中...]
  ↓
如果需要调用工具 (Tool Calling)
  ↓
执行工具 (Bash / Search / Browser / MCP)
  ↓
结果返回给 AI
  ↓
流式输出到 UI (MarkdownView 渲染)
  ↓
存入 SQLite (对话历史)

🎯 总结

Stargazer AI Copilot 的架构并不神秘,它只是把混乱的 AI 调用整理成了三层:

  1. 表现层:Avalonia 负责好看、好用。
  2. 编排层:Agent + Skills + Workflow 负责“怎么想”。
  3. 执行层:Tools + MCP 负责“怎么做”,且有安全围栏。

这种架构最大的好处是:无论以后换什么新模型,或者加什么新工具,核心逻辑都不用大改。


💡 如果你也想拥有这样一个完全可控的桌面 Copilot:

📥 立即下载体验
https://pan.baidu.com/s/1QtHeAsaL-AexmfT0alaelg?pwd=pucf 提取码: pucf

💼 商业合作 / 源码授权 / 定制开发
👉 https://work.weixin.qq.com/ca/cawcdeb5a5bd6ac6b8