AI 大模型应用开发初探:基于 Semantic Kernel 构建简易 Agent
近期,随着大语言模型(LLM)技术的飞速发展,AI Agent 被视为下一代应用开发的新范式。本文将深入探讨 AI Agent 的核心概念、架构原理,并基于 C# 和 Semantic Kernel 框架,手把手演示如何开发一个具备 Function Calling 能力的简易 Agent。
AI Agent:可以帮你执行任务的助手
学术界和工业界对术语'AI Agent'提出了各种定义。其中,OpenAI 将 AI Agent 定义为'以大语言模型为大脑驱动的系统,具备自主理解、感知、规划、记忆和使用工具的能力,能够自动化执行完成复杂任务的系统。'
通俗来说,大多数时候你给它一个最终你想要达成的目标,它能直接交付结果,过程你啥都不用管。如果说人和动物的区别是人会使用各种工具,那么 Agent 和大模型的区别亦然。
我们可以把 Agent 与 LLM 形象地比作生物体与其大脑。Agent 有手有脚,可以自己干活自己执行,而 LLM 呢,就是它的大脑。比如,如果你使用 LLM 大模型,它可能只能给你输出一份食谱,告诉你需要哪些食材和步骤来制作。但如果你使用 Agent,它可能就是不仅提供食谱和步骤,还会根据你的需求,帮你选择合适的食材甚至自动下单购买,监控烹饪过程,确保食物口感,最终为你呈上一份佳肴。
AI Agent 如何工作?
AI Agent 的架构是其智能行为的基础,它通常包括感知、规划、记忆、工具使用和行动等关键组件,这些组件协同工作以实现高效的智能行为。
1. 感知 (Perception)
Agent 首先需要感知环境。这包括接收用户的自然语言输入、读取传感器数据或访问外部 API 获取当前状态。感知模块负责将非结构化信息转化为 Agent 可理解的上下文。
2. 规划 (Planning)
这是 Agent 的'大脑'部分。基于感知到的信息和长期/短期记忆,LLM 会进行推理,制定达成目标的步骤序列。例如,用户要求'更新工单数量',Agent 需要规划出先查询工单是否存在,再校验状态,最后执行更新的逻辑链条。
3. 记忆 (Memory)
记忆机制允许 Agent 记住过去的交互历史、用户偏好以及任务执行过程中的中间状态。短期记忆通常用于当前的对话上下文,而长期记忆可以通过向量数据库存储历史经验,以便在类似场景下复用知识。
4. 工具使用 (Tool Use)
Agent 本身不具备物理操作能力,必须通过调用外部工具来改变世界。这包括调用 RESTful API、运行脚本、查询数据库或使用第三方服务。Function Calling 是实现这一能力的关键技术。
5. 行动 (Action)
执行规划好的工具调用,并将结果反馈给 LLM 进行下一轮决策,形成闭环。
AI Agent 的工作流程其实就是一个连续的循环过程。它从感知环境开始,经过信息处理、规划和决策,然后执行行动。最后,根据执行结果和环境反馈进行调整,以优化未来的行动和决策。通过这种结构化和层次化的方式,AI Agent 能够有效地处理信息,做出决策,并在复杂环境中执行任务。
如何开发 AI Agent?
目前业界开发 AI Agent 主要有两种模式:
模式一:代码驱动开发
基于 Python 或 C# 等编程语言,结合 LangChain 或 Semantic Kernel 等大模型应用开发框架,集成某个大模型 API 和企业内部的业务 API 能力,来完成具体领域的 Agent。这种方式灵活性高,适合复杂业务逻辑和深度定制。
模式二:低代码/平台化开发
基于 Coze、Dify、AutoGen 等 Agent 开发管理平台,通过拖拽的方式快速生成一个 Agent。与其说是开发,不如说是 Workflow 一样的配置。当然,也需要给这些平台注册封装好的企业内部 API 平台提供的能力供配置好的 Agent 去实现工具调用。这种方式上手快,适合快速原型验证。
本文重点介绍基于 C# + Semantic Kernel 的代码驱动开发模式。
使用 Semantic Kernel 开发 AI Agent
这里我们快速使用 Semantic Kernel 开发一个简易的 WorkOrder Agent(MES 工单助手),重点关注如何给 LLM 添加 Function Calling 能力,直观了解 Agent 规划任务和执行任务的效果。
效果对比
- 没有实现 Function Calling 的效果:它就只是个 Chatbot。用户询问工单信息时,它只能基于训练数据回答,无法获取实时数据。


