当前位置: 首页 > article >正文

AI Agent与Agentic AI:原理、应用、挑战与未来展望

文章目录

    • 一、引言
    • 二、AI Agent与Agentic AI的兴起
      • 2.1 技术契机与生态成熟
      • 2.2 Agent的定义与特征
      • 2.3 Agent的发展历程
    • 三、AI Agent的核心技术栈解密
      • 3.1 感知模块
        • 代码示例:使用Python和OpenCV进行图像识别
      • 3.2 认知与决策模块
        • 代码示例:使用OpenAI GPT-3进行文本生成
      • 3.3 行动模块
        • 代码示例:使用Python调用外部API
      • 3.4 架构模式
        • 单Agent架构示例
        • 多Agent系统与A2A协议
    • 四、主流Agent平台、框架与项目技术拆解
      • 4.1 Agent构建平台(Low-code/No-code)
        • Coze平台示例
      • 4.2 Agent开发框架(Code-centric)
        • LangGraph框架示例
      • 4.3 Agentic应用/产品(End-user focused)
        • Genspark应用示例
      • 4.4 通用智能Agent
        • Manus通用智能Agent示例
      • 4.5 专用领域Agent/系统
        • Lovart专用领域Agent示例
    • 五、现状、挑战与未来展望
      • 5.1 技术成熟度与现状
      • 5.2 核心挑战
      • 5.3 未来趋势
      • 5.4 行动建议
    • 六、结论


在这里插入图片描述


随着人工智能技术的飞速发展,AI Agent与Agentic AI作为新兴领域,正逐步从理论走向实践,展现出巨大的应用潜力和商业价值。[1]本文围绕AI Agent与Agentic AI的兴起、核心技术、主流平台与项目、现状挑战及未来展望进行深入探讨,并结合具体代码示例,展示其技术实现与应用场景。[2]

一、引言

近年来,大型语言模型(LLM)如GPT系列、Claude、Gemini等的突破性进展,为AI Agent的发展提供了强大的“大脑”。[3]AI Agent作为一个具备环境感知、智能决策和自主行动能力的智能实体,正逐步渗透到各个行业,从智能客服、医疗健康到广告营销、软件开发等领域,展现出其独特的价值主张。[4]本文旨在全面解析AI Agent与Agentic AI的原理、技术栈、应用案例及未来趋势,为相关领域的研究人员、工程师及爱好者提供参考。[5]

二、AI Agent与Agentic AI的兴起

2.1 技术契机与生态成熟

AI Agent的爆发得益于LLM技术的飞跃式进步。LLM在自然语言理解、生成、常识推理、逻辑演绎、代码生成与理解等方面的能力跃升,为Agent提供了前所未有的智能支持。[6]同时,相关基础设施与生态的成熟,如向量数据库、模型API与服务化等,降低了开发者构建Agent的技术门槛和成本。[7]各大厂商纷纷开放LLM及其他AI能力API,如OpenAI API、Google Gemini API、DeepSeek API等,进一步加速了Agent应用的开发和迭代。[8]

2.2 Agent的定义与特征

Agent经典定义为“任何能够通过传感器感知其环境,并通过执行器对其环境产生行动的事物”。[9]在AI领域,Agent被赋予了更强的智能特性,包括自主性、反应性、交互性、学习/适应性和主动性等。[10]一个成熟的AI Agent应具备以下核心特征:

  • 自主性:能够在没有人类或其他Agent直接干预的情况下,独立控制其内部状态和自身行为。
  • 反应性:能够感知其所处的环境,并对环境中发生的变化及时做出响应。
  • 交互性:能够通过某种Agent通信语言(ACL)或其他机制与其他Agent(包括人类)进行交互、协作、协商。
  • 学习/适应性:能够从经验中学习,不断改进其行为和性能,适应环境的变化或任务需求的变化。
  • 主动性:不仅仅对环境做出反应,还能表现出目标驱动的行为,主动发起行动以达成目标。

2.3 Agent的发展历程

Agent的思想源远流长,是人工智能领域的经典概念之一。[11]从符号主义AI中的Agent到分布式人工智能(DAI)与多智能体系统(MAS),再到基于LLM的现代Agent,技术不断演进。关键转折点包括基于规则的专家系统、强化学习(RL)的兴起、互联网与Web Agent的出现、机器学习与深度学习的融合,以及大型语言模型(LLM)的爆发。[12]

三、AI Agent的核心技术栈解密

3.1 感知模块

感知模块是Agent与环境交互的入口,负责从外部世界收集信息,并将其转化为内部可理解和处理的表征。[13]关键技术包括自然语言处理(NLP)、计算机视觉(CV)、自动语音识别(ASR)等,用于处理和理解来自多种不同类型数据源的信息。[14]

代码示例:使用Python和OpenCV进行图像识别
import cv2# 加载预训练的Haar级联分类器
face_cascade = cv2.CascadeClassifier(cv2.data.haarcascades + 'haarcascade_frontalface_default.xml')# 读取图像
image = cv2.imread('path_to_image.jpg')
gray = cv2.cvtColor(image, cv2.COLOR_BGR2GRAY)# 检测人脸
faces = face_cascade.detectMultiScale(gray, 1.1, 4)# 绘制矩形框标记人脸
for (x, y, w, h) in faces:cv2.rectangle(image, (x, y), (x+w, y+h), (255, 0, 0), 2)# 显示结果
cv2.imshow('img', image)
cv2.waitKey()

3.2 认知与决策模块

认知与决策模块是Agent的“大脑”,基于感知到的信息和自身知识,进行思考、推理、规划,并最终做出决策。[15]核心引擎为大型语言模型(LLM),包括规划能力、记忆能力、学习与适应能力等。[16]

代码示例:使用OpenAI GPT-3进行文本生成
import openai# 设置OpenAI API密钥
openai.api_key = 'your_openai_api_key'# 调用GPT-3进行文本生成
response = openai.Completion.create(engine="text-davinci-003",prompt="Once upon a time, in a faraway land, there was a",max_tokens=60,n=1,stop=None,temperature=0.5,
)# 输出生成的文本
print(response.choices[0].text.strip())

3.3 行动模块

行动模块执行认知决策模块输出的指令,与外部世界进行交互。[17]关键能力包括工具使用(API调用)、代码执行、物理世界交互(具身智能)、人机交互输出等。

代码示例:使用Python调用外部API
import requests# 定义API URL和参数
url = 'https://api.example.com/data'
params = {'key': 'your_api_key','param1': 'value1','param2': 'value2'
}# 发送GET请求
response = requests.get(url, params=params)# 解析响应
if response.status_code == 200:data = response.json()print(data)
else:print(f"Error: {response.status_code}")

3.4 架构模式

Agent的架构模式包括单Agent架构与多Agent系统(MAS),以及A2A协议等,用于促进Agent之间的通信与协作。[18]

单Agent架构示例

单Agent架构通常包含感知、认知、决策和行动四个模块,各模块之间紧密耦合,共同完成特定任务。[19]以下是一个简化的单Agent架构示例:

class SimpleAgent:def __init__(self):self.memory = {}def perceive(self, environment):# 模拟感知环境,返回环境状态return environment.get_state()def decide(self, state):# 基于状态进行决策,返回行动# 这里简化处理,假设总是返回一个固定行动return "action_1"def act(self, action, environment):# 执行行动,影响环境environment.execute_action(action)def learn(self, experience):# 从经验中学习,更新记忆self.memory.update(experience)# 示例环境类
class Environment:def __init__(self):self.state = "initial_state"def get_state(self):return self.statedef execute_action(self, action):# 模拟执行行动,更新环境状态self.state = f"state_after_{action}"print(f"Environment state updated to: {self.state}")# 使用示例
agent = SimpleAgent()
env = Environment()state = agent.perceive(env)
action = agent.decide(state)
agent.act(action, env)
多Agent系统与A2A协议

多Agent系统(MAS)由多个Agent协同工作,每个Agent可能有专门的角色或能力。[20]A2A协议则致力于促进独立Agent间的通信,帮助不同生态系统的Agent沟通和协作。[21]以下是一个简化的多Agent系统与A2A协议交互示例(伪代码):

# 定义两个Agent:AgentA和AgentB
AgentA:def communicate(message, AgentB):# 发送消息给AgentBsend_message_via_A2A(message, AgentB)def receive_message(message):# 处理来自AgentB的消息process_message(message)AgentB:def receive_message(message):# 处理来自AgentA的消息process_message(message)def respond(message, AgentA):# 发送响应消息给AgentAsend_message_via_A2A(message, AgentA)# A2A协议通信示例
message = "Hello, AgentB!"
AgentA.communicate(message, AgentB)# 在AgentB中接收并处理消息
def process_message(message):print(f"Received message: {message}")response = "Hello, AgentA! I received your message."AgentB.respond(response, AgentA)# 在AgentA中接收并处理响应
def process_message(message):print(f"Received response: {message}")

四、主流Agent平台、框架与项目技术拆解

4.1 Agent构建平台(Low-code/No-code)

Agent构建平台旨在降低AI Agent的构建门槛,使编程经验有限的用户也能通过可视化界面和预置组件快速创建和部署Agent。[22]代表性工具包括Coze、Dify、FastGPT等。[23]

Coze平台示例

Coze是一个低代码AI Agent构建平台,用户可以通过拖拽式操作快速构建智能任务分解、知识库问答等应用。[24]以下是一个简化的Coze平台使用流程:

  1. 登录Coze平台:访问Coze官网,注册并登录账号。
  2. 创建新项目:选择“创建新项目”,输入项目名称和描述。
  3. 添加组件:从组件库中拖拽所需组件(如文本输入、知识库查询、任务分解等)到画布上。
  4. 配置组件:双击组件,配置其属性(如API密钥、查询条件等)。
  5. 连接组件:使用线条连接组件,定义数据流和执行顺序。
  6. 测试与部署:点击“测试”按钮,验证项目逻辑是否正确;测试通过后,点击“部署”按钮,将项目发布到生产环境。

4.2 Agent开发框架(Code-centric)

Agent开发框架为开发者提供以代码为中心的工具库和组件,用于构建、定制和管理AI Agent。[25]代表性工具包括AutoGen、LangGraph、CrewAI等。[26]

LangGraph框架示例

LangGraph是一个基于图结构的Agent开发框架,支持模块化设计和状态管理。[27]以下是一个简化的LangGraph框架使用示例:

from langgraph import Graph, Node, Edge# 定义节点
class PerceiveNode(Node):def execute(self, context):# 模拟感知环境,返回环境状态state = "environment_state"context['state'] = statereturn contextclass DecideNode(Node):def execute(self, context):# 基于状态进行决策,返回行动state = context['state']action = "action_based_on_" + statecontext['action'] = actionreturn contextclass ActNode(Node):def execute(self, context):# 执行行动,影响环境(这里简化处理,仅打印行动)action = context['action']print(f"Executing action: {action}")return context# 创建图
graph = Graph()# 添加节点和边
graph.add_node(PerceiveNode(), 'perceive')
graph.add_node(DecideNode(), 'decide')
graph.add_node(ActNode(), 'act')graph.add_edge('perceive', 'decide')
graph.add_edge('decide', 'act')# 执行图
context = {}
graph.execute(context)

4.3 Agentic应用/产品(End-user focused)

Agentic应用/产品直接面向终端用户,提供特定任务或信息服务的AI驱动型应用。[28]代表性产品包括Genspark、秘塔AI、Perplexity AI等。[29]

Genspark应用示例

Genspark是一个内容创作Agent,能够根据营销目标和受众画像,自主生成文案、图片、视频脚本,甚至进行多轮迭代优化。[30]以下是一个简化的Genspark应用使用流程:

  1. 登录Genspark平台:访问Genspark官网,注册并登录账号。
  2. 创建新项目:选择“创建新项目”,输入项目名称、营销目标和受众画像。
  3. 配置内容生成参数:设置文案风格、图片尺寸、视频时长等参数。
  4. 生成内容:点击“生成”按钮,Genspark将根据配置参数生成文案、图片和视频脚本。
  5. 迭代优化:根据反馈结果,调整参数并重新生成内容,直至满意为止。[31]

4.4 通用智能Agent

通用智能Agent具备广泛的能力,旨在理解和执行跨多个领域的各种任务,追求更接近人类的通用智能。[32]代表性产品如Manus、Coze空间等。[33]

Manus通用智能Agent示例

Manus是一个通用智能Agent,能够理解和执行跨多个领域的各种任务。[34]以下是一个简化的Manus通用智能Agent使用示例:

# 用户与Manus进行交互
User: "Manus, 帮我规划一次去北京的三天旅游,预算5000元,喜欢历史古迹。"
Manus: "好的,以下是我为您规划的北京三天旅游行程:第一天:
- 上午:参观天安门广场和故宫博物院
- 下午:游览景山公园,俯瞰故宫全景
- 晚上:在王府井步行街品尝北京小吃第二天:
- 上午:参观八达岭长城
- 下午:游览明十三陵
- 晚上:返回市区,自由活动第三天:
- 上午:参观颐和园
- 下午:游览圆明园
- 晚上:结束行程,返回酒店整理行李预算分配:
- 交通费用:约1000元
- 住宿费用:约1500元
- 餐饮费用:约1000元
- 景点门票:约800元
- 其他费用:约700元总预算:约5000元是否需要进一步调整或补充信息?"

4.5 专用领域Agent/系统

专用领域Agent/系统针对特定行业或领域进行深度优化,集成领域知识和专用工具,以实现高性能的专业任务处理。[35]代表性产品如DeepResearchAgents(Gemini DeepResearch)、Lovart等。[36]

Lovart专用领域Agent示例

Lovart是一个针对艺术设计领域的专用Agent,能够辅助设计师进行创意构思、素材收集、作品优化等工作。[37]以下是一个简化的Lovart专用领域Agent使用示例:

# 设计师与Lovart进行交互
Designer: "Lovart, 我需要设计一款以‘自然之美’为主题的海报。"
Lovart: "好的,以下是我为您生成的‘自然之美’主题海报设计思路:1. 色彩搭配:以绿色和蓝色为主色调,象征自然与生机。
2. 素材选择:选用森林、湖泊、花卉等自然元素作为主要视觉元素。
3. 布局设计:采用中心构图法,将主要视觉元素置于画面中心,周围辅以次要元素进行点缀。
4. 文字排版:选用简洁明了的字体,将主题文字置于画面上方或下方,与视觉元素相协调。是否需要进一步调整或补充信息?或者您希望我提供具体的设计素材和参考案例?"

五、现状、挑战与未来展望

5.1 技术成熟度与现状

当前,Agent技术已取得显著进展,但在行动、规划、记忆、幻觉等方面仍存在挑战。例如,Agent在复杂环境中的行动能力有限,长期规划能力不足,记忆管理存在瓶颈,幻觉问题时有发生。然而,随着技术的不断演进和生态的逐步成熟,这些问题有望得到逐步解决。

5.2 核心挑战

  • 行动能力:Agent在复杂环境中的自主行动能力有限,需要进一步提高其对环境的感知和理解能力。
  • 长期规划:Agent在长期任务规划方面存在不足,需要开发更高效的规划算法和策略。
  • 记忆管理:Agent的记忆管理存在瓶颈,需要开发更高效的记忆存储和检索机制。
  • 幻觉问题:Agent在生成内容时可能出现幻觉问题,需要进一步提高其内容生成的准确性和可靠性。

5.3 未来趋势

  • 更高阶的智能:Agent将向更高阶的智能发展,追求自主性、目标驱动、环境交互和学习能力。
  • 伦理考量:随着Agent技术的广泛应用,伦理考量将成为重要议题,需要制定相关规范和标准来确保其安全、可靠和可控。
  • 安全性与可解释性:提高Agent的安全性和可解释性将是未来研究的重点方向之一。
  • 跨领域融合:Agent技术将与其他领域的技术进行深度融合,如物联网、区块链、边缘计算等,以拓展其应用场景和商业价值。

5.4 行动建议

  • 关注技术进展:科研人员、工程师及AI技术爱好者应关注Agent技术的最新进展,积极参与技术讨论与实践。
  • 加强跨学科合作:Agent技术的发展需要跨学科的合作与交流,包括计算机科学、人工智能、认知科学、心理学等领域。
  • 推动标准化建设:制定相关规范和标准来推动Agent技术的标准化建设,确保其安全、可靠和可控。
  • 探索商业应用:积极探索Agent技术在各个行业的商业应用潜力,推动其商业化进程。

六、结论

AI Agent与Agentic AI作为新兴领域,正逐步从理论走向实践,展现出巨大的应用潜力和商业价值。[38]本文围绕AI Agent与Agentic AI的兴起、核心技术、主流平台与项目、现状挑战及未来展望进行了深入探讨,并结合具体代码示例展示了其技术实现与应用场景。[39]随着技术的不断演进和生态的逐步成熟,Agent有望在各个行业发挥更大的作用,为人类社会带来更多的便利和价值。

相关文章:

AI Agent与Agentic AI:原理、应用、挑战与未来展望

文章目录 一、引言二、AI Agent与Agentic AI的兴起2.1 技术契机与生态成熟2.2 Agent的定义与特征2.3 Agent的发展历程 三、AI Agent的核心技术栈解密3.1 感知模块代码示例:使用Python和OpenCV进行图像识别 3.2 认知与决策模块代码示例:使用OpenAI GPT-3进…...

day52 ResNet18 CBAM

在深度学习的旅程中,我们不断探索如何提升模型的性能。今天,我将分享我在 ResNet18 模型中插入 CBAM(Convolutional Block Attention Module)模块,并采用分阶段微调策略的实践过程。通过这个过程,我不仅提升…...

DockerHub与私有镜像仓库在容器化中的应用与管理

哈喽,大家好,我是左手python! Docker Hub的应用与管理 Docker Hub的基本概念与使用方法 Docker Hub是Docker官方提供的一个公共镜像仓库,用户可以在其中找到各种操作系统、软件和应用的镜像。开发者可以通过Docker Hub轻松获取所…...

阿里云ACP云计算备考笔记 (5)——弹性伸缩

目录 第一章 概述 第二章 弹性伸缩简介 1、弹性伸缩 2、垂直伸缩 3、优势 4、应用场景 ① 无规律的业务量波动 ② 有规律的业务量波动 ③ 无明显业务量波动 ④ 混合型业务 ⑤ 消息通知 ⑥ 生命周期挂钩 ⑦ 自定义方式 ⑧ 滚的升级 5、使用限制 第三章 主要定义 …...

以下是对华为 HarmonyOS NETX 5属性动画(ArkTS)文档的结构化整理,通过层级标题、表格和代码块提升可读性:

一、属性动画概述NETX 作用:实现组件通用属性的渐变过渡效果,提升用户体验。支持属性:width、height、backgroundColor、opacity、scale、rotate、translate等。注意事项: 布局类属性(如宽高)变化时&#…...

JavaScript 中的 ES|QL:利用 Apache Arrow 工具

作者:来自 Elastic Jeffrey Rengifo 学习如何将 ES|QL 与 JavaScript 的 Apache Arrow 客户端工具一起使用。 想获得 Elastic 认证吗?了解下一期 Elasticsearch Engineer 培训的时间吧! Elasticsearch 拥有众多新功能,助你为自己…...

基于ASP.NET+ SQL Server实现(Web)医院信息管理系统

医院信息管理系统 1. 课程设计内容 在 visual studio 2017 平台上,开发一个“医院信息管理系统”Web 程序。 2. 课程设计目的 综合运用 c#.net 知识,在 vs 2017 平台上,进行 ASP.NET 应用程序和简易网站的开发;初步熟悉开发一…...

Java 8 Stream API 入门到实践详解

一、告别 for 循环&#xff01; 传统痛点&#xff1a; Java 8 之前&#xff0c;集合操作离不开冗长的 for 循环和匿名类。例如&#xff0c;过滤列表中的偶数&#xff1a; List<Integer> list Arrays.asList(1, 2, 3, 4, 5); List<Integer> evens new ArrayList…...

Admin.Net中的消息通信SignalR解释

定义集线器接口 IOnlineUserHub public interface IOnlineUserHub {/// 在线用户列表Task OnlineUserList(OnlineUserList context);/// 强制下线Task ForceOffline(object context);/// 发布站内消息Task PublicNotice(SysNotice context);/// 接收消息Task ReceiveMessage(…...

从零实现富文本编辑器#5-编辑器选区模型的状态结构表达

先前我们总结了浏览器选区模型的交互策略&#xff0c;并且实现了基本的选区操作&#xff0c;还调研了自绘选区的实现。那么相对的&#xff0c;我们还需要设计编辑器的选区表达&#xff0c;也可以称为模型选区。编辑器中应用变更时的操作范围&#xff0c;就是以模型选区为基准来…...

边缘计算医疗风险自查APP开发方案

核心目标:在便携设备(智能手表/家用检测仪)部署轻量化疾病预测模型,实现低延迟、隐私安全的实时健康风险评估。 一、技术架构设计 #mermaid-svg-iuNaeeLK2YoFKfao {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg…...

.Net框架,除了EF还有很多很多......

文章目录 1. 引言2. Dapper2.1 概述与设计原理2.2 核心功能与代码示例基本查询多映射查询存储过程调用 2.3 性能优化原理2.4 适用场景 3. NHibernate3.1 概述与架构设计3.2 映射配置示例Fluent映射XML映射 3.3 查询示例HQL查询Criteria APILINQ提供程序 3.4 高级特性3.5 适用场…...

Oracle查询表空间大小

1 查询数据库中所有的表空间以及表空间所占空间的大小 SELECTtablespace_name,sum( bytes ) / 1024 / 1024 FROMdba_data_files GROUP BYtablespace_name; 2 Oracle查询表空间大小及每个表所占空间的大小 SELECTtablespace_name,file_id,file_name,round( bytes / ( 1024 …...

智慧工地云平台源码,基于微服务架构+Java+Spring Cloud +UniApp +MySql

智慧工地管理云平台系统&#xff0c;智慧工地全套源码&#xff0c;java版智慧工地源码&#xff0c;支持PC端、大屏端、移动端。 智慧工地聚焦建筑行业的市场需求&#xff0c;提供“平台网络终端”的整体解决方案&#xff0c;提供劳务管理、视频管理、智能监测、绿色施工、安全管…...

练习(含atoi的模拟实现,自定义类型等练习)

一、结构体大小的计算及位段 &#xff08;结构体大小计算及位段 详解请看&#xff1a;自定义类型&#xff1a;结构体进阶-CSDN博客&#xff09; 1.在32位系统环境&#xff0c;编译选项为4字节对齐&#xff0c;那么sizeof(A)和sizeof(B)是多少&#xff1f; #pragma pack(4)st…...

Python:操作 Excel 折叠

💖亲爱的技术爱好者们,热烈欢迎来到 Kant2048 的博客!我是 Thomas Kant,很开心能在CSDN上与你们相遇~💖 本博客的精华专栏: 【自动化测试】 【测试经验】 【人工智能】 【Python】 Python 操作 Excel 系列 读取单元格数据按行写入设置行高和列宽自动调整行高和列宽水平…...

MongoDB学习和应用(高效的非关系型数据库)

一丶 MongoDB简介 对于社交类软件的功能&#xff0c;我们需要对它的功能特点进行分析&#xff1a; 数据量会随着用户数增大而增大读多写少价值较低非好友看不到其动态信息地理位置的查询… 针对以上特点进行分析各大存储工具&#xff1a; mysql&#xff1a;关系型数据库&am…...

云启出海,智联未来|阿里云网络「企业出海」系列客户沙龙上海站圆满落地

借阿里云中企出海大会的东风&#xff0c;以**「云启出海&#xff0c;智联未来&#xff5c;打造安全可靠的出海云网络引擎」为主题的阿里云企业出海客户沙龙云网络&安全专场于5.28日下午在上海顺利举办&#xff0c;现场吸引了来自携程、小红书、米哈游、哔哩哔哩、波克城市、…...

FFmpeg 低延迟同屏方案

引言 在实时互动需求激增的当下&#xff0c;无论是在线教育中的师生同屏演示、远程办公的屏幕共享协作&#xff0c;还是游戏直播的画面实时传输&#xff0c;低延迟同屏已成为保障用户体验的核心指标。FFmpeg 作为一款功能强大的多媒体框架&#xff0c;凭借其灵活的编解码、数据…...

中南大学无人机智能体的全面评估!BEDI:用于评估无人机上具身智能体的综合性基准测试

作者&#xff1a;Mingning Guo, Mengwei Wu, Jiarun He, Shaoxian Li, Haifeng Li, Chao Tao单位&#xff1a;中南大学地球科学与信息物理学院论文标题&#xff1a;BEDI: A Comprehensive Benchmark for Evaluating Embodied Agents on UAVs论文链接&#xff1a;https://arxiv.…...

Redis相关知识总结(缓存雪崩,缓存穿透,缓存击穿,Redis实现分布式锁,如何保持数据库和缓存一致)

文章目录 1.什么是Redis&#xff1f;2.为什么要使用redis作为mysql的缓存&#xff1f;3.什么是缓存雪崩、缓存穿透、缓存击穿&#xff1f;3.1缓存雪崩3.1.1 大量缓存同时过期3.1.2 Redis宕机 3.2 缓存击穿3.3 缓存穿透3.4 总结 4. 数据库和缓存如何保持一致性5. Redis实现分布式…...

【Java学习笔记】Arrays类

Arrays 类 1. 导入包&#xff1a;import java.util.Arrays 2. 常用方法一览表 方法描述Arrays.toString()返回数组的字符串形式Arrays.sort()排序&#xff08;自然排序和定制排序&#xff09;Arrays.binarySearch()通过二分搜索法进行查找&#xff08;前提&#xff1a;数组是…...

通过Wrangler CLI在worker中创建数据库和表

官方使用文档&#xff1a;Getting started Cloudflare D1 docs 创建数据库 在命令行中执行完成之后&#xff0c;会在本地和远程创建数据库&#xff1a; npx wranglerlatest d1 create prod-d1-tutorial 在cf中就可以看到数据库&#xff1a; 现在&#xff0c;您的Cloudfla…...

相机Camera日志实例分析之二:相机Camx【专业模式开启直方图拍照】单帧流程日志详解

【关注我&#xff0c;后续持续新增专题博文&#xff0c;谢谢&#xff01;&#xff01;&#xff01;】 上一篇我们讲了&#xff1a; 这一篇我们开始讲&#xff1a; 目录 一、场景操作步骤 二、日志基础关键字分级如下 三、场景日志如下&#xff1a; 一、场景操作步骤 操作步…...

在HarmonyOS ArkTS ArkUI-X 5.0及以上版本中,手势开发全攻略:

在 HarmonyOS 应用开发中&#xff0c;手势交互是连接用户与设备的核心纽带。ArkTS 框架提供了丰富的手势处理能力&#xff0c;既支持点击、长按、拖拽等基础单一手势的精细控制&#xff0c;也能通过多种绑定策略解决父子组件的手势竞争问题。本文将结合官方开发文档&#xff0c…...

MFC内存泄露

1、泄露代码示例 void X::SetApplicationBtn() {CMFCRibbonApplicationButton* pBtn GetApplicationButton();// 获取 Ribbon Bar 指针// 创建自定义按钮CCustomRibbonAppButton* pCustomButton new CCustomRibbonAppButton();pCustomButton->SetImage(IDB_BITMAP_Jdp26)…...

【入坑系列】TiDB 强制索引在不同库下不生效问题

文章目录 背景SQL 优化情况线上SQL运行情况分析怀疑1:执行计划绑定问题?尝试:SHOW WARNINGS 查看警告探索 TiDB 的 USE_INDEX 写法Hint 不生效问题排查解决参考背景 项目中使用 TiDB 数据库,并对 SQL 进行优化了,添加了强制索引。 UAT 环境已经生效,但 PROD 环境强制索…...

Vue3 + Element Plus + TypeScript中el-transfer穿梭框组件使用详解及示例

使用详解 Element Plus 的 el-transfer 组件是一个强大的穿梭框组件&#xff0c;常用于在两个集合之间进行数据转移&#xff0c;如权限分配、数据选择等场景。下面我将详细介绍其用法并提供一个完整示例。 核心特性与用法 基本属性 v-model&#xff1a;绑定右侧列表的值&…...

前端倒计时误差!

提示:记录工作中遇到的需求及解决办法 文章目录 前言一、误差从何而来?二、五大解决方案1. 动态校准法(基础版)2. Web Worker 计时3. 服务器时间同步4. Performance API 高精度计时5. 页面可见性API优化三、生产环境最佳实践四、终极解决方案架构前言 前几天听说公司某个项…...

23-Oracle 23 ai 区块链表(Blockchain Table)

小伙伴有没有在金融强合规的领域中遇见&#xff0c;必须要保持数据不可变&#xff0c;管理员都无法修改和留痕的要求。比如医疗的电子病历中&#xff0c;影像检查检验结果不可篡改行的&#xff0c;药品追溯过程中数据只可插入无法删除的特性需求&#xff1b;登录日志、修改日志…...