第 9 节 / 共 9 节

加餐:Agent 开发串讲

🎯 工具调用、Memory、MCP 与 A2A client/server 回顾。
💻 代码

agentIntro 代码

11 个文件
📖 笔记

工程实践:怎样组织项目文档

怎样组织项目文档

一、智能体项目生命周期

1、 需求调研

​ 需求调研是整个项目的基石,是最重要的环节,没有之一。

1.1 项目背景

项目背景

1.2 上线标准

上线标准

1.3 业务逻辑分析

业务逻辑分析

业务逻辑图

1.4 资源

1.4.1 数据资源
1.4.1.1 业务数据

​ 天气数据(公开)
​ 铁路班次数据(商业)
​ 航班数据(商业)

​ 酒店数据(商业)
​ 餐饮数据(商业)
​ 景点数据(商业)

​ 特殊活动数据(商业)
​ 特殊装备数据(商业)
​ 保险数据(商业)

1.4.1.2 训练数据

​ 大模型微调的训练集(自己组织?购买?)

1.4.2 硬件资源

​ 大模型:购买API服务?购买线上GPU算力?机房部署算力

​ CPU服务器:线上服务器?本地机房部署?

​ 数据库服务:采购成品数据库?采购服务器自己搭建?

1.4.3 人力资源

​ 项目经理

​ 大模型工程师

​ 数据运营

​ 前台

​ 后台

​ 运维

​ 行业专家

1.4.4 时间资源

​ 项目整体周期

​ 关键路径各节点deadline

​ 延迟风险评估

2、 方案选型

2.1 (智能体)搭建多条工作流

​ 单个工作流相对简单

​ 方便梳理逻辑

​ 代码量可控

​ 部署方便

​ 系统设计复杂度太高

​ 上下文失控

​ 不利于分工协作

​ 不利于后续升级扩展

2.2 (智能体)搭建多个子智能体

​ 复杂度可控

​ 上下文可控

​ 方便分工协作

​ 方便升级扩展

​ 对项目规划能力要求较高

​ 代码量较大

​ 部署较复杂

​ debug比较困难

2.3 (工具调用)搭建一个统一的MCP服务

​ 上下文规模可能失控

​ 较大概率出现调用错误

​ 不利于扩展

2.4 (工具调用)根据业务逻辑,切分多个MCP服务

​ 需要既熟悉业务又熟悉技术

​ 切分是否合理?

​ 描述是否清晰?

3、组件和模型选型

向量数据库 主要场景 GPU加速 标量字段 核心特点 适用规模
‌Pinecone‌ SaaS服务,快速上线 云端自动 ✅ 全托管,API简单 中小型项目
‌Chroma‌ 开发测试,轻量应用 ❌ ✅ 轻量,内存优先 原型开发
‌Weaviate‌ 生产级应用 可选 ✅ 多模态,GraphQL 中大型系统
‌Milvus‌ 大规模向量检索 ✅ ✅ 分布式,高性能 超大规模
‌Qdrant‌ 高性能场景 ✅ ✅ Rust编写,云原生 生产环境
‌FAISS‌ 研究开发 ✅ ❌ 纯向量库,灵活 算法研究

基线模型是什么?为什么用它当基线?

候选模型都有哪些?

最终确定的模型是什么?有什么优缺点?为什么选择它?

大参数量模型

基线模型选取GLM-5.2,中文领域公认做的非常好的模型,之前的一个项目使用过,对它的性能和效果很有信心

候选模型有Kimi-K2.6,qwen3.7-max,deepseek-v4-pro

评估结果是deepseek-v4-pro有较明显的优势

进一步测试发现deepseek-v4-flash虽然效果比deepseek-v4-pro稍差,但是价格会便宜很多,综合考虑性价比,最终选择deepseek-v4-flash

小参数量模型

基线模型选取GLM4-32B,中文领域公认做的非常好的模型,之前的一个项目使用过,对它的性能和效果很有信心

候选模型有Qwen3.5-27B,Skywork-OR1-32B

评估结果是Qwen3.5-27B有较明显的优势

进一步测试发现Qwen3.5-27B的int4量化版本效果略有下降但差异很小,但推理速度提升比较大,所以最终选择的是:Qwen3.5-27B-GPTQ-Int4

评估方法:

​ 1 业务专家提供1000条高质量测试语料(问答对形式)

​ 2 目标模型生成推理结果

​ 3 使用硅基流动的deepseek-V4-PRO评估问题和推理结果的匹配度,最低0分,最高9分

​ 4 使用chatgpt5评估专家提供咨询意见和推理结果的匹配程度,最低0分,最高9分

​ 5 两个得分都大于等于7的结果判定为正确,两个得分任意一个小于等于3判定为错误

​ 6 无法判定的部分人工评测

​ 7 得出精确率、召回率、F1值

4、数据组织与清洗

4.1 爬取+标注

​ 从哪些网站爬取的?

​ 规模是多大?

​ 怎么清洗?

​ 标注工具是什么?

​ 多少人参与标注?

​ 标注时间是多久?

4.2 需求方提供

​ 需求方可能提供较大量的未标注语料。

​ 也有可能提供少量标注语料(几百条,几千条)除非是非常专业的公司或机构,否则不太可能提供大量标注语料。

4.3 语料怎样生成?

第一版语料是从需求方的咨询记录里提取了质量比较高的6200条,但数量比较少,而且覆盖面不足,训了一版,但效果不满意

后来发现线上有类似竞品(闭源),而且质量很高,所以选择用模型生成,计划生成24000条语料

首先由专家划分子领域和权重,据此确定每个子领域的语料数量

然后由deepseek-v4根据子领域和咨询样例生成咨询问题,进行质量检查和去重后,形成咨询问题集

由竞品模型生成推理结果作为咨询意见,deepseekv4进行质量判定和匹配度判定,形成训练集

训练过程中多次调整和完善

4.3.1 对问题进行子领域划分

你是一位中国婚姻法方面的专家,我需要整理一份婚姻法方面的训练语料,共5000条,需要考虑婚姻法的哪几个子领域,各自语料的数量是多少?用一个表格输出结果,每一行是一个子领域,第一列是子领域的名称,第二列是语料的数量,第三列是对这个子领域的详细说明。不允许输出其他字符。

子领域名称 语料数量 详细说明
结婚登记与条件 500 涉及结婚年龄、自愿原则、禁止近亲结婚、疾病限制、登记程序及法律效力等。
夫妻权利义务 400 涵盖共同财产管理、相互扶养义务、姓名权、生育权及日常家事代理权等。
离婚程序与条件 600 包括协议离婚冷静期、诉讼离婚标准、分居认定、感情破裂证明及调解程序等。
财产分割 800 涉及共同财产界定、个人财产保护、债务承担、房产分割规则及隐匿财产追责等。
子女抚养与监护权 800 包含抚养费计算标准、探视权实施、非婚生子女权益、抚养关系变更及教育责任等。
家庭暴力与保护令 500 涵盖暴力行为认定、人身保护令申请、证据收集、紧急庇护措施及刑事责任关联等。
继承权与婚姻关系 300 涉及配偶继承顺位、遗嘱效力、遗产分割冲突、再婚继承权及代位继承问题等。
无效婚姻与可撤销婚姻 200 包括重婚无效、胁迫婚姻撤销、隐瞒疾病撤销的程序及法律后果等。
涉外婚姻 300 涉及跨国婚姻登记、域外结婚效力认定、财产跨境分割及国际子女抚养公约适用等。
法律责任与救济措施 200 包含虚假登记处罚、拒不执行判决后果、损害赔偿计算及强制执行程序等。
4.3.2 按类型生成

你是一位婚姻法方面的专家,根据【特定类别】的定义,针对其中夫妻权利义务方面的规定,向学生提供20道练习题,你能提出哪些问题?每个问题单独一行,只允许输出问题本身,不允许输出任何其他字符。

【特定类别】
["结婚登记与条件","夫妻权利义务","离婚程序与条件","财产分割","子女抚养与监护权","家庭暴力与保护令","继承权与婚姻关系","无效婚姻与可撤销婚姻","涉外婚姻","法律责任与救济措施"]
各类别详细说明如下:
结婚登记与条件:涉及结婚年龄、自愿原则、禁止近亲结婚、疾病限制、登记程序及法律效力等。
夫妻权利义务:涵盖共同财产管理、相互扶养义务、姓名权、生育权及日常家事代理权等。
离婚程序与条件:包括协议离婚冷静期、诉讼离婚标准、分居认定、感情破裂证明及调解程序等。
财产分割:涉及共同财产界定、个人财产保护、债务承担、房产分割规则及隐匿财产追责等。
子女抚养与监护权:包含抚养费计算标准、探视权实施、非婚生子女权益、抚养关系变更及教育责任等。
家庭暴力与保护令:涵盖暴力行为认定、人身保护令申请、证据收集、紧急庇护措施及刑事责任关联等。
继承权与婚姻关系:涉及配偶继承顺位、遗嘱效力、遗产分割冲突、再婚继承权及代位继承问题等。
无效婚姻与可撤销婚姻:包括重婚无效、胁迫婚姻撤销、隐瞒疾病撤销的程序及法律后果等。
涉外婚姻:涉及跨国婚姻登记、域外结婚效力认定、财产跨境分割及国际子女抚养公约适用等。
法律责任与救济措施:包含虚假登记处罚、拒不执行判决后果、损害赔偿计算及强制执行程序等。

  1. 夫妻共同财产的范围在法律中有哪些明确列举?
  2. 一方擅自将婚后共同存款赠与他人的行为是否有效?
  3. 夫妻间扶养义务的履行标准是否以经济能力为唯一依据?
  4. 妻子单方面决定终止妊娠是否侵犯丈夫的生育权?
  5. 日常家事代理权是否涵盖为子女报名私立学校的决定?
  6. 夫妻一方因个人投资失败产生的债务是否属于共同债务?
  7. 夫妻婚后是否必须统一姓氏?法律对姓名权的规定如何体现?
  8. 分居期间一方拒绝支付家庭必要开支是否违反扶养义务?
  9. 夫妻一方擅自抵押共有房产贷款的法律后果是什么?
  10. 配偶因工伤丧失劳动能力后对方拒绝扶养可采取哪些救济措施?
  11. 日常家事代理权的金额限制是否适用于家庭汽车维修费用?
  12. 夫妻约定分别财产制是否需要公证?未公证的约定是否有效?
  13. 丈夫强迫妻子生育是否构成对生育权的侵害?
  14. 婚内一方继承的房产未明确归属时是否默认属于共同财产?
  15. 夫妻一方婚前持有的股票婚后增值部分如何界定归属?
  16. 夫妻共同财产管理出现重大分歧时如何通过法律途径解决?
  17. 婚内一方接受赠与的财产是否必然属于个人所有?
  18. 夫妻一方隐瞒婚前重大疾病是否影响扶养义务的履行?
  19. 日常家事代理权是否包括为家庭购买商业保险的决策?
  20. 夫妻一方因犯罪被监禁期间另一方是否有权中止扶养义务?
4.3.3 问题检查

用另一个高质量大模型进行问题检查

你是一位婚姻法方面的专家,如果要把【输入文本】分类到【特定类别】中,那么输入文本属于夫妻权利义务是否准确?给出一个准确性评分,该评分是0到9之间的正整数,其中0表示完全错误,9表示非常准确。【输入文本】中的每一行是一条独立数据,需要单独判定。输出时每条数据的结果单独输出一行, 只允许输出准确性评分,不允许输出其他任何字符。

【特定类别】
["结婚登记与条件","夫妻权利义务","离婚程序与条件","财产分割","子女抚养与监护权","家庭暴力与保护令","继承权与婚姻关系","无效婚姻与可撤销婚姻","涉外婚姻","法律责任与救济措施"]
各类别详细说明如下:
结婚登记与条件:涉及结婚年龄、自愿原则、禁止近亲结婚、疾病限制、登记程序及法律效力等。
夫妻权利义务:涵盖共同财产管理、相互扶养义务、姓名权、生育权及日常家事代理权等。
离婚程序与条件:包括协议离婚冷静期、诉讼离婚标准、分居认定、感情破裂证明及调解程序等。
财产分割:涉及共同财产界定、个人财产保护、债务承担、房产分割规则及隐匿财产追责等。
子女抚养与监护权:包含抚养费计算标准、探视权实施、非婚生子女权益、抚养关系变更及教育责任等。
家庭暴力与保护令:涵盖暴力行为认定、人身保护令申请、证据收集、紧急庇护措施及刑事责任关联等。
继承权与婚姻关系:涉及配偶继承顺位、遗嘱效力、遗产分割冲突、再婚继承权及代位继承问题等。
无效婚姻与可撤销婚姻:包括重婚无效、胁迫婚姻撤销、隐瞒疾病撤销的程序及法律后果等。
涉外婚姻:涉及跨国婚姻登记、域外结婚效力认定、财产跨境分割及国际子女抚养公约适用等。
法律责任与救济措施:包含虚假登记处罚、拒不执行判决后果、损害赔偿计算及强制执行程序等。

【输入文本】
妻子单方面决定终止妊娠是否侵犯丈夫的生育权?
夫妻婚后是否必须统一姓氏?法律对姓名权的规定如何体现?
跨国婚姻登记的流程是什么?
离婚后,子女抚养费的计算标准是什么?
哪些合同不具有法律效力?

删掉得分比较低的问题

5、项目分工与实施

​ 项目分工

​ 开发与单元测试

​ 模块测试与调优

​ 整体测试与调优

​ 预生产环境压测

​ 试运营与流量切入(如果有多个优化方案也可以做AB测试)

6、上线方案

24小时QPS波动

怎样部署服务的?多大数据流量(均值,峰值),单机处理量多少?

如果流量相对均衡

按照峰值的要求部署所有服务

如果流量峰值与均值差异很大

使用了阿里云的弹性伸缩组

平时至少有一张卡部署,如果长时间(大于5分钟)压力过大,就拉起下一张卡,最高允许拉起10张,每天高峰时段无条件拉起5张卡

冗余

对于线上服务,绝对不允许单节点部署,即使单机能处理,至少也要双备份,重要服务可以考虑三备份,可以考虑不同机房,甚至不同的供应商,防止意外

备份

服务的数据和日志,每天都要归档,符合“三二一原则”:三份副本;两种介质;至少一份异地

7、项目总结

任何项目都必须有产出,主要是经济、运营和技术三个方面

​ 经济效益‌

  • 直接收益:线上服务调用量增加1128.36万次/月,增收340万元/月。
  • 成本优化:人力替代率(如客服场景减少67.23%人工坐席)、算力利用率提升(GPU消耗下降35.82%)
  • 商业转化:线索转化率提升(如智能导购促成订单增长18.19%)

​ 运营效益‌

  • 流程重构:业务处理时长缩短(如合同审核从2小时→8分钟)
  • 知识沉淀:构建企业专属知识库(如累积20万条精选行业知识)

​ 技术效益‌

  • 性能提升:对比基线模型的准确率/召回率提升(如某任务F1值从75.24%→89.66%)
  • 效率突破:响应速度(如千token生成耗时从7.06s→3.84s)、并发处理能力(QPS提升5.27倍)
  • 创新应用:实现传统模型无法完成的任务(如精确语义查询,跨模态理解、复杂报告生成)

8、可能的改进

进一步压缩成本

针对不同难度的问题灵活切换使用轻型和重型模型

压制峰值

平时给用户生成全量回答

峰值时给用户生成压缩版回答,如果用户追问,才生成全量回答,实际测试,追问比例为27.3%

积累数据,迭代系统或模型

累计一段时间的运行,积累用户实际使用数据和反馈,对系统进行迭代(包括模型微调)

二、智能体可能出现的问题及解决方案

1、 上下文过载

​ 信息丢失与截断

​ 创建长期记忆

​ 划分独立的子agent

2、工具调用易出错

​ 描述不清晰

​ 工具太多,切分成多个独立的MCP服务

​ 上下文太长

3、整体运行时间过长

​ 部分模型思考占用太长时间,效果提升优先

​ 生成评估模式使用的大模型较差,很多情况下需要多次生成

​ 部分子智能体没有依赖关系,可以并行

​ 部分模型调用处理任务比较简单,不需要调用大体量模型

4、合规性检查

​ 规则过滤(AC自动机)

​ 筛选可疑数据再用大模型评估

5、必须提前计算好数据

​ 线上API:多大的并行能力?某类问题的平均时长

​ 自己购买GPU部署:多大线上流量,单卡处理能力多大,需要多少张卡?要不要考虑冗余?

特别注意:不要犯数量级上的错误

流量均值8qps,部署了两张A100

微调后的bert模型,推理一条100字左右的文本耗时15秒
30万条语料做实体抽取,6层bilstm+crf,在一张3090上训练300个epoch,耗时3个多小时
1600个实体和1000个关系,做了一个neo4j库
10万左右实体,15万左右关系的nero4j库,查询一条数据用了5秒左右
qwen7B模型,答复一个问题用了5ms

📎 资料

三类 Agent 系统图