直接上简单的代码示例1.在pom文件加如下dependencygroupIdio.agentscope/groupIdartifactIdagentscope/artifactIdversion1.0.10/versionscopecompile/scope/dependency我测试了下只添加上面的就行了,下面的是我备用的dependencygroupIdio.agentscope/groupIdartifactIdagentscope-spring-boot-starter/artifactIdversion1.0.10/version/dependency2.yaml文件添加---#################### agentscope相关配置 ####################agentscope:dashscope:api-key:你的dashscope-api-keymodel-name:qwen-plus3.写代码3.1AgentScope 智能体配置packagecn.iocoder.yudao.module.system.controller.admin.mall.order;importio.agentscope.core.ReActAgent;importio.agentscope.core.memory.InMemoryMemory;importio.agentscope.core.model.DashScopeChatModel;importio.agentscope.core.tool.Toolkit;importorg.springframework.beans.factory.annotation.Value;importorg.springframework.context.annotation.Bean;importorg.springframework.context.annotation.Configuration;importjavax.annotation.Resource;/** * AgentScope 智能体配置 * p * AgentScope 1.0 Core API 不提供 AgentComponent / AgentRuntime * 需要手动构建 ReActAgent 并注册为 Spring Bean。 * p * 配置项application.yaml * pre * agentscope: * dashscope: * api-key: 你的dashscope-api-key * model-name: qwen-turbo * /pre */ConfigurationpublicclassAgentConfig{Value(${agentscope.dashscope.api-key:})privateStringdashscopeApiKey;Value(${agentscope.dashscope.model-name:qwen-turbo})privateStringmodelName;ResourceprivateOrderAssistantorderAssistant;BeanpublicReActAgentorderAssistantAgent(){// 1. 初始化大模型DashScope / 通义千问DashScopeChatModelmodelDashScopeChatModel.builder().apiKey(dashscopeApiKey).modelName(modelName).build();// 2. 构建工具集注册订单查询工具ToolkittoolkitnewToolkit();toolkit.registerTool(orderAssistant);// 3. 构建 ReActAgentreturnReActAgent.builder().name(order-assistant).sysPrompt(你是订单查询助手可以调用工具查询订单信息使用中文回答用户问题).model(model).toolkit(toolkit).memory(newInMemoryMemory()).build();}}3.2订单查询智能体工具packagecn.iocoder.yudao.module.system.controller.admin.mall.order;importcn.iocoder.yudao.module.system.dal.dataobject.mall.MallOrderDO;importcn.iocoder.yudao.module.system.service.mall.MallOrderService;importio.agentscope.core.tool.Tool;importio.agentscope.core.tool.ToolParam;importorg.springframework.stereotype.Component;importjavax.annotation.Resource;/** * 订单查询智能体工具 * p * 提供 Tool 注解的方法供 ReActAgent 调用。 * AgentScope 1.0 Core API 不提供 AgentComponent 注解 * 这里用 Spring 原生 Component 注册 Bean再在 AgentConfig 中通过 Toolkit.registerTool 注册。 */ComponentpublicclassOrderAssistant{ResourceprivateMallOrderServiceorderService;/** * 根据订单ID查询订单状态。 * * param orderId 订单编号数据库主键 ID * return 订单状态描述 */Tool(description根据订单ID查询订单状态返回订单号、状态、金额和下单时间)publicStringqueryOrderStatus(ToolParam(nameorderId,description订单编号数据库主键ID)LongorderId){MallOrderDOorderorderService.getOrder(orderId);returnformatOrder(order);}/** * 根据订单号查询订单状态。 * * param orderNo 订单流水号如 NO20240101 * return 订单状态描述 */Tool(description根据订单号查询订单状态返回订单号、状态、金额和下单时间)publicStringqueryOrderByNo(ToolParam(nameorderNo,description订单流水号如 NO20240101)StringorderNo){MallOrderDOorderorderService.getOrderByNo(orderNo);returnformatOrder(order);}/** * 格式化订单信息为可读字符串 */privateStringformatOrder(MallOrderDOorder){if(ordernull){return未找到订单;}StringstatusTextconvertStatus(order.getStatus());doublepriceYuanorder.getTotalPrice()!null?order.getTotalPrice()/100.0:0.0;returnString.format(订单号%s状态%s金额%.2f元手机号%s元下单时间%s,order.getOrderNo(),statusText,priceYuan,order.getMobile(),order.getCreateTime());}/** * 将订单状态码转换为中文描述 * * param status 状态码0-待处理 10-已发货 20-已完成 30-已取消 * return 中文状态描述 */privateStringconvertStatus(Integerstatus){if(statusnull){return未知;}switch(status){case0:return待处理;case10:return已发货;case20:return已完成;case30:return已取消;default:return未知状态(status);}}}3.3智能体对话接口packagecn.iocoder.yudao.module.system.controller.admin.mall.order;importcn.iocoder.yudao.framework.common.pojo.CommonResult;importio.agentscope.core.ReActAgent;importio.agentscope.core.message.Msg;importio.agentscope.core.message.MsgRole;importio.swagger.v3.oas.annotations.Operation;importio.swagger.v3.oas.annotations.tags.Tag;importlombok.extern.slf4j.Slf4j;importorg.springframework.web.bind.annotation.PostMapping;importorg.springframework.web.bind.annotation.RequestBody;importorg.springframework.web.bind.annotation.RequestMapping;importorg.springframework.web.bind.annotation.RestController;importjavax.annotation.Resource;importstaticcn.iocoder.yudao.framework.common.pojo.CommonResult.success;/** * 智能体对话接口 * p * AgentScope 1.0 Core API 不提供 AgentRuntime / AgentResponse * 直接注入 ReActAgent Bean通过 agent.call(Msg) 返回 MonoMsg * 在 Spring MVC 同步场景下使用 .block() 获取结果。 */Slf4jTag(name管理后台 - 智能体对话)RestControllerRequestMapping(/system/agent)publicclassAgentController{ResourceprivateReActAgentorderAssistantAgent;PostMapping(/chat)Operation(summary与订单助手对话)publicCommonResultStringchat(RequestBodyStringmessage){log.info(收到智能体对话请求: {},message);try{// 构建用户消息MsguserMsgMsg.builder().name(user).role(MsgRole.USER).textContent(message).build();// 调用 AgentReActAgent 会自主思考、调用工具同步阻塞获取结果MsgresponseorderAssistantAgent.call(userMsg).block();Stringanswerresponse!null?response.getTextContent():抱歉未能处理您的请求;log.info(智能体回复: {},answer);returnsuccess(answer);}catch(Exceptione){log.error(智能体调用失败,e);returnsuccess(抱歉智能体服务暂时不可用e.getMessage());}}}使用前须知将 application-local.yaml 中的 api-key 替换为你的真实 DashScope API Key在 阿里云百炼平台 获取调用流程用户 POST /system/agent/chat {“帮我查一下订单ID为123的状态”}→ AgentController.chat()→ 构建 Msg(USER, message)→ ReActAgent.call(msg) // Agent 自主思考→ LLM 判断需要调用工具→ Toolkit 调用 OrderAssistant.queryOrderStatus(123)→ LLM 根据工具返回组织中文回答→ .block() 同步获取结果→ 返回 “订单号NO20240101状态已发货金额99.00元下单时间…”运行效果不得不说还挺智能的能循环查询给出数据为什么要有AgentScope Java有些小伙伴可能已经尝试过用Python的LangChain或AutoGen来构建智能体。确实写个Demo很简单但要落地到生产环境尤其是Java主导的企业级系统往往会遇到几个“拦路虎”第一技术栈割裂。 你的核心交易系统是Spring Cloud用户权限走的是Shiro数据库连接池是Druid。现在为了一个Agent要单独搭一套Python服务两边通过HTTP调用调试起来头皮发麻。第二安全难以保障。 金融场景下Agent可能要查询订单、操作数据库。Python脚本跑在业务系统旁边怎么隔离怎么控制权限出了问题谁负责第三运维体系不兼容。 Java生态有成熟的监控Arthas、链路追踪SkyWalking、配置中心Nacos。Python那一套很难融入这个体系。第四多智能体协作复杂。 真实业务往往需要多个Agent分工协作一个查订单、一个算积分、一个发通知。Python框架要么不支持分布式部署要么需要自己造轮子。AgentScope Java正是为了解决这些痛点而生的。它不是简单的“LangChain的Java翻译版”而是站在企业级视角重新设计的生产级智能体开发框架更多内容可以参考链接https://juejin.cn/post/7615515575942447142