Solon ReActAgent 落地发票识别与智能报销
业务方案1.1 目标拍照后自动识别并填单常见合规规则自动校验重复报销可拦截异常单附上下文转人工1.2 流程改造改造前员工贴发票 → 填写报销单 → 主管审批 → 财务初审 → 财务复审 → 出纳打款改造后员工拍照上传 → Agent 识别填单合规检查 → 主管审批 → 通过后打款↓异常 → 人工介入附检查摘要二、技术落地ReActAgent 实现说明这是典型业务闭环正确入口是 ReActAgent 领域工具 HITL。不要使用虚构的 implements Tool、Harness.call()、AiInterceptor、memory.search()。2.1 模块结构com.example.finance/├── tools/│ ├── OcrTools.java # 发票 OCR│ ├── ComplianceTools.java # 合规与重复报销检查│ └── PaymentTools.java # 打款执行├── hitl/│ └── FinanceHitlController.java # 超标/异常审批└── ReimbursementAgentApp.java2.2 工具定义真实 APIimport org.noear.solon.ai.annotation.ToolMapping;import org.noear.solon.ai.chat.tool.AbsToolProvider;import org.noear.solon.annotation.Param;/** 发票 OCR 工具 */public class OcrTools extends AbsToolProvider {ToolMapping(description “识别发票图片返回发票代码、号码、日期、金额、购买方、销售方等字段”)public String ocr_invoice(Param(description “发票图片 base64 或文件 ID”) String imageRef) {// 生产环境调用 OCR 服务return “”{“code”:“044001900111”,“number”:“12345678”,“date”:“2026-06-18”,“amount”:1200.00,“tax”:72.00,“total”:1272.00,“buyer”:“某某科技有限公司”,“seller”:“某某酒店”,“category”:“住宿”}“”;}}/** 合规检查工具 */public class ComplianceTools extends AbsToolProvider {ToolMapping(description “检查发票真伪、抬头、是否重复报销返回合规结论”)public String check_invoice(Param(description “发票号码”) String invoiceNo,Param(description “购买方名称”) String buyer,Param(description “价税合计”) double total) {// 生产环境税务查验接口 已报销库查询 公司抬头校验if (“12345678”.equals(invoiceNo) total 0) {return “”{“invoiceNo”:“12345678”,“titleOk”:true,“duplicate”:false,“taxVerified”:true,“result”:“PASS”,“message”:“合规检查通过”}“”“;}return “””{“result”:“REJECT”,“message”:“发票校验失败请转人工”}“”;}ToolMapping(description 按费用类别检查是否超过公司报销标准) public String check_policy( Param(description 费用类别如住宿/交通/餐饮) String category, Param(description 金额) double amount) { if (餐饮.equals(category) amount 400) { return {\result\:\OVER_LIMIT\,\limit\:400,\amount\: amount ,\message\:\餐饮超标准需主管确认\}; } return {\result\:\OK\,\message\:\符合标准\}; }}/** 打款工具敏感操作 */public class PaymentTools extends AbsToolProvider {ToolMapping(description “提交报销打款。仅在合规通过且审批完成后调用”)public String submit_payment(Param(description “报销单号”) String reportId,Param(description “收款人”) String employee,Param(description “打款金额”) double amount) {return “{“status”:“submitted”,“reportId”:” reportId “”,“employee”:“” employee “”,“amount”: amount “}”;}}2.3 组装报销 Agentimport org.noear.solon.ai.agent.AgentSession;import org.noear.solon.ai.agent.react.ReActAgent;import org.noear.solon.ai.agent.react.intercept.HITLInterceptor;import org.noear.solon.ai.agent.session.InMemoryAgentSession;import org.noear.solon.ai.chat.ChatModel;ChatModel chatModel LlmUtil.getChatModel();HITLInterceptor hitl new HITLInterceptor().onTool(“submit_payment”, (trace, args) - {// 打款一律人工确认也可按金额阈值判断return “报销打款需财务确认”;});ReActAgent agent ReActAgent.of(chatModel).role(“”你是企业智能报销助手。处理步骤1. 先 OCR 识别发票2. 再做合规检查真伪/抬头/重复报销3. 再检查费用标准4. 全部通过后生成报销摘要需要打款时调用 submit_payment5. 任一检查失败明确列出原因并建议转人工“”).defaultToolAdd(new OcrTools()).defaultToolAdd(new ComplianceTools()).defaultToolAdd(new PaymentTools()).defaultInterceptorAdd(hitl).modelOptions(o - o.temperature(0.0)).maxTurns(12).autoRethink(true).build();AgentSession session InMemoryAgentSession.of(“expense_report_001”);String prompt “”员工张三提交差旅报销部门销售部。已上传 1 张住宿发票图片文件 IDimg_001。请完成识别、合规检查并在可打款时提交支付。“”;String result agent.prompt(prompt).session(session).call().getContent();2.4 重复报销怎么做不要虚构 Memory memory; memory.search(…)。正确做法在 check_invoice 工具内部查“已报销发票库”DB/Redis报销成功后由支付/归档服务把发票号写入已报销库下次再报同一票号时工具直接返回 duplicatetrue// check_invoice 内部伪代码if (reimbursedInvoiceRepository.exists(invoiceNo)) {return “{“result”:“REJECT”,“message”:“该发票已被报销过”}”;}2.5 超标场景当 check_policy 返回 OVER_LIMIT 时Agent 不应直接打款应生成摘要给主管若你希望“超标也允许打款但必须审批”可在 HITL 策略里根据参数返回审批原因HITLInterceptor hitl new HITLInterceptor().onTool(“submit_payment”, (trace, args) - {double amount Double.parseDouble(args.get(“amount”).toString());if (amount 2000) {return “单笔报销超过 2000需财务负责人审批”;}return “常规报销打款确认”;});三、业务效果定性录入从手工填单变成 OCR 自动填字段合规检查可覆盖全量票据而不是抽检重复报销可在工具层硬拦截财务从“逐张核对”转向“异常复核”真实处理示例员工上传差旅住宿发票Agent 链路ocr_invoice(img_001) → 金额 1,272类别住宿check_invoice → PASScheck_policy(住宿, 1272) → OKsubmit_payment → HITL 挂起财务批准后续传完成打款提交若餐饮票 500 元、标准 400 元OCR 成功合规通过check_policy 返回超标准Agent 输出“需主管确认超标 100 元”不直接打款四、同类场景扩展业务场景 核心工具 关键规则 业务价值采购发票校验 发票识别 订单匹配 三单匹配 对账效率提升备用金核销 发票识别 预算查询 超标预警 核销周期缩短客户开票 开票 API 商品匹配 额度控制 降低开票错误凭证生成 发票识别 科目映射 借贷平衡 制证提速进项税认证 发票识别 税务接口 可抵扣判断 减少人工认证五、落地建议先做自动填单 人工确认准确率稳定后再放开自动提交

相关新闻

六自由度航空模拟平台:高保真地面仿真 赋能航空训练与测试提质增效

六自由度航空模拟平台:高保真地面仿真 赋能航空训练与测试提质增效

六自由度航空模拟平台:高保真地面仿真 赋能航空训练与测试提质增效 随着民用航空、通用航空及无人机产业的快速发展,飞行人才培养、机载设备研发验证的需求持续攀升。传统航空训练与测试高度依赖真机试飞,不仅运营成本高昂、受气象空域条件限制严格,还存在一定的安全风险;…

2026/7/23 12:46:21 阅读更多 →
Nginx location与proxy_pass配置详解与实战技巧

Nginx location与proxy_pass配置详解与实战技巧

1. Nginx location与proxy_pass基础概念解析 在Nginx配置中,location和proxy_pass是两个最核心的指令,它们共同构成了反向代理的基础架构。location用于匹配客户端请求的URI路径,而proxy_pass则负责将匹配到的请求转发到后端服务器。 locati…

2026/7/23 12:46:05 阅读更多 →
CentOS 7下Java技术栈环境搭建与配置指南

CentOS 7下Java技术栈环境搭建与配置指南

1. 环境准备与基础组件安装在搭建这套技术栈之前,我们需要先准备好基础环境。我选择CentOS 7作为操作系统平台,因为它兼具稳定性和广泛的社区支持。以下是基础组件的安装步骤:1.1 JDK安装与配置Java环境是整个技术栈的基础,这里我…

2026/7/23 12:44:33 阅读更多 →

最新新闻

能源产业数字化创新平台扩容合作,中网B2B战略定位咨询升级企业市场战略定位

能源产业数字化创新平台扩容合作,中网B2B战略定位咨询升级企业市场战略定位

在当今快速发展的能源产业中、数字化创新平台的扩容正成为行业转型的核心力量。这些平台除了为企业提供了数据共享与资源整合的渠道市场响应能力。中网依靠优化B2B战略定位咨询、帮助企业深入理解市场需求市场战略。这让企业在激烈竞争中更具备优势,有效推动智能化进…

2026/7/23 12:59:17 阅读更多 →
智能装备研发制造企业突破增长瓶颈,中网B2B战略咨询重构长效发展战略定位

智能装备研发制造企业突破增长瓶颈,中网B2B战略咨询重构长效发展战略定位

在当前经济环境下,智能装备领域的研发与制造企业正遇到不少增长难题。要找出解决之道,这意味着企业不仅要重视技术革新,也需要对市场需求作出切实调整。中网B2B的顾问服务依托专业的市场分析与行业洞察,帮助企业重新定位发展目标。…

2026/7/23 12:59:17 阅读更多 →
TM4C1294 GPIO寄存器配置与中断处理实战指南

TM4C1294 GPIO寄存器配置与中断处理实战指南

1. 项目概述与核心价值 在嵌入式开发的日常工作中,GPIO(通用输入输出)的配置与中断处理,就像是我们与物理世界对话的“第一道门”。无论是点亮一个LED,还是读取一个按键,或是与传感器进行通信,都…

2026/7/23 12:59:17 阅读更多 →
VMware虚拟机搭建CentOS开发环境完整指南

VMware虚拟机搭建CentOS开发环境完整指南

1. 虚拟机环境搭建基础作为一名有十年Linux系统管理经验的工程师,我经常需要为团队搭建测试环境。VMware Workstation Pro作为业界最成熟的虚拟化平台之一,其稳定性和兼容性在开发测试场景中表现尤为突出。最新17.5.2版本对Linux发行版的支持度达到98%&a…

2026/7/23 12:59:17 阅读更多 →
InterMT:多模态大语言模型理解与生成的协同优化

InterMT:多模态大语言模型理解与生成的协同优化

1. 项目背景与核心问题在2025年NeurIPS会议上,一篇题为《InterMT: 揭秘多模态理解与生成的协同之路》的Spotlight论文引发了广泛关注。这篇论文直指当前多模态大语言模型(MLLMs)发展的核心瓶颈:理解与生成能力之间的割裂问题。我们观察到,现有…

2026/7/23 12:59:17 阅读更多 →
Stable Diffusion提示词反推到底有多难?揭秘Top 5反推工具实测数据与失效场景避坑指南

Stable Diffusion提示词反推到底有多难?揭秘Top 5反推工具实测数据与失效场景避坑指南

更多请点击: https://intelliparadigm.com 第一章:Stable Diffusion提示词反推到底有多难?揭秘Top 5反推工具实测数据与失效场景避坑指南 提示词反推(Prompt Inversion / Prompt Recovery)并非简单逆向解码&#xff0…

2026/7/23 12:58:17 阅读更多 →

日新闻

从单点好评到指数级传播:AI副业主理人必须掌握的4层口碑渗透模型(含ROI测算表)

从单点好评到指数级传播:AI副业主理人必须掌握的4层口碑渗透模型(含ROI测算表)

更多请点击: https://intelliparadigm.com 第一章:从单点好评到指数级传播:AI副业主理人必须掌握的4层口碑渗透模型(含ROI测算表) 当AI副业主理人不再仅满足于单次服务交付,而是主动构建可复用、可裂变、可…

2026/7/23 0:00:25 阅读更多 →
AI写作开头钩子设计:为什么你的AI文案完读率不足18%?——基于2,346篇A/B测试报告的归因分析

AI写作开头钩子设计:为什么你的AI文案完读率不足18%?——基于2,346篇A/B测试报告的归因分析

更多请点击: https://codechina.net 第一章:AI写作开头钩子设计:为什么你的AI文案完读率不足18%?——基于2,346篇A/B测试报告的归因分析 在对2,346篇跨行业AI生成文案的A/B测试数据进行聚类分析后,我们发现&#xff1…

2026/7/23 0:01:26 阅读更多 →
Chitchatter完整指南:免费开源的终极点对点安全聊天工具

Chitchatter完整指南:免费开源的终极点对点安全聊天工具

Chitchatter完整指南:免费开源的终极点对点安全聊天工具 【免费下载链接】chitchatter Secure peer-to-peer chat that is serverless, decentralized, and ephemeral 项目地址: https://gitcode.com/gh_mirrors/ch/chitchatter Chitchatter是一款革命性的安…

2026/7/23 0:01:26 阅读更多 →

周新闻

Go语言静态资源打包方案对比与实践指南

Go语言静态资源打包方案对比与实践指南

1. 项目背景与核心需求在Go语言开发中,我们经常需要处理静态资源文件的打包问题。无论是Web应用的模板文件、前端资源,还是配置文件、证书等,都需要随程序一起分发。传统做法是将这些文件与编译后的二进制文件放在同一目录下,但这…

2026/7/22 8:58:19 阅读更多 →
Go语言实现高性能LDAP认证服务的架构与实践

Go语言实现高性能LDAP认证服务的架构与实践

1. 项目背景与核心价值LDAP(轻量级目录访问协议)作为企业级身份认证的黄金标准,已经服务了超过80%的财富500强公司。我在金融科技领域实施统一认证体系时,发现传统Java方案存在启动慢、内存占用高等痛点。而Go语言凭借其协程并发模…

2026/7/22 19:43:43 阅读更多 →
【AI面试官实战指南】:用ChatGPT模拟10类高频技术岗面试,3天提升应答精准度92%

【AI面试官实战指南】:用ChatGPT模拟10类高频技术岗面试,3天提升应答精准度92%

更多请点击: https://intelliparadigm.com 第一章:AI面试官实战指南的核心价值与适用场景 AI面试官并非替代人类HR的“黑箱工具”,而是以可解释、可审计、可迭代的方式,赋能招聘全链路的关键基础设施。其核心价值在于将主观经验沉…

2026/7/22 12:54:44 阅读更多 →

月新闻