avatar
文章
38
标签
40
分类
29
首页
归档
标签
分类
Zhongzheng's Blog
搜索
首页
归档
标签
分类

Zhongzheng's Blog

企业新基建:MCP + LLM + Agent架构,将打通AI Agent的“神经中枢”
发表于2025-10-10
近年来,AI大模型席卷各行各业,我们感受到它强大的语言理解和生成能力。但在实际应用中,光“能说会道”还不够,更重要的是“能说还得能做”。大模型如何跨出文本世界,触达数据库、调用接口、执行代码?答案就是:MCP(Model Context Protocol)模型上下文协议。今天这篇文章,我们将详细解读 MCP 能做什么、它的工作原理以及它是如何打破大模型“只能说不能做”的边界。后面的文章中会分享Cursor等IDE中配置MCP服务器、Cherry Studio等支持MCP的聊天应用、MCP开发等系列文章。 MCP能干什么?从程序员到普通用户全面赋能对于程序员来说,MCP是效率工具集大成者,告别重复造轮子作为一个经常和各种开发工具打交道的人,我深知程序员们的痛点。MCP的出现,真的是解决了不少实际问题。 举例1:一条语音就完成全流程部署 只需说一句“部署新版本到测试环境”,MCP 会自动串联多个 API 工具: GitLab API 完成代码合并 Jenkins API 进行构建 Slack API 通知团队成员部署完成 这一切,不需要你亲自点开工具逐个操作,MCP 统...
AI Agent通关(二):AI Agent 开发者学习路径与计划
发表于2025-09-25|AI、Agent
这个学习计划分为四个阶段,每个阶段都有明确的学习目标和推荐的实践项目。 阶段一:基础奠定(4-6周) 目标: 掌握AI Agent开发的核心编程基础和基本概念。 课程 1:Python 高级编程与工程实践内容 异步编程(asyncio)、RESTful API 开发(FastAPI)、容器化(Docker)。 为什么重要? 这是构建高效、可扩展 Agent 服务的基础。Agent 经常需要同时处理多个请求和外部 API 调用,异步编程是关键。FastAPI 和 Docker 则是将 Agent 服务化、可部署的必备工具。 实践项目 用 FastAPI 和 Docker 构建一个简单的 Web API,接收文本输入并返回处理结果。 课程 2:大语言模型(LLM)与提示工程(Prompt Engineering)内容 LLM 基本原理、提示工程技巧(如 Chain-of-Thought, ReAct)、OpenAI API 或其他开源 LLM API 的调用。 为什么重要? LLM 是 Agent 的“大脑”。掌握提示工程,就是掌握了与这个“大脑”沟通的语言,能有效提升 Agent...
AI Agent通关(一):开发工作职责、内容、技能与行业趋势解析
发表于2025-09-25|AI、Agent
核心工作职责 AI Agent开发的核心是赋予AI“自主行动”能力,其职责贯穿设计、落地到运维的全生命周期 架构设计与优化 智能体架构搭建 基于LangChain、AutoGen等框架构建AI Agent,集成RAG(检索增强生成)技术实现知识检索,设计多智能体协作系统(MCP)处理复杂任务(如同时调用天气API、酒店预订工具)。 推理能力强化 ​ 通过思维链(Chain-of-Thought)和ReAct框架(推理+行动循环)提升AI的逻辑连贯性,利用强化学习(RLHF)优化模型在特定场景(如金融风控)中的决策准确性。 长期记忆与学习 构建向量数据库(如Milvus)存储历史数据,结合知识图谱(如Neo4j)实现跨项目经验复用。 业务场景落地 工具集成与API开发 将AI Agent嵌入企业系统(如CRM、ERP),通过RESTful API或gRPC与外部服务交互(如调用高德地图规划路线)。 性能优化 采用分布式架构(Kubernetes)应对高并发场景,通过模型量化(INT8)和缓存机制降低延迟。 安全合规 设计数据脱敏流程,确保AI决策符合伦理规范(...
Springboot2.7整合Swagger3
发表于2025-08-19|开发框架
Springboot2.7整合Swagger3Springboot2.7.x改动较大,Swagger3.0.0也是改动较大,两个一掺和,一堆问题就出来了。 引入依赖12345678910<dependency> <groupId>io.springfox</groupId> <artifactId>springfox-swagger2</artifactId> <version>3.0.0</version></dependency><dependency> <groupId>io.springfox</groupId> <artifactId>springfox-boot-starter</artifactId> <version>3.0.0</version></dependency> 原先的springfox-swagger-ui依赖似乎不需要了。...
缓存穿透、缓存击穿、缓存雪崩是什么?在你的项目中是如何预防和解决这些问题的?
发表于2025-07-15|Redis
核心前置理解区分穿透和击穿的关键在于: 数据是否存在数据库中? 穿透:数据库中没有数据。 击穿:数据库中有数据。 问题的根源是什么? 穿透:无效的请求或者恶意攻击,导致缓存层永远无法被命中。 击穿:热点数据缓存失效瞬间,大量请求请求数据库。 缓存穿透原因/现象查询一个缓存层和数据库中本来就没有的数据key。每次请求都会打到数据库中,导致数据库压力过大甚至崩溃。 预防/解决方案 布隆过滤器:最推荐,在缓存加一个前置预处理阶段。将所有的key哈希到一个足够的bitmap中,查询时先查询布隆过滤器是否存在,不存在直接返回,减少数据库查询。 缓存空对象:数据库查询结果为空时,也将这个空结果缓存起来并设置一个较短的过期时。 缓存击穿原因/现象缓存中热点key突然失效,大量请求同时访问该key,导致大量请求打到数据库上。(数据库中有这个热点数据) 预防/解决方案 热点数据永不变过期:对热点数据key设置为永不过期,或者设置较长的过期时间,并配合后台线程定时刷新。 互斥锁(Mutex Lock):当热点key失效时,只允许一个线...
Redis持久化机制有哪些?它的优缺点和使用场景?
发表于2025-07-15|Redis持久化
只针对写操作才会持久化Redis持久化是为了解决内存数据容易丢失的问题。既然是数据恢复,那么恢复的就是数据变化后的状态。而数据只有在写操作之后才有变化。读操作只是查询数据并不会改变数据的状态,所以操作不会被持久化。 RDB(Redis Database)持久化快照(Snapshotting)持久化,在指定的时间间隔内将内存中的数据写入到磁盘。 RDB持久化的触发方式手动触发 SAVE命令:同步保存操作,会阻塞主线程,知道RDB文件生成完毕。生产环境下不推荐使用。 BGSAVE命令:后台异步执行。Redis主线程会fork一个子进程进行RDB文件生成,主线程继续处理客户端响应。只会在fork子进程的时候会有短时的暂停阻塞响应,这是推荐的手动触发的方式。 自动触发 redis_conf配置:通过配置save 规则,当在秒内,触发至少次写操作时,Redis会自动执行一次BGSAVE操作。 123save 900 1: 900秒内至少有一次key被修改。save 300 10: 300秒内至少有个10次key被修改。save 60 10000: 60秒内至少有10000次key被修...
什么是CQRS模式?它解决了什么问题?在什么场景下会考虑使用它?
发表于2025-07-14|软件架构CQRS
什么是CQRS ?CQRS(Command Query Responsibility Segregation),命令查询职责分离。它是一种软件架构模式,核心思想是将应用程序写入(命令)和查询(Query)分离。 核心概念命令端(写)负责处理业务逻辑、数据修改,通常是写入关系型数据库 查询端(读)负责处理数据读取逻辑,通常是读取经过优化后的数据,提供高性能的查询。 查询端读取经过优化后得到数据唯一目标就是尽可能高效、快速地满足各种查询请求。 结构上的优化:非规范化与扁平化传统的数据库设计为了减少数据冗余和保证数据一致性,通常会采用规范化(Normalization)的范式。这意味着数据会被分解到多张关联的表中。 读模型则倾向于采用非规范化(Denormalization)和扁平化的结构。 它的目标是: 减少 Join 操作:规范化的数据库在查询时往往需要大量的 JOIN 操作来组合来自不同表的数据。JOIN 操作是耗时的。读模型会把查询经常需要的数据预先组合好,存放在一张或几张“宽表”中,这样查询时可以直接从单张表获取数据,避免复杂的关联查询。 适应特定查询模式:例如,如果你...
实现数据库读写分离有哪几种方式?
发表于2025-07-14|数据库读写分离
方式1:Apache ShardingSphere 实现读写分离(推荐)简介Apache ShardingSphere(前身为 Sharding-JDBC)。ShardingSphere 提供了多种部署模式,其中 ShardingSphere-JDBC 是以 JDBC 驱动的方式嵌入到应用程序中,对应用透明,就像使用普通的 JDBC 连接一样。它通过解析 SQL 语句,自动将读操作路由到从库,写操作路由到主库。 核心思想配置多个数据源在 Spring Boot 配置中定义主库和从库的数据源。 规则配置配置读写分离规则,指定哪个数据源是主库,哪些是从库。 SQL解析和路由ShardingSphere 在底层拦截 JDBC 操作,解析 SQL 语句(SELECT 语句通常路由到读库,INSERT, UPDATE, DELETE 语句路由到写库),然后将请求转发到正确的数据源。 事务处理ShardingSphere 会自动处理读写分离下的事务,确保事务的原子性。 代码实现引入依赖123456789101112131415161718192021222324<dependencie...
在进行数据库查询优化时,除了索引和SQL语句优化,你还会考虑哪些方面?
发表于2025-07-14|性能优化数据库优化
读写分离将读请求分发到从库,写请求分发到主库,减轻主库的压力。 实现方式,可以参考这篇文章:实现数据库读写分离有哪几种方式? 手动AOP + ThreadLocal实现 通用组件,例如 Apache ShardingSphere QA:上述两种实现方式的比较? QA:AOP的原理? QA:ThreadLocal原理? QA:Apache ShardingSphere的实现原理? QA:主从同步如何实现? 分库分表应对海量数据,分散存储和查询压力。 QA:如何做分库分表? 业务缓存引用Redis等缓存,存储热点数据或者高频查询数据,缓解数据库压力。 QA:如何识别数据位热数据和冷数据? QA:缓存数据淘汰机制? 批量操作批量插入、删除、更新,减少网络IO和事务开销。 慢查询日志分析定期分析MySQL慢日志,找出耗时SQL优化。 QA:如何进行慢SQL查找和分析优化? 数据参数调优调整MySQL的innodb_buffer_pool_size、query_cache_size大小。 QA: 这两个参数是干什么的? 硬件优化优化数据库服务器硬件资源: 升级SS...
事件驱动架构(EDA)在微服务中的优势和挑战是什么?你认为它在未来会有怎样的发展?
发表于2025-07-14|服务架构事件驱动架构(EDA)
对事务驱动架构的理解事件驱动架构(Event-Driven Architecture, EDA)是一种软件架构的模式,通过事件的产生、事件订阅、事件消费来进行业务流转和处理。服务之间通过发布/订阅进行通信,而不是直接调用。 EDA是一种架构模式,MQ是一种实现这种模式的手段。 事件驱动架构的核心组件事件生产者负责生成事件并将其发布出去,它不关心谁会消费这些事件,也不关心消费者的具体逻辑。 事件消费者订阅感兴趣的事件,并在接收到事件时执行相应的业务逻辑,它不关心事件是如何产生的,只关心事件的内容。 事件通道/代理负责接收事件、存储事件,并将事件路由或分发给订阅者。 事件驱动架构的优势高度解耦服务之间完全解耦,生产者无需知道消费者,消费者无需知道生产者。 高扩展性易于增加新的消费者来响应事件,不影响现有服务。 可靠性/高韧性生产者和消费者都是独立运行,即使一方这哪是不可用,事件也不会丢失。 实时性适合处理实时数据流和快速响应业务变化。 事件驱动架构的挑战一致性问题分布式事务一致性需要通过补偿或者本地消息表的方式进行实现,最终一致性。 难以调试和追踪缺乏直...
1234
avatar
Zhongzheng
文章
38
标签
40
分类
29
最新文章
向量的模长和勾股定理的关系是什么?2025-10-25
向量的模长是什么?2025-10-25
向量点积公式在自注意力机制中的应用?2025-10-25
向量点积为什么越大表示两个向量之间的相似度就越高?2025-10-25
BPE和tiktoken都是什么?2025-10-24
网站信息
本站总字数 :
71.9k
最后更新时间 :
© 2025 By Zhongzheng
唯一真正的智慧,是知道自己一无所知!
搜索
数据加载中