项目快照:microsoft/ai-agents-for-beginners,约 72,368 个 Star,23,966 个 Fork;最新推送时间 2026-07-29T19:47:29Z。本文基于仓库公开资料撰写。

项目地址:https://github.com/microsoft/ai-agents-for-beginners · https://aka.ms/ai-agents-beginners

ai-agents-for-beginners 从代码、运行环境到实践流程的项目封面
ai-agents-for-beginners 的项目能力与实践流程示意。

项目速览(TL;DR)

ai-agents-for-beginners 是 Microsoft 发布的人工智能代理(AI Agents)入门课程仓库,仓库描述为“18 Lessons to Get Started Building AI Agents”。项目以课程资料、README、短视频入口和代码示例为主要组成,默认分支为 main,主要语言标注为 Jupyter Notebook,许可证为 MIT。

根据给定 GitHub 元信息,仓库拥有 72,368 个 Star 和 23,966 个 Fork。该数据未附带抓取时间,不能据此推导增长趋势、用户规模、课程完成率或代码质量指标;课程实际运行所需的云资源、模型部署和服务权限,应以仓库当前版本的课程设置说明为准。

  • 项目类型:面向初学者的 AI Agent 课程仓库。
  • 课程规模:README 和项目描述指向 18 个课程单元。
  • 主要技术形态:Jupyter Notebook 与 Python 代码示例。
  • 核心服务:Microsoft Foundry、Microsoft Agent Framework(MAF)和 Microsoft Foundry Agent Service V2。
  • 默认分支:main
  • 许可证:MIT License。

定位与目标用户

该仓库定位为“从基础开始构建 AI Agent”的学习型代码库,而不是已经封装好的生产代理平台。读者可以按课程单元学习,也可以根据已有知识直接进入特定主题;README 明确说明每个课程单元覆盖独立主题。

它面向希望理解代理基本组成、调用 Microsoft 服务并运行 Python 示例的学习者。若读者尚未接触生成式人工智能(Generative AI),README 建议先学习 Microsoft 的 Generative AI For Beginners 课程;这属于课程路径建议,不代表当前仓库包含该课程的全部内容。

  • 希望从模型调用进一步学习工具、工作流、检索和多代理概念的开发者。
  • 需要通过 Notebook 和代码示例理解 AI Agent 执行流程的工程师。
  • 使用 Microsoft Foundry 或计划评估 Microsoft Agent Framework 的团队。
  • 希望阅读多语言课程说明的学习者。

课程内容与学习路径

课程采用按单元拆分的组织方式,每个单元通常包含书面课程说明、短视频、Python 示例以及额外资源链接。由于给定资料没有提供 18 个单元的完整标题清单,本文不虚构逐课目录。

课程入口位于仓库根目录的 README.md,课程设置位于 00-course-setup/README.md,示例代码位于 code_samples 目录。资料还显示仓库包含 50 多种语言的翻译目录,因此完整克隆会增加下载内容。

  1. 先阅读课程设置,确定 Microsoft Foundry 项目、模型部署和相关连接配置。
  2. 选择一个课程单元,结合 README 与对应 Notebook 阅读。
  3. 运行该单元需要的代码示例,并记录模型、搜索或 Bing 连接等外部依赖。
  4. 根据示例涉及的组件,分别检查身份认证、数据访问和输出处理边界。

核心功能

仓库的核心价值在于把 AI Agent 的学习内容与可阅读的代码示例放在同一课程结构中。功能并非一个单独的命令行程序,而是由课程说明、Notebook、服务配置和外部平台共同构成的学习闭环。

Agent 基础概念与代码示例

课程通过 Python 示例展示如何使用 Microsoft Agent Framework 与 Microsoft Foundry 构建代理。输入通常来自课程示例中的用户任务或模型请求,输出则由代理流程返回;具体函数签名、消息类型和调用方式没有在给定 README 片段中完整列出,因此不能在本文中伪造统一 API。

触发条件取决于所学习的课程单元。代码运行至少涉及模型部署和 Microsoft Foundry 项目端点;如果某个单元还使用 Azure AI Search 或 Bing grounding workflow,则必须额外配置相应服务。

Microsoft Foundry Agent Service V2

README 将 Microsoft Foundry Agent Service V2 列为课程使用的服务之一。它承担代理服务侧的运行能力,但仓库资料没有给出服务端部署拓扑、区域要求、配额、并发上限或 SLA,因此这些内容不能从课程仓库推断。

课程示例使用 Microsoft Foundry 项目端点和模型部署名称作为配置入口。输入输出格式、会话保存方式以及服务端日志保留策略,应以对应课程代码和 Microsoft Foundry 官方文档为准。

Agentic RAG

README 明确指出,第 05 课的 Agentic RAG 需要 Azure AI Search。该能力的基本依赖关系是:课程代码发起代理任务,代理流程访问搜索服务,再将检索结果用于后续模型处理;具体检索字段、索引结构和返回数据格式,给定资料没有提供。

因此,配置 Azure AI Search 端点和密钥只能说明运行前置条件,不能保证任意搜索服务已经具备课程示例所需的索引。测试时应使用已授权、可删除或已脱敏的数据集,避免把个人信息或未经授权的业务数据送入模型。

Bing grounding workflow

README 将 Bing connection 标记为第 08 课的必需配置,并将该课程描述为 Bing grounding workflow。触发该工作流需要配置 BING_CONNECTION_ID,但资料没有给出连接创建命令、请求参数或结果 schema。

该能力涉及外部检索和模型生成的组合,运行结果可能依赖外部内容变化。课程仓库没有提供搜索结果准确率、内容时效性或引用完整性的保证,实际应用应自行设计来源展示和人工复核机制。

浏览器使用与成本感知路由

环境变量示例显示,第 15 课使用名为 browser-use 的场景,并配置 AZURE_OPENAI_CHAT_DEPLOYMENT_NAME;第 16 课支持小模型与大模型之间的路由,使用 AZURE_AI_SMALL_MODELAZURE_AI_LARGE_MODEL。资料没有提供浏览器操作的目标站点、自动化动作清单或路由算法实现。

第 16 课的配置说明明确指出:未设置小模型或大模型变量时,默认使用 AZURE_AI_MODEL_DEPLOYMENT_NAME。这说明示例用于演示模型层级路由的配置方式,但不能据此宣称固定的成本下降比例或性能提升。

系统架构与关键模块

从仓库资料看,系统由课程层、示例代码层、模型与代理服务层、可选外部连接层组成。它不是单体应用,运行一个课程单元时,实际依赖范围由该单元使用的组件决定。

层次 资料中的模块 输入 输出或职责 运行依赖
课程层 README.md、各课 README、短视频入口 主题说明与学习任务 解释概念、提供资源链接 仓库文件
示例层 code_samples、Jupyter Notebook 课程示例输入 演示代理代码及调用过程 Python、课程依赖
代理框架层 Microsoft Agent Framework(MAF) 代理任务与模型请求 提供代理编排能力 框架及认证配置
服务层 Microsoft Foundry Agent Service V2 项目端点、模型部署 提供代理服务运行入口 Microsoft Foundry Azure 账户
外部连接层 Azure AI Search、Bing connection 搜索请求或 grounding 请求 返回检索或外部信息 对应服务和授权

上述架构是根据 README 和 .env.example 对依赖关系进行的结构化整理,不等同于仓库声明的正式架构图。仓库资料没有给出模块间的网络端口、部署清单、容器拓扑或请求时序图。

依赖与运行环境

课程代码以 Python 和 Jupyter Notebook 为主要表现形式,但给定资料没有提供 Python 版本、Jupyter 版本、操作系统支持矩阵或完整依赖锁定文件。运行环境因此不能按本文自行设定版本,建议以当前仓库的课程设置和各课目录为准。

Microsoft Foundry 是大多数课程的必需项目,README 同时明确标注需要 Azure 账户。直接调用模型的课程使用 Azure OpenAI Responses API;资料特别说明 GitHub Models 已弃用,并计划于 2026 年 7 月退出,同时不支持 Responses API。

  • 仓库获取:Git,仓库地址为 https://github.com/microsoft/ai-agents-for-beginners.git
  • 代码形态:Jupyter Notebook 与 Python 示例。
  • 模型服务:Microsoft Foundry 和 Azure OpenAI Responses API。
  • 认证方式:.env.example 说明可使用 Entra ID / AzureCliCredential,也可选择 Azure OpenAI API key。
  • 可选模型提供商:MiniMax,使用 OpenAI 兼容接口。

资料没有提供安装包列表、依赖版本和通用启动脚本。不要根据仓库语言标注自行推断可以使用某个固定的 pip install 命令;应先阅读目标课程的设置文件。

快速开始

快速开始可以可靠地完成仓库获取、可选的翻译裁剪和文件验证;课程代码的实际执行还需要 Azure 资源、模型部署以及按课程配置的凭据。下面的命令均来自 README 中给出的 Git 操作或基于仓库资料中明确存在的目录进行本地检查,不会访问未授权的远程目标。

安装:获取仓库

Bash
git clone https://github.com/microsoft/ai-agents-for-beginners.git
cd ai-agents-for-beginners

这里的“安装”指获取课程源代码与 Notebook,并不代表已经安装 Python 依赖或完成云服务配置。官方仓库未提供统一的依赖安装命令,建议进入 00-course-setup/README.md 查阅当前版本要求。

运行:使用不含翻译的大体积裁剪方式准备课程

Bash
git clone --filter=blob:none --sparse https://github.com/microsoft/ai-agents-for-beginners.git
cd ai-agents-for-beginners
git sparse-checkout set --no-cone '/*' '!translations' '!translated_images'

以上命令是 README 提供的 macOS、Linux 和 Bash 方案,目的在于排除 translationstranslated_images。Windows CMD 方案应使用 README 中的双引号写法;两种方式都不会替代课程运行所需的模型和服务配置。

验证:检查课程入口与示例目录

Bash
test -f README.md && echo "README.md: OK"
test -f 00-course-setup/README.md && echo "course setup: OK"
test -d code_samples && echo "code_samples: OK"

验证命令只检查资料中明确提到的文件和目录是否存在,不会发起模型请求。若检查失败,先确认当前目录是仓库根目录,并检查稀疏检出规则;若课程目录在最新版本中发生变化,应以最新 README 为准。

最小可运行边界

给定资料没有提供一个完整、可独立复制的 Python 程序,也没有给出 Notebook 的启动命令、依赖安装命令或通用入口函数。因此,本文不虚构一个声称能够调用代理服务的 Python 示例;要形成真正的模型调用闭环,必须以目标课程中的实际 Notebook 和课程设置为准。

在不填入真实凭据的情况下,可以先完成本地仓库闭环:克隆仓库、准备课程目录、验证入口文件。模型运行闭环需要授权的 Azure 资源和部署名称,禁止把下方占位符直接当作有效密钥使用。

配置说明

.env.example 是资料中最明确的配置来源,包含 Microsoft Foundry、Azure OpenAI、Azure AI Search、Bing 和 MiniMax 的变量示例。字段是否被某一课程使用,取决于课程单元;并非所有变量都需要在每次运行时同时填写。

字段名 类型 默认值 作用
AZURE_AI_PROJECT_ENDPOINT 字符串 "https://..." Microsoft Foundry 项目端点;大多数课程需要。
AZURE_AI_MODEL_DEPLOYMENT_NAME 字符串 "gpt-5-mini" Foundry 项目中的模型部署名;示例要求使用支持 Responses API 且未弃用的模型。
AZURE_AI_SMALL_MODEL 字符串 "gpt-5-nano" 第 16 课模型路由中的小模型部署名。
AZURE_AI_LARGE_MODEL 字符串 "gpt-5-mini" 第 16 课模型路由中的大模型部署名。
AZURE_OPENAI_ENDPOINT 字符串 "https://<your-resource>.openai.azure.com" Azure OpenAI Responses API 端点。
AZURE_OPENAI_DEPLOYMENT 字符串 "gpt-5-mini" 直接调用模型时使用的 Azure OpenAI 部署名。
AZURE_OPENAI_API_KEY 字符串 "..." 可选的 Azure OpenAI API key;也可使用 Entra ID / AzureCliCredential。
AZURE_OPENAI_CHAT_DEPLOYMENT_NAME 字符串 "gpt-5-mini" 第 15 课 browser-use 场景使用的聊天部署名。
AZURE_SEARCH_SERVICE_ENDPOINT 字符串 "https://..." 第 05 课 Agentic RAG 使用的 Azure AI Search 服务端点。
AZURE_SEARCH_API_KEY 字符串 "..." 第 05 课 Azure AI Search 的 API key。
BING_CONNECTION_ID 字符串 "..." 第 08 课 Bing grounding workflow 的连接标识。
MINIMAX_API_KEY 字符串 "..." MiniMax OpenAI 兼容服务的 API key。
MINIMAX_BASE_URL 字符串 "https://api.minimax.io/v1" MiniMax 的 OpenAI 兼容接口基础地址。
MINIMAX_MODEL_ID 字符串 "MiniMax-M3" MiniMax 模型标识。

上表中的字段名和示例默认值均来自给定的 .env.example。模型部署名只是配置样例,不表示读者的 Foundry 项目已经部署相同模型;应替换为当前项目中实际存在且符合课程要求的部署。

配置文件示例

Bash
AZURE_AI_PROJECT_ENDPOINT="https://..."
AZURE_AI_MODEL_DEPLOYMENT_NAME="gpt-5-mini"
AZURE_OPENAI_ENDPOINT="https://<your-resource>.openai.azure.com"
AZURE_OPENAI_DEPLOYMENT="gpt-5-mini"
AZURE_OPENAI_API_KEY="<你的-Azure-OpenAI-API-KEY>"

该片段仅用于说明变量形态,不能作为真实凭据。API key、项目端点和搜索密钥不应提交到公开仓库、Notebook 输出或日志;资料没有说明仓库是否自动加载环境文件,也没有给出密钥轮换、密钥托管或权限最小化的具体实现。

进阶用法

进阶使用的重点是按课程单元拆解依赖,而不是一次性配置所有服务。对于只学习基础代理的单元,可以先准备 Foundry 项目和模型部署;进入 Agentic RAG、Bing grounding 或 browser-use 相关课程时,再补充对应配置。

  • 稀疏检出:仓库包含 50 多种翻译,磁盘或网络受限时可按 README 排除翻译目录。
  • 多语言学习:README 提供简体中文、繁体中文以及其他语言的翻译入口,翻译由 GitHub Action 支持并保持更新。
  • 模型路由:第 16 课可配置小模型和大模型部署,未设置时回退到 AZURE_AI_MODEL_DEPLOYMENT_NAME
  • 替代提供商:部分示例支持 MiniMax 等 OpenAI 兼容提供商,具体配置以课程设置说明为准。
  • 课程分叉:可以 Fork 仓库,在自己的副本中运行和修改代码;Fork 本身不代表获得 Azure 资源或第三方服务授权。

在场景 A 中,如果目标是理解 Microsoft Agent Framework 与 Microsoft Foundry 的组合,应优先按照课程默认技术栈操作;在场景 B 中,如果已有 OpenAI 兼容服务,且目标课程明确支持替代提供商,可以依据课程设置评估 MiniMax。资料没有提供不同提供商之间的准确率、延迟、价格或功能对比,因此不应作出量化结论。

可观测性与运维

给定资料主要描述课程和配置,没有提供统一的日志格式、指标名称、链路追踪方案、告警规则或生产部署文档。仓库 README 中的 GitHub issues、Pull Requests 和 Discord 入口适合反馈课程代码问题,但不能当作运行时监控系统或服务级支持承诺。

运行课程示例时,建议至少记录课程编号、使用的模型部署名、外部连接类型、输入是否经过脱敏以及错误发生阶段。以下属于根据本文作者的经验判断,不是仓库明确承诺的功能:如果把示例扩展到业务环境,应将模型调用、工具调用和检索结果分别记录,避免只保留最终文本而无法定位错误来源。

  • 区分身份认证失败、模型部署不存在、外部搜索连接失败和代码异常。
  • 不要在日志中输出 AZURE_OPENAI_API_KEYAZURE_SEARCH_API_KEY 或其他凭据。
  • 对模型输出和外部检索结果保留可追溯的课程或请求上下文。
  • 在修改模型部署后重新验证课程示例,不把部署名称当作模型能力的充分证明。

仓库未提供并发控制、重试策略、超时配置、成本预算、数据保留和灾备方案。部署到生产前,这些部分需要由使用团队自行设计并通过所使用的 Microsoft 服务文档核验。

安全与合规边界

该项目包含模型调用、检索、Bing grounding 和 browser-use 等能力,使用时必须限制在已授权的 Azure、搜索连接和测试数据范围内。课程资料没有提供绕过访问控制、规避检测或攻击第三方系统的内容,本文也不提供面向未授权目标的操作方法。

凭据与数据

  • API key、项目端点和连接标识应通过受控配置注入,不应写入公开提交。
  • Azure AI Search 的索引内容应具备合法的数据来源和访问权限。
  • 发送给模型的输入应先评估是否包含个人信息、商业秘密或受合同约束的数据。
  • browser-use 相关示例只能用于获得授权的浏览器环境和测试站点。

外部内容与模型输出

Bing grounding 或搜索增强会引入外部内容,外部内容不等于已验证事实。对于医疗、金融、法律、身份认证或其他高影响决策,不能仅凭课程示例的模型输出直接执行决策。

仓库没有声明特定行业合规认证、隐私承诺、数据驻留范围、SLA 或安全审计结果。相关要求应由部署组织结合 Azure 服务条款、内部制度和适用法律单独核验。

许可证与商用条款

仓库包含 MIT License,版权归 Microsoft Corporation 所有。MIT License 授予获得软件及相关文档的人员使用、复制、修改、合并、发布、分发、再许可和销售副本的许可,但分发时必须保留版权声明和许可声明。

因此,从许可证文本看,代码和文档在满足 MIT 条款的前提下可以用于商业场景;但该结论仅针对仓库许可证,不自动覆盖 Azure、Microsoft Foundry、Azure OpenAI、Bing、MiniMax、模型权利、数据来源或第三方服务的独立条款。

  • 再分发软件或实质性部分时,应保留 MIT License 要求的版权与许可文本。
  • MIT License 按“现状”提供,不提供适销性、特定用途适用性和不侵权保证。
  • 仓库许可证不能替代云服务账号、模型部署和外部数据的授权。
  • 具体分发方式和组合产品中的责任边界,以仓库 LICENSE 及相关服务条款为准。

局限性与已知限制

该项目是入门课程,不是面向所有生产场景的完整工程模板。给定资料没有提供性能基准、并发规模、错误率、成本数据、版本兼容矩阵或服务等级承诺,因此这些指标均应视为未提供。

  • 没有完整列出 18 个课程单元的标题和每课依赖。
  • 没有在给定资料中提供 Python、Jupyter 或框架的版本号。
  • 没有提供通用的依赖安装命令、Docker 镜像或容器编排文件。
  • 部分课程依赖 Microsoft Foundry、Azure AI Search 或 Bing connection,脱离相应服务不能完整运行。
  • 课程示例不能自动推导生产级认证、审计、监控、限流和数据治理方案。
  • GitHub Models 已在 README 配置说明中标记为弃用,并注明不支持 Responses API。

官方仓库未提供上述缺失信息,建议以最新 README、目标课程的设置说明和对应服务官方文档为准。仓库处于持续更新状态时,环境变量、模型名称和课程代码也可能随服务生命周期变化。

适合谁

判断是否采用该课程,关键在于已有技术栈、云资源条件和学习目标是否与仓库边界一致。以下信号越多符合,越适合从该仓库开始。

  • 团队或个人已经拥有 Azure 账户,并能创建或使用 Microsoft Foundry 项目。
  • 学习目标是理解 AI Agent 的组成和工作流,而不是直接采购一个带 SLA 的成品系统。
  • 能够阅读 Python、Jupyter Notebook 和环境变量配置。
  • 希望学习 Microsoft Agent Framework、Microsoft Foundry Agent Service V2 或 Azure AI Search 的组合用法。
  • 可以在授权的测试数据和测试站点中验证搜索增强、浏览器使用等示例。

不适合谁

如果项目要求在无云资源、强版本锁定或高合规约束下立即上线,该仓库不能单独满足这些条件。以下任一信号成立时,应先补充工程化评估或选择与约束更匹配的方案。

  • 团队无法使用 Azure 账户,且目标课程依赖 Microsoft Foundry 或 Azure AI Search。
  • 需要明确的 Python、依赖、并发、延迟、成本或 SLA 指标,而仓库资料未提供这些承诺。
  • 需要完全离线运行,但目标课程依赖云端模型、搜索服务或 Bing connection。
  • 要直接处理未脱敏的个人信息、金融数据、医疗数据或其他受严格监管的数据。
  • 需要一个已经完成认证、审计、限流、监控和灾备的生产级代理平台,而不是课程示例。

常见问题与排查(FAQ / Troubleshooting)

排查应先区分仓库获取问题、配置问题、身份认证问题和外部服务问题。不要把所有失败都归因于模型或 Notebook 本身。

为什么克隆后目录很大

README 说明仓库包含 50 多种语言翻译,会显著增加下载大小。需要减少下载内容时,可使用 README 提供的 sparse checkout 命令排除 translationstranslated_images

为什么模型调用失败

先检查 AZURE_AI_PROJECT_ENDPOINTAZURE_AI_MODEL_DEPLOYMENT_NAMEAZURE_OPENAI_ENDPOINT 和对应部署名称是否与实际资源一致。若使用 API key,确认变量没有直接保留示例占位符;若使用 Entra ID / AzureCliCredential,则需按当前课程和 Azure 文档完成身份配置。

第 05 课为什么需要额外配置

根据 .env.example,Agentic RAG 需要 AZURE_SEARCH_SERVICE_ENDPOINTAZURE_SEARCH_API_KEY。即使变量已填写,也需要确认搜索服务中存在课程代码要求的可查询数据结构;给定资料没有提供该结构的定义。

第 08 课为什么无法执行 grounding workflow

该课程需要 BING_CONNECTION_ID。仓库资料没有提供连接创建步骤和权限范围,排查时应确认连接标识属于当前授权的 Microsoft Foundry 环境,并以相关官方文档核验服务状态。

能否直接使用 GitHub Models

根据 .env.example 的说明,GitHub Models 已弃用,计划于 2026 年 7 月退出,并且不支持 Responses API。课程配置示例改为 Azure OpenAI Responses API,因此不应把 GitHub Models 作为当前课程的默认运行依赖。

没有版本号怎么办

给定资料没有提供 Python、Jupyter、Microsoft Agent Framework 或其他依赖的版本号。官方仓库未提供该信息,建议以当前分支的 00-course-setup/README.md、各课程文件和最新 README 为准,避免自行固定未经仓库声明的版本。

社区协作与问题反馈

仓库 README 提供 GitHub Issues、Pull Requests 和 Microsoft Foundry Discord 入口。代码错误、拼写错误和课程建议可以通过 Issue 或 Pull Request 反馈;使用云服务时遇到的账号、配额和权限问题,还需要结合对应服务的支持渠道处理。

  • 提交问题时说明课程编号、复现步骤、脱敏后的错误信息和使用的配置类别。
  • 不要在 Issue、Pull Request 或 Discord 中粘贴 API key、完整端点密钥或业务数据。
  • 如果问题只在某个模型部署出现,应同时记录部署名称,但不要公开敏感资源标识。
  • 提交修改前确认翻译目录、Notebook 输出和课程代码之间没有不一致。

事实范围与核验说明

本文事实主要来自项目 README、LICENSE、.env.example 以及用户提供的 GitHub 元信息。Star、Fork、语言和默认分支属于给定元信息,不代表永久不变的仓库状态。

凡是资料没有明确说明的版本、端口、依赖、性能、并发、SLA、接口签名和部署细节,本文均未补写。涉及学习路径、生产化日志设计和数据治理的建议,已明确标注为根据本文作者的经验判断,不能视为项目官方承诺。

项目地址与资源

下列链接均来自项目资料或 README 中列出的官方入口,使用前应以对应站点当前内容和服务条款为准。