微软 MAF Go SDK 来了:云原生开发者的 AI Agent 框架之争
2026年7月,微软正式为 Microsoft Agent Framework(MAF)推出 Go 语言 SDK,进入公开预览阶段。这不是一次简单的语言移植——它意味着 Go 语言的云原生王者们,终于可以用自己最熟悉的工具链来构建生产级 AI Agent 了。
本文从工程视角深度解析:MAF Go SDK 的技术架构、与 Google ADK 的横向对比、Go 生态的特殊性,以及这对 2026 年 AI Agent 开发生态意味着什么。
一、背景:为什么 Go 开发者等这一刻等了这么久
1.1 Go 在云原生的统治地位
Go 语言自 2009 年由 Google 开源以来,已经成为现代云基础设施的基石语言。以下这些改变了互联网架构的软件,全部由 Go 构建:
- Kubernetes(容器编排):改写了整个互联网的部署方式
- Docker(容器化):让"一次构建,到处运行"成为现实
- Terraform(基础设施即代码):云资源管理的行业标准
- Prometheus(监控):云原生监控的事实标准
- Grafana(可视化):几乎每家科技公司都在用
- Caddy(Web 服务器):首个自动 HTTPS 的服务器
- Traefik(API 网关):云原生路由的标杆
- InfluxDB(时序数据库):工业 IoT 和监控场景的首选
Go 语言的核心优势恰好契合服务端基础设施的需求:编译成单个静态二进制(无运行时依赖)、原生并发模型(goroutine + channel)、极快的编译速度、优秀的内存管理,以及Google 背书的工程可靠性。
1.2 AI Agent 开发的语言格局
然而,在 AI Agent 开发领域,Go 开发者一直是二等公民。
主流 AI Agent 框架的语言支持情况:
| 框架 | Python | .NET | Go | 备注 |
|---|---|---|---|---|
| LangChain/LangGraph | ✅ | ❌ | ❌ | Python 垄断 |
| CrewAI | ✅ | ❌ | ❌ | Python only |
| AutoGen | ✅ | ❌ | ❌ | 微软出品但 Python only |
| Semantic Kernel | ✅ | ✅ | ❌ | .NET + Python |
| Microsoft Agent Framework | ✅ | ✅ | ✅ (预览) | 2026年7月新增 |
| Google ADK | ✅ | ❌ | ✅ | 2025年11月新增 |
| Mastra | ✅ | ❌ | ❌ | TypeScript only |
| PydanticAI | ✅ | ❌ | ❌ | Python + 类型安全 |
| OpenAI Agents SDK | ✅ | ❌ | ❌ | OpenAI 出品 |
可以看到,在 2025 年底之前,如果一个团队用 Go 构建微服务,想要引入 AI Agent 能力,他们的选择非常有限:
- 在 Go 服务旁边跑一个 Python 进程:通过 HTTP 或 gRPC 通信,架构丑陋,运维复杂
- 直接调用 LLM API:用 Go 的 HTTP 库裸写 prompt,工具调用、状态管理全靠自己
- 使用社区非官方库:质量和维护参差不齐,生产环境风险高
1.3 微软的 Agent 框架演进路径
理解 MAF Go SDK,需要先理解微软 Agent 框架的演进历史:
2023年 ──┬── Semantic Kernel(微软出品,C# 首发,Python 后加)
└── AutoGen(微软研究院出品,Python only)
2024年 ──┬── Microsoft.Extensions.AI(统一抽象层)
└── AutoGen 与 Semantic Kernel 逐渐融合
2025年10月 ─── Agent Framework 1.0 正式发布(.NET + Python)
整合 AutoGen + Semantic Kernel 为统一平台
2026年 6月 ─── Build 大会:Agent 测试套件、CodeAct、交接模式
仍只有 .NET 和 Python
2026年 7月 ─── Go SDK 公开预览(本周)
从 AutoGen 到 Semantic Kernel 再到 MAF,微软经历了从"多个实验性项目"到"统一生产框架"的演进。MAF 的定位非常清晰:不只是聊天循环的简单封装,而是生产级的多 Agent 编排平台。
二、Microsoft Agent Framework Go SDK 深度解析
2.1 核心架构
MAF Go SDK 的设计思路与 .NET/Python 版本一脉相承,但针对 Go 语言的工程哲学做了适配。
2.1.1 Agent 模型
MAF 的核心是 AIAgent 抽象,一个 Agent 包含:
// 声明式 Agent 定义
instruction := `你是一名资深后端工程师,专注于 Go 语言和云原生架构。
你会用简洁、准确的技术语言回答问题,代码示例必须完整可运行。
如果问题超出 Go/云原生领域,诚实说明不知道,不强行回答。`
agent := chatClient.AsAIAgent(
instructions: instruction,
name: "GoBackendExpert",
)
与直接调用 API 的裸写方式相比,MAF Agent 提供了:
- 对话历史自动管理:不用手动拼接 messages 数组
- 上下文窗口智能裁剪:MAF 内置 ChatReduction 策略,避免超出 token 限制
- 工具调用抽象:函数调用自动映射到 Go 函数签名
- 流式输出支持:服务端流式响应,实时展示生成内容
- 会话状态持久化:可以将对话状态保存到外部存储,支持中断恢复
2.1.2 工作流编排(Workflow)
MAF 的工作流编排是其最强大的能力之一,Go SDK 完整支持。微软工程师 Pratik Dhanave 在 LinkedIn 上特别提到:
"这是生产级的编排能力,而不是聊天循环的简单封装。"
// 顺序工作流
workflow := maf.Sequential(
maf.Step("research", researcherAgent),
maf.Step("code", coderAgent),
maf.Step("review", reviewerAgent),
)
// 条件路由工作流
workflow := maf.Sequential(
maf.Step("classify", classifierAgent),
maf.SwitchCase(
maf.EdgeCondition("is_bug", true, bugWorkflow),
maf.EdgeCondition("is_feature", true, featureWorkflow),
maf.EdgeCondition("is_docs", true, docsWorkflow),
),
)
// 并行工作流
parallelResult := maf.Concurrent(
maf.Step("fetch_code", codeSearchAgent),
maf.Step("fetch_docs", docsSearchAgent),
maf.Step("fetch_issues", issueSearchAgent),
)
2.1.3 人工介入(Human in the Loop)
生产环境中,很多决策需要人工审核。MAF 提供了 RequestPort 机制:
// 在关键步骤插入人工确认
workflow := maf.Sequential(
maf.Step("analyze", analyzerAgent),
maf.RequestPort("approve_deployment", &maf.RequestConfig{
Message: "即将执行以下部署操作:",
Options: []string{"批准", "拒绝", "修改参数"},
Timeout: 10 * time.Minute,
}),
maf.Step("deploy", deployAgent),
)
这是一个被很多框架忽视但在企业级场景中至关重要的功能。代码审查、法律合规、安全审计——这些场景都需要人而不是机器做最终决策。
2.1.4 Checkpoint 与状态恢复
长时间运行的 Agent 任务可能中断。MAF Go SDK 提供了 Checkpoint 机制:
checkpointConfig := &maf.CheckpointConfig{
Storage: redisStorage, // 支持 Redis/PostgreSQL/文件系统
Interval: 30 * time.Second,
BeforeStep: true, // 每步前保存
AfterStep: false,
}
workflow := maf.Sequential(steps...).WithCheckpoint(checkpointConfig)
// 恢复执行
recoveredState, err := maf.RestoreFromCheckpoint(ctx, checkpointID, redisStorage)
agent.Resume(recoveredState)
2.2 MCP 协议集成
MCP(Model Context Protocol)是 2024-2026 年 AI 生态最重要的协议标准之一。MAF Go SDK 内置了对 MCP 的完整支持:
// 连接 MCP 服务器作为工具源
mcpClient, err := maf.NewMCPClient(ctx, &maf.MCPConfig{
Address: "https://mcp.example.com/sse",
Auth: maf.MCPAuth{APIKey: "your-key"},
})
// MCP 工具自动注册为 Agent 可用工具
agent := chatClient.AsAIAgent(
instructions: "你是一个全能助手,可以调用各种工具完成任务。",
tools: mcpClient.Tools(), // 自动注入 MCP 工具
)
// 将 MAF Agent 本身暴露为 MCP 工具
mcpServer := maf.NewMCPServer(agent)
go mcpServer.Serve(ctx, ":8080")
这种互操作性是 MAF 的重要竞争优势:你的 Go 微服务中的 Agent,既可以调用外部 MCP 工具,也可以被其他平台(如 Claude Desktop、Dify 等)作为 MCP 工具调用。
2.3 A2A 协议支持
A2A(Agent to Agent Protocol)是让不同 Agent 之间互相通信的标准协议:
// 作为 A2A 服务器暴露 Agent
a2aServer := agent.AsA2AServer(&maf.A2AServerConfig{
Port: 8080,
Capabilities: []string{"streaming", "push_notifications"},
})
// 作为 A2A 客户端调用其他 Agent
a2aClient := maf.NewA2AClient()
otherAgent := a2aClient.Connect("http://other-service:8080")
result := await otherAgent.SendMessage(ctx, &maf.A2AMessage{
Type: "task_request",
Payload: map[string]interface{}{
"task": "analyze_logs",
"context": userRequest,
},
})
2.4 观测性(Observability)
生产级 Agent 系统必须可观测。MAF Go SDK 集成 OpenTelemetry:
// 配置 OpenTelemetry
tracerProvider, err := otel.NewTracerProvider(ctx,
otel.WithEndpoint("otel-collector:4317"),
otel.WithInsecure(),
)
defer tracerProvider.Shutdown(ctx)
// 每个 Agent 步骤自动生成 span
agent := chatClient.AsAIAgent(
instructions: systemPrompt,
name: "my-agent",
middleware: []maf.Middleware{
maf.TracingMiddleware(tracerProvider),
maf.LoggingMiddleware(logger),
maf.MetricsMiddleware(meter),
},
)
自动生成的 traces 包括:LLM 调用(输入/输出/token 消耗)、工具调用(参数/结果/耗时)、工作流步骤流转、Agent 间通信。
2.5 当前的局限性
微软在官方文档中坦诚列出了 Go SDK 尚不具备的功能:
| 功能 | .NET 版本 | Go SDK |
|---|---|---|
| 交接编排(HandOffs) | ✅ | ❌ 规划中 |
| CodeAct(更快工具调用) | ✅ | ❌ 规划中 |
| Declarative YAML 工作流 | ✅ | ✅ |
| GroupChat 多 Agent 群聊 | ✅ | ✅ |
| Agent Skill 系统 | ✅ | ✅ |
| Checkpoint 机制 | ✅ | ✅ |
这种坦诚是值得称赞的。社区对"预览版画饼"深恶痛绝,明确标注功能状态让开发者可以做出正确的技术决策。
三、Google ADK Go 支持:先发者的经验
3.1 ADK 的 Go 演进
Google 的 Agent 开发套件(ADK)走了一条类似但更快的路:
2025年 4月 ─── ADK 发布,Python only
2025年11月 ─── Go 支持加入
2026年 3月 ─── ADK 1.0 正式发布(Go + Python 双主力)
Google 的优势在于:Go 语言本身就是 Google 内部开发的语言,与 Go 生态的关系比微软更近。
3.2 ADK Go SDK 特点
// ADK Go Agent 定义
agent := adk.NewAgent("travel-assistant",
adk.WithInstructions(`你是旅游助手,可以帮用户规划行程、订机票酒店。`),
adk.WithTools(flightAPI, hotelAPI, weatherAPI),
adk.WithMemory(postgresMemory),
)
// 会话管理
session := agent.NewSession(ctx, &adk.SessionConfig{
UserID: "user-123",
State: map[string]any{},
})
response := agent.Run(ctx, session, "帮我规划去东京的行程")
ADK 的设计哲学与 MAF 略有不同:ADK 更偏向"轻量级快速上手",而 MAF 更偏向"企业级复杂编排"。
3.3 ADK vs MAF 功能对比
| 维度 | Google ADK | Microsoft MAF |
|---|---|---|
| Go 支持时间 | 2025年11月 | 2026年7月 |
| 多 Agent 编排 | ✅ | ✅ |
| 条件路由 | ✅ | ✅ |
| 并行执行 | ✅ | ✅ |
| 人工介入 | ✅ | ✅ |
| Checkpoint 恢复 | ✅ | ✅ |
| MCP 集成 | ✅ | ✅ |
| A2A 协议 | 部分 | ✅ |
| OpenTelemetry | ✅ | ✅ |
| YAML 声明式工作流 | ❌ | ✅ |
| 工具调用优化(CodeAct) | ❌ | ✅ (.NET only) |
| 交接编排 | ✅ | ❌(Go) |
| 企业级特性 | 中等 | 更完善 |
3.4 OpenAI 和 Anthropic 的缺位
值得注意的一个现象是:基础模型领域的两大头部玩家——OpenAI 和 Anthropic——至今没有为自己的 Agent SDK 提供 Go 支持。
OpenAI 的 Agents SDK 和 Anthropic 的 Claude Agent SDK 都是 Python-first,Go 开发者只能:
- 裸调用 API(失去了框架的编排能力)
- 等待官方支持(没有明确路线图)
- 使用社区维护的 Go SDK(质量和生命周期风险)
这给了微软和 Google 一个差异化竞争的机会窗口。
四、工程实践:从 0 到 1 构建 Go Agent 服务
4.1 项目初始化
# 创建 Go 项目
mkdir my-agent-service && cd my-agent-service
go mod init github.com/yourname/my-agent-service
# 安装 MAF Go SDK(预览版)
go get github.com/microsoft/agent-framework-go@latest
# 安装 Azure OpenAI 客户端
go get github.com/Azure/azure-sdk-for-go/sdk/ai/azopenai
4.2 多模型路由
实际生产中,一个系统通常需要调用多个模型(成本优化/备用/专业化):
package main
import (
"context"
"log"
"github.com/microsoft/agent-framework-go/maf"
"github.com/microsoft/agent-framework-go/maf/router"
)
func main() {
ctx := context.Background()
// 配置多个模型提供商
modelRouter := router.New(&router.Config{
Strategies: []router.Strategy{
{
Name: "cheap",
Provider: "azure-openai",
Model: "gpt-4o-mini",
Condition: func(ctx context.Context, req *router.Request) bool {
// 简单任务用便宜模型
return len(req.Messages) < 5 && !req.RequireDeepReasoning
},
},
{
Name: "balanced",
Provider: "azure-openai",
Model: "gpt-4o",
Condition: func(ctx context.Context, req *router.Request) bool {
return !req.RequireDeepReasoning
},
},
{
Name: "reasoning",
Provider: "anthropic",
Model: "claude-sonnet-4-20260220",
Condition: func(ctx context.Context, req *router.Request) bool {
return req.RequireDeepReasoning
},
},
},
Fallback: "balanced",
})
// Agent 使用路由
agent := maf.NewAgent("smart-router",
maf.WithModelRouter(modelRouter),
maf.WithInstructions("你是一个智能助手,会根据任务复杂度自动选择最合适的模型。"),
)
result := agent.Run(ctx, "解释一下 Go 的竞态条件检测器是怎么工作的")
log.Printf("Response: %s", result.Content)
}
4.3 带记忆的对话 Agent
package main
import (
"context"
"encoding/json"
"os"
"github.com/microsoft/agent-framework-go/maf"
"github.com/redis/go-redis/v9"
)
func main() {
ctx := context.Background()
// Redis 记忆存储
redisClient := redis.NewClient(&redis.Options{
Addr: os.Getenv("REDIS_ADDR"),
})
memory := maf.NewRedisMemory(redisClient,
maf.WithSessionPrefix("agent:session:"),
maf.WithHistoryWindow(20), // 保留最近20轮对话
maf.WithSummaryThreshold(10), // 超过10轮自动摘要
)
agent := maf.NewAgent("memory-agent",
maf.WithInstructions(`你是一个友好的助手,会记住之前的对话内容。`),
maf.WithMemory(memory),
)
// 第一次对话
session1 := agent.NewSession(ctx, "user-001", nil)
agent.Run(ctx, session1, "我叫张三,在字节工作")
// 第二次对话——Agent 应该记住张三
session2 := agent.NewSession(ctx, "user-001", nil)
response := agent.Run(ctx, session2, "你还记得我叫什么名字吗?")
// 期望回复:"你叫张三,在字节工作"
println(response.Content)
}
4.4 多 Agent 协作:代码审查流水线
这是一个更复杂的例子——用多个 Agent 组成代码审查流水线:
// 定义各个专业 Agent
linterAgent := createLinterAgent()
securityAgent := createSecurityAgent()
perfAgent := createPerfAgent()
summaryAgent := createSummaryAgent()
// 并行执行三路审查,然后汇总
codeReviewWorkflow := maf.Sequential(
maf.Step("parallel_review",
maf.Concurrent(
maf.Step("lint", linterAgent),
maf.Step("security", securityAgent),
maf.Step("performance", perfAgent),
),
),
maf.Step("summarize", summaryAgent),
maf.RequestPort("approve_merge",
&maf.RequestConfig{
Message: "代码审查完成,请人工确认是否可以合并:",
Timeout: 30 * time.Minute,
},
),
)
// 执行审查
workflow := maf.NewWorkflow("code-review", codeReviewWorkflow)
result := workflow.Run(ctx, &maf.WorkflowInput{
"code_diff": codeDiffContent,
"repo": "github.com/myorg/myrepo",
"pr_number": 42,
})
println(result.Output["summary"])
4.5 与 Kubernetes 集成
Go 开发者最常见的场景之一是将 Agent 部署到 Kubernetes:
# agent-deployment.yaml
apiVersion: apps/v1
kind: Deployment
metadata:
name: my-agent
spec:
replicas: 3
selector:
matchLabels:
app: my-agent
template:
metadata:
labels:
app: my-agent
spec:
containers:
- name: agent
image: my-agent:1.0.0
ports:
- containerPort: 8080
env:
- name: AZURE_OPENAI_ENDPOINT
valueFrom:
secretKeyRef:
name: ai-secrets
key: endpoint
- name: AZURE_OPENAI_KEY
valueFrom:
secretKeyRef:
name: ai-secrets
key: api-key
resources:
requests:
memory: "256Mi"
cpu: "250m"
limits:
memory: "512Mi"
cpu: "1000m"
readinessProbe:
httpGet:
path: /health
port: 8080
livenessProbe:
httpGet:
path: /health
port: 8080
initialDelaySeconds: 10
periodSeconds: 30
// Agent HTTP 服务
func main() {
mux := http.NewServeMux()
// Agent 运行接口
mux.HandleFunc("/v1/chat", handleChat)
// 健康检查(K8s probe)
mux.HandleFunc("/health", func(w http.ResponseWriter, r *http.Request) {
w.WriteHeader(http.StatusOK)
json.NewEncoder(w).Encode(map[string]string{"status": "healthy"})
})
// OpenTelemetry metrics(Prometheus 采集)
mux.Handle("/metrics", promhttp.Handler())
log.Fatal(http.ListenAndServe(":8080", mux))
}
五、生产级注意事项
5.1 Token 消耗与成本控制
LLM API 是按 token 收费的,生产环境中必须监控:
// Token 使用量追踪中间件
tokenTracker := func(next maf.AgentMiddleware) maf.AgentMiddleware {
return func(ctx context.Context, req *maf.AgentRequest) *maf.AgentResponse {
before := time.Now()
resp := next(ctx, req)
after := time.Now()
// 记录到 Prometheus
tokenGauge.With(prometheus.Labels{
"agent": req.AgentName,
"model": req.Model,
}).Set(float64(resp.Usage.TotalTokens))
// 记录延迟
requestDuration.With(prometheus.Labels{
"agent": req.AgentName,
}).Observe(after.Sub(before).Seconds())
return resp
}
}
5.2 限流与并发控制
// 配置 Agent 并发限制
agentConfig := &maf.AgentConfig{
MaxConcurrentSessions: 100,
RateLimit: &maf.RateLimitConfig{
RequestsPerMinute: 60,
BurstSize: 10,
},
Timeout: 2 * time.Minute,
}
5.3 安全考虑
Agent 系统的安全风险比普通 API 高得多:
// 1. 输出内容过滤
contentFilter := maf.NewContentFilter(&maf.ContentFilterConfig{
BlockPatterns: []string{"\\bsecret\\b", "\\bpassword\\b"},
BlockCategories: []string{"hate", "violence", "self-harm"},
OnBlock: maf.BlockAndLog,
})
// 2. 工具调用审计
toolAudit := maf.ToolAuditMiddleware(func(ctx context.Context, call maf.ToolCall) error {
log.Printf("[AUDIT] Agent=%s Tool=%s Args=%s User=%s",
getAgentName(ctx),
call.ToolName,
sanitizeJSON(call.Arguments),
getUserID(ctx),
)
return nil
})
// 3. 请求限流(防止 prompt injection)
inputSanitizer := maf.NewInputSanitizer()
5.4 模型降级策略
LLM API 不可用时,系统不应直接崩溃:
// 配置降级策略
fallbackChain := []maf.FallbackConfig{
{
Model: "gpt-4o",
Retry: 3,
Timeout: 30 * time.Second,
},
{
Model: "gpt-4o-mini",
Retry: 2,
Timeout: 15 * time.Second,
},
{
Model: "local-llama",
Retry: 1,
Timeout: 60 * time.Second,
Endpoint: "http://localhost:11434/api/chat",
},
}
六、为什么这是 AI Agent 生态的转折点
6.1 Go 生态的巨大潜力
Go 语言的社区规模和技术影响力远超很多人的认知:
- 全球 Go 开发者数量:估计超过 200 万人
- 云原生基础设施:80% 以上的 Kubernetes 相关项目由 Go 构建
- DevOps 工具链:CI/CD、监控、日志、追踪工具中 Go 占主导
这 200 万+ 开发者此前在 AI Agent 领域几乎没有官方工具支持。MAF Go SDK 和 Google ADK Go SDK 的出现,将让这股力量正式进入 AI Agent 开发领域。
6.2 基础设施代码的 Agent 化
一个正在发生的趋势是:基础设施运维正在被 AI Agent 接管。
想象一下这些场景:
- 用自然语言"帮我把这个服务的副本数从 3 改成 5",一个 Go Agent 解析命令、执行 kubectl patch
- "检查一下所有服务的 CPU 使用率,有异常的告警",Agent 调用 Prometheus API、分析结果、发送告警
- "帮我写一个 Kubernetes Operator 来管理这个 CRD",Agent 读取代码库、生成代码、运行测试
这些场景的共同特点是:代码由 Go 编写,运行环境是 Kubernetes,运维人员擅长 Go 但不擅长 Python。
MAF Go SDK 让这种"Go-to-Go"的 Agent 开发成为可能。
6.3 微服务 + Agent 的架构融合
传统的微服务架构中,AI 能力往往是通过独立服务(如 Python FastAPI 服务)来提供的:
┌─────────────┐ HTTP/gRPC ┌──────────────┐
│ Go 微服务 │ ◄──────────────► │ Python Agent │
│ (业务逻辑) │ │ (AI 能力) │
└─────────────┘ └──────────────┘
问题:
- 两套语言 = 两套部署流水线
- 网络延迟增加(Go → Python → LLM → Python → Go)
- 状态共享困难(对话历史、记忆需要额外机制)
- 运维复杂(两套监控、日志、CI/CD)
有了 MAF Go SDK:
┌──────────────────────────────────────┐
│ Go 微服务 │
│ ┌──────────┐ ┌──────────────┐ │
│ │ 业务逻辑 │ ◄─► │ MAF Agent │ │
│ └──────────┘ └──────────────┘ │
│ 直接调用 LLM(无额外网络跳转) │
└──────────────────────────────────────┘
Agent 和业务代码共享同一个进程、同一套语言、同一套部署机制。这在架构上是一个根本性的简化。
七、未来展望:接下来会发生什么
7.1 短期(2026 年内)
- MAF Go SDK 正式版发布:预计 2026 年 Q4,HandOffs 和 CodeAct 特性会移入
- 更多 MCP 工具涌现:Go 生态中的优秀工具会被快速 MCP 化
- ADK 与 MAF 互操作性:两个框架之间的 A2A 通信标准化
7.2 中期(2027-2028 年)
- Go 成为 AI Agent 开发的第二语言:Python 仍然是主流,但 Go 在基础设施/运维场景会占据重要地位
- 原生 Agent 化:Kubernetes Operator、云原生监控平台等会内置 Agent 能力
- 多 Agent 协作标准化:服务网格的 Sidecar 模式会被"Agent Sidecar"所借鉴
7.3 长期(2028+)
- AI Agent 原生语言:可能出现专为 Agent 工作负载设计的语言特性(类似 Rust 的所有权系统在并发场景的优势)
- 自治基础设施:Go 编写的自我修复、自我扩缩容的基础设施系统
- 开发范式转变:从"我写代码让机器执行"到"我和 Agent 协作生产系统"
结语
微软 MAF Go SDK 的发布,是 AI Agent 开发领域的一个重要节点。它不仅仅是一个新的 SDK,而是宣告:云原生开发者正式拿到了 AI Agent 时代的主流工具链入场券。
在此之前,Go 开发者想要拥抱 AI Agent,要么忍受 Python Sidecar 的架构割裂,要么放弃框架能力裸写 API 调用。现在,他们可以直接在自己熟悉的工具链中,构建生产级的多 Agent 系统。
当然,Preview 版本还有局限性,正式版的功能完善还需要时间。但方向是清晰的:当 Kubernetes、Docker、Prometheus 的建设者们开始用 Go 构建 AI Agent,云原生世界的基础设施智能化将进入一个全新的阶段。
对于每一个在 Go 生态中工作的工程师来说,这都是一个值得认真对待的信号:你的下一个生产级系统,很可能不只是用 Go 编写,而且由 Go Agent 驱动。
参考链接:
- Microsoft Agent Framework Go SDK: https://github.com/microsoft/agent-framework-go
- Google ADK: https://github.com/google/adk-python(Go SDK 通过官方文档获取)
- MAF 官方文档: https://learn.microsoft.com/en-us/semantic-kernel/
- AI Agents for Beginners 课程: https://github.com/microsoft/ai-agents-for-beginners