1. 从标题拆解这个项目到底在做什么1.1 三个关键词锁定核心领域看到“华为云智果 AgentArts 金融信贷AI智能体实战”这个标题我第一反应是把它拆成三段来看平台层是华为云智果 AgentArts业务层是金融信贷技术层是AI智能体Agent。这三段拼在一起指向的其实是一个非常具体的落地场景——用智能体编排平台把信贷业务里那些重复、规则密集、需要多步判断的环节自动化掉。信贷业务为什么适合用智能体来做因为它天然是“多步骤多数据源多判断分支”的流程。一笔贷款从进件到放款中间要过反欺诈、身份核验、征信解析、额度测算、风险定价、合同生成这几道关每一道关都要调不同的数据、跑不同的规则。传统做法是写死一套工作流引擎规则一变就得改代码重新上线。而智能体的思路是把每个环节做成一个可编排的“能力节点”由大模型来做意图理解和流程调度规则调整只需要改提示词或换节点迭代速度完全不是一个量级。这篇学习笔记要解决的就是怎么在 AgentArts 上把一个信贷智能体从零搭起来、跑通、并且能应对真实业务里的各种意外。适合谁看我觉得三类人最对口一是做金融科技产品、正在评估智能体平台能不能落地的产品经理二是手里有信贷系统、想引入AI能力但不知道从哪下手的后端或算法工程师三是刚接触 AgentArts、想找个完整案例练手的技术爱好者。哪怕你之前没碰过智能体只要懂基本的接口调用和业务流程跟着走一遍也能搭出个能跑的原型。1.2 为什么选智能体而不是传统工作流这里得说清楚一个选型逻辑不然容易被人问“你直接用规则引擎不就行了”。信贷审批的传统工作流引擎比如常见的流程编排框架本质是确定性状态机输入A必然走分支B规则写死在配置里。它的优点是稳定、可审计、结果可复现缺点是僵化。客户上传的是一张手写收入证明的照片传统引擎要么识别失败直接拒件要么得单独接一个OCR服务再写一堆后处理逻辑。智能体的价值在于处理非结构化输入和模糊判断。大模型能读懂“月收入大概一万五左右年底有奖金”这种自然语言能根据上下文推断客户没说出口的信息能在多个数据源返回冲突时做一个合理的取舍。这在信贷场景里太重要了——真实客户提交的材料五花八门征信报告格式各家银行还不一样纯靠规则去穷举根本不现实。但智能体也不是万能的。我的经验是强合规、强审计的环节比如最终授信决策、利率定价必须保留确定性规则兜底智能体只负责前置的信息抽取、意图识别和流程调度。这个边界如果划不清楚后面监管检查的时候会很麻烦。AgentArts 这类平台的好处是它允许你把确定性节点和智能体节点混编在同一个工作流里该用规则的地方用规则该用模型的地方用模型这个灵活性是纯规则引擎给不了的。1.3 整体架构长什么样在动手之前先把脑子里那张图画清楚。基于我对 AgentArts 这类平台的理解和实际搭过的经验一个信贷智能体的典型架构分四层接入层负责接收客户提交的申请材料可能是APP表单、H5页面、或者客服系统转过来的对话。这一层要做的是把各种来源的输入统一成平台能处理的格式。编排层这是 AgentArts 的核心你在这里定义智能体的“大脑”——它有哪些工具Tool可以调、遇到什么情况走什么分支、什么时候需要人工介入。编排层通常用可视化画布或者DSL来描述。能力层具体干活的节点。包括文档解析OCR版面分析、征信报告结构化、反欺诈规则查询、额度计算函数、风险模型打分等。每个能力封装成一个独立的API或函数由编排层按需调用。数据与合规层所有涉及客户敏感信息的操作都要在这一层留痕。信贷业务对数据安全的要求极高哪些字段可以给模型看、哪些必须脱敏、调用日志保留多久都得提前设计好。这四层里编排层是 AgentArts 最值钱的部分也是这篇笔记重点要讲透的。能力层的东西很多是现成的平台自带或第三方API接入层和数据层则更多是工程规范问题。把编排层玩明白了整个智能体就活了。2. 核心细节解析与实操要点2.1 AgentArts 里几个必须搞懂的概念在 AgentArts 上搭智能体有几个概念如果理解偏了后面会一直踩坑。我用大白话解释一遍智能体Agent不是一个模型而是一个“带工具的决策者”。你可以把它想象成一个刚入职的信贷专员他懂业务规则系统提示词手边有一堆系统账号工具遇到拿不准的事会请示主管人工介入节点。AgentArts 里的智能体就是这个专员的数字化身。工具Tool是智能体能调用的外部能力。在信贷场景里工具可能是“查询征信接口”“计算月供”“发送短信验证码”这类具体动作。定义工具的时候描述字段description比参数本身还重要——大模型是靠这段描述来判断什么时候该调这个工具的。我见过太多人工具描述写得含糊结果模型该调的时候不调、不该调的时候乱调。工作流Workflow是把多个节点串起来的编排逻辑。AgentArts 支持两种模式一种是自主模式你只给智能体目标和工具让它自己决定怎么走另一种是编排模式你画好流程图智能体在固定路径上执行。信贷业务我强烈建议用编排模式为主、自主模式为辅——核心流程必须可控只在信息抽取这种环节放权给模型自主判断。记忆Memory分短期和长期。短期记忆是当前对话的上下文比如客户刚说了“我想贷20万”后面几轮对话里智能体得记住这个数。长期记忆是跨会话的比如客户上次咨询过什么产品。信贷场景里长期记忆要慎用涉及个人信息留存合规问题一般只存脱敏后的会话摘要。知识库Knowledge Base用来挂载产品文档、费率表、常见问题这些静态知识。AgentArts 支持向量检索客户问“你们装修贷利率多少”的时候智能体会去知识库里捞相关内容。这里有个坑知识库的切片策略直接影响召回质量。费率表这种结构化内容按表格行切片比按固定字数切片效果好得多。2.2 信贷智能体的节点设计清单一个完整的信贷进件智能体我通常会设计这么几类节点按执行顺序排节点类型作用关键配置常见坑意图识别判断客户想干嘛咨询/申请/查询进度意图列表要穷举别漏意图太细导致模型分不清信息抽取从对话或文档里抽关键字段字段定义要带示例没做格式校验抽出来是脏数据身份核验调三方接口验证身份超时和重试策略接口挂了没兜底流程卡死反欺诈查询查黑名单、多头借贷命中规则后的分支规则太严误杀好客户额度测算根据收入和负债算额度计算公式要可配置硬编码公式改一次发一次版风险定价输出利率和期限模型版本管理模型更新后没回归测试合同生成填充模板生成合同模板变量映射变量名对不上导致空白人工复核高风险件转人工转人工的触发条件条件设太宽人工忙不过来这张表是我踩过坑之后总结的每个节点看着简单真到生产环境里都有细节要抠。比如信息抽取节点很多人直接让模型输出JSON结果模型偶尔会多输出一段解释文字导致解析失败。稳妥的做法是在提示词里明确要求“只输出JSON不要任何其他内容”并且在节点后面加一个格式校验的兜底逻辑。2.3 提示词工程的信贷特化技巧给信贷智能体写提示词和写通用聊天机器人的提示词完全是两码事。通用场景追求“回答得自然”信贷场景追求**“判断得准确、输出得规范、边界守得住”**。我总结了几个特化技巧第一角色设定要具体到岗位。不要写“你是一个AI助手”要写“你是一名有五年经验的银行信贷初审专员负责对客户提交的申请材料做初步合规检查”。角色越具体模型的行为越收敛。第二输出格式用Schema约束。AgentArts 支持在提示词里嵌入JSON Schema强制模型按结构输出。比如信息抽取节点我会定义清楚每个字段的类型、是否必填、取值范围。这样即使模型想“自由发挥”也会被Schema框住。第三边界情况要显式列举。信贷场景里最怕模型“自作主张”。提示词里必须写清楚遇到无法判断的情况输出“需人工复核”并说明原因禁止猜测。我一般会列一个负面清单比如“禁止在未核验身份的情况下透露任何额度信息”“禁止对客户的还款能力做主观评价”。第四少样本示例要覆盖长尾。给模型看几个正确示例是基本操作但信贷场景里真正难的是那些“看起来像正常件但其实是欺诈”的案例。我会在提示词里放两三个这类边界示例让模型学会识别可疑模式。提示提示词不是写一次就完事的。上线后要持续收集bad case每周迭代一版。我习惯给每版提示词打标签方便出问题时回滚。2.4 数据脱敏与合规的硬性要求这一块必须单独拎出来讲因为信贷是强监管行业数据合规出问题不是技术故障是法律风险。在 AgentArts 上做信贷智能体脱敏要在三个位置同时做入口脱敏客户提交的身份证号、银行卡号、手机号在进入智能体之前就要做掩码处理。模型看到的应该是“310***********1234”这种形式而不是完整号码。传输脱敏智能体调用外部工具时如果工具不需要完整信息就传脱敏后的。比如查征信只需要姓名和身份证号后四位加一个哈希值没必要传全量。日志脱敏AgentArts 会记录调用日志用于排查问题这些日志里如果包含敏感字段必须配置自动脱敏规则。我见过有人排查问题时直接把日志导出来发到群里里面全是客户信息这是大忌。另外模型的上下文窗口里不要放超过必要的信息。有些开发者图省事把客户整份征信报告塞进提示词让模型自己找这不仅浪费token还增加了信息泄露面。正确做法是先用结构化工具把征信报告解析成关键字段只把需要的字段喂给模型。3. 实操过程与核心环节实现3.1 环境准备与平台接入动手第一步是把环境搭起来。AgentArts 是云平台理论上开箱即用但信贷项目有几个前置动作不能省账号与权限信贷项目通常涉及多个角色——开发、测试、业务复核、审计。在平台里要提前把角色分好开发账号不能有生产数据的访问权限。我一般会建三个环境开发环境用模拟数据测试环境用脱敏后的真实数据生产环境才接真实接口。环境之间的配置用变量管理别硬编码。网络与接口信贷智能体要调的外部接口不少——征信、反欺诈、短信、合同存证。这些接口有的在内网、有的在公网AgentArts 的出口网络策略要提前配好。我的经验是把所有外部调用都封装成平台内的工具而不是让智能体直接发HTTP请求。封装成工具的好处是超时、重试、熔断这些逻辑可以统一管理出问题也好排查。数据源准备如果要用知识库得先把产品文档、费率表整理成平台能吃的格式。我一般用Markdown整理表格用标准Markdown表格这样切片效果最好。PDF直接扔进去也行但解析质量参差不齐重要文档建议人工校对一遍。3.2 第一个可运行智能体的搭建步骤下面是我实际搭一个“信贷咨询预审”智能体的步骤你可以照着走一遍。这个智能体不涉及最终授信只做咨询应答和初步资格判断适合练手。第一步定义智能体的系统提示词。在 AgentArts 的智能体配置页把角色、能力边界、输出规范写清楚。我用的模板大致是你是某银行信贷业务的智能助手负责解答客户关于贷款产品的咨询并对客户的基本资格做初步判断。 你的能力范围 1. 解答产品利率、期限、所需材料等问题从知识库检索 2. 收集客户的基本信息年龄、收入、现有负债 3. 根据预设规则判断客户是否符合基本准入条件 你不可以做的事 - 不承诺任何具体额度或利率 - 不收集身份证号、银行卡号等敏感信息 - 遇到无法判断的情况引导客户联系人工客服 输出要求 - 涉及金额和利率时必须注明“以最终审批为准” - 判断客户资格时输出结构化的判断结果和依据第二步挂载知识库。把产品文档上传配置检索参数。这里有个参数叫“召回条数”我一般设3到5条。设太少可能漏掉关键信息设太多会稀释相关性模型容易被无关内容带偏。第三步定义工具。这个练手智能体需要两个工具一个是“资格预判函数”输入年龄、月收入、现有月供输出是否符合基本准入另一个是“转人工”工具触发后把会话转给人工客服。工具定义里参数的类型和描述要写清楚特别是数值型参数要注明单位和范围。第四步编排对话流程。用编排模式画一个简单的流程客户提问 → 意图识别 → 如果是产品咨询走知识库检索 → 如果是资格咨询走信息收集 → 收集完调资格预判工具 → 输出结果。每个节点之间用条件边连接条件用自然语言描述比如“当客户提供了收入和负债信息时”。第五步调试与发布。AgentArts 有调试面板可以模拟客户对话。我一般会准备一组测试用例覆盖正常咨询、信息不全、超出能力范围、恶意提问这几种情况。全部通过后再发布到测试环境。3.3 关键节点的参数配置实录拿信息抽取节点举例这是信贷智能体里最核心也最容易出问题的节点。我的配置是这样的输入是客户的对话文本或上传的文档解析结果输出是一个结构化的JSON。在 AgentArts 的节点配置里我会定义一个输出Schema{ type: object, properties: { name: {type: string, description: 客户姓名}, age: {type: integer, minimum: 18, maximum: 70}, monthly_income: {type: number, description: 月收入单位元}, existing_debt: {type: number, description: 现有月供单位元}, loan_purpose: {type: string, enum: [装修, 购车, 教育, 经营, 其他]}, missing_fields: {type: array, items: {type: string}} }, required: [name, age] }这个Schema有几个设计考量age设了上下限因为信贷产品对年龄有硬性要求模型抽出来超范围的值直接标记为异常loan_purpose用枚举避免模型输出“想借钱装修房子”这种自由文本后面没法做分支判断missing_fields字段用来记录哪些信息没抽到方便后续追问。提示词里我会加一句“如果某个字段在文本中没有明确提及不要猜测将其加入missing_fields数组。”这一句能挡掉大部分幻觉问题。3.4 多轮对话的状态管理信贷申请很少一轮对话就能完成客户可能先问利率再问需要什么材料最后才决定申请。这中间智能体要记住客户之前说过的信息不能每轮都重新问。AgentArts 的短期记忆默认是开启的但默认配置不一定够用。我的做法是显式定义一个会话状态对象把关键字段存进去每轮对话开始时把状态注入提示词。状态对象大概长这样{ customer_profile: {name: null, age: null, income: null}, conversation_stage: 咨询, collected_docs: [], pending_questions: [收入情况, 贷款用途] }conversation_stage这个字段特别有用它标记了客户当前处于哪个阶段咨询、信息收集、预审、转人工智能体根据阶段决定下一步动作。没有这个字段的话模型很容易在客户已经进入信息收集阶段了还在回答产品咨询体验很割裂。状态更新用 AgentArts 的“状态写入”节点在每次信息抽取后把新字段合并进去。注意合并策略要定义清楚新值覆盖旧值还是只在旧值为空时写入信贷场景我一般用后者防止客户改口导致信息混乱改口的情况走人工确认。4. 常见问题与排查技巧实录4.1 模型不按预期调用工具怎么办这是最高频的问题。表现是明明定义了工具模型该调的时候不调或者调了但参数传错。排查思路分三层第一层检查工具描述。工具描述要回答三个问题这个工具是干什么的、什么时候该用、参数是什么意思。我见过一个“查询征信”工具的描述只写了“查询征信”模型根本不知道什么条件下该调。改成“当需要获取客户信用记录以评估还款能力时调用输入客户姓名和身份证号后四位”之后调用准确率明显提升。第二层检查提示词里的工具使用指引。光有工具描述不够系统提示词里要明确写“在什么阶段必须调用什么工具”。比如“在收集完客户收入和负债信息后必须调用资格预判工具不得自行判断”。第三层检查参数类型。模型对参数类型很敏感。如果一个参数是数字但描述里没写单位模型可能传“一万五”这种字符串。参数描述里写清楚“单位元纯数字”能减少很多解析错误。如果三层都检查了还是不行可以试试在提示词里加一个调用示例把“客户说XXX → 调用工具YYY参数ZZZ”这个映射写出来。少样本示例对工具调用的引导效果非常直接。4.2 信息抽取结果不稳定怎么破同一个客户材料今天抽出来月收入是15000明天变成15000.0后天变成“约一万五”。这种不稳定性在信贷场景里是致命的因为下游的额度计算对数值精度有要求。我的解决方案是在抽取节点后面加一个标准化节点。标准化节点做三件事数值字段统一转成浮点数并保留两位小数枚举字段做映射“装修房子”映射到“装修”文本字段做去空格和繁简转换。标准化节点用代码实现不依赖模型保证确定性。另外温度参数temperature要调低。AgentArts 里模型调用可以配温度信息抽取这种任务我一般设0.1甚至0。温度越低输出越稳定代价是创造性下降但抽取任务本来就不需要创造性。还有一个容易被忽略的点输入文本的质量。如果客户上传的是模糊照片OCR出来的文本本身就带错别字模型再厉害也抽不准。这种情况要在OCR节点后面加一个置信度过滤低于阈值的直接转人工别硬抽。4.3 接口超时和异常兜底信贷智能体依赖的外部接口很多任何一个挂了都可能让整个流程卡住。我踩过的坑包括征信接口响应慢导致对话超时、反欺诈接口返回格式变了导致解析失败、短信接口限流导致验证码发不出去。兜底策略我总结成一张表异常类型表现兜底方案接口超时超过设定时间无响应重试2次仍失败则转人工并记录接口报错返回错误码根据错误码分类可重试的重试不可重试的转人工返回格式异常解析失败记录原始返回走降级逻辑如跳过该环节限流返回限流标识排队重试同时给客户提示“系统繁忙请稍候”数据为空接口正常但无数据区分“查无此人”和“系统异常”前者正常处理后者转人工关键原则是任何外部依赖都不能让主流程崩溃。每个工具调用节点都要配超时和异常分支异常分支的终点要么是降级处理要么是转人工绝不能是流程中断。4.4 人工复核环节的设计要点信贷智能体不可能全自动人工复核环节的设计直接关系到运营效率。我见过两种极端一种是复核条件设得太宽80%的件都转人工智能体等于白做另一种是设得太严风险件漏过去出了坏账。我的经验是用风险分层来定复核策略。把客户分成三档低风险件自动通过中风险件抽样复核高风险件全量复核。分层的依据可以是反欺诈命中情况、征信查询次数、收入负债比这些硬指标。AgentArts 里可以用条件分支节点来实现分层每层的阈值做成可配置参数业务部门可以根据实际坏账率调整。复核界面也有讲究。转人工的时候不能只把原始对话扔给复核员要把智能体已经抽取的结构化信息、调过的工具结果、以及智能体的判断依据一起展示出来。复核员一眼能看到关键信息处理速度能快好几倍。我一般会在转人工节点里配置一个“上下文摘要”把上述信息拼成一段简洁的文本。注意人工复核的结论要回流到系统里作为后续优化提示词和规则的依据。哪些件被人工改判了、改判原因是什么这些数据是提升智能体准确率最宝贵的素材。4.5 性能与成本优化智能体跑起来之后成本和延迟是两个绕不开的指标。信贷业务量大如果每笔申请都调好几次大模型token成本会很可观。优化手段我按性价比排序第一能不用模型的地方坚决不用。身份核验、额度计算这些确定性逻辑用代码节点实现又快又便宜。第二信息抽取做缓存。同一个客户短时间内重复提交相同材料直接读缓存结果不用重新抽。第三模型分级。简单意图识别用小模型复杂信息抽取用大模型AgentArts 支持在节点级别指定模型。第四控制上下文长度。历史对话只保留最近几轮更早的用摘要代替。延迟方面最影响体验的是外部接口调用。我的做法是能并行的接口并行调。比如反欺诈查询和征信查询互不依赖可以同时发起等两个都返回了再进入下一步。AgentArts 的并行节点可以做到这一点整体耗时能省将近一半。5. 上线后的持续迭代与监控5.1 必须盯住的几个指标智能体上线不是终点是起点。我每天会看这几个指标意图识别准确率抽一批会话人工标注看智能体判断的意图和实际是否一致。低于90%就要优化意图列表或提示词。信息抽取字段准确率分字段统计哪个字段错得多就重点优化哪个。通常“收入”和“负债”这两个字段最难抽准。工具调用成功率包括调用是否触发、参数是否正确、返回是否正常。成功率低于95%要排查。转人工率突然升高通常意味着某个环节出了问题比如接口挂了或者提示词改坏了。端到端完成率客户从进线到完成预审的比例。这个指标综合反映体验好坏。这些指标 AgentArts 自带一部分监控面板但信贷业务需要的维度更细我一般会把日志导出到自己的数据平台做二次分析。5.2 提示词和规则的版本管理信贷业务规则变化频繁利率调整、产品下架、监管新规每一次变化都可能要改提示词或节点配置。没有版本管理的话改出问题都回不去。我的做法是把提示词和关键配置纳入版本控制。每次修改记录三样东西改了什么、为什么改、改完之后的测试结果。AgentArts 本身有版本历史功能但不够细我会额外用一个表格维护变更日志。上线新版本用灰度发布先放10%的流量观察一天没问题再全量。5.3 从bad case里挖金子每周我会抽半天时间看bad case就是那些智能体处理得不好的会话。看的时候问三个问题模型为什么这么判断提示词里哪句话可能导致了这个判断怎么改能避免大部分bad case的原因集中在几类提示词有歧义、工具描述不清晰、边界情况没覆盖、外部数据质量问题。针对每一类改法不一样。提示词歧义就改措辞工具描述问题就补描述边界没覆盖就加示例数据质量问题就得从源头治。我个人的体会是智能体的优化是个体力活没有一劳永逸的银弹。但每优化一轮看着准确率往上走一点转人工率往下走一点那种成就感还是很实在的。这个信贷智能体我从第一版只能回答产品咨询到现在能完成预审全流程前后迭代了十几版踩过的坑基本都写在这篇笔记里了。你要是也在搭类似的智能体建议先从最小可运行版本开始别一上来就追求大而全跑通一个环节再扩一个环节稳扎稳打比什么都强。