关于专家模式(advisor)的一些测试,认为是糟糕的技能!

这玩意频繁触发,专门做了一批AB对比测试,结果挺意外。

它是什么,为什么糟糕

它是工具advisor和 内嵌技能或系统提示词 的组合

它的提示词存在歧义!
因此,不管advisor本身强度怎么样,这个技能是个糟糕的技能。

1.如果用户纠正(correct)你,那么请教专家。
这里的歧义是,"correct"的目标有多种

  • 执行流程的纠正,
  • 客观事实信息错误
  • 算法编写或者数学计算错误

advisor实际只对执行流程纠正最有效。
说法不严谨,导致每个任务Agent都要判断用户的意图是不是在correct,
以及会对自己不擅长的问题提出建议

2.一轮(turn)只能只能一次advisor
在AB测试中,Agent对“一轮(turn)”的定义困惑
它没能理解是一次对话、一次tool调用,还是一个session,什么是一轮
在实际测试中出现了执行的随机性,它有时尝试多次调用,有时犹豫一会最后决定不调用
而后台实际限制是一session(或一次对话中)执行3轮后开始拒绝

3.如果用户明确要求不使用advisor,那么之后不要调用
也是让Agent纠结的点
如果AGENTS.md写了不要调用advisor,但是用户纠正了Agent,
它思考哪个规则“优先级高”,并且能随机地认为advisor发生更早优先级更高,只要是correct就应该调用
或出现在多个对话中浪费注意力对不能调用advisor过度思考


进行AB测试的结果

例子是一个完整的JS解释器(足够复杂)

要求dsv4.1flash,自己分析优化方案、之后请教advisor
以及另一个会话,禁止分析,直接请教advisor
得到如下结果

  1. 专家似乎并没有额外消耗积分(或非常不明显)
  2. 专家只能基于现有上下文,没有读文件工具,
  3. 即使具备了上下文(例1,由dsv4.1flash代替阅读了)经过我和agent共同鉴定,专家编写的代码不如dsv4.1flash直接编写代码,它存在遗漏、肤浅(不求甚解)、耦合、破坏架构(拉了静态变量)等问题
  4. dsv4.1flash提出的方案与advisor提出方案结合能出更完善方案
  5. 需要明确注意,advisor提供的算法中,【引入了一处算法错误和一处框架破坏】,它们在之后被dsv4.1flash发现

结合4和5,它的效果可能不如dsv4.1flash跑两轮

我认为它的建议是针对”Agent对话流程“错误,
帮助当前Agent理解用户本意,找出遗漏

这个做法像是【通用Agent的技能】而不像是【CodingAgent】特化的
它叫专家,但和我们理解的“写代码的专家”没有多大关系

它很可能是同模型基于无工具、无技能、干净上下文做出的反思式建议
或者固定是豆包模型来给其它大佬发表评论


结论

这个advisor它作为通用Agent支持明显有用,能在用户说“前一轮执行有误”时,就提示词和行动的方式错误做出反思,
作为CodingAgent支持效果一般,它会【基于半桶水和没工具的水平对编程Agent指指点点】
上述是技能编写没能让它分清“流程错误”还是“算法错误”导致

技能写的糟糕,这是语文上的歧义问题,与实际能力无关

官方如果不提出更好的屏蔽开关,编写算法(而不是执行通用Agent任务)时,应该通过AGENTS.md屏蔽,它的算法建议并不是一定好,有引入的错误算法可能。

4 个赞

这提示词确实写得模糊,"correct"和"一轮"都没定义清楚,Agent只能瞎猜,感觉像是设计的时候没想周全

2 个赞

而且感觉有的模型就喜欢调这个专家模式(比如Qwen,几乎每次必调,再比如dsv4.1flash),用GLM系列的模型时一次都没用过

4 个赞

是的,还有专家模式,收费很高,但是也没说,用的是哪个模型作为专家,扣费那边就不清不楚的

3 个赞

trae 的核心问题是不给用户选择,一刀切

上功能是这样,下功能也是这样

之前的实时跟随,重构洞察下掉不给选择

新增专家建议不给开关

3 个赞