首页 博客 博客索引
MQTT 是什么:我把 pub/sub、QoS、遗嘱和 5.0 记一记
Agent 并行调用工具:哪些能一起跑,哪些必须排队
Agent 的工具返回太长怎么办:截断、分页与摘要的取舍
让 AI 把 Python 脚本改写成 Java:跨语言迁移时它最容易丢的东西
让 AI 写正则表达式:我现在一定先要它给反例
用 AI 读英文技术文档:我怎么防它“翻译腔”和悄悄漏译
日常 Coding Agent 里的提示注入:不夸张,但真会踩
Agent 跑批任务时我盯的几个「仪表盘」指标
AI 自动补全抢方向盘:什么时候该关掉它
让 AI 解释陌生代码:我怎么听出它在「圆场」
用 AI 写周报和站会更新:我留下的几条「别丢人」规矩
用 AI 写代码越久,我越怕自己“手生”
AI 写的代码,我是这样 Review 的:一份不太体面的清单
给仓库写一份 AGENTS.md:让 AI 编程助手少走弯路
Agent 的 Token 账单怎么省:Prompt Caching、上下文瘦身与模型分级
长任务 Agent 的断点续跑:Checkpoint、幂等与人工审批怎么落地
什么是 AI Agent?从 ReAct 循环讲起
工具调用(Function Calling)怎么设计才好用
Agent 记忆系统:短期记忆、长期记忆与向量库
Agent 的规划与任务分解:让复杂任务可控
多智能体协作的几种常见模式
提示词工程与上下文工程:让模型看到“对的信息”
MCP 协议入门:给 Agent 一个统一的“工具接口”
Agent 的评估、测试与可观测性:上线前后都要看得见
用 Java + Spring 搭一个简单的 Agent
Agent 的安全、权限与沙箱:别让它“闯祸”
AI 编程工程化迭代中的混沌风险:从规格熵到四个工程控制面
AI 时代的编程语言选型:Python、Go、TypeScript、Rust 与 Java 怎么选
Golang 面试进阶指南:从 GMP 到 pprof,一份面向中高级岗位的系统复习手册
数据库使用指南:MySQL 与 PostgreSQL,一份写给后端开发者的实战手册
第一次用 AI 改 bug 的真实节奏
AI 生成测试我怎么取舍:哪些让它写,哪些必须人写
给 Agent 设计工具:参数与错误返回怎么约定才好用
RAG 在 Coding Agent 里:什么时候有用,什么时候添乱
多步骤 Agent 的评估集怎么搭:黄金任务、回归与失败分类
接手陌生代码库的第一周,我让 AI 当向导
让 AI 写 SQL 和迁移脚本:语法没错,坑全在数据里
和 AI 结对写了一整天代码,我为什么比自己写还累
Agent 的流式输出与“停止”按钮:用户点了停止之后,到底该发生什么
子 Agent 的上下文隔离:派活时给什么,收回来要什么
用 AI 代替搜索引擎一阵子之后,我又把搜索框请了回来
让 AI 重构老代码,我宁可它一次只动一小步
让 AI 帮我把项目升到 Spring Boot 3:它扛了体力活,也埋了几个坑
改了一句系统提示词,Agent 就变了个样:我开始给提示词做版本管理
长任务 Agent 的上下文压缩:摘要什么、丢什么、什么必须原样留着
把报错贴给 AI 之前,我先做的三件事
AI 补全和整段生成,我什么时候用哪种
让 AI 帮我看别人的 PR,我怎么避免被它带偏
JEV 是什么:一个不写字、只做判断的模型(附我的调试台 jev.fishmaple.cn)
Agent 的重试与换路:失败了再试一次,还是换条路?
给 Agent 一个草稿本:为什么 scratchpad 比全塞进 prompt 更稳
用 AI 学新技术时,我怎么避免“看完就觉得自己会了”
让 AI 写 commit message,我留下的几条规矩
AI 建议装新依赖时,我怎么查验再动手
给 Agent 设超时和步数预算:别让它无限跑
Agent 的人类确认点:哪些操作必须等人点头
让 AI 当「橡皮鸭」:不问答案,先逼自己把问题说清楚
让 AI 起变量名和函数名,我留下的几条品味规矩
AI 生成的 README 和注释,我为什么经常删掉重写
多轮对话里的「目标漂移」:Agent 跑着跑着忘了你要什么
Agent 的工具调用日志:出了问题我先看哪几行
你好,这是一篇测试博客
AI大模型定价对比
Java中的协程(虚拟线程)探究
浅谈锁机制、主流锁设计方案
Java的SPI机制
kasper的算法(从0到1)
Kafka服务端集群原理
浅析RPC框架Thrift
盘点redis中特殊的数据类型 HyperLogLog Bitmap
DDD领域下的架构模式——CQRS架构
扫盲——加密那些事
网络时延、异步IO、Pipeline
JVM的垃圾回收
分布式系统中的一致性算法和问题解决
分布式系统一致性的分类
并发之AQS全解析
Springboot源码原理:从启动方法看配置加载
Redis原理-源码解析:数据结构3 sorted set(zset))
MySQL的数据锁 加在哪?
数据库的并发、锁机制与MVCC
算法:Trie(前缀树、字典树)
PyCharm与python快速开发
MySQL tips
使用RPC与Restful接口调用服务
动态路由数据源(多租户)解决方案
Redis原理-源码解析:数据结构3 hash
Java排坑指南(I)jmap jstack jstat等的使用
JVM源码解析 从Launcher类浅谈ClassLoader(类加载器及双亲委派)
Redis原理-源码解析:数据结构2 list
Redis原理-源码解析:数据结构1 字符串操作&SDS及预分配的实现验证
排坑指南-异步操作HttpServletRequest丢失Cookie
浅谈代理-动态代理
ES快速入门(2)——Tokenizer、Reindex
ES快速入门(I)——分析分词器
JVM源码解析(2) ContextClassLoader与ClassUtil.forName()方法浅析
IO多路复用模型:select、poll、epoll对比
Spring源码解析(3) IoC容器配置读取和容器refresh
Spring源码解析(1) 基于SSM看Spring的使用和Spring启动监听
阻塞队列与Protobuf的Udp通信 - 基于Cat的代理(Agent)项目拆解
算法:深度优先搜索(DFS)
算法:递归
Redis高级特性:事务和pipelined以及在RedisTemplate中的应用
算法:广度优先搜索(BFS)(最短路径)
mysql orderby排序
mysql前缀索引
Servlet线程模型与异步请求
使用Shiro和token进行无状态登录
ELK全家桶基本使用(I)文件收集Filebeat
ELK实战(Ⅰ) 基于ELK整合分布式业务日志
算法:动态规划解法及例题
Elasticsearch 入门
Mybatis的缓存机制、redis数据库缓存实现和相关问题
网络协议面面观:TCP/IP协议组,TCP与UDP
过滤器、拦截器、监听器和AOP
杂记:Spring与Springboot的本地化配置
多线程应用提高(II) 线程池
[Quick Start]RedisTemplate的bean手动配置
阿里巴巴Java开发手册 华山版 v1.5
[Quick Start]使用RedisTemplate操作Redis
Consul高级应用:多数据中心,模板与Client(Zuul)
基于Consul的服务注册与发现
对多线程的执行效率探究——合理的任务并发拆分
多线程应用提高(I) 多线程常见问题、常用方法和关键字
Consul API文档
分布式系统中的CAP原则与BASE原则
安全框架的使用:Shiro
MYSQL的索引、引擎的实现原理和应用
Linux常见指令集和使用技巧(持续更新)
数据库的瓶颈问题解决(主从分离)与多数据源切换
Java中的动态代理与静态代理
CAT的使用和原理简介
Spring的事务
多线程应用提高(IV) 线程安全的集合类
Java中的数据结构
Rocket MQ的基本应用
关于多数据源的那些事儿(萌新向)
多线程应用提高(III) 并发编程的艺术
用Quartz 写定时任务
什么是web服务器?什么是web应用服务器?容器、以及服务器概念的区分(萌新向)
Spring MVC源码和设计思想2 HandlerMapping
数据库的存储过程、触发器和一些语法
Spring MVC源码和设计思想3 拦截器HandlerInterceptor
Spring MVC源码和设计思想序 综述
Spring MVC源码和设计思想1 DispatcherServlet
造轮子0 浅谈设计模式
造轮子1 注解管理
造轮子2 灵活运用反射
Netty
IO与NIO
代理与nginx
tips
第一个Vue前端独立项目构建尝试(工程化)
ooo
JVM与GC
Java的socket通信
待办事宜
常见树形结构
算法1
有关Session的碎碎念-ban掉cookie之后
项目异常问题解决
MySQL杂记
Docker指令
js学习纪实(I) ES6标准解读
《超脱》
使用Gradle进行项目构建
数据库连接池的配置
java基本功 花式debug基础
Java 8 新特性
小花猫
算法:最短路径问题
ConventionDAO文档(简版)
Tomcat配置