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

推荐订阅源

Latest news
Latest news
T
Troy Hunt's Blog
V
Vulnerabilities – Threatpost
L
LINUX DO - 热门话题
cs.CL updates on arXiv.org
cs.CL updates on arXiv.org
Simon Willison's Weblog
Simon Willison's Weblog
V
V2EX
博客园 - 司徒正美
B
Blog RSS Feed
AWS News Blog
AWS News Blog
MyScale Blog
MyScale Blog
Scott Helme
Scott Helme
Cisco Talos Blog
Cisco Talos Blog
Last Week in AI
Last Week in AI
NISL@THU
NISL@THU
博客园 - Franky
P
Proofpoint News Feed
博客园_首页
C
CERT Recently Published Vulnerability Notes
雷峰网
雷峰网
S
Schneier on Security
P
Proofpoint News Feed
Hugging Face - Blog
Hugging Face - Blog
G
GRAHAM CLULEY
博客园 - 三生石上(FineUI控件)
月光博客
月光博客
WordPress大学
WordPress大学
The Hacker News
The Hacker News
T
Threatpost
阮一峰的网络日志
阮一峰的网络日志
A
Arctic Wolf
Microsoft Azure Blog
Microsoft Azure Blog
T
The Exploit Database - CXSecurity.com
Engineering at Meta
Engineering at Meta
罗磊的独立博客
T
The Blog of Author Tim Ferriss
D
Darknet – Hacking Tools, Hacker News & Cyber Security
I
Intezer
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
K
Kaspersky official blog
SecWiki News
SecWiki News
云风的 BLOG
云风的 BLOG
美团技术团队
C
Cybersecurity and Infrastructure Security Agency CISA
博客园 - 【当耐特】
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
Security Latest
Security Latest
C
Cyber Attacks, Cyber Crime and Cyber Security
B
Blog
S
Security Affairs

博客园 - 张善友

C# MCP SDK 2.0 即将发布:去会话化、去握手、去运维噩梦 数字员工的成本账:OpenClaw.NET 如何用工程化实现"成功任务的单位经济学"(下) AI 成本战的隐性成本与降本五层:从"成功率悖论"到"系统复杂度"(中) 从 Token 价格战到成功任务单位经济学:AI 成本战的真正主线(上) MCP + A2A 融合:协议层已就绪,信任层才是硬仗 22年微软MVP连任:一个.NET技术人的社区长跑 OpenClaw.NET 本体工程实践(一):数字员工的「语义大脑」不是数据库 当工厂里坐满了"数字员工":AI原生时代,NPI到量产正在被重写 当 AI 对话里直接弹出业务界面:MCP Apps 正在改写 SaaS 的集成逻辑 G#:当 Go、Kotlin 与 Swift 的美学遇见 .NET 运行时 从 Bun 的 Rust 重写,看 C# 如何重建 AI 基础设施层 .NET 10 File-Based Apps:一个 .cs 文件搞定一切,C# 终于也能像 Python 一样写脚本了! 从Kaplan到Test-Time Compute:Scaling Law的真实演变与中文媒体的叙事偏差 AI 基础设施的"去 Python 化":Rust 与 C# 的两条替代路径 你的 AI Agent 会在服务器上"修仙"——OpenClaw.NET 长持久会话技术解读 C# GeneratedRegex:面向对象语言的"底层性能突围 当 AI 不再只是"说话":OpenClaw.NET 率先原生支持 MCP Apps Token IO 架构的设计游戏:大模型产品形态四年演进的本质 将 Rust 绑定到 .NET 10:Oxigraph 的 FFI 桥接实践 Claude Code Dynamic Workflows vs OpenClaw.NET MetaSKILL C# ?? 链式回退:编写优雅的多级兜底逻辑 MetaSKILL 与 SKILL:多视角深度综述 Microsoft Agent Framework 1.0 正式接棒,.NET AI 进入 Agent-Native 时代 从 OpenClaw.NET 的 /loop 实现,看 Loop Engineering 如何从概念走向工程实践 OpenClaw.NET 祭出 TokenJuice:Agent 时代的"Token 瘦身引擎",让 LLM 上下文不再膨胀 OpenClaw.NET 重大更新:Goal 机制登场,让 AI Agent 不再"半途而废" OpenClaw.NET MetaSKILLs 系统深度解析:AI Agent 正在学会「自己给自己写技能」 OpenClaw.NET 上线 MetaSkills :软件工程第一性原理的工业级实践 当 AgentGateway 遇上 OpenClaw.NET:企业级智能体基础设施的深度协同实战 C# 内存安全性的重大演进:重新定义 unsafe 关键字 Qt Bridges for C# 深度技术解析 OpenClaw.NET 兼容性目录指南(Compatibility Catalog) .NET 10 桌面 UI 框架的范式演进:Jalium.UI 与 MewUI 架构深度对比 架构融合:Activity Host 作为确定性编排与认知智能代理的桥梁 MewUI 项目:面向 NativeAOT 的超轻量级.NET GUI 架构、底层图形管线与性能演进 人工智能原生时代的全栈工程范式转移:DeepSeek 人才战略与下一代 Agent 基础设施深度分析 OpenClaw.NET 外部 CLI 预设系统:从零编写第三方 CLI 集成指南 曝华为"白嫖"开源团队技术方案事件——网友评论总结 NuGet下载量数据分析与.NET生态全景观察:从数据洞察技术演进 .NET 11 Preview 4 正式发布:Runtime-Async 全面启用、Process API 大幅扩展 OpenClaw.NET:给智能以形态 OpenClaw.NET 外部 CLI 连接器 (External CLI Connectors) 详细技术总结 OpenHarmony.Avalonia 归档事件对中国自主软件生态的影响--信任的坍塌与生态的异化 Memgraph 与 Neo4j 图数据库对比及 .NET 生态适配分析 .NET生态系统中的A2A(Agent-to-Agent)协议支持与跨平台多智能体协同 OpenClaw.NET .NET 原生插件开发完全指南:以 Mempalace 插件为范例 为 openclaw.net 集成 ElBruno.MempalaceNet 记忆系统 Graphify-DotNet:AI 驱动的 .NET 代码知识图谱构建工具 SonnetDB:.NET 生态下的高性能嵌入式时序数据库 C# 原生编码智能体运行时 SharpClawCode SharpIDE: 基于 .NET 与 Godot 引擎的跨平台开源 IDE SharpDbg 与 netcoredbg 深度对比分析 .NET 调试器 netcoredbg 跨平台及其 LoongArch 架构支持进展 .NET生态下Native AOT兼容的Cron任务调度框架 Avalonia UI 12.0.0 正式发布:架构演进和性能飞跃 - 张善友 DotNetPy:现代.NET 与 Python 互操作 实战指南 微软发布的《生成式人工智能初学者.NET 10第二版》课程 Avalonia UI 12.0.0-RC1正式发布 自动导引车(AGV)与自主移动机器人(AMR)控制系统的 C# 开源封装库 AgentEval:面向 .NET 生态的企业级 AI 智能体评估框架 .NET 10 打造 OpenClaw Windows Node Microsoft Agent Framework:基于 DelegatingAIAgent 与 ChatClientAgent 的核心架构和协同范式 基于 Kubernetes 与多语言 SDK 的 OpenSandbox AI 代理沙箱编排 MCP C# SDK v1.0 正式发布 .NET 11 Preview 2 架构演进、技术深度解析 基于NativeAOT的 OpenClaw.NET 深度刨析 BMAD方法 v6 与 GitHub Copilot 在应用开发中的协同 C# 驱动的开源无人机机载飞控算法 《上海市卫生健康”信息技术应用创新”白皮书》C#/.NET “A组件”认定事件始末与最终结果 .NET 11 预览版 1 中的新兴架构演进:RISC-V 与 LoongArch 支持的深度技术解析与生态展望 .NET 11 预览版1:CoreCLR 在 WebAssembly 上的全面集成与性能突破 .NET 11与智能体人工智能的范式转移:架构演进、开发者生态与安全解析 Lucia 智能家居自治系统:基于多智能体编排与边缘计算融合 Model Context Protocol (MCP) C# SDK v0.9.0-preview.1 发布
C# vs Go:Agentic 时代的语言分层
张善友 · 2026-07-11 · via 博客园 - 张善友

当 spf13 说 Go 是「天选语言」时,C# 正在另一个维度上构建护城河


一、引子:TypeScript 编译器迁移 Go 引发的连锁反应

2026 年 6 月,微软 TypeScript 团队发布了一个重磅消息:用一年多时间将 TS 编译器从 TypeScript 本体迁移到 Go,构建速度暴涨 10 倍。VS Code(230 万行代码)的编译时间从 125.7 秒骤降至 10.6 秒——整整 11.9 倍。

前 Go 语言产品经理、Hugo 作者 Steve Francia(spf13)随即撰文,抛出了一个反直觉的观点:Go,才是为 Agentic AI 时代量身定做的语言。

他的论证框架非常扎实:

  • 构建速度:AI 智能体一天跑几千次「写-构建-测试」循环,Go 的秒级编译是刚需
  • 依赖确定性go.sum 精确锁定,没有 Python pip 的版本漂移,没有 Node npm 的 peer dependency 地狱
  • 类型闸门:Go 的 any 不是 TypeScript 的「零成本逃生舱」——每次使用点都会被编译器检查
  • 上下文效率:没有继承链、没有 mixin、没有运行时元类改写,AI 读代码时干扰项最少
  • 生态稳定性:Go 1 兼容性承诺,2012 年的代码今天还能编译

这套逻辑在「系统层基础设施」的语境下几乎无懈可击。但当我把这个问题抛给一位深耕 .NET 生态的架构师朋友时,他的回应很有意思:

「spf13 的框架缺了一个维度——他假设 Agentic 开发的主体只有 AI。但 OpenClaw.NET 这样的系统,人类架构师仍然在做领域建模,AI 只是在执行投影。」

这句话点出了问题的关键:C# 和 Go 不是在同一个维度上竞争。


二、Go 确实占优的维度:spf13 的论证完全成立

让我们先诚实承认 Go 的优势,因为这些优势在 Agentic 开发中会被指数级放大。

1. 编译速度:AI 迭代的生命线

一个人类开发者一小时跑十几次「写-构建-测试」循环;一个自主 AI 智能体一个任务里可能跑几十次。Go 的编译速度几乎是即时的——这意味着整个循环能「转得动」。

对比之下,C# 的 Roslyn 编译器虽然已大幅优化,但大型 .NET 项目的编译时间仍然显著高于 Go。对于需要高频迭代的 Agentic 场景,这是硬伤。

2. 二进制部署:零依赖的优雅

go build 输出一个自包含的二进制文件,没有运行时依赖,没有解释器版本问题,复制即运行。C# 的 Native AOT 虽然在 .NET 9/10 中已大幅改善(二进制体积缩小 50%,启动时间提升 6 倍),但仍然是「渐进增强」而非「原生设计」。

3. 依赖管理的确定性

go.sum 会锁定精确的校验和,每个模块只选出唯一一个版本,没有「安装阶段执行代码」的后门。Python 的 pip 和 Node 的 npm 在这点上都有历史包袱。

4. 语言极简主义:AI 的「低干扰」环境

Go 的语法糖极少,一个文件需要的所有东西都显式写在文件里。没有继承链、没有装饰器、没有元类——对 AI 来说,几乎所有 token 都是真正相关的 token。这直接降低了完成一个任务所需的模型门槛。

5. 生态稳定性:训练快照不过期

Go 1 兼容性承诺意味着几年前的训练快照放到今天依然正确。Python/Node 生态的快速更迭则会导致 AI 产出「看起来对、实际调用的是废弃接口」的代码。

结论:在「基础设施层」——API 网关、消息队列、CLI 工具、高并发服务——Go 是默认选项。


三、C# 的不可替代优势:另一个维度的护城河

但 Agentic 开发不是只有「基础设施层」。当我们把视角拉到「Agent 协议层」「领域建模层」「跨平台桌面层」,C# 的优势开始显现。

1. Microsoft Agent Framework:C# 是「一等公民」

这是 C# 在 Agentic 开发中最核心的护城河,没有之一。

2025 年 10 月,微软正式发布 Microsoft Agent Framework(MAF),将 AutoGen 和 Semantic Kernel 合并为统一框架。MAF 的 C# 实现是事实上的参考实现——Python 绑定是「移植版」,C# 版本始终领先一个版本周期。

关键时间线:

时间 里程碑 C# 定位
2023 Semantic Kernel 首次发布 C# 首发,Python 后续移植
2024 SK Agent Framework RC C# 一等公民
2025.5 Azure AI Foundry GA 统一运行时
2025.10 MAF Preview AutoGen + SK 合并
2026 Q1 MAF 1.0 GA 生产就绪
2026 Q2 Process Framework GA 确定性工作流

超过 10,000 家组织使用 Azure AI Foundry Agent Service,包括 KPMG(Clara AI 审计)、BMW(车辆遥测)、Fujitsu(集成服务)。

这意味着什么?如果你要构建与 Microsoft 生态(Entra ID、Graph API、Teams、SharePoint、Copilot)集成的 Agent,C# 不是「选择」,而是「前提」。

正如 LangGraph vs Semantic Kernel 的对比分析所指出的:「Semantic Kernel 提供真正的多语言支持,但 Python SDK 明显滞后于 .NET 版本——功能更晚上线,示例和社区贡献更少。」

2. MCP 官方 C# SDK:协议层的标准话语权

2026 年 2 月,由微软和 Anthropic 联合维护的 MCP(Model Context Protocol)官方 C# SDK 发布 v1.0,全面支持 2025-11-25 版本的 MCP 规范。

MCP 是 Agent 与外部工具通信的「USB-C 接口」。C# SDK 的 v1.0 里程碑意味着:

  • OAuth 授权服务器发现
  • Client ID Metadata Documents(CIMD)
  • 增量范围同意
  • 工具采样
  • 长时请求恢复

这些不是「锦上添花」,而是企业级 Agent 系统的安全基线。当 Go 社区还在用第三方库拼凑 MCP 支持时,C# 开发者已经拿到了官方的一等公民门票。

3. 类型系统的「严格闸门」:比 Go 更严格的边界

spf13 批评 TypeScript 的 any 是「零成本逃生舱」,但 Go 的 any(即 interface{})同样可以被滥用。C# 的类型系统在这里有一个被低估的优势:

可空引用类型(Nullable Reference Types):从 C# 8 开始,编译器强制区分 stringstring?,且这个保证在运行时依然存在——不是 TypeScript 的编译期擦除。

模式匹配与穷尽检查switch 表达式要求处理所有情况,编译器会拒绝不完整的匹配。

记录类型(Records)与不可变性init-only 属性、with 表达式、值语义记录,天然适合 Agent 状态机的不可变数据流。

这些特性对 Agentic 开发的意义:AI 智能体在生成 C# 代码时,编译器会强制它处理边界情况(null、未匹配的分支、未初始化的字段),而不是像 Python 那样把这些问题推迟到运行时。

4. LINQ 与表达式树:Agent 编排的声明式优势

Agentic 开发中,工作流编排(如 MetaSkill DAG)需要大量声明式代码。C# 的 LINQ 和表达式树提供了 Go 无法比拟的表达能力:

// C#: 声明式工作流定义,编译器可验证类型安全
var workflow = from step1 in agent.Plan("分析需求")
               from step2 in step1.Then(agent.Execute("生成代码"))
               from step3 in step2.Then(agent.Review("代码审查"))
               select step3;

Go 没有等价物。Go 的「显式」在这里变成了「啰嗦」——AI 智能体需要生成更多的样板代码来表达同样的逻辑,这反而增加了 token 消耗和上下文窗口压力。

5. Native AOT:正在快速缩小的差距

.NET 10 LTS 的 Native AOT 已经让 C# 在部署形态上大幅逼近 Go:

  • 启动时间:AOT 版 ASP.NET 应用启动时间约 100ms,管理版约 528ms——5 倍提升
  • 内存占用:Linux 下 AOT 版约 56MB,管理版约 126MB——2.25 倍降低
  • 二进制体积:相比 .NET 7 AOT 缩小 50%
  • 容器化dotnet publish --os linux --arch x64 /t:PublishContainer 原生支持

虽然仍不及 Go 的「零成本 AOT」,但已足够支撑「构建一次、长期运行」的服务层。

6. 跨平台桌面:AvaloniaUI 的不可替代性

如果你的 Agentic 系统需要桌面端交互界面(数字员工、RPA、本地 Agent),C# + AvaloniaUI 是目前跨平台桌面开发中最成熟的方案。Go 在 UI 生态上几乎空白(Fyne、Wails 等远未成熟)。


四、场景对照:什么时候选 C#,什么时候选 Go

场景 推荐语言 核心理由
MCP Server / Agent 协议实现 C# Microsoft 官方生态绑定,SK 原生支持
高并发 API Gateway / 消息总线 Go goroutine + channel 的并发模型更轻量,编译更快
长期运行的 Workflow 引擎 Go 生态成熟(Temporal 本身 Go 实现),部署简单
与 Microsoft 365 / Azure 集成的 Agent C# 第一方 SDK,Graph API 的 C# 绑定最完整
复杂 DDD 领域建模(如 OpenClaw 本体投影) C# 泛型、记录类型、模式匹配、表达式树更适合领域建模
CLI 工具 / 本地模型推理服务 Go 单文件部署,启动快,无运行时依赖
跨平台桌面 Agent(数字员工 UI) C# AvaloniaUI 的成熟度无可替代
与 Python ML 生态的桥接 Rust 两者都不占优,Rust 的 FFI 绑定更成熟

五、对 OpenClaw.NET 生态的具体建议

基于 C#/.NET、Semantic Kernel、AvaloniaUI、DDD、JSON-LD 本体论的技术栈,我的判断是:

C# 应该作为 OpenClaw.NET 的「核心语言」和「Agent 协议层」语言,Go 可以作为特定基础设施组件的补充语言。

具体分层:

  1. MetaSkill / Harness 引擎核心:C#(Semantic Kernel 原生绑定,DDD 类型系统优势)
  2. MCP Server 实现:C#(Microsoft 官方 SDK)
  3. 高性能网关 / 消息队列中间件:Go(如果需要独立部署的高并发组件)
  4. 跨平台桌面数字员工:C# + AvaloniaUI(唯一现实选择)

六、对 spf13 论证的关键修正

spf13 的核心假设是:「Agentic 开发的主体是 AI,因此语言应该为 AI 的阅读/生成优化」。

但这个假设有一个盲区:Agentic 开发中,人类仍然扮演「架构师」和「审查者」角色,而 DDD 和本体论驱动的系统(如 OpenClaw)需要人类在高层进行领域建模。 C# 的丰富类型系统和表达力,恰恰是为了让人类架构师能用更少的代码表达更精确的领域约束,然后让编译器将这些约束转化为 AI 智能体的「闸门」。

从这个角度看,C# 的「复杂性」不是负担,而是「人类架构意图」与「机器执行」之间的翻译层。Go 的极简主义更适合「机器自主」的场景,C# 的丰富性更适合「人机协同」的场景。


七、结语:分层最优,而非一统天下

spf13 在文章最后说:「与其追求一门语言统治一切,不如把 Go 当作 Agentic 开发中系统、服务、基础设施这一层的默认选项。」

我要补充的是:把 C# 当作 Agentic 开发中协议层、领域层、桌面层的首选,同样是一个理性的默认选项。

Python 负责 ML 训练,Go 负责基础设施,C# 负责 Agent 协议与领域建模——这不是妥协,而是分层最优

当补贴消失、算力成本回归理性的那一天,能在正确的时间、正确的层级使用正确的语言的团队,才会是那个迭代得更便宜、也更快的团队。


参考链接