Title

A general AI agent framework for smart buildings based on large language models and ReAct strategy

Date

04 Mar 2025

Link

https://www.elspub.com/papers/j/1871819187714064384.html

一、WHY

智能建筑中的人机交互

  • 基于规则的方法只能处理简单、直接和明确的用户命令

  • 传统的机器学习方法和经典的深度学习方法,由于模型规模和训练数据不足,效果有限;当场景发生变化时,原有的模型不再适用,需要修改和重新培训

LLM在AEC领域的应用 

  • LLM在AEC领域的应用大多局限于聊天机器人阶段,这种模式将AI限制在由其固有知识,附加领域知识和用户提示定义的封闭空间内,阻止其与更广泛的外部世界交互或用于构建智能建筑系统。

  • LLM与外部世界的交互,如使用人工智能代理控制机器人,目前在AEC领域尚缺乏这样的实践

二、WHAT

  • 提示模版:系统在接收到用户的指令后,结合工具描述和聊天记录,将其格式化为提示模板,形成具体的提示信息。

  • 模型中心:将形成的提示输入到模型中心的大型语言模型(LLM)中,LLM会评估是否需要调用外部工具来完成任务,并根据评估结果生成相应的输出。

  • 输出解析器:输出解析器分析模型中心返回的信息,寻找可以直接作为最终答案的内容。若未找到相关内容,则认为需要调用工具进一步处理。

  • 工具管理器:当需要额外数据处理时,工具管理器根据LLM指定的函数名及其参数调用相应工具或服务,实现与外部物联网系统或本地磁盘数据的交互。

  • 循环:工具执行完毕后,工具管理器根据获取的数据更新提示信息,启动新一轮的处理循环,直到获得可以直接作为答案的信息为止。

  • 最终答案:一旦输出解析器识别出可作为最终答案的信息,该答案会被发送给用户,并由存储器管理器保存至聊天历史记录中,以便未来对话参考使用。

1.模型中心

  • 复杂 LLM:负责全局理解用户指令,生成任务计划(Thought),并决定是否需要调用工具。

  • 轻量级 LLM:负责将复杂 LLM 生成的计划转换为具体的工具调用代码(Action),并输出 JSON 格式的工具调用指令。

2.提示模板

promptA:用于复杂LLM的提示模板包括六个部分:“背景”、“角色”、“工具描述”、“格式约束”、“聊天历史”和“新输入”。负责编写Thought部分

Prompt B:包含“工具描述”和“新输入”两个部分。负责以JSON格式编写Action部分

  • 初始输入:对话开始时,首先将Prompt A输入到复杂LLM中,模型生成Thought部分。

  • 简单对话:如果任务不需要使用工具,复杂LLM直接生成Final Answer,结束当前对话轮次。

  • 使用工具:如果任务需要使用工具,复杂LLM生成Thought后,将其附加到Prompt B中,输入到轻量级LLM中生成Action部分(JSON格式)。然后调用工具,工具的返回值作为Observation部分。

  • 循环过程:Thought-Action-Observation循环会不断重复,直到复杂LLM认为任务完成,生成Final Answer。

3.工具管理器

函数库包含了所有可用的函数;

函数描述生成器负责生成每个函数的描述信息;filter过滤重复的工具调用,避免了死锁问题。

函数执行器则负责执行具体的函数操作。

4.内存管理器

解决办法:结合短期记忆和长期记忆的内存管理器。短期记忆中只包含用户和代理的聊天记录。而长时记忆包括聊天记录和对话日期。消息首先保存在短时记忆中。当消息数量超过预定义的阈值时,最早的消息被移动到长时记忆中并保存在文件中。

短时记忆中的内容可以直接填入提示模板中。对于长时记忆的访问,采用了工具使用机制,通过调用函数recall来读取文件存储长时记忆,提供给代理系统,供LLM进一步分析。

三、HOW

1.虚拟实验:模拟人机交互测试

用PYTHON构建了一个虚拟建筑,agent可以与其进行交互,来评估交互的性能

为了验证Agent与真实的世界中的物联网设备的兼容性,我们使用嵌入式设备和模型构建了一个仿真环境

测试指令涵盖六个类别:日常会话、意图识别、推理任务、多任务测试、记忆测试和拒绝测试。一共构建了100条指令。

在测试中,基于智普AI提供的API搭建了智能体,兼容OpenAI Python包。复杂LLM为GLM-4-Plus,轻量级LLM为GLM-4-FlashX。智能体的最大迭代步数设置为10,即如果智能体在10次循环后仍然无法完成任务,将测试数据输入Agent进行推理。

其他三个任务中的表现严重恶化,在多任务测试中的准确率甚至下降到只有30%,整体准确率只有65%。解释:LLM没有遵循提示中的“您的响应中应仅包含一个JSON”规则,并在Thought之后连续输出多个Action,导致程序出错

矛盾的情况,如调低温度让房间更加温暖:可以正确识别矛盾

2.模型实验:验证交互性

在木制的建筑模型中安装了一些嵌入式设备,形成了一个模拟的智能建筑。

ESP 32 MCU作为下位机,直接连接门窗、风扇、灯光、温湿度传感器,树莓派5作为上位机,运行三个模块:网络服务器,语音交互模块和AI智能体。

关键词定位和语音识别程序在本地运行,分别使用fsmn-ctc模型[33]和Paraformer模型[34],语音合成程序使用华为云的在线服务。AI agent采用第4-1节中描述的GLM-4-Plus和GLM-4-FlashX组合方案,取决于智普AI提供的云服务。

四、Future work

  • 现有代理原型在一轮交互中只允许执行一个动作,通过并行功能调用可以提高操作效率。让LLM识别多个动作是否不需要考虑因果关系,并在可能的情况下启动并行功能调用。

  • 将LLM与边缘计算结合,以减少对互联网可访问性的依赖;简单的操作在边缘设备进行决策,复杂的决策还是由云端处理。

  • 探索多模态大型语言模型的应用,以提高智能体的信息获取能力。当前的框架主要依赖于文本输入和文本输出,可以加入多模态输入如图像、视频,手势控制。

  • 增强记忆模块,构建知识图谱,理解用户历史行为和偏好

Logo

火山引擎开发者社区是火山引擎打造的AI技术生态平台,聚焦Agent与大模型开发,提供豆包系列模型(图像/视频/视觉)、智能分析与会话工具,并配套评测集、动手实验室及行业案例库。社区通过技术沙龙、挑战赛等活动促进开发者成长,新用户可领50万Tokens权益,助力构建智能应用。

更多推荐