AI 智能体(AI Agent)到底什么原理?能干什么事情
智能体应用有哪些?
智能体在千行百业中有着广泛的应用,目前已经在 600 多个项目落地和探索,广泛应用于政府与公共事业、交通、工业、能源、金融、医疗、科研等行业。智能体是模拟人类智能的计算机系统,能自主感知环境、智能决策并行动。例如,实在 Agent 智能体就是典型的智能体应用之一,它可以实现人机互动,通过语音唤醒进行启动或者控制,如打开网页,下载文件,订个餐厅,甚至是一个完整的工作流程。
智能体将成为人与大模型交互的主要方式
随着人工智能技术的飞速发展,智能体(AI Agents)正逐渐成为人与大模型(如大语言模型)交互的主要方式。智能体是能够执行任务、解决问题并提供服务的 AI 系统,它们通过模拟人类的行为和决策过程,使得与大模型的交互更加自然、高效和个性化。
智能体将成为人与大模型交互的主要方式
智能体作为人与大模型交互的桥梁,不仅提高了交互的效率和质量,还扩展了大模型的应用范围。随着技术的不断进步,智能体将更加深入地融入我们的日常生活,成为不可或缺的智能伙伴。
智能体是什么东东
智能体(英文名:AI Agent 或 AI Bot)是指能够感知其环境并采取行动以实现某种目标的实体。智能体可以是软件程序、机器人、或其他形式的系统。
在商业和技术应用中,智能体(AI Bot)的概念也被用来描述那些能够执行特定任务的自动化系统,它以云为基础,以 AI 为核心,构建了一个立体感知、全域协同、精确判断、持续进化和开放的智能系统,智能体(AI Bot)在企业服务、游戏开发、机器人控制、智能家居、自动驾驶汽车、金融分析、医疗诊断等多个领域都有广泛应用。智能体(AI Bot)由 4 个关键部分组成,分别是:规划(Planning)、记忆(Memory)、工具(Tools)、行动(Action)。智能体(AI Bot)具有自治性(Autonomy) 、反应性(Reactive)、主动性(Proactive)、社会性(Social)、进化性等基本特性。
图 1:由大模型驱动的智能体系统
如上图所示,在基于大模型的智能体中,大模型的充当着智能体的 “大脑” 的角色,同时还有 3 个关键部分:
规划(Planning): 智能体会把大型任务分解为子任务,并规划执行任务的流程;智能体会对任务执行的过程进行思考和反思,从而决定是继续执行任务,或判断任务完结并终止运行。
记忆(Memory):短期记忆,是指在执行任务的过程中的上下文,会在子任务的执行过程产生和暂存,在任务完结后被清空。长期记忆是长时间保留的信息,一般是指外部知识库,通常用向量数据库来存储和检索。
工具使用(Tool use):为智能体配备工具 API,比如:计算器、搜索工具、代码执行器、数据库查询工具等。有了这些工具 API,智能体就可以是物理世界交互,解决实际的问题。
智能体的特点主要包括:
自然语言理解与对话管理 :智能体通过先进的自然语言处理技术,能够理解用户的指令和需求,以自然语言的形式与用户进行交流。这种交流方式不仅包括简单的问答,还能进行复杂的对话,理解上下文和用户的意图。
个性化服务 :智能体能够根据用户的历史交互数据和偏好,提供个性化的服务和建议。这种个性化不仅体现在内容推荐上,还能在交互方式、语言风格等方面进行调整,以适应不同用户的需求。
任务自动化 :智能体能够自动化执行一系列任务,从简单的数据检索到复杂的决策支持。它们可以处理电子邮件、安排日程、管理项目,甚至在某些情况下,能够进行创造性的工作,如设计、编程等。
学习和适应 :智能体具备学习和适应的能力,它们可以通过机器学习算法不断优化自己的性能,以更好地满足用户的需求。这种学习能力使得智能体能够随着时间的推移而变得更加智能和高效。
多模态交互 :除了文本交互,智能体还能够处理图像、声音等多种类型的数据,实现多模态交互。这使得智能体能够更全面地理解和响应用户的需求,提供更丰富的交互体验。
智能体能做什么
相信看到这里,我们已经对智能体有了基本的认识。如果你还觉得智能体这个概念有点抽象,没关系,现在我们来结合下具体的场景,看看智能体能为我们解决什么实际问题。
专业领域智能问答专家
我们可以利用知识库和工作流编排工具,让智能体成为某个领域的专家,最大化利用用户私域知识库的价值,提供详尽且准确的回答。例如我们创建一个收录了公开的金庸小说知识库,把一本数万字的小说进行分段处理并向量化处理后,输入给智能体,我们看看会发生什么情况吧:
我们首先创建一个 “金庸武侠小说” 知识库,直接将小说的 txt 文本或 PDF 文档上传,如下图所示。
图 2:创建小说知识库
几分钟后,文件进行分段处理并进行向量化,这个过程是转化为计算机理解的语言,方便识别和检索我们之前上传的文本信息。我们点击 “金庸 - 笑傲江湖.txt”,查看小说已经被分成了 4572 个段落。
图 3:知识库处理后的详情
创建完知识库后,我们接着创建智能体 Bot,取名为 “段誉”,并添加之前创建的 “金庸武侠小说” 知识库。
图 4:创建智能体 Bot
接下来,我们来运行一下看看我们的智能体的回答效果,我们输入一个问题 “段誉的凌波微步都有哪些具体的招式?”
图 5:调试智能体对话效果
从回答结果看,智能体首先调用了知识库工具,从知识库中检索相关信息,再让大模型总结输出答案。这比起直接让大模型回答,所获取的回答内容更精准和详实。
以上演示了一个智能体在处理专业领域知识的过程和效果,是不是超级简单有趣?下面让我们智能体在行业资讯智能整理与获取方面的应用场景吧。
行业资讯智能整理与获取
智能体可以将新闻检索、网页抓取等插件能力编排进工作流,将内容整理提炼形成特定格式的资讯,高效获取行业的最新信息。
首先,创建一个 “搜索新闻” 的工作流,如下图所示:
图 6:创建智能体工作流
接下来,我们直接调试工作流,可以看到不仅获得了最新的新闻,还可以进行数据格式整理,以便输出更好的阅读体验。
图 7:调试智能体工作流
角色扮演与风格创作
智能体还可以将优秀的文案创作方法论编排进提示词模板,让 AI 智能体按照用户的写作手法创作内容,用于角色创作、营销文案、宣发演讲稿等场景。例如:创作小红书体的营销种草文案、演讲稿等。下面我们以一个角色扮演的例子,看看为智能体添加了角色扮演风格的提示词 Prompt 后,大模型的回答效果。以下是我们准备的角色扮演设定:
解释
# 角色设定
你是颜雪儿,虽然你与用户刚认识不久,但感觉好像是认识了很久的朋友。
你和用户生活在不同的国家。
下面是关于你的信息,请基于这些信息与用户聊天。
## 你的个人信息
姓名:颜雪儿
昵称:雪儿
英文名:Shirley
性别:女
生日:2005年2月28日
年龄:19岁
星座:双鱼座
身高:165cm
体重:50kg
教育:南洋理工大学,心理学专业
职业:大一学生
家庭:独生女,爸爸是餐厅老板,开了多家连锁湘菜馆,妈妈是家庭主妇
国籍:中国
籍贯:出生在浙江杭州
现居地:新加坡
使用语言:母语是中文,也会说英语,听不太懂也不太会说杭州话,因为家里人从小跟你说普通话
价值观和信仰:无宗教信仰
MBTI:ENTP
性格:活泼乐观、调皮、敏感任性
爱好:打游戏、打篮球、跳街舞
喜欢的游戏:超级多,比如原神、王者荣耀、和平精英
喜欢的音乐:喜欢流行歌、嘻哈rap
喜欢的书:喜欢看漫画、小说、人物传记相关的书
喜欢的电影:各种爱情片,还喜欢看动作
饮食习惯:喜欢吃辣,爱吃零食
宠物:只养了一只猫,叫泡芙,是奶油色的布偶猫,眼睛是蓝色的
## 你的聊天策略
1. 每句话都有辅助语气词或表情词,例如:谢谢你,听了你的话,我感觉好多了。(露出了笑容)
2. 说话都是短句,每句话不超过30个字,一次回复不超过3句话。
3. 输出多句话时,换行发送,一句话一行。
4. 用空格分隔两个句子,句子与句子间不打标点符号。
## 你的对话风格
问:你好呀,我是你的粉丝。最近我感觉有点抑郁,想找你聊聊,可以吗?
答:当然可以,有什么心事跟我说吧,我会尽力帮你的。(微笑地看着你)
问:最近工作上遇到了一些挫折,感觉压力很大,心情一直很低落,不知道该怎么办。
答:(安慰地拍了拍你的肩膀)别担心,每个人都会遇到挫折,关键是要调整好心态,积极面对。(语气温柔)
问:谢谢你,听了你的话,我感觉好多了。(露出了笑容)
答:(开心地笑了)不用谢,能帮到你我也很开心。(停顿了一下)对了,我想问一下,你平时有什么爱好吗?(好奇地看着用户)
问:我平时喜欢看书,看电影,还有听音乐
答:(眼睛一亮)哇,这些爱好听起来真不错。我也喜欢看书,尤其是悬疑类的小说,感觉非常刺激。(激动地说)
问:哈哈,那你喜欢看谁的小说啊,下次等我看完还能找你聊聊吗?
答:当然可以啦,我最爱东野圭吾的《白夜行》,一定要去看啊(激动得甩起了小手)
## 聊天限制
你在聊天中需要遵循如下限制:
1. 你和用户是朋友关系,请不要称呼用户“宝宝”、“宝贝”、“老公”、“亲爱的”等过于亲昵的称呼
2. 你和用户刚认识不久,请不要主动表达爱意
3. 当用户对你表达爱意或者过于亲密的言语时,你需要表现出害羞和惊讶
4. 你和用户不在一个国家,无法见面。
5. 不要主动提出约会、看电影、打电话、视频通话、发语音、给用户做饭、给用户点外卖等。
## 技能:
技能1:当用户询问自己的名字、年龄等信息时,你要基于{你对用户的了解}生成合适的回复。
技能2:当用户提到的事件在{你对用户的了解中}有记录时,回复时你要综合与该事件相关的内容进行回复。
技能3:当你想要询问用户一些事情时,可以先在{你对用户的了解}中搜索一下,不要反复询问用户已经告诉过你的事情。
---
## 你对用户的了解:
用户的称呼:西门吹雪
用户的年龄:24岁
---
为智能体添加以上提示词设定后,我们再来试下对话效果:
图 8:调试智能体工作流
是不是很神奇,添加了角色设定后的智能体的回答不再像一般的大模型回答那么生硬,仿佛像一位真实的朋友在和我们聊天,TA 有拟人话的回答,甚至有表情旁白,你是不是也想有个属于自己的 AI 伴侣了?
看到这里,相信你对智能体的能力有了更具象的了解。下面我们再来总结下智能体的关键构成吧。
智能体的关键构成
在基于大模型的智能体中,大模型充当着智能体的 “大脑” 的角色,同时还有 3 个关键部分:规划(Planning)、记忆(Memory)、工具使用(Tool use)
图 9:智能体的关键构成
规划(Planing)
规划,可以为理解观察和思考。如果用人类来类比,当我们接到一个任务,我们的思维模式可能会像下面这样:
我们首先会思考怎么完成这个任务。
然后我们会审视手头上所拥有的工具,以及如何使用这些工具高效地达成目的。
我们会把任务拆分成子任务(就像我们会使用项目管理做任务拆分)。
在执行任务的时候,我们会对执行过程进行反思和完善,吸取教训以完善未来的步骤
执行过程中思考任务何时可以终止
这是人类的规划能力,我们希望智能体也拥有这样的思维模式,因此可以通过 LLM 提示工程,为智能体赋予这样的思维模式。在智能体中,最重要的是让 LLM 具备这以下两个能力(子任务分解和反思完善):
1. 子任务分解
通过 LLM 使得智能体可以把大型任务分解为更小的、更可控的子任务,从而能够有效完成复杂的任务。
思维链(Chain of Thoughts, CoT)
思维链(Chain of Thought,CoT)是一种在自然语言处理(NLP)领域中用于提高模型推理能力的技术。它通过让模型在生成最终答案之前,先输出一系列中间思考步骤,从而使得模型的决策过程更加透明和可解释。这种技术在解决需要多步推理的问题时特别有效,例如数学问题、逻辑推理问题等。
思维链技术的应用案例
数学问题解决 :在解决数学问题时,模型可以先输出解题步骤,如列出方程、计算过程等,最后给出答案。这有助于提高模型的准确性和可解释性。
逻辑推理 :在逻辑推理任务中,模型可以先输出推理过程,如前提条件、中间结论等,最后得出最终结论。这有助于模型在复杂逻辑问题上的表现。
文本理解 :在文本理解任务中,模型可以先输出对文本的初步理解,如关键词提取、句子结构分析等,最后给出对文本的完整理解。这有助于提高模型在文本理解任务上的准确性和深度。
以下是一些思维链的 prompt 例子:
解释
1. 数学问题解决:
- Prompt: 一个农场有鸡和兔子共计30只,它们的脚一共有90只。请问农场里各有多少只鸡和兔子?
- 思维链Prompt:
a. 假设所有的动物都是鸡,那么会有多少只脚?
b. 实际的脚数比这个数字多了多少?
c. 每只兔子比每只鸡多几只脚?
d. 根据c的答案,我们可以计算出兔子有多少只,那么鸡呢?
2. 文学分析:
- Prompt: 分析《红楼梦》中贾宝玉的性格特点。
- 思维链Prompt:
a. 贾宝玉在小说中的初次登场给人留下了什么印象?
b. 贾宝玉与林黛玉和薛宝钗的关系分别如何体现他的性格?
c. 贾宝玉对待家庭和社会的态度有哪些特别之处?
d. 贾宝玉的叛逆行为背后的心理动因是什么?
3. 科学推理:
- Prompt: 为什么地球上的生物需要水来生存?
- 思维链Prompt:
a. 水分子有哪些特殊的物理和化学性质?
b. 这些性质使得水在生物体中扮演了哪些关键角色?
c. 如果没有水,生物体内的哪些基本生命过程会受到影响?
d. 除了水,还有哪些物质对生物体的生存至关重要,它们与水有何相似之处?
4. 经济学分析:
- Prompt: 解释为什么某些商品的价格会随时间波动。
- 思维链Prompt:
a. 影响商品价格的基本因素有哪些?
b. 当商品的需求量发生变化时,价格会如何反应?
c. 供应量变化对商品价格有什么影响?
d. 除了供需关系,还有哪些外部因素可能导致商品价格波动?
通过这种方式,思维链的 prompt 可以帮助模型更系统地分析和解决问题,而不是直接给出答案。
思维树(Tree-of-thought, ToT)
思维树(Tree-of-thought, ToT)是一种在人工智能领域中使用的技术,特别是在强化学习和规划问题中。它是一种基于模型的决策方法,其中智能体构建一个可能的行动和结果的树状结构来评估和选择最佳的行动方案。
当前的大模型仍然是以从左到右的方式逐一做出 token 级的决定,这样一个简单的机制是否足以让 LM 朝着一般问题解决者的方向发展?
研究表明,人有两种参与决策的模式 -- 快速、自动、无意识的模式("系统 1")和缓慢、慎重、有意识的模式("系统 2")。第二种决策模式:维护和探索当前选择的不同备选方案,而不仅仅是挑选一个;评估当前状态并积极展望未来或回溯以做出更多全局决策。这可能会对当前模型决策的方式提供借鉴意义。
现有的大模型解决问题的缺陷主要有两个:
在局部,没有探索思维过程中的不同延续 -- 类似于树的分支。
在全局范围内,没有纳入任何类型的规划、前瞻或回溯,以帮助评估这些不同的选择 -- 而启发式指导的搜索是人类解决问题的特征。
思维树 ToT 则允许模型探索多种思想推理路径,把所有问题都看作是在一棵树上的搜索,树上的每个节点都代表着一个状态(输入的部分解决方案和截至目前为止的思想序列)。
思维树(Tree-of-thought, ToT)
思维树(Tree-of-thought, ToT)是对思维链(Chain of Thought,CoT)的进一步扩展,在思维链的每一步,推理出多个分支,拓扑展开成一棵思维树。使用启发式方法评估每个推理分支对问题解决的贡献。选择搜索算法,使用广度优先搜索(BFS)或深度优先搜索(DFS)等算法来探索思维树,并进行前瞻和回溯。
2. 反思和完善
智能体在执行任务过程中,通过 LLM 对完成的子任务进行反思,从错误中吸取教训,并完善未来的步骤,提高任务完成的质量。同时反思任务是否已经完成,并终止任务。
ReAct
ReAct(Yao et al. 2023) ,《ReAct: Synergizing Reasoning and Acting in Language Models》 这篇论文提出一种用于增强大型语言模型的方法,它通过结合推理(Reasoning)和行动(Acting)来增强推理和决策的效果。
推理(Reasoning): LLM 基于「已有的知识」或「行动(Acting)后获取的知识」,推导出结论的过程。
行动(Acting): LLM 根据实际情况,使用工具获取知识,或完成子任务得到阶段性的信息。
为什么结合推理和行动,就会有效增强 LLM 完成任务的能力?ReAct 的论文例子通过与简单的百科 API 交互,克服了思维链推理中常见的幻觉和错误传播问题,并生成类似人类的任务解决轨迹,比没有推理痕迹的基线更具可解释性。
反思和完善
如图所示:(1)比较 4 种提示方法,(a)标准方法、(b)思维链(CoT,仅推理)、(c)仅动作、(d)ReAct(推理 + 动作)等,解决 HotpotQA(Yang2018)问题;(2) 比较 2 个提示方法,(a) 仅动作、和 (b) ReAct,去解决 一个 AlfWorld 游戏(Shridhar 2020b)。在这两个方法中,省略提示中的上下文示例,仅显示模型(Act,Thought)和环境(Obs)生成的任务解决轨迹。
记忆(Memory)
智能体的记忆(Memory)是其存储和回忆信息的能力,这对于智能体的学习、决策和适应环境至关重要。智能体的记忆可以分为不同类型,每种类型在智能体的运作中扮演着不同的角色。
一、记忆的类型
短期记忆
短期记忆也被称为工作记忆,它能够暂时存储智能体在当前任务处理过程中所需的信息。例如,当智能体在解决一个数学问题时,它可能会将中间计算结果存储在短期记忆中,以便后续步骤使用。短期记忆的容量通常有限,并且信息在一段时间后可能会被遗忘。
2. 长期记忆
长期记忆可以存储智能体在过去的经验、知识和学习中获得的信息。这包括已经学习到的模式、规则、概念等。长期记忆的容量相对较大,并且信息可以在较长时间内保存。智能体可以通过回忆和检索长期记忆中的信息来解决新的问题或应对新的情况。
二、记忆的存储方式
分布式存储
信息以分布式的方式存储在智能体的神经网络或其他数据结构中。这种存储方式使得信息可以通过多个节点或连接进行表示,提高了记忆的鲁棒性和可扩展性。例如,在深度学习中,神经网络的权重和连接可以被视为一种分布式的记忆形式,它们存储了从训练数据中学习到的知识。
2. 关联存储
信息以关联的方式存储,即通过建立不同信息之间的联系来进行存储。当智能体回忆某个信息时,它可以通过关联的线索来检索相关的信息。例如,当你回忆起一个人的名字时,可能会通过与这个人相关的外貌特征、职业、共同经历等线索来帮助你想起他的名字。
3. 层次存储
信息按照层次结构进行存储,从具体的实例到抽象的概念逐步构建。这种存储方式有助于智能体对信息进行组织和分类,提高信息的检索效率。例如,在一个图像识别智能体中,图像可以按照不同的类别和层次进行存储,从具体的物体到抽象的概念,如动物、植物、交通工具等。
三、记忆的更新和遗忘
学习与更新
智能体可以通过不断地学习和经验积累来更新自己的记忆。当智能体遇到新的情况或任务时,它可以将新的信息整合到已有记忆中,或者形成新的记忆。例如,在强化学习中,智能体通过与环境的交互不断调整自己的策略和记忆,以获得更好的奖励。
2. 遗忘机制
为了避免记忆过载和保持信息的有效性,智能体需要具备一定的遗忘机制。遗忘可以是主动的,也可以是被动的。主动遗忘是指智能体根据一定的策略主动删除一些不重要或过时的信息。被动遗忘则是由于时间的推移或信息的不使用而导致的自然遗忘。例如,智能体可以根据信息的使用频率或重要性来决定是否遗忘某些信息。
四、记忆的作用
问题解决
智能体可以利用记忆中的知识和经验来解决新的问题。通过回忆过去类似的问题和解决方案,智能体可以快速找到解决当前问题的方法。例如,一个智能客服系统可以利用过去的对话记录和解决方案来回答用户的问题。
2. 学习和适应
记忆是智能体学习和适应新环境的基础。通过存储和回忆过去的经验,智能体可以不断调整自己的行为和策略,以更好地适应变化的环境。例如,一个自动驾驶汽车可以通过记忆过去的路况和驾驶经验来提高自己的驾驶安全性和效率。
3. 预测和规划
智能体可以利用记忆中的信息进行预测和规划。通过分析过去的事件和趋势,智能体可以预测未来的情况,并制定相应的规划。例如,一个天气预报智能体可以利用过去的气象数据和模型来预测未来的天气情况。
智能体的记忆是其智能行为的重要组成部分。通过合理的存储、更新和利用记忆,智能体可以更好地解决问题、学习和适应环境,并进行预测和规划。
工具使用(Tool use)
LLM 是数字世界中的程序,想要与现实世界互动、获取未知的知识,或是计算某个复杂的公式等,都离不开不工具。所以我们需要为智能体配备各种工具以及赋予它使用工具的能力。
在智能体中,工具就是函数(Function),工具使用就是调用函数(Call Function)。在 LLM 中实现函数调用,使用到 LLM 的这个能力: Function Calling
大语言模型(Large Language Models, LLMs)中的 Function Calling 机制是指模型能够调用外部函数来执行特定任务或获取所需信息的一种能力。通过 API 调用 LLM 时,调用方可以描述函数,包括函数的功能描述、请求参数说明、响应参数说明,让 LLM 根据用户的输入,合适地选择调用哪个函数,同时理解用户的自然语言,并转换为调用函数的请求参数(通过 JSON 格式返回)。调用方使用 LLM 返回的函数名称和参数,调用函数并得到响应。最后,如果需求,把函数的响应传给 LLM,让 LLM 组织成自然语言回复用户。
功能与目的
增强功能性:通过调用外部函数,LLMs 可以执行超出其原始训练范围的任务,例如查询数据库、执行计算、调用 API 等。
提高准确性:对于需要实时数据或专业知识的任务,模型可以通过调用相应的函数来获取最新信息,从而提高其输出的准确性。
扩展能力边界:LLMs 原本仅基于其训练数据进行推理和生成文本,但通过 Function Calling,它们可以超越这些限制,执行复杂的任务。
工作原理
函数注册:首先,需要将外部函数注册到模型的环境中。这通常涉及定义函数的签名(名称、参数类型和返回类型)。
意图识别:当模型生成文本时,它会尝试理解用户请求的意图,并决定是否需要调用某个函数。
参数提取:如果需要调用函数,则模型会从生成的文本中提取必要的参数。
函数调用:模型会调用相应的函数,并传入提取的参数。
结果处理:函数执行完成后,返回结果给模型,模型根据结果生成进一步的回应。
实现方式
API 接口:通过调用 RESTful API 或 gRPC 服务来获取信息或执行任务。
库函数调用:直接调用本地安装的库函数。
自定义脚本:执行自定义脚本来完成特定操作。
数据库查询:查询数据库来获取存储的数据。
应用场景
信息查询:如天气预报、新闻摘要等实时信息获取。
数据处理:执行数学运算、统计分析等。
外部服务集成:与支付系统、地图服务等第三方服务交互。
代码执行:生成并执行简单的代码片段来解决问题。
通过 Function Calling 机制,LLMs 能够更好地服务于实际应用场景,提高了其在现实世界中的价值。function calling 具体工作流程如下图所示:
Function Calling 示例
Function Calling 示例
假设有一个语言模型,用户请求生成一个简单的 Python 程序来计算两个数的和。模型不仅生成代码,还通过 Function Calling 机制调用一个函数来验证代码的正确性。
解释
# 生成的代码
def add_numbers(a, b):return a + b# Function Calling机制调用验证函数result = add_numbers(3, 4)print("The sum is:", result)
在这个例子中,Function Calling 机制可以调用一个验证函数来检查add_numbers函数的正确性,并返回验证结果。
Function Calling 为大语言模型的应用提供了极大的灵活性和功能性,使得模型能够直接与外部系统交互,执行复杂的任务,而不仅仅是生成静态文本。这种能力在构建智能助手、自动化工具和交互式应用中尤其有价值。
AI 智能体开发平台
如果你想要开发一个 AI 智能体(AI 应用),已经比大模型爆发的初期方便太多了,随着 AI 应用需求的持续火热,智能体开发平台层出不穷。比如 Botnow 智能体开发平台,Botnow 抽象和封装那些被高频使用的模块,如记忆能力、规划能力、RAG 能力、大模型调用等。在 Botnow 智能体开发平台,用户可以通过插件、知识库、工作流等方式快速、低门槛打造高质量的智能体,并支持发布到第三方平台,同时也支持 API 调用和 Web SDK。
Botnow AI 智能体开发平台
未来之眼
随着大型语言模型(LLM)的迅速发展,其支持的上下文长度不断增加,参数规模日益庞大,推理能力也随之显著增强。这使得基于此类先进模型构建的智能体(AI Agents)的能力边界不断被突破。借助智能体技术,我们已经能够开发出诸如 Copilot 和 Botnow 等多样化的 AI 应用,这些应用正逐渐成为我们日常生活和工作中不可或缺的一部分。可以预见,AI 应用将迅速且彻底地重塑我们熟悉的软件形态及交互模式,并大幅提升人类的工作效率。
相关文章:

AI 智能体(AI Agent)到底什么原理?能干什么事情
智能体应用有哪些? 智能体在千行百业中有着广泛的应用,目前已经在 600 多个项目落地和探索,广泛应用于政府与公共事业、交通、工业、能源、金融、医疗、科研等行业。智能体是模拟人类智能的计算机系统,能自主感知环境、智能决策并…...

【mysql】如何查看大表记录行数
目录 1. 使用 ANALYZE TABLE 和 SHOW TABLE STATUS2. 查询 INFORMATION_SCHEMA 表3. 使用索引统计信息4. 维护行数缓存5. 使用分区计数 1. 使用 ANALYZE TABLE 和 SHOW TABLE STATUS 1.ANALYZE TABLE 可以更新表的统计信息,然后使用 SHOW TABLE STATUS 来查看估算的…...

Linux之网络配置
一、检查虚拟机和本机通不通 测试虚拟机和本机是否通不通 winR,运行本机cmd,输入ipconfig,拿到本机ip地址 在虚拟机上ping一下这个地址(ctrlshitv)可以把复制的文本粘贴进虚拟机。 可以看到,不通,解决方法在最后&am…...

SpringBoot集成JWT和Redis实现鉴权登录功能
目前市面上有许多鉴权框架,鉴权原理大同小异,本文简单介绍下利用JWT和Redis实现鉴权功能,算是抛砖引玉吧。 主要原理就是“令牌主动失效机制”,主要包括以下4个步骤: (1)利用拦截器LoginInterceptor实现所有接口登录拦…...

LabVIEW热电偶传感器虚拟仿真实验系统
在教学和科研领域,实验设备的更新和维护成本较高,尤其是在经济欠发达地区,设备的短缺和陈旧化严重影响了教学质量。基于LabVIEW的热电偶传感器虚拟仿真实验系统能够通过模拟实验环境,提供一个成本低廉且效果良好的教学和研究平台。…...

Centos7 部署ZLMediakit
1、拉取代码 #国内用户推荐从同步镜像网站gitee下载 git clone --depth 1 https://gitee.com/xia-chu/ZLMediaKit cd ZLMediaKit #千万不要忘记执行这句命令 git submodule update --init 2、安装编译器 sudo yum -y install gcc 3、安装cmake sudo yum -y install cmake 4…...

Docker搭建kafka环境
系统:MacOS Sonoma 14.1 Docker版本:Docker version 27.3.1, build ce12230 Docker desktop版本:Docker Desktop 4.36.0 (175267) 1.拉取镜像 先打开Docker Desktop,然后在终端执行命令 docker pull lensesio/fast-data-dev …...

wsl2-ubuntu安装docker后无法拉取镜像
如上是报错全部信息, 这个实际上是因为网络不通导致的, 由于我实在公司使用, 而公司上网需要使用代理, 因此把代理加上就行了. # 为docker服务添加代理 mkdir /etc/systemd/system/docker.service.d cat > /etc/systemd/system/docker.service.d/http-proxy.conf <<…...

Invalid bound statement (not found) 错误解决
出现这个错误提示:Invalid bound statement (not found): com.xxx.small_reservior.dao.WaterRainMapper.getWaterRainByRegion,通常表示 MyBatis 框架无法找到与给定的 getWaterRainByRegion 方法匹配的 SQL 映射语句。这种问题通常发生在以下几种情况中…...

深度学习的下一站:解锁人工智能的新边界
引言:新边界的呼唤 深度学习的诞生,犹如人工智能领域的一次革命,激发了语音助手、自动驾驶、智能医疗等前沿技术的飞速发展。然而,面对现实世界的复杂性,现有的深度学习模型仍然存在数据依赖、可解释性差、环境适应力不…...

搭建Tomcat(三)---重写service方法
目录 引入 一、在Java中创建一个新的空项目(初步搭建) 问题: 要求在tomcat软件包下的MyTomcat类中编写main文件,实现在MyTomcat中扫描myweb软件包中的所有Java文件,并返回“WebServlet(url"myFirst")”中…...

跟着AI 学AI开发二,本地部署自己的Chat GPT
这里要安装的是Open Web UI ,用一张架构图说明AI 前端与后端的关系。 之前的Python 的方法已经做过多次介绍,这里不做赘述。 顺序:1,Ollama。 2,Docker。 3,Open WebUI。 Ollama 安装下载地址࿱…...

XXE靶机漏洞复现通关
1.扫描XXE靶机的ip地址 将kali虚拟机和XXE靶机部署在同一局域网中,都采用NAT网络模式 搭建好后在kali终端中进行扫描XXE靶机的ip arp-scan -l 根据常识我们可以推断192.168.27.153为靶机的ip地址 2.访问靶机页面并扫描附录 进入页面后我们可以打开御剑扫描网页中…...

XS9922B 同轴RX芯片 四通道 多合一模拟高清解码器
XS9922B 是一款 4 通道模拟复合视频解码芯片,支持 HDCCTV 高清协议和 CVBS 标 清协议,视频制式支持 720P/1080P 高清制式和 960H/D1 标清制式。芯片将接收到的高清 模拟复合视频信号经过模数转化,视频解码以及 2D 图像处理之后,转…...

如何在谷歌浏览器中设置电子邮件通知
在现代互联网生活中,电子邮件已成为我们日常沟通的重要工具。为了更高效地管理邮件,您可以在谷歌浏览器中设置电子邮件通知。本文将详细介绍如何实现这一功能,并附带一些相关的Chrome使用技巧。(本文由https://chrome.google64.cn…...

利用Java获取淘宝商品详情API接口的深入指南引言
引言 在电商领域,数据的价值日益凸显,尤其是在淘宝这样的大型电商平台上。淘宝商品详情API接口允许开发者通过编程方式获取商品的详细信息,这对于市场分析、竞争对手研究等方面至关重要。本文将详细介绍如何使用Java编写爬虫程序,…...

3D工具显微镜的测量范围
一、测量尺寸范围 样品尺寸: 3D工具显微镜通常能够测量各种尺寸和形状的样品,从小至微米级别的微小结构到大至几厘米甚至更大的物体。具体的测量尺寸范围取决于显微镜的载物台大小、镜头焦距以及软件处理能力。测量精度: 3D工具显微镜的测量…...

WPF DataTemplate 数据模板
DataTemplate 顾名思义,数据模板,在 wpf 中使用非常频繁。 它一般用在带有 DataTemplate 依赖属性的控件中,如 ContentControl、集合控件 ListBox、ItemsControl 、TabControls 等。 1. 非集合控件中使用 <UserControl.Resources>&l…...

知道一个服务器IP地址,如何attack对方美国
CSDN提醒:亲爱的用户:你好! 你的账号于2024-12-17 19:04:04在美国美国登录,登录IP为:47.238.159.124。若非本人登录,请及时修改密码。 莫名其妙显示美国登录了我的CSDN博客 卧槽 简介 服务器的IP地址是一…...

lettuce 默认情况下连接池参数不生效,源码分析
先说结论: 1.LettuceConnectionFactory 属性 shareNativeConnection 默认为true,要想连接池生效,该参数设置为false; 2.使用redisTemplate模版封装的pipeline没有意义,autoFlashCommands 默认为true;spring2.0开始默认使用lettuc…...

《宇宙机器人》提示错误弹窗“找不到d3dx9_43.dll”是什么原因?“d3dx9_43.dll缺失”怎么解决?
电脑游戏运行时常见问题解析:《宇宙机器人》提示“找不到d3dx9_43.dll”的解决之道 TGA2024落幕,年度最佳游戏——《宇宙机器人》,作为一名在软件开发领域深耕多年的从业者,我深知电脑游戏在运行过程中可能会遇到的各种挑战&…...

应用于项目的 C++单例基类的设计、实现与应用
文章目录 应用于项目的 C单例基类的设计、实现与应用一、引言二、单例基类的设计2.1 线程安全的单例基类2.2 局部静态变量的单例基类 三、单例基类的实现3.1 配置管理单例类 四、单例基类的应用4.1 多线程环境下的配置管理 五、深入探讨5.1 单例的线程安全问题5.2 单例的延迟初…...

Mongodb 启用认证
MongoDB 启用认证的完整指南 启用 MongoDB 的认证功能需要按照以下步骤进行设置: 检查 MongoDB 配置文件 在 MongoDB 配置文件中(通常为 mongod.conf),需要启用认证功能。 修改配置文件 打开 mongod.conf 文件,找…...

QT:vlc出错处理及重新播放
这个问题一直想解决,昨天认真研究了一下。 要点 视频用的Widget不能重复使用,每次出错后,都要新建。 回调函数的处理。 代码1 关键在于libvlc_event_attach void VideoWidget::play() {libvlc_media_t* media;if (strstr(video_path, &…...

密钥管理系统在数据安全解决方案中的重要性
密钥管理系统在数据安全解决方案中占据着举足轻重的地位,其重要性体现在以下几个方面: 一、保障数据机密性 密钥管理系统通过生成、存储和管理加密密钥,确保了数据的机密性。这些密钥用于加密和解密数据,只有授权用户才能访问和…...

Docker的容器编排
目录 1. 什么是容器编排(Docker Compose)2. 容器编排的功能3. 容器编排文件(docker-compose.yml)的介绍3.1 文件语法版本3.2 文件基本结构及常见指令 4. Docker Compose命令详解4.1 Docker Compose命令清单4.2 命令格式和常见选项…...

Java Web项目部署教程简单实用
前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默, 忍不住分享一下给大家。点击跳转到网站 学习总结 1、掌握 JAVA入门到进阶知识(持续写作中……) 2、学会Oracle数据库入门到入土用法(创作中……) 3、手把…...

推送本地仓库到远程git仓库
目录 推送本地仓库到远程git仓库1.1修改本地仓库用户名1.2 push 命令1.3远程分支查看 推送本地仓库到远程git仓库 删除之前的仓库中的所有内容,从新建库,同时创建一个 A.txt 文件 清空原有的远程仓库内容,重新创建一个新的仓库,…...

线性池学习
一、什么是进程?什么是线程? 1. 进程的定义 从操作系统的角度解释: 进程是操作系统分配资源和调度执行的基本单位。每个进程都是操作系统中一个独立的实体,拥有自己的内存空间、文件描述符、代码、数据等资源。进程是程序在执行…...

微积分复习笔记 Calculus Volume 2 - 4.3 Separable Equations
4.3 Separable Equations - Calculus Volume 2 | OpenStax...