Cursor 技巧 1:Interactive Feedback MCP

在使用 Cursor 时,用户会面临着每月 500 次 “快车道” 请求的限制,一旦用超,需要排队等待或者额外付费。

一个名为 “Interactive Feedback MCP” 的开源项目为Cursor用户提供了一种创新的节省快速请求的方式:旨在通过在单次Token消耗周期内实现无限轮次的追问和反馈,从而大幅提升付费额度的使用效率。其核心原理是在Cursor准备结束当前对话时…

Spring AI 智能体模式 2 : Anthropic 智能体 Skill

Spring AI 新增了对 Anthropic 智能体 Skill 的支持 — 这类模块化能力可让 Claude 直接生成实际文件,而非单纯的文本描述。启用该 Skill 后,Claude 能生成可直接下载使用的 Excel 电子表格、PowerPoint 演示文稿、Word 文档和 PDF 文件。

局限性说明

Anthropic Skill 的实现方案仅适用于其自研的 Claude 系列模型,存在以下局…

Spring AI 智能体模式 1 : Agent Skills – 模块化,可复用的能力

独立于大模型,可在自有环境运行的 Skills。

Agent Skills 是由 指令、脚本和资源构成的模块化文件夹。 AI Agent 可以发现并按需加载 Skills。相较于将知识硬编码到 prompts 中 或者为每个任务开发专用工具,Skills 提供了一种灵活扩展智能体能力的实现方式。

Spring AI 的相关实现将 Agent Skills 引入到了 java 生态,实现了大模型的可移…

SpringAI 02 – Chat Client API

ChatClient 提供了与AI模型交互的fluent API。它同时支持同步和流式编程模型。

ChatClient fluent API拥有构建传递给AI模型的提示(Prompt)的组成部分的方法。提示包含指导AI模型输出和行为的指令文本。从API的角度来看,提示由一系列消息组成。

AI模型处理两种主要类型的消息:

  • 用户消息,即用户的直接输入。
  • 系统消息,由系统生成以指

SpringAI 01 – AI概念

模型 Model

模型是旨在处理和生成信息的算法,通常模仿人类认知功能。通过从大型数据集中学习模式和洞察力,这些模型可以进行预测、生成文本、图像或其他输出,增强各行业的应用。

当前有许多不同类型的 AI 模型,每种模型会适配特定的用例。虽然 ChatGPT 及其生成式 AI 功能通过文本输入和输出吸引了用户,但许多模型和公司提供了多样化的输入和输出。在 ChatGPT 之前,许多…

基于生成式注解为类添加toString方法

在组内讨论时,有同事提建议在把对象写到日志中时最好直接输出对象不要做任何加工,也就是尽量调用对象自己的toString()方法,不要用JsonKit.toJson(obj)这样先把对象转为json字符串再输出的写法。

这个建议不是没有道理的,jackson和fastjson这些json工具将对象序列化为字符串时会有一个自动检查推测的过程,在这个过程中做了如下事…

如何实现一个mock平台

过去几年里一直在做产业平台订单业务相关的开发工作。随着上下游相关业务日渐增多,系统日趋复杂,在开发测试中经常会遇到如下两个问题:
  1. 要实现一个功能可能会需要协调几个甚至十来个业务方来完成联调测试数据的准备
  2. 多人或多团队合作时,开发进度不好协调,如果关键节点上的一环开发进度慢了就可能会影响到整个项目的进度

mock是解决以上问题的一个办法:

  1. 我们可以不找依赖方生产数据,

使用Spring AOP实现注解式的分布式锁

这里简单说一个springboot生态下基于redis实现的分布式锁方案。预期实现的效果是在要加锁的方法上添加一个注解,然后就能根据请求参数得到并加上锁,方法执行完后,也会自动释放锁。这样在实现方法时,开发者就可以只关注业务逻辑,不用考虑加锁解锁相关的事情。务求整个过程的丝滑程度类似Spring的 @Transactional 注解。

这个分布式锁暂时基于red

MapStruct属性多转一实现

在项目里遇到了需要使用mapstruct将source对象的多个属性转为target对象的一个属性的场景。针对这个问题研究了一段时间,发现想要解决得好一些还是挺让人头疼的。

先说结论吧:MapStruct支持将多个对象转为一个对象,但是不支持将多个属性转为一个属性。对,mapstruct是不支持这么做的。

最终的解决方案也非常简单:在使用mapstruct完成对…