鱼皮AI导航
鱼皮AI导航
  • 主页
  • 社区
  • AI工具
  • AI知识库
  • AI提示词
  • MCP
  • Skills
  • AI学习资源
  • AI资讯
  • GitHub开源
登录/注册

Spring AI Alibaba 1.0 正式发布!核心特性速览+老项目升级指南

编程导航
编程导航
2025-09-11 10:53
阅读 1382
编程导航
2025-09-11 10:53
阅读 1382

随着 Spring AI 首个正式版本 1.0 的发布,国产之光 Spring AI Alibaba 也发布了 1.0 GA 正式版本,更新速度真的很快!

我对框架的更新真的是又爱又恨,爱的是功能更丰富更好用,恨的是又要学习新东西了、老项目又要更新了。

不过下面通过我的分享,相信能帮大家节约很多时间,快速了解:

  • 什么是 Spring AI Alibaba?
  • 新版本有哪些大更新?
  • 如何将项目升级到新版本?

该踩的坑都帮大家踩完了,坚持看完这期内容,你一定会有所收获。

什么是 Spring AI Alibaba?

Spring AI 是知名 Java 开发框架 Spring 官方维护的 AI 开发框架,能够让你用更少的代码、更快开发各种 AI 应用。而 Spring AI Alibaba 在 Spring AI 的基础上进行扩展,深度集成阿里自家的大模型平台和各种技术组件,并且额外支持工作流、多智能体应用的快速开发。

因为它是兼容 Spring AI 的,而且功能更丰富、更新更及时、文档更清晰,更适合国人体质,所以我会更建议大家选择它来开发 AI 应用。

官方也是很贴心,基于 Spring AI Alibaba 提供了一个现成的 智能体调试广场,而且代码开源,这不就是一个现成的、可以学习 AI 开发的项目么?

直接复制官方提供的 Docker 命令就可以把项目跑起来了:

然后就可以在本地体验聊天机器人、多轮对话、图片生成、工具调用、RAG 知识库、MCP 集成等框架的核心能力。

新版本有哪些更新?

结合官方文档和我自己的理解,我觉得 Spring AI Alibaba 1.0 的更新可以用两个字来概括 —— 突破。

为什么这么说?我们先来看看这次值得关注的几点更新:

1、Graph 多智能体框架

这是本次更新的重头戏。基于 Spring AI Alibaba Graph,开发者可以快速构建复杂的工作流和多智能体应用,完全无需关心底层的流程编排、上下文记忆管理等复杂实现细节。

举个小例子,比如我们现在想做一个 “自媒体自动发文工具”,可以利用一些可视化 AI 智能体开发平台快速创建工作流:

有时别人的平台可能无法满足我们定制化的开发需求,这时就可以使用 Graph 多智能体框架,利用预置的节点快速定义出一套工作流。上图对应的工作流代码如下:

▼
java
复制代码
// 创建工作流 StateGraph stateGraph = new StateGraph("内容生成工作流", stateFactory) // 添加工作流节点 .addNode("start", node_async(new StartNode())) // 初始化工作流 .addNode("topic_generation", node_async(new TopicGenerationNode())) // 根据输入生成文案 .addNode("content_collection", node_async(new ContentCollectionNode())) // 从网络收集相关素材 .addNode("content_integration", node_async(new ContentIntegrationNode())) // 组合文案和素材 .addNode("api_publish", node_async(new ApiPublishNode())) // 调用接口发布文章 .addNode("result_output", node_async(new ResultOutputNode())) // 输出最终结果 // 定义节点间的执行顺序 .addEdge(START, "start") // 工作流启动 → 开始节点 .addEdge("start", "topic_generation") // 开始节点 → 主题生成 .addEdge("topic_generation", "content_collection") // 主题生成 → 素材收集 .addEdge("content_collection", "content_integration") // 素材收集 → 内容整合 .addEdge("content_integration", "api_publish") // 内容整合 → API 发布 .addEdge("api_publish", "result_output") // API 发布 → 结果输出 .addEdge("result_output", END); // 结果输出 → 工作流结束

虽然给出的例子并不复杂,但智能体工作流的水还是很深的,涉及到智能体协作、任务分解、路由策略、状态管理等等。后面我会在 编程导航 的项目和个人账号中分享更多这方面的实战和技术解析。

2、生态集成

Spring AI Alibaba 1.0 继续放大自身的优势,将传统后端开发与新兴的 AI 开发进行了融合,通过集成更多技术组件和云服务,帮助传统业务更快地接入 AI、加速 AI 应用的落地。

举几个典型的集成案例:

1)集成 Nacos 管理 MCP

Nacos 是主流的服务注册中心,是微服务架构的实现关键,用于帮助某个服务发现其他服务,从而进行调用。如果 AI 项目需要使用很多 MCP 服务,我们就可以把各种 MCP 服务的信息注册到 Nacos 上;AI 项目需要使用 MCP 时,就可以到 Nacos 上获取到 MCP 服务的信息了。这样就实现了对 MCP 服务的集中管理和动态更新,更加规范化。

官方文档:https://java2ai.com/docs/1.0.0.2/tutorials/basics/spring-ai-alibaba-mcp-nacos-introduce

2)集成 Nacos 管理 Prompt

传统的 AI 应用开发中,Prompt 往往是硬编码在代码里的,这就带来了一个问题:每次想要调整 Prompt,都需要重新发布代码,非常不灵活。而 Spring AI Alibaba 通过集成 Nacos,解决了这个痛点。

开发者可以将 Prompt 模板存储在 Nacos 配置中心,AI 应用启动时会自动从 Nacos 拉取最新的 Prompt 配置。而且当我们在 Nacos 中修改 Prompt 后,应用可以实时感知到变化并自动更新,无需重启服务,让 Prompt 的迭代优化变得更灵活。

参考文档:https://java2ai.com/docs/1.0.0.2/practices/dynamic-prompt/dynamic-prompt

3)集成 AI 模型和云知识库

虽然这是之前就有的能力,但我觉得还是值得介绍一下。与阿里云百炼平台无缝对接,一键接入通义千问等阿里系大模型;还能直接对接云知识库平台,企业只需要利用可视化界面上传切分文档、制作知识库,然后几行代码就能让 AI 利用知识库回答问题。

4)可观测性支持

Spring AI 本身提供了 可观测性 能力,可以在项目运行时获取到 AI 的调用情况,比如调用次数、响应时间、Token 消耗等关键指标。这些指标数据可以轻松接入阿里云的应用实时监控服务 ARMS、Zipkin 等监控工具,开发者可以实时监控 AI 模型,快速定位和解决性能瓶颈。

3、前沿案例

最近 Spring AI Alibaba 连续发布了几个新项目,包括:

1)JManus 通用智能体平台:可以说是 Java 版本的 OpenManus 通用智能体平台,用户可以通过自然语言描述需求,让 AI 自动规划并执行规划,直到完成任务。

官方示例

2)NL2SQL 智能体框架:专为 Java 开发者设计的自然语言转 SQL 工具,用户只需用中文描述查询数据库的需求,AI 就能自动生成对应的 SQL 语句,让数据分析变得更简单。

3)DeepResearch 深度调研智能体:基于多智能体架构的调研工具,整合了网络搜索、网页爬取、数据分析等功能,可以自动完成复杂调研报告的撰写工作。

官方提供的 DeepResearch 工作流

虽然这些并不是框架本身的功能更新,但是很好地展示了 Spring AI Alibaba 在不同场景的应用效果。如果你要开发类似的项目,可以直接参考官方提供的这些案例。

4、细节优化

此外,Spring AI Alibaba 1.0 还优化了一些功能和细节,比如我发现 会话记忆能力 支持了 jdbc、redis、elasticsearch 等多种存储插件,让 AI 对话能够持久化保存。

更多的内容大家可以自己阅读官方文档探索。


前面提到我认为这次框架的更新是一种突破,因为它完成了 能对话 的 AI 助手到 能做事 的 AI 智能体的进化。

在以前,我们使用 Spring AI 只能开发一些简单的对话型 AI 应用,功能相对单一。而现在,借助 Spring AI Alibaba 1.0 的 Graph 能力和生态集成,我们可以更快速地开发出复杂的智能体应用。

当然,Spring AI Alibaba 并不是唯一的 AI 应用开发框架,像 LangChain4j、LangGraph,以及 Spring 之父最新推出的 embabel-agent 都是不错的选择。

在框架选择上,我比较看重的因素是 生态。可以思考一下,你的项目是否需要和其他服务进行深度集成?

就拿我们团队来说,目前也在用 Spring AI Alibaba 框架,主要是因为我们使用了不少阿里开源的技术中间件和云服务,使用 Spring AI Alibaba 的开发成本更低。毕竟有技术大厂背书,我还是很看好它的发展,但有一说一,现在文档更新的速度有点跟不上框架更新的速度了,智能体框架的学习成本还是有点高的。

官方也提供了 主流 Java AI 框架的选型对比,供大家参考:

如何升级框架版本?

接下来进入实战环节,我会用自己之前开源的 AI 超级智能体项目 来详细演示如何将老版本的 Spring AI Alibaba 项目升级到 1.0 版本。大家一定要认真看,因为有些变动连官方文档都没有明确指出,是我在升级过程中踩坑摸索出来的宝贵经验。

项目指路:https://github.com/liyupi/yu-ai-agent

友情提醒:这个项目涉及到向量数据库、MCP 服务、API Key 等外部依赖,直接下载项目是跑不起来的,这是正常现象。必须要按照项目说明补充相应的配置,所有需要配置的地方我都已经详细标注出来了。

建议大家先新建一个本地配置文件,然后让我们开始将 Spring AI Alibaba 从 1.0.0-M6.1 版本升级到 1.0.0.2 版本。

第一步:依赖更新

我们的项目分为主项目和 MCP 服务子项目两部分,需要分别进行更新。

主项目依赖更新

1)更新 Spring AI Alibaba 基础依赖,从官方文档复制依赖管理配置并引入依赖:

▼
xml
复制代码
<dependencyManagement> <dependencies> <dependency> <groupId>com.alibaba.cloud.ai</groupId> <artifactId>spring-ai-alibaba-bom</artifactId> <version>1.0.0.2</version> <type>pom</type> <scope>import</scope> </dependency> </dependencies> </dependencyManagement> <dependencies> <dependency> <groupId>com.alibaba.cloud.ai</groupId> <artifactId>spring-ai-alibaba-starter-dashscope</artifactId> </dependency> </dependencies>

2)更新 Spring AI 相关依赖

参考 官方文档 进行升级,首先引入仓库配置,确保能够正确拉取到 Spring AI 相关的依赖:

▼
xml
复制代码
<repositories> <repository> <id>spring-snapshots</id> <name>Spring Snapshots</name> <url>https://repo.spring.io/snapshot</url> <releases> <enabled>false</enabled> </releases> </repository> <repository> <name>Central Portal Snapshots</name> <id>central-portal-snapshots</id> <url>https://central.sonatype.com/repository/maven-snapshots/</url> <releases> <enabled>false</enabled> </releases> <snapshots> <enabled>true</enabled> </snapshots> </repository> </repositories>

在这个过程中,你可以通过 Maven 仓库 来查看最新版本信息:

然后添加依赖管理配置,注意版本号不用添加 SNAPSHOT 后缀,就 1.0.0 版本:

▼
xml
复制代码
<dependencyManagement> <dependencies> <dependency> <groupId>org.springframework.ai</groupId> <artifactId>spring-ai-bom</artifactId> <version>1.0.0</version> <type>pom</type> <scope>import</scope> </dependency> </dependencies> </dependencyManagement>

具体要修改的依赖项如下,修改前的依赖配置:

▼
xml
复制代码
<!-- 本地部署大模型 --> <dependency> <groupId>org.springframework.ai</groupId> <artifactId>spring-ai-ollama-spring-boot-starter</artifactId> <version>1.0.0-M6</version> </dependency> <dependency> <groupId>org.springframework.ai</groupId> <artifactId>spring-ai-markdown-document-reader</artifactId> <version>1.0.0-M6</version> </dependency> <dependency> <groupId>org.springframework.ai</groupId> <artifactId>spring-ai-pgvector-store</artifactId> <version>1.0.0-M6</version> </dependency> <!-- Spring AI MCP Client --> <dependency> <groupId>org.springframework.ai</groupId> <artifactId>spring-ai-mcp-client-spring-boot-starter</artifactId> <version>1.0.0-M6</version> </dependency>

修改后的依赖配置,鱼皮是依次参考官方文档进行确认和更新的:

  • Ollama:https://docs.spring.io/spring-ai/reference/api/chat/ollama-chat.html
  • Markdown Document Reader:https://docs.spring.io/spring-ai/reference/api/etl-pipeline.html#_markdown
  • PGvector:https://docs.spring.io/spring-ai/reference/api/vectordbs/pgvector.html#_manual_configuration
  • MCP:https://docs.spring.io/spring-ai/reference/api/mcp/mcp-client-boot-starter-docs.html
▼
xml
复制代码
<dependency> <groupId>org.springframework.ai</groupId> <artifactId>spring-ai-starter-model-ollama</artifactId> </dependency> <dependency> <groupId>org.springframework.ai</groupId> <artifactId>spring-ai-markdown-document-reader</artifactId> </dependency> <dependency> <groupId>org.springframework.ai</groupId> <artifactId>spring-ai-pgvector-store</artifactId> </dependency> <dependency> <groupId>org.springframework.ai</groupId> <artifactId>spring-ai-starter-mcp-client</artifactId> </dependency>

3)更新完依赖后,建议安装 Maven Helper 插件来检测依赖冲突:

检查结果显示没有 Spring AI 相关冲突,说明依赖配置正确:

MCP 服务端项目依赖更新

MCP 服务端项目的更新相对简单,跟前面一样,引入仓库和依赖管理配置,然后只需要更新 spring-ai-starter-mcp-server-webmvc 依赖即可:

▼
xml
复制代码
<dependencyManagement> <dependencies> <dependency> <groupId>org.springframework.ai</groupId> <artifactId>spring-ai-bom</artifactId> <version>1.0.0</version> <type>pom</type> <scope>import</scope> </dependency> </dependencies> </dependencyManagement> <repositories> <repository> <id>spring-snapshots</id> <name>Spring Snapshots</name> <url>https://repo.spring.io/snapshot</url> <releases> <enabled>false</enabled> </releases> </repository> <repository> <name>Central Portal Snapshots</name> <id>central-portal-snapshots</id> <url>https://central.sonatype.com/repository/maven-snapshots/</url> <releases> <enabled>false</enabled> </releases> <snapshots> <enabled>true</enabled> </snapshots> </repository> </repositories> <dependency> <groupId>org.springframework.ai</groupId> <artifactId>spring-ai-starter-mcp-server-webmvc</artifactId> </dependency>

第二步:代码问题修复

依赖更新完成后,接下来需要修复由于版本变更导致的代码问题。

1、Advisor 顾问功能修复

这是一个 破坏性变更,很多 advisor 相关的接口和方法都更新了,但坑爹的是官方文档并未明确说明这个变更!

遇到这种情况,我们可以参考源码(比如 SimpleLoggerAdvisor)的实现方式对之前开发的 advisor 进行修改。

1)修改后的 MyLoggerAdvisor 自定义日志拦截器代码:

▼
java
复制代码
@Slf4j public class MyLoggerAdvisor implements CallAdvisor, StreamAdvisor { @Override public String getName() { return this.getClass().getSimpleName(); } @Override public int getOrder() { return 0; } private ChatClientRequest before(ChatClientRequest request) { log.info("AI Request: {}", request.prompt()); return request; } private void observeAfter(ChatClientResponse chatClientResponse) { log.info("AI Response: {}", chatClientResponse.chatResponse().getResult().getOutput().getText()); } @Override public ChatClientResponse adviseCall(ChatClientRequest chatClientRequest, CallAdvisorChain chain) { chatClientRequest = before(chatClientRequest); ChatClientResponse chatClientResponse = chain.nextCall(chatClientRequest); observeAfter(chatClientResponse); return chatClientResponse; } @Override public Flux<ChatClientResponse> adviseStream(ChatClientRequest chatClientRequest, StreamAdvisorChain chain) { chatClientRequest = before(chatClientRequest); Flux<ChatClientResponse> chatClientResponseFlux = chain.nextStream(chatClientRequest); return (new ChatClientMessageAggregator()).aggregateChatClientResponse(chatClientResponseFlux, this::observeAfter); } }

2)同样需要修复 ReReadingAdvisor,需要重新编写修改用户提示词的代码:

▼
java
复制代码
/** * 自定义 Re2 Advisor * 可提高大型语言模型的推理能力 */ public class ReReadingAdvisor implements CallAdvisor, StreamAdvisor { /** * 执行请求前,改写 Prompt * * @param chatClientRequest * @return */ private ChatClientRequest before(ChatClientRequest chatClientRequest) { String userText = chatClientRequest.prompt().getUserMessage().getText(); // 添加上下文参数 chatClientRequest.context().put("re2_input_query", userText); // 修改用户提示词 String newUserText = """ %s Read the question again: %s """.formatted(userText, userText); Prompt newPrompt = chatClientRequest.prompt().augmentUserMessage(newUserText); return new ChatClientRequest(newPrompt, chatClientRequest.context()); } @Override public ChatClientResponse adviseCall(ChatClientRequest chatClientRequest, CallAdvisorChain chain) { return chain.nextCall(this.before(chatClientRequest)); } @Override public Flux<ChatClientResponse> adviseStream(ChatClientRequest chatClientRequest, StreamAdvisorChain chain) { return chain.nextStream(this.before(chatClientRequest)); } @Override public int getOrder() { return 0; } @Override public String getName() { return this.getClass().getSimpleName(); } }

2、工具调用功能修复

1)ToolRegistration 工具注册类的包名发生了变更,需要修改:

▼
java
复制代码
// 原来: import org.springframework.ai.tool.ToolCallbacks; // 改为: import org.springframework.ai.support.ToolCallbacks;

2)LoveApp 中的工具调用方法需要修改:

▼
java
复制代码
// 修改为: .toolCallbacks(toolCallbackProvider)

3)ToolCallAgent 的配置也需要修改,这是为了禁用 Spring AI 内置的工具调用机制,自己处理工具调用的流程和消息上下文:

▼
java
复制代码
public ToolCallAgent(ToolCallback[] availableTools) { super(); this.availableTools = availableTools; this.toolCallingManager = ToolCallingManager.builder().build(); // 禁用 Spring AI 内置的工具调用机制,自己维护选项和消息上下文 this.chatOptions = DashScopeChatOptions.builder() .withInternalToolExecutionEnabled(false) .build(); }

3、RAG 知识库功能修复

1)PgVector 配置修改

由于我们原本就是手动引入 PgVector,没有使用 Spring Boot 的自动配置包,所以只需要移除项目启动类的自动配置即可:

代码如下:

▼
java
复制代码
@SpringBootApplication(exclude = { // 为了便于大家开发调试和部署,取消数据库自动配置 // 需要使用 PgVector 时把 DataSourceAutoConfiguration.class 删除 DataSourceAutoConfiguration.class }) public class YuAiAgentApplication { public static void main(String[] args) { SpringApplication.run(YuAiAgentApplication.class, args); } }

2)RAG 相关类包名修复

自定义 RAG 知识库相关的 LoveAppRagCloudAdvisorConfig 和 LoveAppRagCustomAdvisorFactory 类,包名发生了变更:

▼
java
复制代码
// 原来: import org.springframework.ai.chat.client.advisor.RetrievalAugmentationAdvisor; // 改为: import org.springframework.ai.rag.advisor.RetrievalAugmentationAdvisor;

3)DashScopeApi 构建方式修改,之前是 new,改为 builder 模式:

▼
java
复制代码
DashScopeApi dashScopeApi = DashScopeApi.builder() .apiKey(dashScopeApiKey) .build();

4)如果在 LoveApp 中想使用 QuestionAnswerAdvisor,需要引入新的依赖,因为包名发生了变更:

▼
xml
复制代码
<dependency> <groupId>org.springframework.ai</groupId> <artifactId>spring-ai-advisors-vector-store</artifactId> </dependency>

4、对话记忆功能修复

对话记忆的写法变更还挺大的,参考 官方文档。

1)修改 LoveApp 类中对话记忆的设置方式,新版本将算法和存储进行了分离,支持了更多的存储方式:

▼
java
复制代码
// 初始化基于内存的对话记忆 MessageWindowChatMemory chatMemory = MessageWindowChatMemory.builder() .chatMemoryRepository(new InMemoryChatMemoryRepository()) .maxMessages(20) .build();

2)修改对话记忆 Advisor 的创建方式,感觉 Spring AI 要统一用建造者模式创建对象了:

▼
java
复制代码
chatClient = ChatClient.builder(dashscopeChatModel) .defaultSystem(SYSTEM_PROMPT) .defaultAdvisors( MessageChatMemoryAdvisor.builder(chatMemory).build(), )

3)会话 ID 键名修改:

▼
java
复制代码
.advisors(spec -> spec.param(ChatMemory.CONVERSATION_ID, chatId))

4)修改基于文件持久化的会话记忆 FileBasedChatMemory 类,调整 get 方法,因为 ChatMemory 接口的 get 方法参数发生了变更:

▼
java
复制代码
@Override public List<Message> get(String conversationId) { return getOrCreateConversation(conversationId); }

5、 其他

还有个小细节,要修改 MyKeywordEnricher 类,因为关键词元信息增强器的包名发生了变更:

▼
java
复制代码
// 原来: import org.springframework.ai.transformer.KeywordMetadataEnricher; // 改为: import org.springframework.ai.model.transformer.KeywordMetadataEnricher;

总结

以上就是 Spring AI Alibaba 框架的升级过程,涉及的修改点还是比较多的、而且还要对所有功能进行测试,很耗时间,这就是为什么在企业中 “项目能运行,就不要动它”。

所有的代码修改我都已经开源到 GitHub 上了,每一次的提交记录都非常清晰,方便大家对照学习。如果有遗漏的地方,也欢迎大家评论区指出,我会继续补充和完善。

不得不感叹技术的更新真的是太太太太快了,但也正是这种快速迭代让我们能够享受到越来越强大的 AI 开发能力。很快我会再带大家用更新的技术做一套全新的 AI 全栈项目,点个关注,敬请期待吧~

站长:程序员鱼皮 老鱼简历 商务合作 增值电信业务经营许可证
2026 鱼皮AI导航 | 沪ICP备19026706号-6
🔥 热门文章
1
离谱,DeepSeek 崩了 5 小时,大家却喊:梁圣恩情还不完??
450
2
B 站上 DeepSeek 闹鱼灾了,我发起《大肥鱼清除计划》!
410
3
DeepSeek 全新模型发布,性价比最高的一集!
400
4
自己学习ai,直接买cursor 的套餐,还是买gpt 或者claude 的套餐?
370
5
又一个国产版 Codex 神器,也来卷办公了!
340
6
Vibe Coding 实战:从零构建现代专业级 AI 搜索引擎
330
7
day3-如何写出一个高质量的 Skill(组内分享) 高质量 Skill 不是“一个调得很顺的巨型 Prompt”,而是一个可验证、可回归、可维护的能力包。 先定义“什么算好”,再实现“怎么做好”。评估体系先于 Skill 本身成型。 下面用“故障诊断 Markdown 转 YAML”作为例子,但方法是通用的。 --- 一、先想清楚:Skill 到底是什么 一个 Skill 至少包含四部分: 部分 作用 接口 输入什么、输出什么、边界在哪 流程 分几步做,每步的产物是什么 规则 硬约束、经验规则、失败模式 降级策略 不确定时怎么办,而不是硬编一个看似合理的结果 高质量 Skill 的共同点:职责单一、接口清晰、规则可定位、输出可验证。 反例:把几十条经验全塞进一个主 Prompt,改一条规则要重调整个 Prompt,评估时也不知道是哪条规则退化。 --- 二、核心方法:先建评估,再写 Skill 不要先写转换器再补测试。正确顺序是: 1. 定义输出契约:什么算合法、什么算合格; 2. 建金标准集:一小批人工认可“可放行”的样本; 3. 先写评估 Skill:让它在金标准集上跑出基线; 4. 再迭代生成 Skill:每次修改跑同一套评估,无退化且目标维度提升才算正向。 这就是评估驱动开发:评估是 Skill 的单元测试,金标准集是回归锚点。 --- 三、评估 Skill:三层门禁,逐层递进 前一层不过,后一层不跑。每层留可追溯证据。 第 1 层:确定性硬门禁 用解析器、Schema、校验器完成,不消耗模型成本。 · 输出可解析; · 必填字段齐全,类型/枚举合法; · 引用目标存在,无悬空引用、无不可达节点; · 关键路径至少有一条能到达预期出口。 不通过直接打回。 第 2 层:语义断言 用脚本 + 结构遍历检查“逻辑对不对”,仍然保持确定性。 通用检查项: · 覆盖率:源材料里的关键步骤、分支、条件,输出里是否都有对应? · 完整性:每个判断节点是否都有明确出口?有没有死胡同? · 可达性:每条路径是否都能到达预期终点?有没有无出口循环? · 顺序与依赖:有先后依赖的操作,是否保留了顺序?有没有被拍平成无序列表? 例子:故障诊断转换中,检查“每个判断项是否有是/否/异常出口”“每条路径是否能到根因”。 第 3 层:LLM-as-Judge 只处理解析器表达不了的维度:忠实度、完整性、可执行性。 但 Judge 会漂移,不能单独放行,必须建立在第 1、2 层之上。Judge 的 Prompt、rubric、模型版本都要版本化,换模型必须用金标准集重新校准。 通用 Judge 维度: 维度 问什么 忠实度 输出是否忠实源材料意图?有没有自行发明内容? 完整性 关键步骤、条件、证据是否保留?隐式知识有没有被压成空话? 收敛性 输出是否仍指向原目标,而不是发散? 可执行性 下游不依赖源材料能否直接使用? --- 四、金标准集:回归测试的锚点 不需要一开始就标注几百份。用已认可的样本当种子,扩到 15~30 份,覆盖失败模式而非随机抽样: · 完整正例:典型流程; · 边界/异常分支:异常路径、循环、前置失败回退; · 已知易错模式:实际踩过的坑; · 留出集:不参与调优,只用于最终验收,防过拟合。 金标准不需要完美,只需要当前标准下认可可放行。 回归指标:关键路径用 pass^k(k 次全过),稳定性用 pass@k。 --- 五、工程约束:让批量产出可重放 · 幂等:同输入 + 同 Skill 版本 + 同规则 → 输出一致,否则无法判断变好是 Skill 改了还是随机波动; · 隔离不阻断:单份失败进隔离队列,记录失败层和原因,不阻塞其余; · 版本绑定:规则、rubric、金标准集进 Git;每份报告绑定“源版本 + 生成 Skill 版本 + 评估 Skill 版本 + Judge 模型版本”; · 抽样人工复核:Judge 临界样本 + 易错模式,人工抽检结果反过来校准 rubric。 --- 六、Skill 本身怎么写 · SKILL.md 控制篇幅,写清:输入约定、输出契约、分步流程、硬规则、降级策略; · 经验规则放 references/ 或 rules/,按失败模式分类,不要全塞进主 Prompt; · 不确定时标 needs_review: true,不要硬编看似合理的结果; · 迭代由评估报告驱动:报告告诉你哪层挂了、哪类失败模式,你改对应规则文件,而不是漫无目的调 Prompt。 --- 七、落地顺序(不要反过来) 1. 固化输出契约:Schema + 结构约束; 2. 建金标准集:从已认可的 + 最易出错的样本开始; 3. 先写评估 Skill:跑出基线报告; 4. 再迭代生成 Skill:每次修改对比逐项通过率,无退化且目标提升才算正向; 5. 批量运行 + 隔离回放:失败进队列,结束后人工抽检; 6. 评估 Skill 自身版本化:换 Judge 模型必须重新校准。 --- 八、给组员的三条硬要求 1. 不许凭感觉说“变好了”:每次修改必须附评估报告对比,逐项通过率说话。 2. 不许跳过确定性门禁直接看 Judge 分数:前两层挂了,Judge 分数没有意义。 3. 不许把规则堆进主 Prompt:规则按失败模式分文件,评估报告要能定位到具体文件。 --- 一句话收尾 生成 Skill 决定“能不能做”,评估 Skill 决定“敢不敢用”。 先让评估体系站稳,再让生成器迭代。这样交付的不是一堆“看起来还行”的产出,而是一套可证明、可回归、可交接的 Skill 质量体系。
320
8
我的第一个出海产品!7 天 2 万
310
9
WorkBuddy 本地 API 桥 + dsh 插件:把你的 WorkBuddy 额度,变成手边随手可用的模型
310
10
什么是LLM
300
11
最近在落地 AI Native 项目,卡在团队资产协同这块,想请教下社区各位有实际落地经验的同学: 我们现在的资产分为三块:项目文档(PRD/ADR/ 运行手册)、Agent Skill(业务技能、执行 SOP、提示词包)、MCP 工具服务定义。 目标是做到:人和多 Agent 共用一套可信资料源,Skill、MCP 配置、项目文档能够版本化、同步、共享、可评审。 目前我们初步方案是用 Git 做底层版本主线: - 文档:Markdown + ADR,带元信息,支持 RAG 检索 - Skill:单技能包目录化,带版本、评估用例、依赖声明 - MCP:项目级声明文件纳入 Git 但实际协作里遇到不少疑问,想参考大家成熟的实践: 1. 大家团队里,文档、Skill、MCP 三者是怎么组织目录和版本管理的?有没有稳定的仓库结构模板? 2. 多人协作时,Skill 的变更评审、灰度升级、依赖管理怎么做?如何避免本地版本不一致、“本地能跑别人不行”? 3. MCP 是统一中心化网关模式,还是大家各自本地启动 + git 同步配置?权限白名单、调用审计这块有什么好方案? 4. 有没有成熟工具链做自动同步(类似 agentmeld /teamai-cli)、变更校验、eval 回归门禁? 5. 文档和 Agent 的打通:哪些文档放进 Git 作为可信真值,哪些放外部知识库,边界怎么划分? 如果有现成的仓库样例、目录规范、团队协作流程,非常希望能分享参考,感谢!
260
12
PHP 被曝两大致命漏洞,请所有程序员抓紧做这件事!
260
🔥热门工具
朱雀AI检测朱雀AI检测
朱雀AI检测助手朱雀AI检测助手
LovartLovart
老鱼简历老鱼简历
WritePass官网WritePass官网
面多多面多多
CursorCursor
星月写作星月写作
零感AI零感AI
墨得问题墨得问题