探秘 AI 原生应用开发:〈提示工程原理与实战〉研读笔记系列
🛒 京东图书:https://item.jd.com/14976580.html
最近,我阅读了《AI
原生应用开发:提示工程原理与实战》一书,它为我打开了大语言模型与提示工程领域的新视野。为了更好地消化书中的知识,加深对相关内容的理解,我决定撰写一系列的读书笔记。
一、核心观点概述
随着科技的不断进步,虽然人类在知识生产力和生产工具方面取得了显著进展,但面对复杂任务时,当前的知识生产力与生产工具仍存在衔接不顺畅的问题。传统基于过程驱动的问题解决方式,难以应对现实世界中复杂多变的情况。而智能体的出现,尤其是融入大语言模型后,为解决这些问题带来了新的曙光。智能体通过目标驱动的方式,能够自主感知环境、规划决策并采取行动,大大简化了用户操作,在多个领域展现出独特价值,被视作通向通用人工智能(AGI)的关键桥梁。
二、具体内容梳理
(一)智能体的定义与场景示例
智能体是一种具备深度感知环境、自主决策并行动以达成预设目标能力的实体。文章以2025年春节前夕的智能差旅助手为例,形象地展示了智能体的工作模式。用户仅需设定“1月27日出差从北京到襄阳并解决路途食宿问题”这一目标,智能差旅助手就能依据铁路部门规则、列车到达时间等外界反馈,自主规划并调用12306订票、订餐、预订酒店和出租车等工具,完成一系列复杂任务,充分体现了智能体的自主性和高效性。
(二)智能体的核心构成
- 感知端(Perception):作为智能体的感知系统,感知端具备处理文本、图像、音频和视频等多种模态任务的能力,能够全面捕捉和解析周围环境信息,为智能体的决策提供丰富的数据基础。
- 控制端(Brain):控制端是智能体的决策核心,它融合了大语言模型、知识和记忆以及先进的任务规划能力。大语言模型赋予智能体强大的自然语言处理与理解能力,使其能与人类自然流畅地交互,并为决策提供有力支持;任务规划能力帮助智能体将复杂问题拆解为简单子问题,制定合理的解决方案;知识和记忆系统则存储了智能体的工作状态、历史对话信息以及外部经验知识,为决策提供必要的参考依据。
- 行动端(Action):行动端是智能体的执行机构,不仅能够进行常规的文本输出,还具备调用和整合各种外部工具的能力。它能够根据控制端的决策,精准执行相应动作,实现与现实世界的有效交互,推动任务目标的达成。
(三)感知端的具体作用及输入类型
1. 感知端的重要性
感知端在智能体运行过程中起着至关重要的作用,它负责接收并解析来自外部世界的信息,是智能体做出正确决策和行动的基础。有效的输入感知能够确保智能体准确理解所处环境,从而迅速做出恰当响应,使其在复杂场景中展现出良好的性能。
2. 输入类型
- 文本输入:大语言模型基于自然语言文本进行训练,对多样化的文本输入有较好的理解能力。在AI原生应用开发中,面对大量非文本形态的结构化数据,需要将其转换为模型能够识别的文本形式,如扁平化的JSON、带表头的CSV文件、Markdown表格以及KV数据等。文中以汽车数据库信息为例,详细介绍了将其转换为带表头的CSV格式和KV数据格式的方法,展示了如何让大语言模型有效解析结构化数据。
- 视觉输入:大语言模型本身不具备直接的视觉感知能力,但视觉输入包含丰富的环境信息。目前主要有两种方法将视觉信息融入语言模型。一种是基于图像描述的方法,通过图像识别和自然语言处理技术,将图像或视频内容转换为文本描述,再嵌入到大语言模型的提示中,如利用文心一言的“说图解画”插件将熊猫弹钢琴的插画转换为文本描述后,让模型基于此创作小诗;另一种是融合多模态LLM的力量,直接运用多模态大语言模型(如Sora和GPT-4o),这些模型在预训练阶段整合了多种模态数据,能够直接解析图像内容,实现对物理世界的深入理解。
- 听觉输入:听觉输入同样为智能体提供了大量外部信息,包括语音、环境声音、音乐等。为将听觉输入融入智能体感知体系,需要依赖先进的音频处理和自然语言处理技术。其中,语音识别技术将声音信号转换为文本,实现对语音内容的解析;环境声音识别技术用于识别环境中的各种声音元素,为智能体提供环境信息;音乐与情感识别技术则通过分析音乐元素推断情感和氛围,帮助智能体更好地理解人类情感需求。
- 其他输入:智能体与外部系统交互时,API交互协议产生的非文本信号需要进行预处理和格式转换,才能被大语言模型识别处理。文章以智能音乐播放器助手为例,展示了如何将用户输入解析为相应的播放指令和参数,并给出语音反馈,实现智能体与外部系统的有效交互。
(四)控制端的关键组成及功能
- 大语言模型:在智能体中,大语言模型犹如大脑,发挥着核心作用。它不仅具备强大的自然语言处理与理解能力,使智能体能够与人类进行自然流畅的交互,还能为智能体提供智能决策支持,通过分析挖掘文本数据,辅助智能体做出更准确、全面的决策。此外,大语言模型还是智能体内容生成与创意支持的重要来源,能够生成丰富多样的自然语言内容,满足不同场景的需求。
- 任务规划:大语言模型在复杂问题任务规划上展现出强大的推理能力,能够根据问题的具体情况生成合理的任务分解方案。文中介绍了两种主流规划方法:自顶向下规划和探索性规划。自顶向下规划从整体目标出发,将大问题分解为若干子问题并逐步求解,其优点是结构清晰,但对规划者对问题的理解要求较高,且某个子任务出现问题可能影响整个项目进度;探索性规划则更为灵活,大语言模型根据当前环境和上下文逐步确定子目标与子任务,在执行过程中根据工具反馈调整计划,通过自问自答提示和推理 - 行动提示等思维链,从失误中学习,提高最终成果质量。
- 知识和记忆:智能体的记忆模块负责存储各类信息,实现数据在模块间的共享,确保智能体的顺畅运作。记忆可分为短期记忆和长期记忆,短期记忆与当前情境紧密相关,受上下文窗口长度制约;长期记忆则储存外部经验与知识,突破了短期记忆的局限,通常借助数据库技术实现高效的数据管理与检索。记忆模块还记录智能体的工作状态、历史对话内容以及外部经验知识,为智能体的决策和行动提供重要参考。为优化大语言模型处理长对话的效率,可采用滑动窗口方法、记忆压缩方法(如话题抽取法、键值对提取法、三元组提取法)以及混合方案(融合滑动窗口和记忆压缩)。此外,检索增强生成技术(RAG)通过融合大语言模型的文本生成能力和外部知识检索的精确性,弥补了模型内部知识储备的不足。
(五)行动端的实现形式及工具使用
- 文本输出:行动端的文本输出包括易于系统集成格式输出和易于人类理解方式输出。将大语言模型的输出格式化为JSON、CSV等易于解读的数据结构,可提高系统之间的集成性;将复杂结构数据转换为易读或适合语音的文本,或借助图表、图形、动画展示数据,能提升人与智能体的交互效果,方便用户获取和理解信息。
- 工具使用:大语言模型在处理专门领域或超出其能力范围的任务时存在局限性,需要借助其他工具扩展应用领域。工具的常见形式包括本地函数、大语言模型作为工具、远程服务作为工具以及代码解释器作为工具。为使大语言模型更好地识别和使用工具,可采用统一输入输出参数为文本、精简参数并预设默认值、引入工具适配器等方法。工具使用流程包括工具识别、工具选择和工具调用。工具识别可通过注释说明注入、JSON Schema说明注入、Markdown说明注入等方式实现;工具选择根据场景不同,有一阶段选择提示(适用于工具参数简单、用户提问直接的场景)、两阶段选择提示(适用于工具数量多、参数复杂的场景)以及基于向量化、使用分层结构组织工具、使用多智能体等新兴方法;工具调用则根据工具性质分为本地调用(可通过反射机制、进程调用、对象容器调用、事件机制实现)和远程调用(通过消息机制和RPC远程调用实现)。
三、个人思考与感悟
智能体结合大语言模型的发展为解决复杂问题提供了创新的思路和方法,其目标驱动的工作方式显著提升了问题解决的效率和自主性。在实际应用中,智能体的各个组成部分紧密协作,但也面临诸多挑战。例如,在感知端,如何进一步优化结构化数据和非文本数据的转换,提高多模态信息融合的准确性和效率;在控制端,如何更好地平衡自顶向下规划和探索性规划的应用,提高任务规划的适应性和成功率,以及如何更有效地管理和利用记忆模块,提升智能体的学习和决策能力;在行动端,如何优化工具的选择和调用机制,确保在复杂场景下能够快速、准确地调用合适的工具,提高系统的稳定性和可靠性。
此外,随着智能体技术的不断发展,其在实际业务系统中的集成也将面临更多挑战,如与现有系统的兼容性、安全性以及如何根据不同业务场景进行个性化定制等问题。未来,需要进一步深入研究和探索,不断优化智能体的设计和应用,使其更好地服务于各个领域,推动人工智能技术的发展和应用。同时,也应关注智能体技术可能带来的社会影响,确保其发展符合伦理道德和法律规范,为人类社会创造更多价值。