当前位置: 首页 > news >正文

agentscope笔记 todo

文章目录

        • maven依赖
      • 示例1
        • AgentScopeConfig配置
      • AgentScopeController类
      • 示例2
        • WeatherTools类
    • 报错
        • 报错 java.lang.NoClassDefFoundError: com/networknt/schema/SpecificationVersion

注:agentscope2.x和1.x改动极大,一定先弄清版本再说什么问题。

版本:
spring-boot # 3.3.5
langchain4j # 0.34.0
langgraph4j # 1.8.17
agentscope # 2.0.0-RC2

maven依赖
属性:<agentscope.version>2.0.0-RC2</agentscope.version><!-- AgentScope 核心模块 --><dependency><groupId>io.agentscope</groupId><artifactId>agentscope-core</artifactId><version>${agentscope.version}</version></dependency>

示例1

AgentScopeConfig配置

直接在controller或service写也能用,就是代码丑些,写成配置便于复用chatModel。

importio.agentscope.core.model.OpenAIChatModel;importorg.springframework.beans.factory.annotation.Value;importorg.springframework.context.annotation.Bean;importorg.springframework.context.annotation.Configuration;@ConfigurationpublicclassAgentScopeConfig{// 直接复用您现有的配置项,无需在 yml 中重复配置@Value("${langchain4j.open-ai.chat-model.api-key}")privateStringapiKey;@Value("${langchain4j.open-ai.chat-model.base-url}")privateStringbaseUrl;@Value("${langchain4j.open-ai.chat-model.model-name}")privateStringmodelName;@BeanpublicOpenAIChatModelagentScopeChatModel(){returnOpenAIChatModel.builder().apiKey(apiKey).baseUrl(baseUrl).modelName(modelName).stream(true)// AgentScope 默认推荐开启流式,体验更好.build();}}

AgentScopeController类

importio.agentscope.core.ReActAgent;importio.agentscope.core.model.OpenAIChatModel;importio.agentscope.core.message.Msg;// 引入消息类importorg.springframework.beans.factory.annotation.Autowired;importorg.springframework.web.bind.annotation.GetMapping;importorg.springframework.web.bind.annotation.RequestMapping;importorg.springframework.web.bind.annotation.RequestParam;importorg.springframework.web.bind.annotation.RestController;@RestController@RequestMapping("/api")publicclassAgentScopeController{// 直接注入 Spring 容器中配置好的模型@AutowiredprivateOpenAIChatModelagentScopeChatModel;@GetMapping("/agentscope/chat")publicStringchat(@RequestParamStringmessage){// 1. 构建 ReAct 智能体,直接传入注入的模型ReActAgentagent=ReActAgent.builder().name("StudentAgent").sysPrompt("你是一个乐于助人的AI助手,请用简短的中文回答。").model(agentScopeChatModel).build();// 2. 将字符串封装为 AgentScope 的 Msg 对象MsguserMsg=Msg.builder().textContent(message).build();// 3. 调用 call() 方法,使用 .block() 阻塞等待获取最终结果Msgresponse=agent.call(userMsg).block();// 4. 提取并返回纯文本内容returnresponse!=null?response.getTextContent():"未获取到回复";}}

示例2

WeatherTools类
importio.agentscope.core.tool.Tool;importio.agentscope.core.tool.ToolParam;publicclassWeatherTools{@Tool(description="查询指定城市的当前天气")publicStringgetWeather(@ToolParam(name="city",description="城市名称")Stringcity){return"城市 "+city+" 当前天气:晴朗,24℃";}}

报错

报错 java.lang.NoClassDefFoundError: com/networknt/schema/SpecificationVersion

原因:
AgentScope 的依赖:AgentScope 内部使用了 com.networknt:json-schema-validator 来校验工具参数。
版本不匹配:json-schema-validator 的某些新版本(如 3.0.1)开始使用 tools.jackson(FasterXML Jackson 的一个分支或新版本),而您的 Spring Boot 项目使用的是标准的 com.fasterxml.jackson。
类路径污染:当两个库同时存在时,类加载器会混乱,导致 tools.jackson 找不到它期望的类结构。

解决方案(最终未解决):
1、

属性:<json-schema-validator.version>1.0.87</json-schema-validator.version>显示依赖:<dependency><groupId>com.networknt</groupId><artifactId>json-schema-validator</artifactId><version>${json-schema-validator.version}</version></dependency>management里面也显式依赖:<dependency><groupId>com.networknt</groupId><artifactId>json-schema-validator</artifactId><version>${json-schema-validator.version}</version></dependency>

2、update project
3、删除maven仓库下的2.0版本
4、clean并package

实测还是不行,直接升2.0了。

http://www.cnnetsun.cn/news/2942817.html

相关文章:

  • 期末论文高效突围!百考通AI 适配本科课程论文的实战使用指南
  • Grok 4.3长文本处理能力深度解析:128K上下文下的务实工程实践
  • AIGC创业落地三阶能力:问题定义、工程降维与商业翻译
  • G-Helper:华硕笔记本性能优化与硬件控制的三大核心功能解析
  • 实战Python爬取Airbnb上海房源信息:从入门到精通完整指南
  • Protobuf核心原理与实战:从数据序列化到gRPC服务定义
  • 非技术人AI编程全流程:从原型到上线的工程化表达
  • 技术博客即工程资产:用可演进架构沉淀真实技术生命
  • 5步掌握原神AI自动化神器:BetterGI终极指南,智能解放你的游戏时间
  • 对比学习核心原理与工程实践:从SimCLR到MoCo的算法解析与代码实现
  • 企业如何利用AI工具低成本开发移动应用?
  • 本文介绍了GR-RL具身强化学习框架的核心技术模块,涵盖工业机械臂控制、训练优化和安全保障等2201-2334底层源码实现。关键技术包括:机械臂零飘自适应补偿、工况自适应摩擦降级、显存碎片整理、异常工
  • 嵌入式以太网控制器编程模型:寄存器、BD与DMA协同工作原理详解
  • 深入解析MSC8112 DSP架构:从核心单元到系统级设计实战
  • 8G显存跑Qwen3.6-35B实战指南:TurboQuant+llama.cpp深度解析
  • Terraform入门实战:声明式云基础设施管理核心原理与生产避坑指南
  • 谷歌广告扣费标准是什么?带你弄懂CPC和CPM的区别
  • Qwen3.5-9B-Uncensored在8G显卡上的实操部署指南
  • 3种简单方法解决加密音乐播放难题:Unlock Music完整指南
  • Snowflake QUALIFY 子句详解:窗口函数过滤的正确用法
  • MelonLoader完整指南:为Unity游戏开启无限可能的模组世界
  • CARLA代理开发实战:四层架构与中文场景适配工作流
  • 3步解锁百度网盘高速下载的终极方案:告别限速烦恼
  • Vissim与CARLA联合仿真:宏观微观交通模型时空对齐实战
  • 硅胶与光面纸无胶粘合技术在柔性机器人中的应用
  • 24-Django请求全链路-WSGI到数据库响应的完整旅程
  • 对话式AI赛道全景:从技术原理到应用场景的深度解析
  • C#实现合作博弈:夏普利值与核仁计算工程实践
  • 大模型图文识别黑科技:从只认文字到“看懂”图片,小白也能学会的收藏级干货!
  • 【AI Daily 2026-06-05】 AI 方向的基础设施化,能力从模型层下沉到工具链和工作流