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

什么是AI Agent?

环境准备

<dependency> <groupId>dev.langchain4j</groupId> <artifactId>langchain4j</artifactId> <version>0.35.0</version> </dependency> <dependency> <groupId>dev.langchain4j</groupId> <artifactId>langchain4j-open-ai</artifactId> <version>0.35.0</version> </dependency>

回到顶部

三、基础对话Agent

import dev.langchain4j.model.chat.ChatLanguageModel; import dev.langchain4j.model.openai.OpenAiChatModel; import dev.langchain4j.service.AiServices; import dev.langchain4j.service.UserMessage; // 定义Agent接口 public interface ChatAgent { @UserMessage("{{it}}") String chat(String message); } // 创建Agent实例 ChatLanguageModel model = OpenAiChatModel.builder() .apiKey(System.getenv("OPENAI_API_KEY")) .modelName("gpt-4") .build(); ChatAgent agent = AiServices.builder(ChatAgent.class) .chatLanguageModel(model) .build(); // 使用 String response = agent.chat("你好,请介绍一下Java线程池"); System.out.println(response);

回到顶部

四、带工具的Agent

import dev.langchain4j.agent.tool.Tool; import dev.langchain4j.service.MemoryId; import dev.langchain4j.service.UserMessage; public interface ToolAgent { @UserMessage("{{it}}") String chat(@MemoryId String sessionId, String message); } // 定义工具类 public class WeatherTools { @Tool("获取指定城市的天气信息") public String getWeather(String city) { // 实际调用天气API return city + "今天晴,25°C"; } @Tool("获取当前时间") public String getCurrentTime() { return LocalDateTime.now().toString(); } } // 创建带工具的Agent ToolAgent agent = AiServices.builder(ToolAgent.class) .chatLanguageModel(model) .tools(new WeatherTools()) .chatMemoryProvider(memoryId -> MessageWindowChatMemory.withMaxMessages(10)) .build(); // Agent会自动判断何时调用工具 String response = agent.chat("session-1", "北京今天天气怎么样?");

回到顶部

五、带记忆的Agent

import dev.langchain4j.memory.chat.MessageWindowChatMemory; // 为每个用户会话创建独立记忆 ChatMemory chatMemory = MessageWindowChatMemory.withMaxMessages(20); ChatAgent agent = AiServices.builder(ChatAgent.class) .chatLanguageModel(model) .chatMemory(chatMemory) .build(); // 多轮对话保持上下文 agent.chat("我叫张三"); // 记住名字 agent.chat("我叫什么?"); // 回答:你叫张三

回到顶部

六、流式输出

import dev.langchain4j.model.chat.StreamingChatLanguageModel; import dev.langchain4j.model.openai.OpenAiStreamingChatModel; StreamingChatLanguageModel streamingModel = OpenAiStreamingChatModel.builder() .apiKey(System.getenv("OPENAI_API_KEY")) .build(); // 实时输出,类似ChatGPT的效果 streamingModel.generate("写一首关于Java的诗", new StreamingResponseHandler() { @Override public void onNext(String token) { System.out.print(token); // 逐字输出 } @Override public void onComplete(Response response) { System.out.println("\n输出完成"); } });

回到顶部

七、完整实战案例

@SpringBootApplication public class AgentApplication { @Bean public ChatLanguageModel chatLanguageModel() { return OpenAiChatModel.builder() .apiKey("${openai.api-key}") .modelName("gpt-4") .build(); } @Bean public Assistant assistant(ChatLanguageModel model) { return AiServices.builder(Assistant.class) .chatLanguageModel(model) .tools(new Calculator(), new WeatherService()) .chatMemoryProvider(id -> MessageWindowChatMemory.withMaxMessages(10)) .build(); } } @RestController public class ChatController { @Autowired private Assistant assistant; @PostMapping("/chat") public String chat(@RequestBody ChatRequest request) { return assistant.chat(request.getSessionId(), request.getMessage()); } }

回到顶部

总结

LangChain4j让Java开发者也能轻松构建AI Agent。核心步骤:

  1. 定义Agent接口
  2. 配置语言模型
  3. 添加工具(可选)
  4. 配置记忆(可选)
  5. 构建并使用
http://www.gsyq.cn/news/1605258.html

相关文章:

  • 终极Windows窗口大小调整指南:3分钟掌握WindowResizer强制调整技巧
  • 2026年批量采购无人机专用胶粘产品怎么选?行业选型指南
  • 【信号处理】为什么功率谱不是幅度谱的平方
  • 每天5分钟玩转 Kubernetes
  • 深入解析PCM178x系列DAC:Delta-Sigma架构原理与音频硬件设计实战
  • 牛客周赛 Round 150
  • Java计算机毕设之基于 SpringBoot+Vue 的社区老龄关爱服务管理系统 公益助老项目发布与预约服务平台设计实现(完整前后端代码+说明文档+LW,调试定制等)
  • 【精通】RustMark v2.4:CI/CD 与发布工程 — Cargo Workspace 与 DevOps 深度实战
  • Java毕设项目:便民助老资源统筹服务平台基于前后端分离实现 数字化爱老助老公益服务管理平台设计与开发 (源码+文档,讲解、调试运行,定制等)
  • ABB工业机器人编程基础(十一)流程控制:FOR、WHILE 与示教器交互指令
  • 总结 6.29
  • RAG检索准不准怎么量化:recall@k和MRR实操
  • 基于本地大语言模型的AI助手中间件:ai-berkshire部署与集成指南
  • Vue 组件通信的多种实现思路
  • 银行网点实时语音识别解决方案客服沟通合规质检 业务沟通全量留痕
  • GLM-5.2 编程实战全解:744B MoE、1M 无损上下文、Code Arena 全球第一,国产开源长程 Coding 模型怎么用
  • Ubuntu CentOS 安装配置SSH完整教程
  • ISP Pipeline中径向递减锐化方案实现(四)
  • 2026年Vue3项目架构从零到一:目录、分层、代码,每一行都给你说明白
  • 一、linux系统安装与环境准备
  • YgoMaster终极PvP对战指南:如何轻松实现局域网联机与好友对战
  • 【Excel】使用“数据透视表”统计所有项的工作量
  • 我觉得目前脚本速度已经足够快了-----再快就不像人了
  • 【限时解密】ChatGPT API费用优化白皮书(含23个真实客户账单审计案例+自动识别高成本prompt的CLI工具)——OpenAI Partner认证专家独家释放
  • 华为MetaERP 财务 ERP 解决方案架构师(EBS+SAP+MetaERP 复合背景)全国需求现状 + 城市潜力分级一、全国整体市场需求(2026 年现状)1. 需求整体判断:结构性紧缺,复
  • dotnet 10 run file 支持多文件
  • JavaScript--错误处理
  • AI Agent开发实战:从零构建一个能自主规划任务的智能体
  • AI 学习助手:基于 HarmonyOS ArkTS 的智能学习伴侣开发实践
  • 使用visual studio和ai制作ppt