news 2026/9/3 0:38:01

AI大模型实用(六)Java快速实现智能体整理(LangChain4j-agentic)

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
AI大模型实用(六)Java快速实现智能体整理(LangChain4j-agentic)

目录

一、使用langchain4j-agentic构建智能体应用

二、核心概念

1、 @Agent("Edits a story to better fit a given audience") 用于描述agent的设计目的,以及其他agent通过这些描述决定用不用、什么时候使用该agent.

2、Agent的名字,可以直接定义。也可以通过代理构建器的名称方法进行程序化

 未直接定义带有 @Agent 注释的方法名称

3、使用该 AgenticServices.agentBuilder() 方法构建该代理实例,指定接口和聊天模型。

4、AI service与 agent的区别

5、AgenticScope存储共享变量(多个agent直接交互)

6、工作流Workflow模式,这些模式可以组合起来,创造更复杂的工作流程。

7、循环工作流Loop

8、Parallel workflow  并行工作流

9、Conditional workflow  条件工作流

10、Asynchronous agents  异步代理

11、Error handling  错误处理

12、追踪Agent调用过程(可观测性)

13、以上内容都可以使用注解完成(即 声明式 API)


以下内容参考自:

https://docs.langchain4j.dev/tutorials/agents/

一、使用langchain4j-agentic构建智能体应用

智能体一般说是采用多个AI services来开发融入人工智能的应用程序.

智能系统架构可以分为两大类:

  • 工作流
  • 纯智能体

二、核心概念

1、 @Agent("Edits a story to better fit a given audience") 用于描述agent的设计目的,以及其他agent通过这些描述决定用不用、什么时候使用该agent.

public interface AudienceEditor { @UserMessage(""" You are a professional editor. Analyze and rewrite the following story to better align with the target audience of { {audience}}. Return only the story and nothing else. The story is "{ {story}}". """) @Agent("Edits a story to better fit a given audience") String editStory(@V("story") String story, @V("audience") String audience); }

2、Agent的名字,可以直接定义。也可以通过代理构建器的名称方法进行程序化

 未直接定义带有 @Agent 注释的方法名称

@Agent(name = "",description = "Edits a story to better fit a given audience",value = "",outputKey = "") String editStory(@V("story") String story, @V("audience") String audience);

name值为空,则Agent名字未editStory.

3、使用该 AgenticServices.agentBuilder() 方法构建该代理实例,指定接口和聊天模型。

CreativeWriter creativeWriter = AgenticServices .agentBuilder(CreativeWriter.class) .chatModel(myChatModel) .outputKey("story") .build();

4、AI service与 agent的区别

区别1: 本质上 agents = 多个AI services + 多个other agents

区别2: 用于指定共享变量的名称,代理调用的结果将存储在该变量中,以便同一代理系统内的其他代理使用。 输出名称也可以直接在 @Agent 注释中声明。比如:

@Agent(outputKey = "story", description = "Generates a story based on the given topic")

注:AgenticServices 类提供了一组静态工厂方法,用于创建和定义由 langchain4j-agentic 框架提供的各种代理。

5、AgenticScope存储共享变量(多个agent直接交互)

AgenticScope 还会自动注册其他相关信息,如所有代理的调用顺序及其响应。当调用代理系统的主智能体时,会自动创建,并在必要时通过回调程序提供

6、工作流Workflow模式,这些模式可以组合起来,创造更复杂的工作流程。

  • Sequential workflow  顺序工作流​

每个代理的输出作为输入传递给下一个代理。

适用场景: 当你需要按特定顺序完成一系列任务时

比如 : 针对特定受众编写一个故事

public interface AudienceEditor { @UserMessage(""" You are a professional editor. Analyze and rewrite the following story to better align with the target audience of { {audience}}. Return only the story and nothing else. The story is "{ {story}}". """) @Agent("Edits a story to better fit a given audience") String editStory(@V("story") String story, @V("audience") String audience); }

针对特定风格编写一个故事

public interface StyleEditor { @UserMessage(""" You are a professional editor. Analyze and rewrite the following story to better fit and be more coherent with the { {style}} style. Return only the
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/9/2 7:22:15

基于C语言的学习---if语句

一、if语句的执行逻辑如果括号里面条件成立,那么就执行这个程序;不成立,就不做,跳过;if语句后面可有大括号也可以没有;二、判断的条件1、运算符条件2、关系运算的结果成立输出1;不成立输出0&…

作者头像 李华
网站建设 2026/9/2 4:14:03

jQuery UI API 类别 - 选择器(Selectors)

jQuery UI API 类别 - 选择器(Selectors) Selectors 是 jQuery UI API 中的一个独立类别,它扩展了 jQuery 的选择器功能,主要用于无障碍访问(Accessibility)场景,帮助开发者精确选中那些可以获…

作者头像 李华
网站建设 2026/9/1 6:32:21

jQuery UI API 类别 - 主题(Theming)

jQuery UI API 类别 - 主题(Theming) Theming 是 jQuery UI API 文档中的一个独立类别,它主要聚焦于 CSS Framework(CSS 框架),提供了一套语义化的类名,用于确保所有小部件(Widgets…

作者头像 李华
网站建设 2026/9/2 12:30:56

Langchain-Chatchat向量化存储原理及优化建议

Langchain-Chatchat向量化存储原理及优化建议 在金融、医疗和法律等行业,知识分散、检索困难、数据敏感等问题长期困扰着企业的智能化转型。传统的关键词搜索难以理解“年假申请流程”与“休假制度说明”之间的语义关联,而依赖公有云API的AI问答系统又存…

作者头像 李华