# AI Agents for Beginners 课程之 AI Agent及使用场景简介

## 课程概述

`AI Agents for Beginners` 是一门由微软提供的课程，旨在帮助初学者全面了解 `AI Agent` 的构建与应用。课程包含 **10** 课，涵盖 `AI Agent` 的基础概念、开发框架、设计模式、工具使用、可信赖构建、规划、多智能体系统、元认知以及生产环境部署等内容。

> 课程地址：`https://github.com/microsoft/ai-agents-for-beginners`

![ai-agents-for-beginners](https://raw.githubusercontent.com/microsoft/ai-agents-for-beginners/main/images/repo-thumbnail.png)

## 适用对象

本课程适合以下人群：

1. **初学者**：对 `AI Agent` 感兴趣，但缺乏相关经验的人员。
2. **开发人员**：希望将 `AI Agent` 技术应用于实际项目中的开发人员。
3. **数据科学家**：对 `AI Agent` 在数据分析和处理中的应用感兴趣的人员。
4. **研究人员**：从事 `AI` 相关研究，需要了解 `AI Agent` 最新发展和应用的研究人员。
5. **技术爱好者**：对 `AI` 技术充满热情，希望拓展知识面的技术爱好者。

## 先决条件

在学习本课程之前，建议具备以下基础：

1. **编程基础**：熟悉 `Python` 编程语言，了解基本的编程概念和语法。
2. **AI 基础知识**：对人工智能的基本概念有一定了解，如机器学习、深度学习等。
3. **大语言模型基础**：了解大语言模型（`LLMs`）的基本原理和应用，如 `OpenAI` 的 `GPT` 系列模型等。

## 学习资源

课程提供丰富的学习资源，包括：

1. **课程内容**：每课都包含详细的书面课程，位于 `README` 文件中，帮助学习者系统地学习 `AI Agent` 的各个方面。
2. **代码示例**：提供 `Python` 代码示例，支持 `Azure AI Foundry` 和 `GitHub Models`，学习者可以通过实践加深理解。
3. **额外资源链接**：每课都提供额外的资源链接，供学习者进一步深入学习和研究。
4. **社区支持**：加入 `Azure AI Community Discord`，学习者可以与其他学习者和专家交流，解决学习过程中遇到的问题。

## 课程内容

### 第1课：AI Agent 及使用场景简介

本课介绍了 `AI Agent` 的基础概念、类型和应用场景。`AI Agent` 是通过为大语言模型（`LLMs`）提供工具和知识的访问权限，从而扩展其能力以执行操作的系统。其基本组件包括环境、传感器和执行器。环境定义了 `AI Agent` 运行的空间，传感器用于收集和解释环境的当前状态信息，执行器则根据任务需求执行操作以改变环境。利用 `LLMs` 构建 `AI Agent` 的优势在于它们能够解释人类语言和数据，从而更好地理解和处理环境信息并制定行动计划。

### 第2课：探索智能体框架

本课介绍了智能体框架的概念和作用。智能体框架允许开发人员通过代码实现智能体模式，提供模板、插件和工具，以实现更好的 AI 智能体协作。这些优势提供了更好的可观察性和 `AI` 智能体系统故障排除能力。课程中重点介绍了微软的 `AutoGen` 框架和 `Semantic Kernel` 框架。

> **AutoGen**(`https://github.com/autogenhub/autogen`): AutoGen is an open-source programming framework for building AI agents and facilitating cooperation among multiple agents to solve tasks.
>
> **Semantic Kernel**(`https://github.com/microsoft/semantic-kernel`): Semantic Kernel is an SDK that integrates Large Language Models (LLMs) like OpenAI, Azure OpenAI, and Hugging Face with conventional programming languages like C#, Python, and Java. Semantic Kernel achieves this by allowing you to define plugins that can be chained together in just a few lines of code.

### 第3课：理解智能体设计模式

本课探讨了智能体设计模式的概念和重要性。智能体设计模式是一种可复用的解决方案，用于解决智能体开发中的常见问题。通过使用设计模式，开发者可以提高代码的可维护性、可扩展性和可重用性。课程中介绍了多种常见的智能体设计模式。

### 第4课：工具使用设计模式

本课详细讲解了工具使用设计模式在智能体开发中的应用。工具使用设计模式关注的是如何有效地将工具集成到智能体中，使智能体能够利用这些工具完成复杂任务。课程中提供了具体的代码示例和实践指导。

### 第5课：智能体RAG（检索增强生成）

本课介绍了智能体 `RAG` 的概念和实现方法。`RAG` 是一种结合了检索和生成的技术，使智能体能够从大量数据中检索相关信息，并利用这些信息生成高质量的响应。这对于处理需要大量背景知识的任务非常有用。

### 第6课：构建可信赖的AI智能体

本课探讨了构建可信赖的 `AI` 智能体的重要性和方法。可信赖的 `AI` 智能体需要具备可靠性、安全性和透明性。课程中介绍了如何通过设计和实现来确保智能体的可信赖性，包括数据验证、错误处理、安全措施等方面。

### 第7课：规划设计模式

本课介绍了规划设计模式在智能体开发中的应用。规划设计模式关注的是智能体如何制定和执行计划以实现目标。课程中详细讲解了规划的步骤和方法，以及如何将规划集成到智能体的行为中。

### 第8课：多智能体设计模式

本课探讨了多智能体设计模式的概念和应用场景。多智能体系统由多个智能体组成，它们可以独立完成任务，既可以合作也可以竞争。课程中介绍了如何设计和实现多智能体系统，以及如何处理智能体之间的交互和协作。

### 第9课：元认知设计模式

本课介绍了元认知设计模式在智能体开发中的应用。元认知设计模式关注的是智能体如何对自己的思考过程进行监控和调整。这种能力使智能体能够更好地适应复杂环境和任务需求。

### 第10课：生产环境中的AI智能体

本课讲解了如何将 `AI` 智能体部署到生产环境中。这包括智能体的性能优化、监控、维护和扩展等方面。课程中提供了在实际生产环境中部署和管理智能体的最佳实践和建议。

## AI Agent基础概念

AI Agent 是通过为大语言模型（`LLMs`）提供工具和知识的访问权限，从而扩展其能力以执行操作的系统。其基本组件包括环境、传感器和执行器。环境定义了 AI Agent 运行的空间，传感器用于收集和解释环境的当前状态信息，执行器则根据任务需求执行操作以改变环境。利用 LLMs 构建 AI Agent 的优势在于它们能够解释人类语言和数据，从而更好地理解和处理环境信息并制定行动计划。

## 第1课：AI Agent 及使用场景简介(示例)

### AI Agent类型

根据不同的工作方式和应用场景，`AI Agent` 可以分为以下几种类型：

1. **简单反射型 Agent**：根据预定义规则执行即时操作，例如旅游 `Agent` 解析邮件上下文并将旅行投诉转发给客户服务部门。
2. **基于模型的反射型 Agent**：根据世界模型及其变化执行操作，例如旅游 `Agent` 根据历史价格数据的访问优先考虑价格变化显著的路线。
3. **基于目标的 Agent**：通过解释目标并决定实现目标的操作来创建计划，例如旅游 `Agent` 通过确定从当前位置到目的地所需的旅行安排来预订行程。
4. **基于效用的 Agent**：考虑偏好并通过数值权衡如何实现目标，例如旅游 `Agent` 在预订旅行时，通过权衡便利性与成本来最大化效用。
5. **学习型 Agent**：通过响应反馈并相应调整操作来随着时间推移不断改进，例如旅游 `Agent` 使用客户在行程结束后的反馈调查结果来调整未来的预订。
6. **分层 Agent**：包含多级 Agent 系统，高级 Agent 将任务分解为子任务，由低级 `Agent` 完成。
7. **多 Agent 系统**：`Agent` 可以独立完成任务，既可以合作也可以竞争，例如多个 `Agent` 分别预订特定的旅行服务，或管理并竞争共享的酒店预订日历。

### 智能体开发

开发 `AI` 智能体系统的第一步是定义工具、动作和行为。课程中重点介绍了使用 `Azure AI` 智能体服务来定义智能体，它提供了多种特性，如开放模型的选择、通过提供商使用许可数据、使用标准化的 `OpenAPI 3.0` 工具等，为智能体的开发提供了强大的支持。

## 总结

`AI Agents for Beginners` 课程为初学者提供了一个全面学习 `AI Agent` 的平台，通过系统的学习和实践，学习者可以掌握 `AI Agent` 的构建和应用，为未来在人工智能领域的深入发展打下坚实的基础。
