AI Technology Sharing

Exploring the Future of Artificial Intelligence

用 AI Agent 实现智能家居助理

AI Agent 是什么?

AI Agent(智能代理)是一种能够自动完成任务、学习和适应环境的智慧系统。人工神经网络和由此发展出来的深度学习技术,是模仿动物大脑神经系统的杰作,从90年代的边缘技术路线成为了今天AI的主流方向。而AI Agent则是通过一个简化的模仿生物的架构来感知外部环境、作出决策,进而与环境进行互动。AI Agent已经演化为人工智能领域的一个重要分支,它们透过自主性、创造力和协作能力,是大语言模型(LLM)落地的一个重要方向。

AI Agent 可以做什么?

如果用生物体做一个比喻的话,LLM(大语言模型)就相当于动物的大脑,能思考、能听懂人话、能回答问题,但没有眼耳鼻子等感受器官、也没有手脚。而AI Agent则是一个完整的生物体,既有大脑(LLM)进行思考、能感知环境的变化、也能用调用手脚(Function)对环境作出应对和改变。

AI Agent 的工作流程

我们以一个智能家居助理案例来演示一下简单的 AI Agent 的工作流程:

  • 对话(Chat):接收人类指令
  • 规划(Planning):规划需要获取什么感应器,或调用什么功能
  • 感知(Percetion):调用感应器获取环境信息
  • 执行(Action):调用功能,改变环境或执行动作
  • 反馈(Feedback):反馈感应器获取的信息或执行结果

MCP:人工智能交互的新标准

1. 引言

随着大型语言模型(LLM)的发展,如何让AI与外部数据源和工具无缝集成成为关键问题。然而,传统的API集成方式导致"NxM"问题,即每个AI模型(N)都需要单独适配不同的数据源(M),增加了开发复杂性。

为了解决这一问题,Anthropic 在 2024 年 11 月推出了模型上下文协议(MCP),作为一个开放标准,旨在提供统一、标准化的接口,让AI能够安全高效地访问各种数据源和工具,提升AI的实用性和可扩展性。

2. MCP的核心架构

MCP 的架构类似于"AI 的 USB-C 端口",它提供了一个通用的连接方式,让不同的AI模型可以便捷地访问数据和工具,而不需要开发者为每个集成单独编写代码。

MCP的整体架构基于客户端-服务器模式,主要由以下三个组件组成:

  • MCP主机(Host):AI应用程序或开发环境,如 Claude 助手、IDE插件等
  • MCP客户端(Client):运行在主机内部的适配器
  • MCP服务器(Server):提供外部数据和工具的访问

2.1 MCP的核心功能

MCP 定义了一套标准化的原语,以支持AI更高效地利用外部资源:

  • 工具(Tools):让AI调用外部API
  • 资源(Resources):允许AI读取结构化数据
  • 提示(Prompts):标准化AI的交互方式
  • 采样(Sampling):服务器可以请求 AI 生成响应
  • 根目录(Root):定义 AI 可访问的文件范围

避免AI幻觉,基于MistralAI开发RAG(检索增强生成)应用

RAG是什么?

RAG(Retrieval Augmented Generation),是一个人工智能框架,用于从外部知识库检索事实,以最准确、最新的信息为基础的大型语言模型 (LLM),并让用户深入了解 LLM 的生成过程。

用过ChatGPT或类似大语言模型的人,大约都知道AI有时候会"胡说八道",行内专业术语叫幻觉(hallucinations),所谓的"幻觉",指的就是ChatGPT等生成式AI聊天机器人以错误,甚至是根本就不存在的资讯来回答使用者的问题,像是2023年6月美国律师让ChatGPT代写诉状,结果引用的判例均为凭空捏造的事件。从这一点来说,AI越来越像人类了,毕竟人类也有幻觉,不是吗?

RAG,则是解决AI幻觉的一个方案,通过从互联网或本地文档库检索后的材料,让大语言模型基于文档信息理解后生成答案,可以大幅降低AI幻觉带来的胡说八道。在商业应用上,有极大的价值。毕竟,AI客服胡说八道可能给公司带来商誉上的损失,甚至带来法律风险。

RAG的运行流程

需要什么工具?

RAG的运行流程中,我们需要使用到2个外部工具:

  • 大语言模型,比如OpenAI、Mistral AI、Claude AI等,本文使用Mistral AI;
  • 向量数据库,比如:Milvus、Faiss、ChromaDB等,本文使用Chroma;

为什么基于MistralAI来开发?

LLM(大语言模型)通常包括2类,一种是闭源提供API调用的(如OpenAI ChatGPT、Anthropic Claude、Mistral AI等),一种是开源模型需要自己部署的(如Meta Llama、Vicuna)。基于奥卡姆剃刀原理,为了快速验证我们的RAG原型,我以直接调用API形式来使用LLM。这里我选用了Mistral AI API,基于一方面是易得、便宜,性能好,效果差异不大考虑。