AI在线 AI在线

基于JoyAgent的二开工程实践(信贷尽调报告生成)

很久没更新,书稿终于写完了,后续恢复每周一到两更。 这篇来继续聊聊 Agent, 这个现在有些烂大街的概念。 我在历史文章中提到 Agent 的案例演示时,大多是围绕 Dify,介绍了些诸如设备预测性运维、多源异构数据分析等使用场景。

基于JoyAgent的二开工程实践(信贷尽调报告生成)

很久没更新,书稿终于写完了,后续恢复每周一到两更。

这篇来继续聊聊 Agent, 这个现在有些烂大街的概念。我在历史文章中提到 Agent 的案例演示时,大多是围绕 Dify,介绍了些诸如设备预测性运维、多源异构数据分析等使用场景。其中也搭配着提到了如何按照 OpenAI 的通用规范编写自定义工具的示例。不过,Dify 的 Agent 主要是单个 Agent 进行任务规划和工具调用,属于相对简单的 ReAct 模式,更适合中小型应用和快速原型开发。

而对于复杂场景的任务,就少不了通过 Multi-Agent 方式来实现。这篇先来介绍下京东两个月前开源的 JoyAgent,一款号称业界首个开源高完成度轻量化通用多智能体产品。下篇再来介绍下如何使用 Langgraph 来实现类似复杂 Agent 的案例。

这篇试图说清楚:

JoyAgent 的 Github 官方自述、二开案例背景说明说明、项目架构拆解、最小化侵入式扩展策略的具体实现,以及工程经验总结和架构演进思考。

以下,enjoy:

1、Github 官方自述

项目的 github 地址如下:https://github.com/jd-opensource/joyagent-jdgenie?tab=readme-ov-file,开源两个月左右时间已经有了 8.9K stars, 应该说还是挺受欢迎的。原始的 readme.md 有点长,我简要梳理了一下四个要点供快速预览。

图片

1.1端到端完整 Multi-Agent 产品

不同于市面上的 SDK 或框架类产品,JoyAgent-JDGenie 是端到端的多 Agent 产品,对于输入的 query 或任务可以直接回答或解决,例如用户询问"给我做一个最近美元和黄金的走势分析",系统可以直接生成网页版或 PPT 版的完整报告文档。

1.2GAIA 打榜成绩不错

在权威 GAIA 榜单上表现优异,Validation 集准确率达到 75.15%,Test 集达到 65.12%,成功超越 OWL(CAMEL)、Smolagent(Huggingface)、LRC-Huawei、xManus(OpenManus)、AutoAgent(香港大学)等行业知名产品。

图片

1.3无平台依赖限制

相对轻量化的架构设计,不像阿里的 SpringAI-Alibaba 需要依赖阿里云百炼平台,或 Coze 依赖火山引擎平台。用户可以独立部署和使用,避免了云平台绑定的限制,提供更大的部署灵活性。

1.4全栈产品级解决方案

整体开源了智能体产品的前端、后端、框架、引擎、核心子智能体(报告生成、代码智能体、PPT 智能体、文件智能体等),是真正的产品级完整解决方案,而非仅提供 SDK、框架或协议层面的开源。

图片

2、二开案例背景说明

正式开始介绍架构前,简要说明下选择的这个信贷尽调报告生成场景一些核心环节和技术挑战,不熟悉这类业务的盆友可以但当涉猎下。

在当前息差收窄、监管趋严的市场环境下,部分金融机构开始尝试通过开发一些大模型应用来提升线下贷款尽职调查的效率和质量。然而,技术路径的选择却面临纠结。首当其冲的工作流方案虽能能够通过复杂的编排来实现流程自动化,但固定设计很难应对企业类型的多样性。当然可以也可以采用”高耦合、低内聚“的思路,尽可能模块化一个不同企业或者行业类型的尽调报告生成模板配置。但无法解决的是,如何在循规蹈矩的分析中如果发现了异常指标进行自主的 deep resarch, 这本也是一份报告中比较重要的部分。

反之,如果选择 Agent 的路线,也面临手搓和开源框架二开的两种选择。纯原生 Agent 开发,例如 Langraph,提供了高度灵活性,但技术门槛略高,需要熟悉大模型调用、工具管理、状态处理等复杂工程经验才能实现理想的业务效果。如果团队有相关的积累,这种方式借助类似 Claude Code 等工具的帮助,倒也是不会很费力,只是从架构设计上来说,不见得是最佳实践。还剩一种就是这篇要提到的通用 Agent 框架的二开做法。接下来,通过对JoyAgent具体的技术架构分析,展示如何在保持框架通用性的前提下,快速实现专业领域的深度定制。

3、多层分离架构的设计

下面直接结合演示案例,展示下原始框架的三层架构是如何设计的、每一层承担什么职责、以及如何在不破坏原有架构的前提下,通过封装“信贷专用工具集”,并增加一层“Python 工具服务层”来快速扩展专业功能。

官方架构图技术细节太多,层次关系模糊,我手动绘制了下面这个简化版的分层图示,保留核心的技术栈,关键组件名称和接口标准。

图片

通过前端界面层、后端服务层、工具调用层和 Python 工具服务层的分层协作,实现了从用户交互到专业分析的完整技术链路。整个系统采用四层技术架构,每一层都有独立的技术栈和功能边界,通过标准化的接口实现层间通信,既保持了框架的通用性和稳定性,又为信贷领域的专业化扩展提供了清晰的技术边界和扩展机制。(红色部分为二开中新增)

3.1解析 JoyAgent 二开后的四层技术架构

JoyAgent-JDGenie 采用经典的分层架构模式,将复杂的多Agent 系统分解为以下四个职责明确的技术层次。

前端界面层

采用 React + Ant Design + TypeScript 技术栈构建用户交互界面。React 是 Meta 开源的 JavaScript 库,通过组件化开发模式和高效的页面更新机制提供流畅的用户体验。Ant Design 是企业级 UI 组件库,提供丰富的交互组件和统一的视觉规范,特别适合构建数据密集型的企业应用。TypeScript 通过静态类型检查提升代码的可靠性和可维护性。

后端服务层

基于 Spring Boot 3.2.2 + Java 17 构建,包含完整的 Agent 执行框架。系统设计了多种专门化的 Agent 类型:

BaseAgent 定义基础属性和行为规范;

ReActAgent 实现“推理-行动-观察”的循环执行模式;

PlanningAgent 专注于任务分解和执行计划制定;

ExecutorAgent 负责具体工具调用和结果收集;

SummaryAgent 专门负责多源信息整合和专业报告生成。

AgentContext 负责上下文管理,状态管理机制控制 Agent 生命周期,

SSE(Server-Sent Events)技术实现服务器向客户端的实时数据推送。

工具调用层

通过统一的 BaseTool 工具接口规范和集中的 ToolCollection 工具管理机制,支持多种类型工具的调用。包含三类工具:

内置工具负责文件处理(FileTool)、代码解释执行(CodeInterpreter)、深度搜索(DeepSearch)、报告生成(ReportTool)等基础功能;

信贷专用工具集包括企业信息查询(CompanyInfo)、财务数据分析(Financial)、年报智能问答(AnnualRAG)、可视化图表生成(Visualization)等专业功能;

MCP 工具协议支持外部服务的动态工具加载。

Python 工具服务层

基于 FastAPI 框架构建,提供底层的数据处理和分析能力。FastAPI 是现代高性能的 Python Web 框架,支持异步处理和自动 API 文档生成。该层集成数据处理引擎和 RAG 检索引擎,前者负责结构化和半结构化数据的解析分析,后者通过向量检索和语义匹配技术实现年报文档的智能问答功能。

3.2设计最小化侵入的工具扩展机制

最小化侵入的理念是在不修改框架内部结构的前提下,通过标准化的扩展机制实现专业化功能。这种设计策略既保持了原有系统的稳定性,又为业务需求的快速响应提供了技术保障。

统一的工具接口规范

系统通过标准接口定义了四个关键方法实现工具的标准化封装。getName()返回工具的唯一标识符,用于工具的注册和调用;getDescription()提供工具功能的自然语言描述,供大模型进行工具选择时参考;toParams()定义工具的输入参数结构,采用JSON Schema 格式确保参数的标准化;execute()实现工具的业务逻辑,接收标准化的输入参数并返回处理结果。

分层的工具架构设计

采用“API 调用+专业格式化+文件存储”的三层设计,实现技术实现与业务逻辑的分离。API 调用层负责与外部服务的 HTTP 通信,处理请求构建、响应解析、异常处理等技术细节;专业格式化层将外部 API 返回的原始数据转换为符合信贷业务规范的标准格式;文件存储层提供可选的数据持久化功能,支持分析结果的本地缓存和历史查询。

动态的工具注册机制

通过集中的工具管理实现工具的动态加载和统一调度。系统通过工具映射表维护所有可用工具的索引,支持工具的运行时注册和查询。当 Agent 需要调用特定工具时,工具管理器根据工具名称快速定位对应的工具实例,并通过统一的执行接口完成调用,为工具的动态添加和版本升级提供了技术支持。

灵活的配置管理策略

通过统一的配置类(集中管理配置参数的 Java 类)和环境变量支持,实现不同部署环境下的灵活适配。配置类集中管理所有外部 API 的连接参数,包括服务地址、认证信息、超时设置等关键配置,采用环境变量优先的策略,允许在不修改代码的情况下适应开发、测试、生产等不同环境的部署需求。

3.3构建信贷专用工具与外部服务集成

信贷专用工具集通过四个专业化工具的协同工作,实现了从基础信息查询到深度分析报告的完整业务覆盖。这四个专业化工具都针对信贷尽调的特定环节进行了优化,每个工具都与框架保持了标准化集成,同时提供了专业化的分析能力。

企业信息查询工具

专注于企业基础信息的获取和整理,通过调用企业工商信息 API 获取注册信息、股东结构、经营范围、变更历史等关键数据。企业信息查询工具内置信贷行业的数据筛选逻辑,能够自动识别和标注法人变更、经营异常、行政处罚等风险指标,并提供企业关联关系分析功能,通过股权穿透和关联交易识别为复杂企业结构的风险评估提供数据支撑。

财务数据分析工具

实现多维度的财务指标计算和分析,支持基础财务比率计算,集成杜邦分析、现金流分析、盈利质量评估等分析方法。财务数据分析工具采用时间序列分析技术,自动识别财务数据的趋势变化和异常波动,内置行业对标功能,通过与同行业企业的财务指标对比,评估目标企业在行业中的相对地位和竞争优势。

年报智能问答工具

通过 RAG 技术实现年报文档的智能分析。年报智能问答工具将年报文档进行分块处理和向量化存储,构建专门的年报知识库,通过语义检索找到相关文档片段,结合大模型推理能力生成准确答案。这种 RAG 检索与大模型推理的融合机制,既保证回答内容的事实准确性,又提供专业的分析洞察。

可视化图表生成工具

为财务数据和分析结果提供直观的图表展示,支持趋势图、对比图、饼图、雷达图等多种图表类型,能够根据数据特征自动选择合适的可视化方式。可视化图表生成工具采用 ECharts 图表库,生成具有良好交互性和视觉效果的图表,支持数据钻取和动态更新,提供 PNG、PDF 等多种格式的图表导出功能。

外部服务集成机制

采用统一的 HTTP 调用机制,通过标准化接口适配不同的数据服务商。系统内置完善的错误处理和重试机制,应对网络异常、服务超时、数据格式错误等各种异常情况。数据格式化机制通过字段映射、数据清洗、格式转换等步骤,将不同来源的原始数据转换为系统内部的标准格式。

4、技术实现

下述演示过程是在保持 JoyAgent-JDGenie 框架稳定性的前提下,逐步集成信贷领域的专业化功能。实现过程涵盖开发环境搭建、数据准备、服务脚本开发、工具集成等关键环节。

4.1搭建 JoyAgent 多服务开发环境

JoyAgent-JDGenie 采用多服务架构设计,需要同时启动前端界面、后端服务、工具服务和 MCP 客户端四个独立的服务进程。这种架构虽然提供了良好的模块化和可扩展性,但也对开发环境的搭建提出了更高要求。

多服务架构配置

系统包含四个服务,每个服务运行在独立端口上。前端服务基于 React 技术栈提供用户交互界面;后端服务基于 Spring Boot 框架提供 Agent 执行引擎;工具服务基于 FastAPI 框架提供 Python 数据处理能力;MCP 客户端负责与外部 MCP 服务器的通信。

环境依赖管理

系统对运行环境有明确要求,需要 Java 17 及以上版本用于后端服务,Python 3.11 及以上版本用于工具服务,以及 Maven 和 uv 等构建工具。系统提供自动化脚本检测依赖项的安装状态和版本兼容性,并检查端口占用情况。

一键启动机制

系统提供统一启动脚本,实现四个服务的并行启动和健康检查。脚本执行配置验证、初始化设置、服务启动和健康检查等步骤,并提供详细的启动状态报告。

配置管理策略

系统采用分层配置策略,通过不同配置文件管理各层次的参数。后端配置文件管理 Spring Boot 应用的参数,包括大模型服务配置、数据库连接、MCP 服务器列表等。代码实现逻辑示例如下。

复制

工具服务通过环境变量文件管理 Python 服务的运行时配置,包括 API 配置、搜索服务密钥、文件系统路径等参数。配置示例如下。

复制

后续演示中,大模型选择通过 openrouter 接入 gemini-2.5-flash,可手动换切换其他任意支持 openai 规范的大模型。其次,为了支持联网搜索功能,可以从 https://serpapi.com/manage-api-key 获取下 api key,每月 2500 次免费查询。

4.2准备信贷尽调演示数据

为支撑演示案例的开发和功能验证,演示数据的设计遵循真实业务场景的数据结构和内容特点,选择上市公司作为数据来源,主要考虑其信息披露相对完整和规范,数据的公开性和可获得性较好。

企业基本信息数据(profile.json)

采用 JSON 格式存储企业的基础信息和风险评估数据,包含企业基础信息、经营概况、风险评估和汇总指标四个层次。企业基础信息涵盖工商登记要素和企业基本属性,经营概况包含股权结构和资本市场相关信息,风险评估从合规、法律、经营三个维度进行风险识别,汇总指标提供风险评分和综合评估结论。数据结构示例如下。

复制

财务数据(financials.json)

采用 JSON 格式存储企业的财务分析数据,主要分为公司概况、财务时间序列、财务结构、关键指标和对比分析五个层次。财务时间序列提供多期财务数据的历史趋势,财务结构分析资产负债构成,关键指标汇总财务比率和增长数据,对比分析提供行业基准参考。数据涵盖了信贷分析所需的盈利能力、偿债能力、营运能力、成长能力等维度。关键字段结构如下。

复制

年报文档数据(年报.md)

采用 Markdown 格式存储企业年报的完整文档内容,为 RAG 智能问答提供丰富的文本素材。文档按照标准年报格式组织,包含公司简介、管理层讨论与分析、公司治理、重要事项、财务报告等主要章节。其中管理层讨论与分析是重点章节,详细阐述了企业的商业模式、经营策略、市场地位、竞争优势、风险因素等关键信息。Markdown 格式便于文本解析和向量化处理,支持 RAG 系统进行高效的文档检索和语义匹配。

注:鉴于年报pdf文档布局较为复杂,为了避免解析不准确对最后结果的干扰,我提前对测试企业的25年半年报进行了md格式的预处理。

4.3开发 Python 数据服务脚本

Python 工具服务层是智能信贷尽调助手的数据处理基础,通过四个专业化脚本为 Java 工具类提供底层的数据查询、分析和处理能力。这些脚本采用模块化设计,每个脚本专注于特定的业务功能,通过 FastAPI 统一封装为 HTTP 接口,实现与 Java 层的标准化通信。

企业信息查询脚本(data_query_engine.py)

实现 DataQueryEngine 类,为企业信息和财务数据查询提供精确的数据服务。脚本采用“零大模型调用”的设计原则,确保完全基于原始 JSON 数据进行查询。支持企业基本信息查询、财务数据查询、时间序列数据提取和风险因素搜索等功能。企业信息查询支持分类查询和嵌套字段查询,财务数据查询支持特定周期查询、最新数据查询、全时间序列查询等多种模式。实现逻辑如下。

复制

财务数据分析脚本(data_query_engine.py 集成功能)

在数据查询引擎基础上,提供专业的财务分析功能,包括杜邦分析、时间序列分析和风险评估等功能。杜邦分析功能自动计算 ROE、ROA、权益乘数等关键指标,时间序列分析支持营收、利润、现金流等指标的历史趋势提取。关键实现如下。

复制

年报 RAG 服务脚本(rag_engine.py)

实现完整的 RAG 检索服务,为年报智能问答提供文档检索和语义匹配能力。RAGEngine 类负责向量索引构建和检索查询,采用 sentence-transformers 进行文本编码。RecursiveSemanticChunker 类实现基于标题的递归语义分块,按照层次结构进行文档分割,确保分块的语义完整性。检索实现如下。

复制

可视化图表脚本(visualization_engine.py)

为可视化工具提供专业的图表配置生成服务,支持 ECharts 和 Mermaid 两种图表格式。ChartEngine 类内置多种图表模板,包括营收净利润趋势图、杜邦分析树状图、风险因素饼图等。脚本采用模板化配置策略,通过数据替换生成图表配置代码。核心实现如下。

复制

这四个 Python 脚本通过 api_server.py 统一封装为 FastAPI 服务,提供标准化的 HTTP 接口,实现数据查询、RAG 检索、图表生成等功能的模块化封装,为 Java 工具类提供稳定、高效的底层数据服务支撑。

4.4实现 Java 工具类与 BaseTool 接口的集成

Java 工具类是连接 JoyAgent 框架与 Python 数据服务的关键桥梁,通过实现 BaseTool 标准接口,四个专业化工具类实现了与框架的无缝集成。每个工具类都遵循统一的设计模式:参数验证、HTTP 调用、专业格式化和异常处理,确保了工具的稳定性和可维护性。

BaseTool 接口规范与标准化实现

BaseTool 接口定义了四个关键方法,为工具的标准化封装提供了统一规范。getName()方法返回工具的唯一标识符,用于框架的工具注册和调用路由;getDescription()方法提供工具功能的自然语言描述,供大模型进行工具选择时参考;toParams()方法定义工具的输入参数结构,采用 JSON Schema 格式确保参数的标准化;execute()方法实现工具的业务逻辑,接收标准化的输入参数并返回处理结果。参数定义示例如下。

复制

三层架构的工具实现模式

每个 Java 工具类都采用“参数处理+HTTP 调用+结果格式化”的三层架构模式,实现了技术实现与业务逻辑的分离。参数处理层负责输入参数的验证、清洗和标准化;HTTP 调用层通过 OkHttp 客户端与 Python 服务进行异步通信,设置合理的超时时间和重试机制;结果格式化层将 Python 服务返回的原始数据转换为符合信贷业务规范的标准格式。实现框架如下。

复制

专业化的结果格式化机制

每个工具类都实现了针对信贷业务的专业化格式化逻辑,将技术数据转换为业务友好的展示格式。企业信息工具根据查询类别提供不同的格式化策略;财务数据工具实现多维度的财务数据格式化,支持经营业绩、资本效率、现金流分析等不同维度的专业展示;年报 RAG 工具采用结构化的文档片段展示,包含相似度评分、文档层次和内容摘要;可视化工具提供图表配置的详细说明和使用指导。格式化实现如下。

复制

统一的配置管理与环境适配

工具类采用统一的配置管理策略,通过静态常量定义 API 服务地址,支持不同部署环境的灵活适配。HTTP 客户端配置采用统一的超时策略,连接超时 30 秒、读取超时 60 秒,为不同复杂度的 API 调用提供合理的时间保障。日志记录采用统一的格式规范,包含请求 ID、工具名称、执行时间和关键参数。异常处理采用分层策略,网络异常、API 异常和业务异常分别处理,确保系统的稳定性。

4.5注册集成工具与系统配置

工具注册是 JoyAgent 框架与信贷专用工具集成的关键环节,通过 GenieController 的 buildToolCollection 方法实现工具的动态加载和统一管理。系统采用分层注册策略,既保持了框架内置工具的完整性,又实现了专业化工具的无缝集成。

ToolCollection 管理机制与动态注册

ToolCollection 作为工具管理的组件,提供了工具的统一注册、查询和调用接口。系统采用分层注册策略,首先注册框架内置工具包括文件处理、代码解释、报告生成、深度搜索等基础工具;然后注册信贷专用工具集,包括企业信息查询、财务数据分析、年报 RAG 问答、可视化图表四个专业化工具;最后注册 MCP 协议工具,支持外部服务的动态工具扩展。注册实现示例如下。

复制

AgentContext 统一注入与上下文管理

AgentContext 作为 Agent 执行的上下文环境,为所有工具提供统一的运行时信息和服务接口。每个工具在注册时都会注入 AgentContext 实例,获得 requestId 用于请求追踪、sessionId 用于会话管理、printer 用于结果输出等关键服务。上下文注入采用依赖注入模式,工具类通过 setAgentContext 方法接收上下文实例,避免了硬编码依赖;上下文管理采用线程安全设计,支持多请求并发处理,每个请求都有独立的上下文实例。上下文构建和工具集成的实现如下。

复制

工具级异常隔离与系统稳定性保障

系统采用多层异常处理策略,确保单个工具的异常不会影响整个系统的稳定性。工具注册层面采用 try-catch 隔离,信贷专用工具的注册失败不会影响框架内置工具的正常工作;工具执行层面采用异常捕获和友好提示,每个工具的 execute 方法都包含完整的异常处理逻辑;HTTP 调用层面采用超时控制和重试机制,通过 OkHttpClient 的超时配置避免长时间阻塞。异常处理机制如下。

复制

RequestId 全链路追踪与调试支持

系统实现了基于 RequestId 的全链路追踪机制,为分布式系统的调试和监控提供技术支撑。RequestId 在请求入口生成,贯穿整个处理流程包括 Agent 执行、工具调用、Python 服务处理等各个环节;每个工具类都通过 agentContext.getRequestId()获取请求标识,在日志记录中统一使用该标识进行标记;日志格式采用统一规范,包含 RequestId、工具名称、执行阶段、耗时统计、关键参数等信息。追踪格式如下。

复制

通过这种全面的工具注册和系统配置机制,实现了与 JoyAgent 框架的深度集成,既保持了框架的通用性和稳定性,又提供了专业化的信贷分析能力。

4.6端到端实战验证与效果展示

完成二开后,需要通过全面的验证测试确保功能的正确性和稳定性。验证过程采用分层测试策略,从通用能力完整性验证到专业报告生成验证,全面评估系统的功能完整性和工具调用效果。 

通用能力完整性验证

首先验证系统在集成信贷专用工具后,原有的通用 Agent 能力是否得到完整保持。测试采用“深度研究”模式,通过非信贷场景的复杂查询任务,验证系统的任务规划、工具选择和结果整合能力。

测试用例选择了“分析一下京东的最新财务报告,总结出关键数据以及公司发展情况”这一典型的财务分析任务,这也是官方示例中的演示问题之一。该任务具有一定的复杂性,需要系统进行多步骤的任务分解和工具协调,能够有效验证 Agent 的推理规划能力。

图片

如图所示,JoyAgent 首先对用户查询进行 reasoning 分析,识别出这是一个需要获取最新财务报告并进行分析总结的复合任务。基于任务复杂性,系统自动制定了详细的任务计划,包括四个关键步骤:获取财务报告、提取财务数据、分析公司发展情况、生成 Markdown 报告。

在具体的工具调用过程中,系统展现了工具选择能力。Agent 根据任务需求,自动选择并调用了搜索类工具和报告生成类工具。搜索类工具通过精确的搜索查询获取外部信息;如图所示,报告生成类工具将搜索获得的分散信息整理成结构化的分析报告,展现了内容创作和格式化能力。

图片

最终生成的报告题为“京东集团 2024 年全年及 2025 年第一、第二季度财务报告深度分析”,报告结构完整,包含了财务表现分析、营收增长情况、利润状况评估、现金流分析等财务指标,以及公司在不同业务板块的发展情况和未来展望。   

信贷尽调专业能力验证

完成通用能力验证后,重点验证系统在信贷尽调场景下的专业化能力,通过完整的尽调报告生成流程,测试四个信贷专业工具的协同工作效果。

提示词设计与任务规划

出于信贷业务的专业性要求,本次测试采用了下述结构化提示词。

复制

如下图所示,Agent 准确理解了提示词的要求,在任务计划部分精确地拆解出了四个关键步骤,分别对应封装的四个信贷专业工具。这种准确的任务分解完全符合预期要求,说明工具封装和注册机制成功,Agent 能够正确识别和规划信贷专业工具的使用。

图片

信贷专业工具调用执行

下图展示了“查询年报关键问题”步骤的具体执行过程。系统正确调用了年报查询工具,针对预设的问题进行 RAG 检索。在右侧的工作空间中,事实跟随功能实时显示了工具调用的结果。

图片

系统根据测试问题准确地检索到了“片段二”,相似度为 61.17%,并且明确标注了该片段在原年报文档中的具体位置:“(一) 一体化产业链条”。这个结果充分体现了在年报数据准备阶段设置的分块处理参数的有效性。RAG 系统能够准确定位到相关的文档片段,并提供相似度评分和层次化的位置信息,为后续的分析提供了可靠的事实依据。

这个执行过程展示了 RAG 技术在信贷专业场景中的关键价值:作为年报智能问答工具的技术基础,RAG 不仅能够准确响应业务查询,还能够提供详细的检索元数据,包括相似度评分和文档位置信息。这些技术特性对于信贷风控人员验证信息来源和评估信息可靠性具有重要意义。通过把 RAG 技术封装为专业工具,系统实现了复杂年报文档的语义检索能力,将非结构化的年报内容转换为可查询的知识库,大幅提升了年报信息的获取效率和准确性。

报告生成与文件输出

系统在完成所有信贷专业工具的调用后,调用了框架原生的文件写入工具,将生成的信贷预审报告保存为文件。如下图所示,在右侧工作空间的“文件”选项卡中,可以看到生成了完整的“牧原食品股份有限公司信贷预审报告”。

图片

生成的报告严格按照提示词中指定的结构组织,包含公司概况、风险识别、综合评价等部分,内容专业、结构清晰,满足信贷业务的实际需求。

5.1工程经验总结

提炼最小化侵入的方法论

经过完整的开发验证,证明了最小化侵入式扩展策略在企业级应用中的实用价值。该策略在不破坏原有系统稳定性的前提下,通过标准化的扩展机制实现专业化功能的快速集成。

标准化接口设计的复用价值

BaseTool 接口的四个关键方法构成了完整的工具抽象层,这种设计不仅适用于信贷领域的四个专业工具,更验证了接口的通用性。任何垂直领域的专业功能都可以通过这一接口标准进行封装,实现与框架的无缝集成。接口设计的关键在于对抽象层次的把握:既要足够通用以支持不同领域的需求,又要足够具体以提供明确的实现指导。

分层架构模式的工程实践

三层工具架构(API 调用+专业格式化+文件存储)在实际开发中展现了良好的可维护性和扩展性。分层设计实现了职责分离:技术实现层专注于外部服务调用,业务适配层负责数据格式转换,存储层提供数据持久化支持。分层架构使得每一层都可以独立演进,降低了系统的整体复杂度。

从复杂提示词到产品化改造

验证测试采用了复杂的结构化提示词,成功验证了自定义工具的调用有效性。但是在实际生产环境中,很难要求真实用户输入如此复杂的提示词。这就需要进行进一步的产品化改造:设计预置的提示词模板,用户只需通过占位符填空或标准按钮选择,输入企业名称等必要信息即可触发完整的尽调流程。这种产品化改造是从技术验证向业务应用转化的关键环节。

配置驱动的环境适配策略

通过分层配置文件管理,系统实现了在不同部署环境间的灵活切换。配置层次的合理划分包括:框架级配置管理服务参数,应用级配置管理业务参数,环境级配置管理部署参数。配置驱动策略简化了部署流程,为系统的持续集成提供了技术基础。

5.2多服务架构运维

解决多服务架构的运维复杂性

JoyAgent 的多服务并行架构在提供模块化优势的同时,也引入了分布式系统的复杂性。通过实际运维实践,总结出了一套复杂性管理机制。

服务依赖管理与故障隔离机制

多服务架构的挑战在于服务间依赖关系的管理。通过建立明确的服务启动顺序和健康检查机制,系统能够在启动阶段及时发现依赖问题。故障隔离策略确保每个服务的异常都被限制在其自身范围内,不会导致整个系统的崩溃。

全链路追踪的实际价值

RequestId 机制在分布式系统调试中展现了重要价值。通过统一的请求标识,开发人员能够快速定位问题发生的具体服务和处理环节,显著提升了问题排查效率。全链路追踪为系统的持续优化提供了数据基础。

自动化运维的工程实践

一键启动脚本和环境检测机制降低了系统的部署和维护成本。这种自动化实践减少了人为操作错误,提高了系统部署的一致性和可靠性。待开发完成之后,在生产环境使用时推荐Docker (容器化) + Kubernetes (编排) + CI/CD (自动化流程) + Prometheus/EFK (监控日志)的部署方案。

5.3系统演进思考

当前的 JoyAgent 架构已经实现了基本的多Agent 协作能力,但在实际应用中仍存在一些架构层面的优化空间。基于开发实践和技术发展趋势,可以从以下方向考虑架构的渐进式演进。

会话状态管理的完善

当前系统缺乏完整的会话状态管理机制,每次交互都是独立的请求-响应模式。可以引入会话数据持久化机制,通过数据库存储会话历史和上下文信息,使 Agent 能够理解用户的历史交互,实现真正的多轮对话能力。这种改进不仅提升了用户体验,也为复杂任务的分阶段处理提供了技术基础。

工具调用的智能化升级

现有的工具调用机制基于静态的工具定义和参数映射,未来可以考虑进一步发展为动态工具发现和自适应参数推理。通过引入工具使用的上下文学习机制,Agent 可以根据历史调用效果优化工具选择策略,提高工具调用的准确性和效率。

多模态数据处理能力

当前架构主要针对文本数据处理进行了优化,但实际业务场景往往涉及图片、表格、文档等多种数据类型。可以在保持现有架构稳定性的基础上,扩展多模态数据处理的工具集,通过统一的数据抽象层处理不同类型的输入数据。

分布式部署的架构优化

现有的多服务架构在单机部署时表现良好,但在分布式环境中可能面临服务发现、负载均衡、故障恢复等挑战。可以考虑引入服务注册与发现机制、配置中心、分布式链路追踪等基础设施组件,提升系统在生产环境中的可靠性和可扩展性。

Agent 协作模式的扩展

当前的 Agent 主要采用顺序执行模式,可以探索并行协作、层次化协作等更复杂的 Agent 协作模式。通过任务分解和结果合并机制,实现多个 Agent 的并发处理,提升复杂任务的处理效率。

6、写在最后

Agent 与工作流并非是个二选一的问题。在真实的生产环境中,最有效的方案往往是根据业务需求,将两者的能力进行组合——用工作流编排固定的主流程,在关键的决策或探索环节,交由Agent来“破局”,实现刚性与弹性的平衡。

其次,Agent的工程实践,本质是一门关乎“体感”的艺术。真正的理解来源于动手操作。通过对JoyAgent这类成熟框架的二次开发,可以更好的体会到分层、解耦与扩展性设计的价值。

Anyway, 技术的本质是为业务创造价值,不应为了追求更复杂的框架或所谓的技术领先性,而本末倒置。最后还是引用下 Manus 那话:“Less structure, more intelligence” 

相关资讯

京东内部的智能体数量已超 1.4 万个,JoyAgent 2.0 发布

JoyAgent 智能体平台已接入数十个大模型,预置了智能体配置模版,100 多个行业解决方案模版,以及 1000 多种插件,用户可根据自己的场景需求,选择合适的模版,快速开始构建满足自有业务流程的智能体。
5/23/2025 3:45:21 PM
汪淼

行业首个 100% 开源的企业级智能体,京东云开源 JoyAgent

AI在线 7 月 26 日消息,京东云今日宣布正式开源 JoyAgent 智能体。 作为行业首个 100% 开源的企业级智能体,实现了产品级开源,包括前端、后端、框架、引擎和核心子智能体。 开源产品历经京东内部大规模场景锤炼,与平台完全解耦,用户可以本地独立部署。
7/26/2025 10:28:28 AM
浩渺

这篇 AI Agent 漫游指南,带你建立全面的科技史观

作者 | kong以OpenAI o1与DeepSeek R1为代表的"类Agent"模型、OpenAI DeepResearch为代表的“真Agent”模型,正在重构AI Agent的技术范式。 Agentic Workflow的王座还没坐热,强化学习驱动的端到端Agent模型训练已呼啸而来。 未来趋势已指明:模型即产品,工程化Agent的命运将如何?
5/27/2025 10:05:00 AM
腾讯技术工程
  • 1