通过具体实例展示**“模型明明知道,但没有做”**的现象,从而引出我们关注的“行为缺失”问题。
目标:实现基于
flash_attn_with_kvcache的paged attention.问题现象:模型被要求调用该函数,但直接尝试书写调用代码,未主动查阅文档,导致报错或行为失败。
一旦引导:加入一句模糊引导(e.g., “让我首先查看这个函数的定义”)后,模型能立即能反应过来用pydoc。
✅ 说明这是一个行为触发问题,而不是知识缺失问题。
初始行为:模型试图网页查询股票,但API不可用(未授权/Key失效)。
行为卡死:模型陷入反复请求网页的回路中。
一段模糊干预后转变:
“Since we're encountering issues with API rate limits and invalid API keys, let’s try another approach by python…”
模型立即切换到
yfinance,并输出:pip install yfinance✅ 显示其具备备选方案知识,但未能自主切换。
这些案例揭示出一个关键问题:
模型不是不知道,而是不知道“什么时候该做什么”。
这正是“行为性干预”的切入点: 我们不需再“告诉模型答案”,而是训练它“在关键节点上主动触发已有知识”。
我们提出一个关键观点:
Agent的知识瓶颈并不主要在“事实知识缺失”,而在“行为模式不对”。
我们将干预划分为两类:
| 类型 | 定义 | 示例 |
|---|---|---|
| 事实性干预 | 明确告知具体信息或答案 | “我应该用yfinance” |
| 行为性干预 | 只引导行为路径,不告知答案 | “我好像可以用python解决这个问题” / “wait, it seems xxx” |
我们的方法强调后者。
- 行为模式的触发概率本身不低, (在正确的命名工具后);
- 在标注中观察到大量 in-context 模仿行为;
- 初步 SFT 结果显示行为可快速迁移。
- 不需要逐条补知识,只需做行为示范;
- 少量专家标注几个问题就能快速总结出“行为准则”;
- DevStral + 人类行为干预远超 DeepSeek;
- 模型缺乏基本能力如 Debug这种基础的能力;
- 提示这个方向仍有大量未挖掘潜力。
- 研究人员围绕自己熟悉的repo设计少量复杂的Swe任务;
- 标注其完整解题行为链(包括中间思考);
- 建议5–10人,1–2周即可;
- 整理汇总成标注准则
- 针对上述行为构造自动合成数据, 不涉及多个行为组合, 只针对单一行为;
- 例如用
inspect+ 多repo合成很多代码查找类的问题; - 少量标注即可产生行为迁移。
-
用wild code构造任务,模型自行强化;
-
推荐构造方式:
- 通过llm删除函数片段再要求agent补全;
- 通过llm对代码加入bug后要求修复;
- 使用真实的 commit/issue。
✅ 构造式任务可控性强,适合自动化大规模训练。
- RL结束后再用专家对行为覆盖情况进行分析;
- 用于指导下一轮行为补齐训练。