乐于分享
好东西不私藏

AI Agent 入门第二课:主流框架大对比,选哪个不踩坑?

AI Agent 入门第二课:主流框架大对比,选哪个不踩坑?

# AI Agent 入门第二课:主流框架大对比,选哪个不踩坑?

上周一个朋友跟我说,他兴冲冲用 LangChain 做了个 Agent,本以为一天搞定,结果连最简单的工具调用都要自己一层层搭管道——工具注册、输入解析、输出格式化、异常处理,全得手写。折腾了整整两天才勉强上线,人都麻了。

他说了句话我觉得挺有道理:框架选对了,省的不是时间,是命。


为什么直接调 API 不够用?

很多人刚入门,第一反应是:我直接调 OpenAI 的 API 不就行了?

能用,但差很远。

打个比方:直接调 API,就像开手动挡汽车——每次换挡都得自己踩离合、推挡位、配合油门,操作没问题,但你的脑子得一直盯着换挡这件事,没法专心看路。

用 Agent 框架,就像开自动挡——你只管踩油门,换挡的事车自己处理。

Agent 框架帮你封装的那些”换挡”动作,包括:

  • 工具调用:怎么调搜索、怎么调数据库、怎么调计算器,框架帮你规范化
  • 记忆管理:上下文怎么存、怎么召回、多轮对话怎么不乱
  • 错误重试:工具调用失败了怎么处理,是重试还是换策略
  • 多轮对话:每次对话状态怎么传递,不用你手动拼 prompt

你只需要关心:我想让这个 Agent 干什么,能用什么工具,有什么约束。底层的脏活框架干了。


快速原型三板斧

理解了”为什么用框架”,再来看框架给你提供了哪三个最核心的能力。

模块化组件

就像乐高积木,AI 连接器、工具定义、记忆模块、提示模板都是现成的,拼一拼就是 Agent。

举个例子:你想搭一个能搜索 + 回答 + 记住上下文的客服 Agent。不用从零写,直接把搜索工具模块、对话记忆模块、回答生成模块拼在一起,配置一下,跑起来。就像装修不用烧砖,材料商都备好了,你只需要设计怎么摆。

协作工具

多个 Agent 分工协作——数据抓取 Agent 负责搜集信息,分析 Agent 负责看懂数据,决策 Agent 负责给出结论。就像一个研究团队,组长不用既爬数据又写报告还做判断,各司其职,效率高,出错了也容易定位是哪个环节的问题。

实时学习

新员工刚入职,前两周摸不清楚老板喜好,慢慢交互多了才能摸透——Agent 也一样。每次交互都有反馈,系统会动态调整行为偏好,不是死板的 if-else 规则系统。你告诉它”这个回答太长了”,它下次会自动收着点。


MAF vs Azure AI Agent Service:到底选哪个?

先看表格,一目了然:

维度 Microsoft Agent Framework Azure AI Agent Service
定位 开发 SDK(写代码用) 部署平台(上线用)
上手难度 低,几行 Python 搞定 稍高,需要 Azure 配置
模型支持 Azure OpenAI OpenAI + Llama + Mistral + Cohere
最佳场景 快速原型、工具调用 企业生产、大规模部署
与 Azure 集成 通过 AzureCliCredential 原生集成 Bing/AI Search/Functions

官方的建议是:先用 MAF 写 Agent,再用 Azure AI Agent Service 部署上线。

我觉得这个顺序真的是对的,说说我的理解——

MAF 是纯 SDK,本地跑,依赖少,报错清晰,改一行代码秒看效果。你在验证想法的阶段,最怕的就是环境问题挡路,想测一个工具调用逻辑,结果发现 Azure 某个权限没开、某个资源没创建,折腾半天还没开始正题。

等逻辑跑通了,再迁移到 Azure AI Agent Service 上线。这时候你已经知道 Agent 该干什么、工具怎么用,只剩部署这一层的事,心里有底,遇到配置问题也能快速定位。

先把事情想清楚,再搞环境;别一上来就在环境里挣扎。


代码上手:创建你的第一个 Agent

别怕,就这么几行:

`python

import os

from azure.ai.projects import AIProjectClient

from azure.identity import DefaultAzureCredential

from azure.ai.projects.models import AgentProvider, AzureAIProjectAgentProvider

# 用 DefaultAzureCredential 做身份认证

# 本地开发时会自动读取你 az login 的账号

credential = DefaultAzureCredential()

# 创建项目客户端,连接到你的 Azure AI 项目

# AZURE_AI_PROJECT_CONNECTION_STRING 从项目设置里复制

client = AIProjectClient.from_connection_string(

credential=credential,

conn_str=os.environ[“AZURE_AI_PROJECT_CONNECTION_STRING”],

)

# 用 MAF 提供的 Agent Provider 初始化

provider = AzureAIProjectAgentProvider(client=client)

# 创建一个最简单的 Agent

# name:给 Agent 取个名字

# instructions:就是你告诉 Agent 它是谁、该怎么干活的 system prompt

agent = provider.create_agent(

model=”gpt-4o”,                          # 用哪个模型

name=”my-first-agent”,                   # Agent 名字

instructions=”你是一个有用的助手,回答问题要简洁清晰。”,  # 行为指令

)

# 创建对话线程(可以理解为一次会话的容器)

thread = provider.create_thread()

# 往线程里发一条用户消息

provider.create_message(

thread_id=thread.id,

role=”user”,

content=”帮我解释一下什么是 AI Agent”,

)

# 让 Agent 处理这条消息并运行

run = provider.create_and_process_run(

thread_id=thread.id,

agent_id=agent.id,

)

# 获取 Agent 的回复

messages = provider.list_messages(thread_id=thread.id)

print(messages.get_last_text_message_by_role(“assistant”).text.value)

`

看上去挺长,但核心逻辑就五步:连接项目 → 创建 Agent → 开一个对话线程 → 发消息 → 拿回复。

新手最容易卡的地方是 AZURE_AI_PROJECT_CONNECTION_STRING 怎么拿——去 Azure AI Studio 项目页面,左下角有个”项目连接字符串”,复制粘贴进环境变量就行,不用手动拼。


框架选择决策树

每次有人问我”我该用哪个框架”,我都想给他们看这个:

`

我该选哪个框架?

├─ 还在探索/快速验证想法?

│  └─ → 选 Microsoft Agent Framework(MAF)

├─ 需要支持非 OpenAI 的开源模型(Llama/Mistral/Cohere)?

│  └─ → 选 Azure AI Agent Service

├─ 需要企业级部署、高可用、与 Bing/AI Search 深度集成?

│  └─ → 选 Azure AI Agent Service

└─ 从原型走向生产?

└─ → 先 MAF 原型 → 再迁移到 Azure AI Agent Service

`

99% 的初学者都该从 MAF 开始。别高估自己对部署复杂度的耐受力。


踩坑清单

真实踩过的或者见别人踩过的,记下来给你省事:

1. 上来就直接上 Azure AI Agent Service

环境配置这一关就能搞你两天——订阅权限、资源组、API Key、网络策略……每一个都能让你卡住。先用 MAF 把业务逻辑跑通,再迁移上线,顺序反了效率差十倍。

2. 把 Agent 框架当普通 API wrapper 用

有人用了框架,但没有定义工具,没有接记忆模块,就是把 chat.completions.create 套了个壳——这跟直接调 API 没区别,还多了一层封装的理解成本。框架的价值在工具调用和状态管理,不用这些不如不用。

3. 忽略 token 消耗

多 Agent 协作是真的烧 token——每个 Agent 每次运行都要把上下文喂进模型,三个 Agent 协作一次对话,成本可能是单次对话的五六倍。没做成本估算就直接上线,月底账单会给你惊喜。上线前一定要算清楚 QPS × 平均 token 数 × 单价,心里有个数。


课后三道思考题

不用回复我,自己想一想:

  • 你现在手头有没有某个重复性的工作——每次都要查信息、整理、输出——如果让一个 Agent 来干,它需要哪几个工具?记忆要存什么?
  • MAF 和 Azure AI Agent Service 的分工,像不像你公司里”研发环境”和”生产环境”的关系?它们之间最大的隔离是什么?
  • 如果一个 Agent 系统的 token 消耗超出预算,你会优先砍哪个环节——上下文长度、Agent 数量、还是模型档次?为什么?

AI 的世界每天都比昨天更陌生一点,但也更有意思一点。我们明天见。

这是「AI Agents for Beginners」系列笔记第2课,下一课:Agent 设计原则——怎么让 AI 既好用又不乱来,期待的扣1。