自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

曦煜墨白的博客

曦煜墨白的博客

  • 博客(227)
  • 收藏
  • 关注

原创 当 90% 的代码由 AI 编写:复盘 Claude Code 团队的全链路代码审核与发布工程

在90%代码由AI生成的背景下,Claude Code团队通过四阶段纵深防御体系实现吞吐翻倍、故障率下降40%。该体系将审核嵌入全链路:PR前自验证与上下文隔离预审,PR中确定性CI+AI漏斗式审查并分级审批,合并时重跑测试,合并后灰度发布与秒级回滚。核心实践包括量化评测提升真问题召回、严格管控无效意见、多轮审核熔断与收敛规则,使AI评审从“噪音源”蜕变为高信噪比质量守门员。

2026-11-04 08:45:00 259

原创 AI Agent 是怎么跑起来的:从 Agent Loop 到 MCP 的架构拆解

AI Agent 通过 LLM + Planning + Memory + Tools 构建闭环执行能力,突破聊天模型“只生成建议”的局限。其核心是 Agent Loop:持续决策、调用工具、读取反馈并更新上下文。落地需攻克三层架构:LLM 调用、工具接入与上下文工程。工具接入分三级:Function Calling Schema 定义参数格式,MCP 协议实现统一通信,Skills 封装复杂任务链。三者协同,使 Agent 能自主完成如系统排障等端到端任务,真正实现“从指令到执行”的跨越。

2026-09-18 19:45:00 797

原创 把 RAG 从 Demo 做到生产,我踩的坑全在向量库之前

RAG效果瓶颈在检索,而检索质量早在文档入向量库前就已决定。从文件解析、清洗到切分、嵌入,任一环节的缺陷都会导致向量失真。关键在于:小块切分(Child)用于精准召回,大块(Parent)保障上下文完整;混合使用向量与关键词检索(Hybrid Search),结合RRF融合策略;并通过Query Rewrite提升查询理解。真正决定RAG成败的,是向量库之前的工程链路设计。

2026-09-18 08:45:00 188

原创 拆开 AI Agent 之后,我发现核心就是一个 while 循环

拆解AI Agent后发现,其核心不过是一个while循环:通过不断推理、调用工具、回填结果形成闭环。区别于单次API调用,Agent具备持续决策与执行能力,关键在于“Observation”反馈环。真正挑战不在循环本身,而在工程细节:上下文管理、安全执行、死循环防护、记忆系统设计。上下文膨胀是主要瓶颈,需通过裁剪、压缩、外部存储优化。路径选择上,动态探索用ReAct循环,目标明确则用Plan-and-Execute。最终,模型提供智能,工程决定可控性与成本。

2026-09-15 19:45:00 229

原创 沿着“下一个 Token”这条主线,串起 LLM 的全部基础

本文以“自回归生成”为主线,系统梳理大语言模型的核心机制。从Token切分、上下文窗口到采样策略、Prompt设计与结构化输出,所有概念皆源于模型逐Token生成的闭环过程。强调理解生成逻辑是用好LLM的关键,避免将其视为黑盒。重点揭示:上下文隐形占用、采样参数本质、结构化输出需契约保障、Function Calling实为意图生成而非执行,最终实现从“调用API”到“掌控生成”的认知跃迁。

2026-09-15 08:45:00 129

原创 超越玩具 Agent:基于 LangGraph 构建具备 RAG 兜底与 Human-in-the-loop 的可控业务状态机

本文基于 LangGraph 构建可控业务 Agent,通过结构化状态建模与双环拓扑设计,实现 RAG 兜底与人机协同。系统引入可信度门禁机制,以确定性规则评估检索可靠性,避免幻觉;检索失败时自动降级为工单草稿,经人工审批后方可执行,保障高危操作安全。全程追加式审计日志确保操作可追溯,有效解决生产环境中的幻觉、越权与长流程阻塞问题,实现真正可控的智能业务闭环。

2026-09-14 19:45:00 164

原创 生产级 Agent 的状态持久化与上下文治理:从 LangGraph Checkpointer 到可观测性实战

本文深入探讨生产级 Agent 的状态持久化与上下文治理,基于 LangGraph Checkpointer 机制实现跨请求会话恢复。通过 SqliteSaver/PostgresSaver 实现多实例下的状态共享,利用 thread_id 保障多租户隔离,并采用“全量日志 + 瞬态输入”分层架构,解耦持久化与推理层,有效应对上下文膨胀问题,提升系统稳定性与可观测性。

2026-09-14 08:45:00 367

原创 从 Top-k 到幻觉:把大模型里那几个“知道名字但说不清”的概念讲清楚

本文梳理了大模型中从训练到推理的关键概念:采样策略(温度、top-k、top-p)决定生成时如何从概率分布选词,缩放法则指导训练资源分配以优化性能,而幻觉则是概率生成流水线的固有误差——源于训练目标与真实性的错位。三者环环相扣:采样参数影响幻觉强度,训练配比塑造知识质量,最终共同决定输出的可信度。理解它们的内在逻辑,才能摆脱“凭感觉调参”的困境,实现可控生成。

2026-09-13 19:45:00 622

原创 Claude Code从0到1实战:三种模式、一张认知地图,和一套工程化心法

本文系统梳理Claude Code实战核心:通过权限三档模式(默认/接受编辑/计划)平衡安全与效率,掌握Ctrl+B、!命令等终端控制技巧,以CLAUDE.md实现项目级记忆与规范固化,借助MCP协议精准还原设计稿,用Hook强制工程规范,区分Skill(共享上下文)与SubAgent(独立执行)的适用场景,并强调Rewind仅限对话回滚,版本管理仍需依赖Git。最终确立“AI执行,人决策”的工程心法,实现高效、可控的智能开发闭环。

2026-09-13 08:45:00 506

原创 拆解 Tool Calling Agent:从裸写闭环到 LangGraph 安全状态机实现

本文拆解工具调用闭环的底层机制,揭示大模型仅生成结构化调用指令,实际执行由后端完成。通过手写纯 Python 闭环,阐明 tool_calls 与 ToolMessage 的协作流程。进而引入 LangGraph,将状态流转抽象为有向图,利用 TypedDict 状态定义、add_messages 合并策略及条件路由,实现安全、可扩展的 Agent 架构,最终落地白名单、异常兜底与可观测性设计,构建生产级工具调用系统。

2026-09-12 19:45:00 507

原创 从线性链到有向状态图:深入拆解 LangGraph 的核心状态机模型

LangGraph 将 LLM 应用流程建模为有向状态图,通过 全局状态(State)、节点(Node) 与 条件边(Edge) 实现动态控制流。其核心是将执行逻辑抽象为确定性有限状态机,支持条件分支、循环与多轮记忆。状态通过 Reducer 机制合并,如 add_messages 实现对话历史追加。实战中可实现意图路由与多轮对话,避免线性链的“面条代码”问题,显著提升复杂 Agent 的可维护性与可扩展性。

2026-09-12 08:45:00 341

原创 LangChain02 Agent核心双翼

LangChain Day 2 核心聚焦 Tool Calling 与 RAG。Tool Calling 让模型“调用工具”实现外部操作,通过 @tool 定义工具三要素(name、description、args schema),手写循环实现模型决策→执行→反馈闭环。RAG 则赋予模型“外部大脑”,通过加载、切分、向量化、存储、检索五步流程,将私有知识注入上下文,提升回答准确性与时效性。二者共同构建可扩展、可解释的智能代理基础。

2026-09-11 08:56:54 107

原创 LangChain01 基础骨架与交互

掌握LangChain核心:通过消息体系(System/Human/AIMessage)构建对话流,使用LCEL管道符|组合Prompt与模型,实现结构化输出。重点掌握with_structured_output()配合Pydantic定义Schema,确保模型稳定返回JSON,为Agent决策执行奠定基础。避坑老语法,优先国内模型,边学边敲,夯实大模型交互底层能力。

2026-09-11 08:45:00 174

原创 告别 git stash 的烦恼:Git Worktree 并行开发神器终极指南

告别频繁stash与重复clone,Git Worktree让你在同一仓库下并行开发多个分支。通过共享底层历史、秒级创建工作区,实现多任务无缝切换,节省空间且高效安全。掌握add、list、remove三步操作,轻松开启并行开发新体验。唯一注意:禁止双工作区同检一分支,避免冲突。

2026-09-10 19:45:00 322

原创 穿透 IDE 的障眼法:Git 四大工作区与核心数据流转解析

本文深入解析 Git 四大工作区(工作区、暂存区、本地仓库、远程仓库)的数据流转机制,揭示 IDE 可视化操作背后的底层逻辑。指出开发者常误将“被追踪”等同于“已暂存”,实则需通过 git add 显式进入暂存区。即便使用 git commit -a 等快捷命令,仍需经暂存区中转,凸显其不可绕过的“海关”角色。唯有理解这一流程,方能精准应对冲突、回溯与协作难题。

2026-09-10 15:23:28 242

原创 智能体架构范式总结(React、Plan-And-Solve、Reflection)

本文总结了智能体(Agent)的三大经典“思考-行动”范式:ReAct:边想边做,通过“思考-行动-观察”循环灵活交互,适合需外部工具的探索性任务,但易陷局部最优。Plan-and-Solve:先谋后动,规划与执行解耦,结构稳定且目标一致,适合可清晰拆解的结构性任务,但灵活性较差。Reflection:反思迭代,通过“执行-反思-优化”进行内部纠错,以成本换质量,适合对准确性要求极高的关键任务。智能体开发本质是 Prompt 工程、状态管理与工具调度的闭环。实际应用中,需根据任务的核心需求(探索性/

2026-08-27 17:58:45 341

原创 算法实战笔记:空间换时间的黑魔法——单调栈全景解析(十一)

本文深入解析了单调栈这一高效算法的核心思想与应用场景。文章首先通过寻找数组中元素右侧首个更大/小值的问题引入单调栈概念,指出其通过空间换时间将复杂度从O(n²)降至O(n)的关键优势。作者强调单调栈的两大关键点:存储元素下标而非数值,以及根据问题类型(求更大/小值)决定栈的单调递增/减顺序。 文章以LeetCode 739(每日温度)为例展示基础模板,详细讲解递增栈的实现逻辑。随后进阶分析两道经典难题:LeetCode 42(接雨水)通过寻找"凹槽"结构,利用递增栈计算雨水面积;LeetCode 84(最大

2026-06-10 09:22:42 318

原创 算法实战笔记:动态规划的巅峰对决——从背包问题到状态机思维(十)

本文深入剖析动态规划(DP)的核心思想与应用场景,通过四大经典问题展现DP解题范式。首先解析背包问题的遍历顺序玄机,指出01背包需倒序而完全背包需正序,强调组合与排列的关键差异。接着以打家劫舍系列为例,展示环形数组的破环策略和树形DP的后序遍历思路。股票问题部分揭示状态机思维的本质,建议用滚动数组优化空间。最后探讨子序列问题中的遍历陷阱,特别指出回文子序列需要倒序遍历的深层原因。全文贯穿着"定义状态+确定转移+严控遍历顺序"的解题哲学,为攻克DP难题提供系统方法论。

2026-06-01 19:45:00 316

原创 算法实战笔记:贪心算法的“目光短浅”与“全局最优”(九)

本文通过三道经典LeetCode题目展示了贪心算法的核心思想与应用技巧。贪心算法的本质在于每次选择当前最优解,通过局部最优推导全局最优:在跳跃游戏II中通过维护最大覆盖范围实现最少跳跃;在引爆气球问题中利用排序和最小右边界策略实现最少射箭次数;在监控二叉树问题中采用后序遍历和状态机定义避免叶子节点安装摄像头。文章强调贪心算法没有固定模板,关键在于识别问题特征并验证局部最优能否达成全局最优,其简洁高效的特性使其成为解决特定问题的利器。

2026-06-01 08:45:00 449

原创 算法实战笔记:剥开回溯算法的外衣——从通用模板到高阶去重(八)

本文深入解析回溯算法的本质与实战技巧。回溯法核心是暴力穷举,关键在于抽象为树形结构。文章提供了万能模板,并分类剖析组合、子集、排列、棋盘等五大问题的破局策略。重点讨论了树层去重(横向)与树枝去重(纵向)的区别与实现方法,强调排序预处理的重要性。最后评估了各类回溯问题的时间复杂度(如排列O(N!)、子集O(2^N))和空间复杂度。掌握模板、理解去重逻辑和搜索树特性,是高效解决回溯问题的关键。

2026-05-31 19:45:00 661

原创 算法实战笔记:二叉树的底层哲学——从遍历变种到递归契约(七)

在算法面试中,二叉树(Binary Tree)绝对是占据半壁江山的重头戏。很多初学者一看到树的题目,脑子里就一团浆糊,觉得无从下手。但如果你能站在架构师的视角去俯视二叉树,你会发现一个极其优美的真相:**二叉树的所有题型,几乎全部都是围绕着“遍历(Traversal)”的变种来设计的。** 只要熟练掌握了遍历的顺序和递归的精髓,无论题目怎么包装,你都能一眼看穿它的骨架。本篇笔记将带你彻底打通二叉树的任督二脉,从绝不写错的“递归三部曲”,到迭代法的底层栈逻辑,再到 BST 和 LCA 的高阶陷阱,一次

2026-05-31 08:45:00 347

原创 算法实战笔记:栈与队列的底层逻辑与高阶应用(六)

本文深入解析栈与队列的底层实现与高阶应用。首先介绍Java中更推荐使用Deque接口实现栈和队列,并分析ArrayDeque的性能优势。接着探讨栈的四大经典场景:操作系统目录切换、括号匹配、字符串去重和逆波兰表达式。重点剖析单调队列在滑动窗口最大值问题中的动态淘汰机制,以及优先级队列(堆)在Top-K问题中的精妙应用。通过底层原理到高阶算法的系统讲解,展现栈与队列从简单数据结构到解决复杂问题的强大演化能力。

2026-05-30 19:45:00 495

原创 算法实战笔记:降维打击的艺术——双指针法全场景解析(五)

本文系统解析了双指针算法在四大场景中的应用:1)数组/字符串的原地操作(快慢指针覆盖、左右指针反转);2)链表操作(反转链表、环形检测);3)N数之和问题(排序+双指针降维);4)特殊场景优化。双指针通过维护两个关联状态,能显著降低时间复杂度(如O(n^2)→O(n)),其核心在于有序数据中的状态关联和搜索空间缩减。文章特别强调"预扩容+逆向填充"技巧和链表操作的严谨性,指出双指针是算法优化的利器。

2026-05-30 08:45:00 346

原创 算法实战笔记:字符串的指针艺术与 KMP 算法的奥义(四)

本文总结了字符串算法实战中的四大核心技巧:慎用库函数、双指针降维、反转组合拳和KMP算法。首先强调避免过度依赖库函数,应手动实现核心逻辑;其次介绍双指针在字符串反转、扩容填充等场景的高效应用;然后展示局部与整体反转组合解决左旋问题的巧妙思路;最后深入解析KMP算法,重点讲解前缀表(next数组)的原理和实现,通过预处理模式串避免主串指针回退,将匹配时间复杂度优化至O(n)。文章提供了清晰的代码示例和思维框架,帮助读者掌握字符串处理的底层逻辑和高效算法。

2026-05-29 19:45:00 477

原创 算法实战笔记:哈希表的底层逻辑与三大数据结构抉择(三)

本文深入剖析了哈希表在算法中的底层逻辑与数据结构选择策略。文章指出,哈希法的核心是空间换时间,但应根据题目特征在数组、集合和映射之间精准选择:数组适用于数据范围小且集中的场景(如字母统计);集合适合处理离散大数据(如去重查找);映射则用于需要键值绑定的情况(如两数之和)。同时强调哈希法并非万能,对于同一数组内的组合去重问题(如三数之和),应采用排序+双指针法。通过理解这些底层逻辑,可以避免无脑使用HashMap导致的内存浪费和性能问题,成为能精准选择数据结构的算法高手。

2026-05-29 08:45:00 976

原创 算法实战笔记:链表的底层逻辑与指针的高阶玩法(二)

本文系统讲解了链表的核心操作技巧,重点介绍了虚拟头节点和双指针两大法宝。通过五大基础操作训练、反转链表实现、删除倒数节点、寻找相交节点和环形链表检测等经典场景,深入剖析链表问题的解决思路。文章强调指针操作的顺序性和空间想象力,帮助读者掌握链表问题的通用解法,提升算法实战能力。

2026-05-28 19:45:00 385

原创 算法实战笔记:数组操作的底层逻辑与五大解题范式(一)

本文总结了数组算法问题的五大核心解题范式:1)二分法强调循环不变量原则,需明确定义搜索区间;2)双指针法利用内存连续性实现高效元素覆盖;3)滑动窗口通过动态调节指针优化子序列问题;4)模拟行为需统一边界处理规则;5)前缀和数组以空间换时间优化区间查询。文章指出,掌握这些底层逻辑比题海战术更重要,能有效解决边界溢出等问题,并为更复杂算法奠定基础。

2026-05-28 10:20:43 362

原创 解锁 Claude Code 的进阶潜能:Agent Skill 的三种高效安装指南

摘要:本文介绍了Claude Code的Agent Skill功能及其三种安装方式。命令行安装(npx)适合标准Skill,提供交互式配置;手动安装最灵活,适合私有Skill;自动安装最简单,只需提供链接让AI自行完成。三种方式都能让Claude通过识别Skill.md文件获得特定能力,用户可根据需求选择规范流程、精细控制或极简体验的安装方式。安装后可通过/skills命令验证效果。

2026-05-27 19:45:00 558

原创 告别 AI 的“薛定谔状态”:为什么 CrewAI 要用 Flow 和 Crew 重塑 Plan-and-Execute?

摘要: CrewAI框架通过引入**Flow(工作流)和Crew(团队)**架构,重构了传统Plan-and-Execute模式,解决了大模型在复杂任务中的失控问题。Crew封装了动态任务分配机制,支持开发者强控的Sequential模式或AI自主的Hierarchical模式;而Flow则在宏观层面提供确定性编排,通过状态持久化、条件分支和跨Crew调度,确保长链路业务的稳定性。这一架构将大模型的灵活性约束在可控范围内,实现了从“实验室玩具”到“工业级生产”的跨越,标志着AI Agent技术向企业级落地的

2026-05-27 15:28:10 542

原创 别再用同步思维写 FastAPI 了!用大白话带你搞透 await 与优雅的数据解析

本文用通俗易懂的比喻和代码示例,深入浅出地讲解了FastAPI中await关键字的核心原理与使用技巧。通过厨师做菜的生动类比,对比了同步阻塞与异步非阻塞的区别,揭示了await在高并发场景下的重要性。文章重点阐述了使用await的三大铁律,并指出常见误区。特别强调了现代FastAPI开发中应避免手动处理请求数据,推荐采用Pydantic模型注入这一最佳实践,既能自动完成数据解析和验证,又能提升代码优雅性和可维护性。全文帮助开发者从架构角度理解异步编程精髓,掌握FastAPI的高效开发模式。

2026-04-28 19:45:00 375

原创 AI Agent 架构演进:8 种常见的智能体记忆策略与技术实现

AI Agent记忆策略演进摘要 本文系统梳理了8种AI Agent记忆策略及其技术实现。基础策略包括全量记忆(完整保留但低效)和滑动窗口(高效但健忘)。进阶方案引入相关性过滤(关键词匹配)和摘要压缩(有损精简)。最前沿的是向量数据库方案,通过语义检索实现海量记忆存储。每种策略各有优劣:全量记忆适合短对话,滑动窗口适用客服场景,摘要压缩适配长期陪伴场景,向量数据库则胜任知识库问答。开发者需权衡记忆完整性、计算成本和系统复杂度,根据具体场景选择或组合不同策略。随着LLM技术发展,记忆管理正从简单缓存演进为复杂

2026-04-28 08:45:00 708

原创 程序员避坑指南:FastAPI + 阿里云 OSS 连环“幽灵”报错深度复盘

摘要: 本文复盘了FastAPI对接阿里云OSS时遇到的三个典型问题:1) 环境变量优先级冲突导致配置不生效,建议使用load_dotenv(override=True)强制覆盖;2) SDK自动加载器对变量命名严格限定,需显式指定凭证来源;3) V4签名协议对Content-Type的严格校验,前端需原生发送二进制文件。文章提炼出通用排查方法:检查原始报错、打印内存状态、查看完整响应体、警惕环境缓存,为云存储集成提供了宝贵经验。这些"幽灵"报错的解决方案揭示了底层机制的重要性,帮助开发

2026-04-27 19:45:00 395

原创 别再被安全术语劝退了!用“投毒与净水”大白话带你秒懂污点分析 (Taint Analysis)

摘要: 污点分析(Taint Analysis)是检测代码安全漏洞的核心技术,其原理可形象比喻为“水源投毒与追踪”:外部输入数据是“可能带毒的水源”(Source),程序代码是“水管系统”,关键操作点是“饮水机”(Sink)。若污染数据未经净化(Sanitizer)直接流入Sink,就会引发SQL注入等漏洞。例如用户输入' OR 1=1 --时,未参数化的SQL语句会使数据库误判条件,导致数据泄露。通过预编译语句等净化手段,可阻断危险数据流。掌握"Source-Sink-Sanitizer&quo

2026-04-27 08:45:00 395

原创 避开多模态大模型开发的天坑:为什么一段完美的无 Bug 代码,依然会疯狂报错 400?

在多模态大模型开发中,后端开发者常遇到一个"隐藏Boss":明明修复了代码,却仍报400错误。这源于大模型API的无状态特性,应用框架会完整记录错误历史请求。当使用相同会话ID时,框架会将新旧请求拼接发送,导致大模型优先处理历史错误请求而报错。 解决方案包括: 更换会话ID重新开始 实现"错误不入库"机制,不保存错误请求 采用"记忆滑动窗口",只保留最近N轮对话 这些机制不仅能解决报错问题,更是构建稳定AI系统的关键设计。理解大模型的无状态本质,是

2026-04-21 19:45:00 411

原创 告别金鱼记忆!一文看透 LangGraph 是如何用 AgentState 和 Checkpoint 实现记忆隔离的

本文深入解析了LangGraph中AgentState、Checkpoint和Thread ID的协同工作机制。AgentState作为内存中的短期记忆载体,通过Checkpoint机制实现持久化存储,而Thread ID则确保不同会话间的记忆隔离。在实际Web应用中,前端生成的会话ID与后端Thread ID绑定,实现用户间的记忆隔离。文章特别提醒开发者注意防范平行越权攻击,建议在后端增加用户身份验证,确保数据安全。这套机制赋予AI Agent强大的"断点续传"能力,是企业级AI应用开

2026-04-21 08:45:00 548

原创 扒开 Spring AI 的源码:大模型的“上下文记忆”底层到底是怎么流转的?

本文深入解析了Spring AI框架中实现大模型"上下文记忆"的核心机制。通过剖析源码,揭示了会话ID的流转过程:首先存储在临时的AdvisorContext中,随后由记忆顾问(MessageChatMemoryAdvisor)将其与JVM内存中的持久化存储关联。文章用生动的"文件袋"和"护士长"比喻,形象说明了短命temMap与长寿jvmMap之间的数据交接过程,最终实现对话历史的记忆功能。这种设计巧妙结合了AOP编程思想和内存存储机制,使大模型

2026-04-20 19:45:00 486

原创 扒开 LangChain 源码:为什么 Agent 里的 Message 数组可以“混搭”传参?

本文解析了LangChain框架中Agent模块的消息数组为何能混合使用字典和对象传参。通过源码分析发现,LangChain底层实现了智能的类型转换机制:遇到字典会自动转换为对应的Message对象,遇到原生Message对象则直接保留。这种设计既兼容了OpenAI的API风格,又支持LangChain的标准对象写法。虽然框架支持这种混搭方式,但作者建议在实际项目中保持代码风格统一,避免造成维护困难。文章揭示了框架设计者为提升开发者体验所做的妥协与创新,同时也强调了规范编码的重要性。

2026-04-20 08:45:00 706

原创 从“按步骤点菜”到“全自动做饭”:一文看透 ReAct、Function Calling 与 CodeAct 的底层逻辑

这篇文章深入剖析了AI Agent开发中的三个核心概念:Function Calling、ReAct框架和CodeAct机制。作者通过形象的比喻揭示了三者的本质区别与联系:Function Calling是依赖ReAct框架的"机械臂",只能被动执行指令;ReAct是约束大模型思维的"认知框架",适合简单任务但效率低下;CodeAct则是赋予大模型自主编程能力的"交互引擎",能独立解决复杂问题。文章指出CodeAct代表从"按步骤点菜&q

2026-04-19 19:45:00 381

原创 InMemoryChatMemory哪去了?:大模型聊天记忆功能的彻底重构与踩坑实录

摘要: Spring AI最新版本对聊天记忆功能进行了深度重构,导致旧版InMemoryChatMemory和相关配置方式失效。新版通过职责分离将存储层(InMemoryChatMemoryRepository)与滑动窗口管理层(MessageWindowChatMemory)解耦,避免Token爆炸问题;采用Builder模式强制规范拦截器创建;并重构常量体系,将CHAT_MEMORY_CONVERSATION_ID_KEY迁移至ChatMemory接口。虽然升级带来短期适配成本,但通过存储分离、接口优化

2026-04-19 08:45:00 1134 2

原创 告别控制台红字:一文看透 Spring Boot 跨域问题(CORS)与全局配置

Spring Boot跨域问题(CORS)是前后端分离开发中常见的浏览器安全限制问题。文章用通俗语言解释了跨域的本质是浏览器同源策略的限制,而非后端问题。核心解决方案是通过Spring Boot的CORS配置,在响应头中添加允许跨域访问的字段。文章详细解析了常见的全局配置代码,包括允许的域名、HTTP方法和请求头,并指出开发环境使用通配符(*)的风险,强调生产环境必须限制为前端域名白名单。理解这些原理后,开发者能更从容地处理跨域问题,确保应用安全。

2026-04-18 19:45:00 418

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除