
大家好,我是Edison。
今天和大家推荐一个.NET开源项目,它不是又一个聊天框,而是一只真正能接管工具链的本地AI大龙虾!
传送门先行:https://github.com/sunyonghuan/Netor.Cartana
这东西到底狠在哪?
现在的 AI 工具太多了:网页套壳、聊天侧边栏、固定模型入口、收费套餐、插件半残废。看起来热闹,真干活的时候还是要你自己复制、粘贴、切窗口、查日志、改文件、接接口。
Cortana 的目标不是陪你聊天,而是替你把活干完。

它是一个本地 AI 宿主,也是一套可扩展的工具调度系统。它能把模型、插件、MCP、WebSocket、文件系统、语音、编辑器工作流和多智能体编排揉到一起,让 AI 不只是“回答问题”,而是能真正调工具、读上下文、改项目、接外部系统、沉淀工作流。
一句话:
别人做 AI 聊天窗口,Cortana 做 AI 工作底座。
Cortana能给你什么?
@ 调用子智能体,每个智能体有独立模型、提示词和工具集。 | |
这不是“多一个按钮”的小工具,而是把 AI 从聊天框里放出来,让它真正摸到你的工程、文件、插件、模型和外部系统。
Cortana能给你什么?
模型入口自由:把你自己的模型送入工具链
很多 AI 软件最烦的一点就是:模型入口被平台锁死。
你想用国产模型?等适配。 你想用企业内部模型?自己写插件。 你想用私有部署?体验砍半。 你想把模型接进编辑器?又是一轮配置地狱。
Cortana 直接走另一条路:
http://localhost:11434它内置 Ollama 本地协议代理,可以把 Cortana 里配置好的远程模型、企业模型、国产模型、私有 API 模型,对外伪装成本机 Ollama 模型。
外部工具以为自己在调用本地 Ollama,实际上请求由 Cortana 转发到你真正想用的模型。
支持端点包括:
GET /api/versionGET /api/tagsPOST /api/chatPOST /api/generatePOST /api/showGET /v1/modelsPOST /v1/chat/completions
这意味着什么?
不重写 VS Code,不魔改 Visual Studio,不再造半成品 IDE。Cortana 只做最关键的一件事:把模型选择权还给你。
编辑器继续做编辑器擅长的事:代码补全、上下文理解、文件编辑、任务执行。Cortana 在背后负责把你想用的模型送进去。
多智能体协作:不是一个AI在硬撑,而是一队AI在干活
Cortana 支持 @智能体 调用。
每个智能体都可以有自己的:
模型 提示词 插件工具 MCP 工具 工作职责
你可以让一个智能体负责搜索,一个负责运维,一个负责写文档,一个负责代码分析。主对话负责调度,它们各自带工具干自己的活。
比如:
@服务器管理:连接服务器、检查负载、查日志、生成巡检报告。 @谷歌搜索:联网搜索、筛资料、整理引用。 @文档助手:把零散结果整理成规范文档。 @脚本执行:运行 C# 脚本或本地自动化任务。
这就不是“问一个模型一句话”了,而是把 AI 拆成岗位:有人查资料,有人动手,有人总结,有人复盘。
一个聊天机器人很普通,一群带工具的智能体才像真正的数字员工。
插件系统:让AI长出手脚
只会聊天的 AI,最多是顾问。 能调工具的 AI,才像员工。
Cortana 当前推荐三条扩展路线:
本地工作区插件默认部署到:
.cortana/plugins/仓库里已经维护了一批真实插件工程:
Cortana.Plugins.Bt:宝塔面板运维工具。 Cortana.Plugins.GoogleSearch:谷歌搜索。 Cortana.Plugins.Memory:记忆引擎。 Cortana.Plugins.Office:Word / Excel / PowerPoint 文档工具。 Cortana.Plugins.Reminder:定时提醒。 Cortana.Plugins.ScriptRunner:C# 脚本运行器。 Cortana.Plugins.WsBridge:WebSocket 中转。 Cortana.Plugins.ApplicationLauncher/ WindowManagement:本地应用与窗口管理。
插件不是摆设。它们就是 AI 的手、脚、眼睛和工具箱。
聊天历史是可恢复的工具链上下文
Cortana 在 v1.2.6 之后把聊天消息内容结构化持久化:
普通文本 function call function result 工具结果 生成资源
都可以写入 SQLite,并通过结构化 ContentsJson 恢复。
v1.3.3 又进一步修复了 OpenAI-compatible / DeepSeek 多工具结果场景下的工具历史重排问题,避免同一条 tool message 被重复追加导致协议错误。
同时增加 AI trace:
.cortana/logs/ai-traces可诊断:
orphan tool message missing tool response tool message 不相邻 assistant tool_calls 与 tool result 的 callId 映射 请求、响应、流式片段、异常堆栈
这意味着 Cortana 不是“跑通 Demo 就算完”,而是在认真处理真实 AI 工具链里最麻烦的协议细节。
语音能力:让本地助手开口和听话
语音模块位于 Src/Netor.Cortana.Voice,基于 Sherpa-ONNX:
KWS:关键词唤醒 STT:语音识别 TTS:语音合成
当前模型目录:
Src/sherpa_models/├── KWS/├── STT/└── TTS/
模型文件不提交到 Git,发布前需要确保本地目录完整。
语音能力后续也在向插件化方向演进:KWS / STT / TTS 都可以独立为 Process 插件,模型跟随插件包发布,主程序只保留语音编排。
这条路一旦打通,Cortana 的主程序会更轻,语音能力也能像普通插件一样安装、替换、升级。
技术架构
Src/Netor.Cortana.UI | |
Src/Netor.Cortana.AI | |
Src/Netor.Cortana.Entitys | |
Src/Netor.Cortana.Plugin | |
Src/Netor.Cortana.Networks | |
Src/Netor.Cortana.Voice | |
Src/Plugins | |
Plugins/Src |
许可证


夜雨聆风