- 博客(119)
- 收藏
- 关注
原创 Agent 学习笔记 04:KV Cache 与上下文缓存
为提升生成效率,模型采用KVCache机制缓存历史token的键值对,避免重复计算,仅需重算变化部分。上下文必须使用标准ChatTemplate格式,确保前缀一致以复用缓存;若自行拼接消息或修改系统提示,将破坏缓存有效性。KVCache优化单次推理,而PromptCache则跨请求复用前缀。设计友好缓存的Agent应固定系统提示、动态信息追加末尾、使用标准API格式,并结合状态栏与压缩策略控制上下文膨胀。
2026-10-29 21:40:56
335
原创 Agent 学习笔记 03:模型到底看到了什么
Agent的决策基于完整交互上下文,而非单条输入。上下文由系统提示词、用户消息、模型回复(assistant)、工具调用请求及执行结果(tool)构成,通过messages列表与tools字段共同传递。每轮请求均需包含全部历史,确保无状态模型具备“记忆”。工具调用时,框架先执行工具,再将结果以tool角色插入上下文,使模型能基于完整历史生成响应。
2026-10-29 16:08:02
181
原创 Agent 学习笔记 02:Harness 与工作流怎么理解
Harness作为Agent的运行与治理层,通过上下文管理、工具接口及约束、验证、纠正机制,保障LLM在生产环境中的可靠性。其核心在于防范幻觉、错误工具选择与不可恢复错误。相较工作流的确定性编排,自主Agent具备动态规划与容错能力,适用于开放式任务。实际应用中常混合使用:关键流程用工作流确保安全,灵活部分由自主Agent生成执行路径。护栏分三层(上下文、执行、数据)实现多层防护,人工干预则在失败或高风险时接管控制,确保系统可控、安全、可回退。
2026-10-28 18:38:10
346
原创 Agent 学习笔记 01:从工具调用到 ReAct 循环
Agent可提炼为LLM+上下文+工具三要素:LLM作为大脑负责意图理解与决策,上下文提供全局信息(系统提示、工具定义、用户输入、历史回复与执行结果),工具则赋予Agent感知、执行、协作与交互能力。通过ReAct循环(思考-行动-观察)实现与外部环境的动态交互,结合提示工程与强化学习训练,模型正逐步内化工具调用能力,迈向“模型即Agent”的自主智能新范式。
2026-10-28 14:18:55
228
原创 飞书企业知识库设计+后端高频八股
本文设计飞书企业知识库,聚焦RAG架构与后端高频考点。核心包括:分层架构(离线构建+在线问答)、多源文档解析与结构化分块、混合检索(BM25+向量+RRF融合)、Rerank优化及上下文压缩。强调权限控制、引用溯源、可观测性与降级策略,结合MySQL、Redis、OSS、向量库等技术栈,解决长文本处理、多模态内容索引与高并发低延迟挑战,体现工程落地深度。
2026-10-22 14:53:48
163
原创 动手造轮子系列:基于MCP架构的本地智能舆情分析系统设计与实现
本文系统介绍了模型上下文协议(MCP)的通信机制与应用实践。首先解析了Stdio与SSE两种通信方式的优劣,前者适用于本地服务,后者面向远程API。其次,详细演示了在Cursor和Cline中配置MCP服务器的完整流程,包括uvx/npx环境搭建、MySQL与高德地图服务集成,并以“北京一日游攻略”为实战案例,实现地铁线路与美食信息的自动抓取、数据库存储及HTML页面生成。最后,阐述了MCP的C/S架构工作原理,并延伸至本地智能舆情分析系统的构建,展示了如何通过多工具协作完成舆情分析系统。
2026-09-09 14:05:16
64
1
原创 我把“AI 编程八荣八耻”做成了一个可安装的 Skill
本文介绍了开源项目 Scientific Coding,它是一套面向 Codex、Claude Code、Cursor、等 AI 编程 Agent 的工程协作 Skill。项目通过“先读上下文、再写代码;先确认事实、再调用接口;先验证结果、再宣布完成”等原则,约束 AI 在真实开发中的行为,重点减少接口编造、业务臆测、过度重构、忽略测试和破坏架构等问题。该 Skill 包含完整规则、检查清单、提示词模板、正确与错误案例及任务报告模板,并可通过 npx skills add 安装到 Claude code等。
2026-07-13 17:11:44
848
原创 MySQL性能优化:索引与子查询实战技巧
本文总结了MySQL数据库的几种关键性能优化策略:1. 子查询优化建议用JOIN替代子查询,避免临时表带来的性能损耗;2. 排序优化强调在WHERE和ORDER BY子句中使用索引;3. 覆盖索引能减少回表操作,将随机IO转为顺序IO;4. 索引下推(ICP)允许存储引擎提前过滤数据,减少回表次数,但需满足特定使用条件;5. 统计行数时,COUNT(*)与COUNT(1)性能相当,在InnoDB中建议使用二级索引进行COUNT(具体字段)统计。这些优化手段通过减少IO操作、降低计算复杂度来提升查询效率。
2026-06-08 15:22:53
200
原创 MySQL关联查询优化解析(JOIN原理解析)
本文总结了MySQL连接查询的优化技术。对于外连接,建议为被驱动表建立索引;内连接则由优化器决定驱动表,遵循"小表驱动大表"原则。详细介绍了三种连接算法:简单嵌套循环连接(SNLJ)效率最低;索引嵌套循环连接(INLJ)利用被驱动表索引提升性能;块嵌套循环连接(BNLJ)通过join buffer减少IO。MySQL 8.0.20后引入更高效的Hash Join,利用散列表优化大数据集连接。总体性能排序为:INLJ > BNLJ > SNLJ,并建议通过精简查询字段、增大jo
2026-06-05 17:09:16
264
原创 SQL查询优化之索引失效的场合
SQL查询优化主要包括物理优化(索引使用)和逻辑优化(SQL等价变换)。最佳实践包括:全值匹配联合索引字段、遵循最佳左前缀规则、避免主键乱序插入。常见索引失效场景有:使用函数/计算、类型转换、范围条件右侧列、不等于查询、IS NOT NULL、LIKE以%开头、OR连接非索引列等。建议将范围字段放在联合索引最后,设置NOT NULL约束,统一使用utf8mb4字符集以避免转换导致的索引失效。优化索引使用能显著提升查询性能。
2026-05-18 18:41:58
244
原创 EXPLAIN输出格式全解析:JSON、TREE与可视化
MySQL的EXPLAIN命令支持多种输出格式:传统表格、JSON、TREE和可视化格式。JSON格式通过FORMAT=JSON参数启用,提供更详细的成本分析,包括read_cost(IO和CPU成本)、eval_cost(记录检测成本)、prefix_cost(总成本)和data_read_per_join(数据读取量)。TREE格式展示查询各部分关系和执行顺序。可视化格式可通过MySQL Workbench生成,显示表访问行数估计和成本。最后,SHOW WARNINGS可查看优化后的查询执行流程。
2026-05-14 17:49:36
85
原创 MySQL执行计划详解:优化查询性能的关键
本文详细解析了MySQL EXPLAIN执行计划中的关键字段及其含义。主要内容包括:1)table列显示查询涉及的表名;2)id表示查询语句中SELECT的数量;3)select_type说明查询类型(如SIMPLE、PRIMARY等);4)type展示表的访问方法(如const、ref等);5)possible_keys和key分别表示可能和实际使用的索引;6)key_len显示索引使用长度;7)rows预估读取记录数;8)Extra提供额外执行信息(如Using index)。通过分析这些字段可以评估查
2026-05-14 16:29:14
403
原创 MySQL慢查询日志优化实战
MySQL慢查询日志分析与优化 摘要:MySQL慢查询日志可记录执行时间超过阈值的SQL语句,帮助定位性能问题。通过设置slow_query_log=ON和调整long_query_time阈值(如1秒)开启慢查询监控,使用SHOW STATUS查看慢查询数量。分析工具mysqldumpslow可对日志排序统计(如按时间排序前5条)。优化完成后可通过配置文件或SET命令关闭日志。此外,SHOW PROFILE功能可详细分析SQL执行成本,包括CPU和IO等资源消耗情况。注意慢查询日志会带来一定性能开销,非调
2026-05-12 12:15:49
349
原创 MySQL八股之数据库索引优化:7个关键注意事项
数据库索引优化指南摘要 合理设置索引是提升数据库性能的关键。本文总结了7个索引优化原则:1)仅为WHERE、ORDER BY、GROUP BY涉及的字段建索引;2)小数据量表无需索引;3)避免为高重复率字段建索引;4)频繁更新的表应减少索引数量;5)避免使用无序值作为索引;6)定期清理无用索引;7)消除冗余和重复索引。特别要注意联合索引与单列索引的重复问题,以及主键与普通索引的冗余情况。遵循这些原则可在查询效率和更新性能间取得平衡。
2026-05-11 12:06:03
324
原创 高效索引优化:数据库查询提速指南(适合创建索引的11种情况)
本文总结了数据库索引优化的11个关键原则:1)唯一性字段适合创建唯一/主键索引;2)频繁查询的WHERE条件字段应建索引;3)GROUP BY/ORDER BY字段需索引;4)UPDATE/DELETE的WHERE条件字段应索引;5)DISTINCT字段适合建索引;6)多表JOIN时需注意连接字段索引和类型一致性;7)优先选择小数据类型创建索引;8)长字符串可使用前缀索引;9)选择区分度高的字段建索引;10)高频查询字段应放在联合索引左侧;11)多字段索引时联合索引优于单列索引。通过实际SQL查询对比,展示
2026-05-10 19:18:22
389
原创 LangChain嵌入模型与向量数据库实战
本文介绍了嵌入模型、向量数据库和检索器的使用。首先展示了如何使用OpenAI的文本嵌入模型将句子和文档向量化,包括embed_query和embed_documents方法。然后详细说明了向量数据库的应用,重点介绍了Chroma数据库的数据存储和多种检索方式(相似性检索、L2距离分数检索、余弦相似度检索等)。最后讲解了检索器的基本使用和不同检索策略(默认检索、分数阈值查询、MMR搜索),并演示了如何结合大语言模型使用RAG技术进行信息检索。文中提供了完整的代码示例,涵盖了从数据加载、向量化到检索的完整流程。
2026-05-09 14:47:17
389
原创 LangChain RAG技术解析:构建高效知识库(加载与拆分)
本文介绍了LangChain框架中的Retrieval模块,重点探讨了RAG技术如何缓解大模型的"幻觉"问题。文章详细讲解了文档加载器(DocumentLoaders)的使用方法,包括Txt、Pdf、CSV、JSON等多种格式的加载方式。同时深入分析了文档拆分器(TextSplitters)的必要性和多种拆分策略,如CharacterTextSplitter、RecursiveCharacterTextSplitter等,并提供了具体代码示例。文章指出RAG技术能提升问答时效性和可靠性,
2026-05-08 21:14:16
598
原创 智能Agent实战指南:记忆组件嵌入技巧(记忆)
本文介绍了在智能Agent中嵌入记忆组件的多种实现方式。通过LangChain框架,分别展示了传统方式和通用方式下的ReAct和function_call两种实现路径。具体包括:1)传统方式使用ConversationBufferMemory存储对话历史;2)通用方式通过自定义提示词模板或使用官方ReAct模板实现记忆功能。文中详细演示了如何初始化Agent、配置记忆组件,并通过连续对话(如查询北京和上海天气)验证记忆功能的有效性。代码示例涵盖了工具配置、大模型调用、Agent创建和执行等关键步骤,为开发者
2026-05-08 16:27:38
78
原创 数据库页结构解析:存储效率与索引差异
摘要:数据库存储以16KB页为单位,包含数据页、系统页等类型。普通索引与唯一索引查询效率差异不大,唯一索引在找到关键字后停止检索,而普通索引可能需多几次内存判断。InnoDB页可存上千条记录,额外操作对CPU耗时影响可忽略。行格式包括COMPACT等类型,处理行溢出方式不同:COMPACT和Reduntant部分存储大列数据,其余分散存放;Compressed和Dynamic则完全使用溢出页存储,数据页仅保留指针。VARCHAR等大字段可能触发行溢出现象。
2026-04-14 10:55:32
269
1
原创 智能Agent实战指南:从入门到精通(工具)
文章摘要:本文深入探讨了AI智能体(Agent)的应用开发,对比了传统Chain模式与智能体模式的区别。智能体通过语言模型实现自主决策,支持两种主要模式:FunctionCall(高效结构化调用)和ReAct(带推理能力的链式思考)。文章详细介绍了智能体的创建方法、工具集成方式,并提供了天气查询、股票分析等具体示例代码,展示了如何通过initialize_agent或create_xxx_agent等方法来构建具备不同能力的智能体。最后对比了传统方式和通用方式的实现差异,为开发者选择适合的智能体实现方案提供
2026-04-12 19:27:48
1273
原创 AI时代的缰绳:揭秘Harness如何驾驭大模型
摘要:Harness是AI领域用于"驾驭"大模型的基础设施体系,包含目标设定、工具接入、记忆管理等核心模块。它与Prompt(单次指令)和Skill(可复用能力)构成层级关系:Harness提供系统级框架,Skill封装具体任务能力,Prompt触发即时响应。三者协同工作(如代码开发场景),形成"骨架-肌肉-神经信号"的有机整体,使AI智能体能够安全高效地完成任务。Harness=Memory+Tools+Planning+Action,是将大模型潜力转化为实际生产力
2026-04-12 13:24:44
764
原创 LangChain使用AI工具赋能:解锁大语言模型无限潜力
摘要:本文介绍了LangChain中工具(Tool)的概念和使用方法。工具通过扩展大语言模型能力,使其能与外部系统交互。核心要素包括名称、描述、输入模式和调用函数。文章详细讲解了两种自定义工具的方法:使用@tool装饰器和StructuredTool.from_function类方法,并提供了代码示例。最后演示了工具调用实例,展示如何让大模型分析工具需求并执行具体操作,包括文件移动等任务。工具调用流程分为分析工具需求和执行具体操作两个步骤,实现了AI能力的实际应用。
2026-04-09 22:27:05
769
2
原创 MySQL查询执行全流程解析(逻辑架构+执行流程)
MySQL查询处理流程分为连接层、服务层和引擎层三部分。客户端请求首先建立TCP连接并进行权限认证,随后进入服务层的SQL解析、优化等环节。查询缓存因命中率低已在8.0版本移除,解析器会构建语法树,优化器确定执行路径,执行器最终处理查询。8.0版本通过SHOW PROFILE工具可分析SQL各环节耗时,但不再支持查询缓存功能。整个流程从连接管理到存储引擎调用,确保查询高效执行。
2026-04-09 12:38:23
613
原创 MySQL角色管理:权限控制全攻略
摘要:本文介绍了数据库角色的管理与使用,主要包括:1)角色的创建与权限赋予(CREATE ROLE/GRANT);2)权限查看与回收(SHOW GRANTS/REVOKE);3)角色删除(DROP ROLE);4)用户角色分配与激活(GRANT/SET DEFAULT ROLE);5)强制角色的特性。重点说明了角色需激活后才能生效,可通过设置activate_all_roles_on_login参数实现自动激活。全文系统阐述了角色从创建到应用的全流程管理方法。(149字)
2026-04-08 11:16:17
234
原创 MySQL用户管理与权限控制指南(含底层架构说明)
MySQL用户与权限管理摘要 本文介绍了MySQL用户管理和权限控制的核心操作。用户管理部分包括创建用户(CREATE USER)、修改用户名(UPDATE mysql.user)、删除用户(DROP USER)以及设置密码(ALTER USER/SET PASSWORD)等基本操作。权限管理方面详细说明了权限授予(GRANT)和回收(REVOKE)的语法,强调最小权限原则和安全规范。文章还解析了MySQL的权限表结构和访问控制的两阶段机制:连接核实阶段验证用户身份,请求核实阶段检查操作权限。通过权限表的层
2026-04-07 16:53:33
490
原创 MySQL大小写规则与存储引擎详解
摘要:MySQL在Linux下区分数据库名、表名等的大小写,而Windows不区分。建议SQL关键字大写,其他名称小写。MySQL包含四个系统数据库:mysql(用户权限)、information_schema(元数据)、performance_schema(性能指标)和sys(监控视图)。InnoDB存储引擎使用系统表空间(ibdata1)或独立表空间(.ibd),MyISAM则将数据(.MYD)与索引(.MYI)分开存储。不同版本的文件结构有所差异,如MySQL 8.0不再提供单独的.frm文件。
2026-04-07 13:31:16
410
原创 Xinference下载模型卡住不动?从0%到100%的完整排坑指南
摘要: 在使用Xinference部署模型时,遇到模型下载进度始终卡在0%的问题。排查发现服务运行正常但端口冲突(6006被占用),清理端口后仍无法下载,原因是国内服务器访问HuggingFace官方源速度慢。解决方案:设置国内镜像源(HF_ENDPOINT=https://hf-mirror.com)并启动服务,最终成功下载模型。注意Xinference重启后模型需重新加载。
2026-04-03 13:21:18
495
原创 SSH隧道实现Dify与Ollama跨服务器通信
本文介绍了如何通过SSH隧道实现腾讯云Dify与AutoDL Ollama服务之间的端口转发通信。首先分析了直接连接失败的原因,指出SSH命令缺少端口转发参数。随后详细说明了排查步骤:1)检查SSH进程;2)终止错误连接;3)重建正确隧道(使用-g -L参数);4)通过curl验证连通性。最后给出了Dify的配置方法:基础URL设为腾讯云内网IP:6006,模型名称设为qwen3.5:4b。整个过程实现了通过本地端口间接访问远程Ollama服务的目标。
2026-04-02 21:30:04
349
原创 为什么Dify平台私有化部署后打不开界面?可能是这个原因!
摘要:在Ubuntu系统私有化部署Dify平台时,若通过Docker配置后无法通过地址访问,通常是由于缺少.env配置文件导致API容器连接数据库失败。解决方法为:进入Dify的docker目录,复制.env.example为.env,修改其中的核心地址为服务器公网IP(如CONSOLE_API_URL=http://134.33.235.123),并确保DB_HOST=db_postgres。配置完成后重启Dify服务(docker-compose down/up -d),等待容器启动后即可通过IP访问。
2026-04-02 16:47:58
410
原创 LangChain记忆模块:大模型对话上下文管理
本文介绍了LangChain中的Memory模块及其实现方式。Memory用于存储多轮对话的上下文信息,使大模型具备记忆能力。文章详细讲解了多种Memory组件:基础组件ConversationBufferMemory存储完整对话历史;ConversationBufferWindowMemory只保留最近K条对话;ConversationTokenBufferMemory基于token数量控制记忆;ConversationSummaryMemory通过LLM生成对话摘要;ConversationEntity
2026-04-01 18:02:06
726
原创 向量数据库是什么?一篇看懂AI时代的核心存储引擎
摘要: 向量数据库是专为处理AI生成的多维向量数据而设计的数据库,擅长相似性搜索(如图片、文本检索)。与传统关系型数据库(如MySQL)不同,它通过向量化技术(如将“猫”转为[0.12,0.33,...])存储非结构化数据,并基于余弦相似度或欧式距离快速匹配相似内容。核心技术包括HNSW索引、混合元数据存储,广泛应用于以图搜图、推荐系统及RAG(检索增强生成)流程。主流工具有Milvus、Chroma、Pinecone等,通过嵌入模型(如OpenAI的text-embedding-ada-002)实现高效检
2026-03-31 19:36:48
747
原创 LangChain链式编程全解析
本文介绍了LangChain中的Chain概念及其应用。Chain通过管道符(|)连接提示模版、模型和输出解析器等组件,形成可复用的工作流。主要内容包括:1)LCEL表达式语言的基本组成和Runnable协议;2)传统Chain类型如LLMChain、SimpleSequentialChain和SequentialChain的使用方法;3)基于LCEL构建的实用Chain类型,如SQL查询链和文档合并链。文章通过代码示例展示了如何构建和调用这些Chain来完成翻译、摘要、数据库查询等任务,体现了LangCh
2026-03-27 13:31:16
385
原创 本地大模型调用实战:Ollama+LangChain全指南
Ollama是一个支持本地运行大模型的集成框架,主要用于LLaMA架构的开源模型。它支持跨平台部署(Mac/Linux/Windows),可自动下载和运行Qwen、Deepseek等主流模型。安装后,用户可通过命令行或图形界面交互,模型默认保存在C盘但可自定义路径。通过LangChain的ChatOllama模块可轻松调用本地模型(如deepseek-r1:8b),支持默认端口或自定义地址访问。Ollama已被多个项目集成,是大模型本地化部署的便捷工具。
2026-03-25 18:08:20
650
原创 如何从文档中加载Prompt?输出解析器又是什么?一文搞懂(详细)
本文介绍了Prompt管理和输出解析器的使用方法。在Prompt管理方面,支持将Prompt保存为JSON/YAML格式文件,便于共享、版本控制和大模板维护,并演示了从文件加载Prompt的示例。输出解析器部分详细介绍了多种解析器:字符串解析器(StrOutputParser)可将输出转为字符串;JSON解析器(JsonOutputParser)支持通过提示词或get_format_instructions()生成JSON格式;XML解析器(XMLOutputParser)生成标签化数据并转换为Python
2026-03-24 15:26:58
384
原创 LangChain使用之Model IO(提示词模版之FewShotPromptTemplate)
关于langchain架构中FewShotPromptTemplate的使用
2026-03-23 14:17:53
337
原创 LangChain使用之Model IO(提示词模版之ChatPromptTemplate)
本文介绍了ChatPromptTemplate在LangChain中的使用方法和特性。ChatPromptTemplate是专门处理多角色、多轮对话的提示模板,支持两种实例化方式:构造方法和from_messages()。文章详细讲解了四种调用模板的方法(invoke、format、format_messages、format_prompt)及其返回类型转换,并展示了多种参数类型(元组、字符串、字典、消息类型等)的实例化示例。此外,还演示了如何结合LLM使用提示模板,以及MessagePlaceholder
2026-03-19 17:41:18
503
原创 LangChain使用之Model IO(提示词模版之PromptTemplate)
本文介绍了PromptTemplate的基本概念及其在大型语言模型中的应用。PromptTemplate通过模板管理模型输入,接收字典变量生成提示词,支持转换为字符串或消息列表。文章详细讲解了PromptTemplate的两种实例化方法(构造函数和from_template()),并展示了部分提示词模板和组合提示词的使用技巧。此外,还比较了format()和invoke()两种变量赋值方式的区别,最后演示了如何结合ChatOpenAI模型进行实际调用。文章以医疗领域AI价值评估为例,展示了从模板构建到模型调
2026-03-18 11:36:13
293
原创 LangChain使用之Model IO(调用模型)
本文介绍了LangChain中对话模型的使用方式与特性。主要内容包括:1)消息类型(SystemMessage、HumanMessage、AIMessage)及其组合使用;2)大模型缺乏上下文记忆能力,仅响应最后一条消息;3)模型调用方法:invoke(阻塞式)、stream(流式)、batch(批量)及其异步版本;4)同步与异步调用的区别,同步为串行执行,异步可并行处理提高效率。文章通过代码示例展示了不同调用方式的特点和适用场景,如流式输出适合实时交互,批量处理可提高效率等。
2026-03-16 10:59:31
415
原创 一文搞懂RAG到底增强了什么?大模型落地的场景:RAG和Agent!
摘要:RAG(检索增强生成)技术能有效解决大模型的知识冻结和幻觉问题,通过检索外部知识提升回答准确率。RAG流程包括文件解析、切割、检索和重排序等难点环节,适用于高精度场景。Agent架构结合LLM、记忆、工具和规划能力,实现智能决策。大模型开发主要有纯Prompt、Agent+Function Calling、RAG和微调四种方式,其中RAG适合补充领域知识,而微调成本较高但能形成长期记忆。不同方法各有优劣,需根据场景需求选择。
2026-03-12 15:12:54
452
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅