news 2026/10/19 6:24:30

给测试Harness装上协同强化学习大脑:回归时间降60%

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
给测试Harness装上协同强化学习大脑:回归时间降60%

聊一个我最近折腾得比较多的话题——在 Harness 这类测试执行框架里引入协同强化学习(协同 RL)。我们团队负责一个用户量不小的业务系统,回归用例从几百条涨到几千条之后,每次发版前跑完稳定回归要两三个小时,还时不时冒出几个偶发失败,人工去翻日志翻得头皮发麻。后来我们尝试把“测什么、怎么测、测到什么时候停”这些决策交给强化学习智能体,并且不是单打独斗,而是多个 Agent 协同探索、共享经验,跑了一段时间之后,回归时间降下来了,线上漏测也明显减少。

这篇文章会把我们怎么拆解 Harness、怎么设计协同 RL 框架、怎么定状态和奖励、怎么处理训练不收敛这几个大坑都整理出来。适合做测试基建、质量效能、DevOps 工具链,或者想把强化学习落到工程场景的朋友参考。我会尽量把细节和参数都摊开讲,方便你直接抄作业。

1. 先搞清楚:Harness 和协同 RL 是什么,为什么要绑在一起

很多同学一听到“Harness”就以为是某个商业 CI/CD 平台。其实在测试领域,Harness 更常被翻译成“测试线束”或者“测试脚手架”——它不只是跑用例的执行器,而是把被测系统、依赖服务、测试数据、Mock 桩、探针、断言逻辑、覆盖率采集这一类东西全部打包在一起的整套测试载体。你写接口自动化、UI 自动化、性能压测,背后那个帮你拉起环境、注入数据、执行断言、收集结果的框架,就是 Harness。

协同 RL 也不难理解。它不是让一个智能体孤零零地做决策,而是让多个智能体在同一个环境里分工协作:有的是执行 Agent,负责生成和执行用例;有的是调度 Agent,负责决定先跑哪条链路;还有的是分析 Agent,负责读覆盖率、错误率、耗时这些反馈信号。大家共享经验,目标一致,都是为了让测试成本更低、缺陷检出更高。

1.1 Harness 到底包含哪些东西

在我见过的团队里,Harness 的边界一直很模糊,这里先把它的组成拆开。

第一层是环境管理。被测服务要能启动,依赖的数据库、消息队列、第三方接口要有替身。我们会用容器编排把一整套依赖拉起来,也会用 Service Mock 模拟那些不稳定或者收费的外部接口。第二层是数据管理。每条测试用例跑的时候要用什么数据、需要不需要造数、用完要不要清理,这些都得由 Harness 管理。第三层是执行引擎。它负责并发调度、超时控制、失败重试、结果采集。第四层是观察探针。比如覆盖率埋点、性能指标采集、日志抓取、断言结果汇总。

传统 Harness 的执行策略几乎都是人类写死的:固定跑全量回归、固定每个版本跑冒烟、固定按优先级跑用例。问题就是用例规模一大,这套静态策略就变得很笨。有些模块这个版本根本没人动,却要被全量用例反复碾压;有些高风险改动反而只跑了几条冒烟,漏测了也只能等线上报障。所以要给 Harness 装一个会做决策的“大脑”,RL 就是这个大脑的候选方案之一。

1.2 协同 RL 的三种协作形态

协同 RL 并不是只有“多个模型”这一种理解,我给它分成了三种形态。

第一种是多智能体协同。每个模块或者每条业务链路配一个独立 Agent,它们各自决策,但共享一个经验池和一个中心评价器。比如订单链路 Agent 和支付链路 Agent 会同时探索,发现支付超时异常后,不仅自己记住这个状态,还会把经验推送给订单链路 Agent,因为两者有强耦合。

第二种是人机协同。RL 负责给出“建议执行策略”,测试工程师负责审核和干预。比如 Agent 认为某条高风险用例可以降级到冒烟集,系统不会直接执行,而是先推送给人工确认。这种形态在早期落地时最稳妥,也最容易取得管理层信任。

第三种是分层协同。上层一个调度 Agent 做全局规划,决定这段时间重点测哪个子系统、投入多少资源;下层一群执行 Agent 在各自分区内做具体动作。上层 Agent 的输出是下层 Agent 的约束条件,下层 Agent 的回传效果又是上层 Agent 的奖励信号,形成闭环。

三种形态可以混用,但不要一开始就上最复杂的多智能体方案。我的建议是先做人机协同 + 分层协同,跑通之后再放开多智能体的自动共享。

1.3 为什么这个组合能解决测试的真实痛点

测试行业最核心的难题是选择难题:用例太多、环境有限、时间有限,你不可能什么都跑。传统方案靠人来拍优先级,但人的判断基于经验,很难覆盖所有代码变更和依赖变化的组合。RL 的优势在于它可以把“选择”变成一个序列决策问题:根据当前代码变更、最近测试结果、覆盖率反馈,决定下一步跑什么、怎么跑。

协同的价值在哪儿?单独一个 RL Agent 的观察视野很窄。支付模块的 Agent 看不到网关超时的根因,但如果有个调度 Agent 汇总了全链路指标,它就能在高维度上做出更合理的决策。多个 Agent 协同还能加速探索,不相关模块之间可以并行探索互不干扰,相关模块之间又能通过共享经验避免重复踩坑。这是单智能体很难做到的。

2. 系统设计:给 Harness 装上“协同大脑”的整体方案

我们做这套东西的目标非常明确:在不改变被测系统代码的前提下,把 Harness 的执行策略从静态脚本升级成动态决策系统。整体架构不复杂,我把它拆成四个模块:观测采集层、状态抽象层、协同决策层、执行管控层。

  • 观测采集层:从被测系统、测试脚本、覆盖率工具、日志平台里采集原始数据。
  • 状态抽象层:把原始数据清洗、聚合、编码成 RL 可用的状态向量。
  • 协同决策层:由多个 Agent 和中心经验池组成,输出动作指令。
  • 执行管控层:把动作翻译成 Harness 可执行的任务,并强制执行安全策略。

2.1 整体架构与模块划分

观测采集层要解决“能看到什么”的问题。我们会给被测系统挂上覆盖率探针,在 Harness 的执行器里埋点,记录每个用例的执行时间、结果、日志摘要、接口请求响应码。这些数据最终落到一个时序数据库里,按用例 ID、接口名、时间戳组织,方便状态抽象层去查询。

状态抽象层是容易被低估的一环。很多人觉得 RL 就是“给网络喂数据”,但测试场景里原始数据形态非常多样,有结构化表格数据、有日志文本、有时间序列。我们做了三个处理步骤:首先把文本日志用规则和关键词抽取成结构化字段,比如错误类型、超时节点;然后对所有数值型指标做滑动窗口聚合,比如最近 10 分钟平均响应耗时、最近 20 次执行失败率;最后做归一化编码,把动作历史、用例命中情况拼接成统一长度的向量。

协同决策层是核心。我们用了两个 PPO 变体:一个全局调度 Agent,一个分区执行 Agent。全局调度 Agent 负责选取“重点区域”,输出维度是各子系统的调度权重;分区执行 Agent 负责在某个子系统内选择“策略”,输出维度是具体的测试动作。两个 Agent 共享一个集中式 Critic 网络,这个设计后面会详细说。

执行管控层做得像个代理网关。RL 模型输出的动作并不会直接触发测试任务,而是先经过规则校验、速率限制、人工审核开关,再由 Harness 原生执行器去跑。这一层很重要,因为你不可能让 RL 模型刚上线就去控制生产环境流量,必须先让它在一个相对安全的沙盒里玩。

2.2 状态空间和动作空间怎么定义

状态空间的设计直接决定了训练效果。我们最初吃了亏,塞了太多无关特征进去,模型训练很慢,后来把状态向量精简成了五个维度组。第一是变更特征,比如本次提交涉及的代码模块、改动文件数、改动风险系数。第二是历史执行特征,比如该模块最近 N 次测试的通过率、平均执行时长、最近一次失败原因。第三是覆盖率特征,比如语句覆盖率、分支覆盖率、自上次通过的覆盖率增量。第四是资源特征,比如当前可用执行机数量、队列长度、平均利用率。第五是协作特征,即其他 Agent 最近给过来的提示信息,比如支付 Agent 上报了一个疑似关联风险。

动作空间我们用离散加连续混合的方式。离散动作包括:选择某条业务链路、切换到某套测试数据集、决定跑全量还是冒烟、触发深度巡检模式、跳过某条低风险用例。连续动作包括:并发度调高或调低(用连续值控制)、超时阈值、流量放大的比例、采样率。混合空间稍微复杂一点,但实际用下来比纯离散或者纯连续都更贴合测试场景。

这里有一个很关键的细节:状态向量里一定要包含动作历史的自反馈。比如上一次动作是“放大订单链路并发度”,这次状态里就应该有“上次放大动作已经执行过、效果如何”的编码。如果没有这个,模型很难学会做多步决策,容易变成一个贪婪的短视策略。

2.3 奖励函数设计:别让智能体只学会“多跑用例”

奖励函数是整套系统里最容易翻车的地方。最开始我们的奖励是“发现缺陷 + 分,多跑用例 + 分”,结果模型学出来的策略非常离谱:它学会了生成大量重复用例来刷分,因为没有对“用例重复度”做惩罚。后来我们重新梳理了奖励目标,一个可用的奖励设计是这样的:

代码块

奖励 = w1 * 缺陷发现加权收益 + w2 * 覆盖率增量收益 - w3 * 执行时间成本 - w4 * 资源成本 - w5 * 用例重复度惩罚 + η * 探索熵奖励

  • 缺陷发现加权收益:不同类型的缺陷权重不同。崩溃、功能不可用权重最高;界面问题权重最低;线上已存在但此前未发现的问题额外加权重。
  • 覆盖率增量收益:只有跟上一次相比的增量才算收益,而不是全量覆盖率。
  • 执行时间成本:每次执行任务的总耗时,按分钟计。
  • 资源成本:占用执行机的时长和内存配额。
  • 用例重复度惩罚:如果新选的动作和历史动作重复度太高,给一个负向信号,鼓励探索。
  • 探索熵奖励:保证智能体不会过早收敛到一个局部最优策略。

奖励权重的设置也要跟着项目阶段走。早期跑通阶段,我们更看重探索,把 η 调高一些;进入稳定期后,把时间成本和资源成本调高,把缺陷发现收益也调高,这样模型才会在“省钱”的前提下优先找真正的缺陷。

2.4 安全兜底:RL 的输出必须经过执行沙箱

强化学习在生长期会频繁做出让人意想不到的实验动作,在测试场景里这本身不是问题,但如果 Harness 连接的是生产环境、或者连接着昂贵的第三方服务,就必须加安全兜底。

我们设计了三个兜底策略。第一个是动作白名单,模型只能从预定义的动作集合里选择,任何不在清单里的行为都会被网关拒绝。第二个是影子模式,模型产出的动作只生成“建议任务”,不会真正执行,系统会记录“如果执行了会怎样”,等模型在模拟环境里的得分稳定之后,再切换为小流量试跑。第三个是熔断机制,如果某个 Agent 的决策连续触发大量执行超时,或者测试环境本身的错误率飙升,调度器会自动降低该 Agent 的权限,回到人工接管状态。

3. 从 0 到 1 的落地路径:离线预训练 + 在线微调

如果你打算从零开始让 RL 直接在线学习,我劝你冷静。测试 Harness 的反馈延迟通常高达几分钟甚至几十分钟,一次完整回归要几个小时,在线学习的样本效率会差到让人崩溃。我们的做法是:先用历史数据搭一个离线模拟器,做离线预训练;再切到在线小流量,做在线微调。

3.1 用历史测试日志搭一个“离线模拟器”

历史数据是运维了很久的 Harness 天然积累的资产。我们把过去一年内的测试执行日志、用例结果、覆盖率报告、代码变更记录全部拉出来,清洗后重放成一个离线环境数据表。每一条样本大概是:某次代码变更特征 + 某个测试策略 + 实际执行结果 + 覆盖率增量 + 执行耗时。

这样等于构建了一个简单的环境模拟器:给定“当前系统状态”和“当前测试动作”,就可以近似给出执行反馈。虽然这个模拟器存在偏差,但对预训练来说完全够用。它能让模型先学会基础的输入输出映射,避免上线之后到处乱撞。

模拟器还能做策略离线评估。我们会在旧数据上做“反事实推演”,把新策略跑在旧日志上,看它如果当时执行了会带来什么收益。虽然反事实评估在理论上有偏,但它能快速筛掉明显不靠谱的策略。

3.2 策略模型的输入输出与损失函数

这里以 PPO 为例说一下模型配置。状态向量进入一个两层 MLP,再接一个共享的特征提取层。共享特征分发给两个头:一个动作头,输出动作概率分布;一个价值头,输出状态价值预测。使用 PPO 作为主算法是因为它在高维离散动作空间里表现更稳定,调参相对没那么敏感。

代码块

PPO 核心超参参考

actor_lr = 3e-4 critic_lr = 1e-3 gamma = 0.95 # 测试场景偏向中短期收益,不设太高 gae_lambda = 0.95 clip_epsilon = 0.2 entropy_coef = 0.01 # 早期可调到 0.05 max_grad_norm = 0.5

损失函数就是经典的 PPO 截断目标加上价值函数误差,再减去熵奖励。我特别想提醒的是 gamma 不要设太高。测试回归是一个交互周期较短的任务,一次决策的好坏在几步之内就能体现,设成 0.95 足够了。设得太高会让模型去“布局”很远的收益,反而忽略当前批次的有效反馈。

3.3 两阶段训练:先让智能体“会”,再让它“稳”

预训练阶段,我们用离线模拟器跑大量的经验回放,训练目标是让模型能根据状态给出基本合理的动作分布。这个阶段我们不太担心探索,因为离线数据本身就是多样性的。

在线微调阶段,我们把模型挂到 Harness 上,以 Week 为周期做滚动训练。每天早上先重放昨天的测试结果和覆盖率数据作为反馈,更新模型权重;白天模型继续在低风险模块做小流量推荐。这里有个容易犯的错:千万不要把在线训练当成像离线那样每个 step 都更新。在线环境反馈稀疏且代价高,我们严格限制一天最多更新三次策略,每次更新用批量数据做小步长优化。

在线微调阶段一定要保留预训练模型作为基线。如果某个新更新让关键指标明显变差,就自动回滚到上一个稳定版本。我们为此写了个简单的模型版本管理机制,每次更新只生成一个新的二进制文件,并记录对应的测试指标,方便快速对照。

3.4 关键参数怎么定:学习率、熵系数、经验回放参数

学习率方面,Actor 和 Critic 用不同学习率是常规操作。Critic 主要负责估计价值,更新可以快一点;Actor 太激进容易导致策略在几个批次内就崩塌,所以我们把 Actor 学习率设为 Critic 的三分之一。

熵系数很重要。测试动作空间里有很多相似动作,比如不同模块的冒烟测试,表面看起来评估结果是相同的,但真实风险差异很大。熵系数太低,模型会很快锁死在某个“看起来不错”的动作上;我的经验是初始设为 0.05,每训练一轮乘以 0.9 做衰减,稳定后降到 0.005 左右。

经验回放方面,我们使用了一个容量为 100 万条数据的循环经验池。因为多智能体经验会互相影响,我们在采样时做了分层抽样:优先采样高奖励样本、最近产生的样本、以及来自不同 Agent 的平衡样本。这样可以减少某些冷门模块的经验长期未被采到的可能性。

4. 实测记录:一个虚拟订单系统的协同 RL 改造

理论说了再多,不如看实测记录。我在内部用一个模拟的订单处理系统做了完整的验证,下面用“某订单系统”代称。这是一个典型的三模块系统:商品模块、订单模块、支付模块。被测系统部署在容器环境里,Harness 里面有大约 1200 条接口用例和 300 条链路用例。改造前,全量回归跑完约 3.5 小时,每次发版只跑一次全量,期间覆盖率稳定在 68% 左右。

4.1 被测系统与 Harness 改造前状态

我们先把 Harness 改造成可编程控制,把测试数据管理、执行调度、结果采集都暴露成 API。这样 RL 决策系统才能动态下发指令。改造后,Harness 可以做到按模块切换数据集合、调整并发度、设置跳过列表、生成新的用例组合。

被测系统里埋了覆盖率探针和接口级埋点。每个用例执行结束后,Harness 会把执行结果连同覆盖率增量、耗时、日志摘要一起写入经验池。改造工作用了大约两周,大部分时间花在状态抽象层和 API 接口设计上,真正写 RL 模型代码反而很快。

4.2 训练过程中的指标变化记录

预训练阶段,模型在离线模拟器上跑了大约 20 万步。观察到的现象是:前 5 万步,模型输出的动作分布非常混乱,基本等同于随机策略;10 万步之后,模型开始学会避开那些明显超时或者重复度过高的动作;20 万步时,模拟器上的累积奖励曲线趋于平稳。

在线微调阶段更有意思。第一个星期,模型在低风险模块上做小流量试跑,发现它特别倾向于“多跑用例”,哪怕重复度高、收益低,也愿意加时间。原因是奖励函数里“执行时间成本”权重初期设得太低。我们把 w3 调高之后,模型开始变得克制,学会了选择高覆盖率增量的用例集。

到了第三周,我们开放支付模块给模型做全自动决策。它做出了一个我们没想到的选择:在支付网关出现一次超时异常后,模型没有按照我们预设的“全链路重跑”策略,而是先对支付模块执行 5 分钟的高频小流量探活,确认异常恢复后才展开回归。这个决策在传统策略里不存在,但实际效果非常好,节省了大约 40 分钟回归时间。

4.3 相比传统测试策略的效果对比

我们把协同 RL 策略与传统的“全量回归 + 人工重点抽查”策略进行了对比,跑了大约两个月,统计数据如下:

策略平均回归时长缺陷检出率单轮资源消耗漏测率
传统全量回归210 分钟0.8 次/轮高约 7%
固定优先级回归165 分钟0.9 次/轮中约 6%
协同 RL 策略76 分钟1.4 次/轮低约 2%

这个对比不是说协同 RL 就一定优于所有策略,而是说明在“用例规模足够大、业务链路复杂、反馈信号清晰”的场景里,它有显著的收益。缺陷检出率提升主要来自覆盖率增量收益和协同反馈:一个模块的异常被另一个模块的 Agent 发现后,会迅速触发上下游链路的额外检查,这种联动是传统固定优先级做不到的。

5. 踩坑实录:协同 RL in Harness 的常见问题与排查

这部分是我最想跟你们分享的。网上关于“如何把 RL 跑在测试线束上”的教程很少,很多坑只能自己踩过才懂。我挑四个典型的写下来。

5.1 训练不收敛 / 奖励一直震荡

第一个大坑是奖励函数存在“自适应捷径”。我们初始奖励里有一项“覆盖率增量收益”,模型发现只要不断重复跑某条覆盖密度高的用例,增量收益虽然很低,但配合探索熵奖励还是能拿到一点正反馈,于是它反复刷这条用例,导致整体奖励曲线出现周期性震荡。

排查思路是这样的:先看是不是奖励分布太集中。我们把一段时间的奖励按来源拆开统计,发现 80% 的奖励都来自覆盖率增量,缺陷发现几乎没有。这说明奖励函数被一个易得项主导了。我们把覆盖率增量的权重降低、增加“首次发现缺陷”的高额奖励,并且加入了用例重复度惩罚之后,震荡才消失。

另外还有一种可能是价值网络没有收敛。PPO 对价值网络的准确度要求很高,价值网络如果总是高估,策略更新就会震荡。我们通过打印 GAE 估计值与实际回报的差值来检查,如果差值长期波动大,就调低学习率或者增加价值网络的隐藏层宽度。

5.2 多个智能体共享经验导致策略偏移

多智能体共享经验池看着美好,但很容易出现“策略偏移”。比如支付 Agent 在探索一个新场景时产生了高奖励经验,订单 Agent 从共享池里采样到这些经验,并按自己的策略参数去梯度更新,结果模型在订单模块上的行为被支付模块的经验带偏。

这是多智能体强化学习里典型的非平稳问题。我们一开始天真地以为共享经验池就万事大吉,结果订单模块的误报率明显上升。后来改成“集中式训练、分布式执行”的结构——各个执行 Agent 在环境里做自己的事情,但它们共享一个中心 Critic,中心 Critic 可以看到所有 Agent 的观察和动作,联合估计价值。这样每个 Agent 的策略更新就能考虑到其他 Agent 的行为影响,经验池里的“冲突样本”也会被中心价值网络合理修正。

5.3 Harness 误杀正常功能的“狼来了”问题

这个坑特别隐蔽。模型为了在奖励函数里获得缺陷发现的分数,有些 Agent 会倾向于把“疑似异常”标成“缺陷”。一次两次你可能觉得是模型发现了新问题,但时间一长,你就会发现大量误报,测试团队开始习惯性忽略模型的告警,真缺陷反而被淹没。这就是经典的“狼来了”问题。

解法是把“缺陷确认机制”引入奖励循环。模型标记一个疑似缺陷后,不是直接给分数,而是由人工或者自动化验证工具去复现,确认是真正的问题才给正奖励;如果复现失败,要给一个比较大的惩罚。我们还在状态向量里增加了“近期误报率”特征,让模型知道自己的告警可信度在下降。

也可以加一个置信度阈值策略:模型只有在预测价值的置信度超过一定阈值时才允许标记为缺陷,低置信度的预测只能作为“建议排查”信息推送给工程师。阈值这个参数建议用验证集上的精确率和召回率曲线来定。

5.4 问题速查表

问题现象可能原因排查手段
奖励长期不增长,策略像随机奖励太稀疏或状态特征不足打印动作分布与奖励分解,检查是否缺乏关键特征
训练后期奖励突然崩坏策略更新步长过大调小 Actor 学习率,加大 clip 范围限制
多 Agent 共享经验后模块行为漂移共享经验池导致非平稳切换为中心 Critic 结构,限制跨模块经验采样比例
告警频繁但多数是误报奖励对“确认缺陷”没有区分度引入复现确认机制,增加误报惩罚
模型沉迷重复用例缺少重复度惩罚或熵奖励过高增加动作重复度惩罚,衰减熵系数
决策延迟导致执行队列堆积状态特征中缺少队列长度反馈把队列长度和当前资源利用率加入状态空间

最后想说的话

我在这个项目里最大的体会是:真正难的从来不是 RL 模型的代码,而是怎么把一个复杂的工程系统抽象成适合 RL 的环境。Harness 的好处在于它天生就是结构化的执行框架,有清晰的数据流和控制流,改造起来比从零搭建顺得多。如果你也想做类似的事情,我的建议是先别急着上多智能体,从一个模块、一个离线模拟器开始,把状态设计和奖励设计打磨得足够干净,再逐步放开协同范围和在线控制权。另外一定要留好人工接管的后门,RL 这种东西,你永远猜不到它在某个数据分布下会做出什么让人意外的事情——有些意外是惊喜,有些意外是事故。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/10/19 6:24:30

图像识别遇上大数据:从数据管道到分布式训练的实战架构

这两年我一直在做图像识别相关的数据项目,最大的感受是:单机调得再好的模型,放到大数据环境下,如果不重新设计数据管道和训练策略,分分钟被打回原形。这里说的“大数据领域的数据科学”,不是简单地把图片丢…

作者头像 李华
网站建设 2026/10/19 6:23:40

开源提示词技能库变现指南:从零成本接单到持续收入

先给你一个反直觉的结论:免费开源提示词技能库能不能换钱,核心不在技能库本身,而在于你有没有把它当成“产品原型”,而不是“学习资料”。很多人手机里收藏了几百条提示词,电脑里存了好几个网页书签,可真到…

作者头像 李华
网站建设 2026/10/19 6:22:24

Spring Boot Actuator实战:健康检查、指标监控与日志动态调整

项目上线以后,最怕什么?怕半夜手机突然响了,群里有人喊“服务挂了”。更怕的是没人喊,用户先发现了,你才知道系统已经不可用了。很多团队的项目一上线就处于“裸奔”状态,代码能跑就算成功,但跑…

作者头像 李华
网站建设 2026/10/19 6:20:24

Web源码泄露深度解析:检测、危害与修复方案

在漏洞评级里,它常常只被标成“低危”或“中危”,但每个完整跟过渗透测试项目的人心里都清楚,这个标签骗不了人。我说的是 Web 源码泄露——当服务器把.git目录、备份压缩包、编辑器临时文件这些本该留在开发机或仓库里的东西公开展示出来&am…

作者头像 李华
网站建设 2026/10/19 6:19:35

系统提示词泄露防御新思路:基于系统向量的激活空间干预方案

这两年顶会安全方向的投稿里,有一个话题肉眼可见地火了起来:系统提示词泄露。我连续跟了几轮,从攻击侧的文章看到防御侧的文章,绝大多数工作都在讨论同一个痛点——模型内置的那段系统提示词,怎么就这么容易被“钓”出…

作者头像 李华
网站建设 2026/10/19 6:19:32

大模型记不住会乱说?RAG检索增强生成从原理到落地全解析

做AI应用开发这几年,我遇到最多的提问其实不是"模型怎么调",而是"模型又乱说了""模型怎么不知道这个""模型怎么说不到我系统里的数据"。坦白讲,大模型本身就像个博闻强识但性格固执的老朋友&#xf…

作者头像 李华