跳至主要內容
Function Calling 和普通聊天接口有什么区别

概要

普通聊天接口让大模型“回答问题”,Function Calling 则让大模型参与“选择并调用系统能力”。

两者表面上都接收消息并返回结果,但工程目标完全不同:普通聊天主要生成自然语言;Function Calling 需要模型、工具、权限、状态和错误处理共同组成一个执行闭环。

我在企业诊断报告类 AI 项目中设计过兼容 OpenAI Function Calling 格式的轻量工具调用框架,也做过 MCP 客户端与服务端集成。本文从工程角度说明两者的区别,以及什么时候值得引入工具调用。

普通聊天:输入消息,输出文本


布衣云水客大约 6 分钟文章AI 应用Function CallingLLMAI AgentMCPJava
一个老系统是否值得重构,可以先看这 4 项

概要

老系统不好维护时,团队很容易形成两个极端观点:

  • “这个系统已经没救了,必须全部重写”;
  • “现在还能跑,千万不要动”。

两种判断都可能有道理,也都可能把项目带入困境。

我参与过大型中台的服务聚合、接口治理、异构平台迁移和领域模型建设。实践中,决定是否重构的关键并不是代码“看起来有多旧”,而是业务价值、风险边界、经济账和演进路径能否同时成立。

在启动重构前,我通常先看以下四项。

一、业务价值:系统问题是否真的阻碍了业务

技术团队常见的不满包括代码重复、框架老旧、分层不标准、测试不足。这些是技术债,但不一定足以支持一场大规模重构。


布衣云水客大约 5 分钟文章架构设计系统重构微服务Java技术债架构治理
Java 接口突然变慢,我通常先检查哪 5 个位置

概要

“这个接口昨天还是 200ms,今天突然变成 5 秒。”

遇到这类问题,最危险的做法是立即改线程池、加缓存或者重启服务。它们有时能暂时缓解问题,却可能掩盖真正原因,并给系统引入新的不确定性。

我做过中台慢接口治理、性能边界压测和高并发服务调优。面对接口变慢,我通常按照“先界定范围,再沿调用链缩小问题”的方式排查,重点检查以下五个位置。

一、先确认“慢”发生在哪里

第一步不是看代码,而是建立事实:

  • 是平均耗时变慢,还是 P95/P99 尾延迟变慢?
  • 是所有请求都慢,还是某类参数、租户或数据范围慢?
  • 是单个实例慢,还是所有实例慢?
  • 从什么时间开始?期间是否有发布、配置、数据量或流量变化?
  • 服务端处理慢,还是网关排队、客户端网络或重试造成的慢?

布衣云水客大约 6 分钟文章JavaJavaSpring Boot性能优化JVM数据库
高级 Java 与 AI 应用工程(一):Java、Spring Boot 与微服务底座

高级 Java 与 AI 应用工程(一):Java、Spring Boot 与微服务底座

技术定位

Java 提供稳定的运行时、并发模型和生态;Spring Boot 解决应用装配与生产化能力;微服务体系解决多团队、多服务环境下的治理问题。三者不能混为一谈:Spring Boot 应用并不天然是微服务,微服务也不等于“把单体拆成更多进程”。

高级工程师的判断标准是:服务是否具备清晰边界、可预测的失败行为、可观测性和安全控制,以及拆分后是否真正获得独立演进或独立伸缩的收益。

1. Java 基础:服务端真正依赖的能力


布衣云水客大约 7 分钟架构设计JavaSpring Boot微服务Spring CloudOAuth2
Minecraft Forge Mod 开发手记——从零打造自定义物品

概要

作为一个程序员兼 Minecraft 玩家,迟早会走到这一步——自己写 Mod

本文记录了用 Minecraft Forge 1.20.6 开发一套自定义物品的过程:包括一个能探测钻石矿的探测器、一把带特效的美弓、一套终极盔甲,以及配套的成就系统和存档持久化。

不夸张地说,写 Minecraft Mod 是一种既能学 Java 又能玩得开心的学习方式

环境搭建

Forge 1.20.6 使用 MDK(Mod Development Kit),Gradle 构建:


布衣云水客大约 4 分钟文章MinecraftForgeJava游戏开发
Jia 微服务 DevOps 云服务管理框架

概要

你是否也曾为微服务架构的复杂性而头疼?是否在寻找一个开箱即用的企业级解决方案?今天要介绍的 Jia 框架,或许就是你一直在寻找的那个答案!

Jia 是一个基于 Spring Cloud 的微服务 DevOps 云服务管理框架,它不仅仅是一个简单的脚手架,更是一套完整的企业级解决方案——从后台管理到服务接口,再到门户首页,一站式搞定!

技术栈一览

核心技术

Jia 采用的是业界主流且成熟的技术栈,让你用得放心、学得舒心:


Mr.Chen大约 4 分钟文章JavaSpring Cloud微服务DevOps
中台场景路由编排引擎设计实战

概要

在企业中台建设过程中,一个绕不开的难题是:如何让同一个服务接口在不同场景下,路由到不同的后端实现,并施加不同的鉴权策略?

传统做法是硬编码 if-else 或维护分散的配置文件,但随着业务场景膨胀——区域维度、产品线维度、客户维度交叉组合——这套方式很快就失控了。

我们设计了一套场景路由编排引擎,通过可视化的配置界面 + 规则引擎,实现了服务路由和鉴权的配置化、版本化管理。本文将分享其中的设计思路和关键技术细节。

核心概念


布衣云水客大约 4 分钟文章架构设计微服务中台Java
Spring AI MCP Server —— 让 AI 直接操作数据库

概要

2024-2025 年 AI 领域最火的关键词,除了大模型本身,**MCP(Model Context Protocol)**一定排在前列。Anthropic 提出的这套协议,让 AI 模型能够以标准化的方式调用外部工具和数据源,一夜之间成了 AI Agent 的事实标准。

Spring 社区反应极快——Spring AI 1.0.0-M7 已经内置了完整的 MCP Server 支持。本文将带你从零搭建一个 MCP Database Server,让 AI 助手能够直接查询你的数据库。

为什么需要 MCP?


布衣云水客大约 4 分钟文章Spring AIMCPAIJavaSpring Boot
企业级中台 DDD 架构整改实战

概要

接手一个运行多年的企业级中台系统,面对的问题是:代码耦合严重、模块边界模糊、改一个功能需要理解整个系统

经过半年的渐进式改造,我们完成了 DDD(领域驱动设计)四层架构的搭建,将"大泥球"拆分为通用模块、运营中心、全链路三个独立模块。本文记录了这个过程中的关键决策和实践经验。

改造前的状况

中台系统经过多年迭代,积累了大量技术债:

  • 功能边界不清:不同应用间通过私有服务直接调用,没有登记到 API 中心,没有订阅关系,溯源困难
  • 前端直调外部服务:绕过了中台网关,鉴权和限流形同虚设
  • 存量功能维护成本高:改一行代码需要理解几千行上下文
  • 技术架构不统一:开发人员不熟悉公共平台和框架,重复造轮

布衣云水客大约 5 分钟文章DDD架构设计微服务Java中台
Spring Security OAuth2 认证授权实战——从原理到落地

概要

在微服务架构中,认证和授权是绕不开的基础设施。Spring Security OAuth2 是 Java 生态中的事实标准,但也因为配置繁琐、概念众多劝退了不少开发者。

本文从实际项目经验出发,梳理 OAuth2 的核心概念、常见授权模式,以及在 Spring 生态中的落地实践。

OAuth2 核心概念速览

OAuth2 本质上是一套委托授权协议——让用户在不暴露密码的情况下,授权第三方应用访问自己的资源。

四个核心角色:

角色 职责 示例
Resource Owner 拥有资源的用户 张三
Client 请求访问资源的应用 微信公众号后台
Authorization Server 认证并颁发令牌 统一认证中心
Resource Server 存储并保护资源 订单服务、用户服务

布衣云水客大约 5 分钟文章Spring SecurityOAuth2认证授权Java安全