Skip to content

agent-harness-is-easy

引言

当前设计灵感是基于pi-mono得到的,一切靠扩展,那如果扩展能自由的影响agent在各个生命周期的行为呢

先说理论

agent 本质上就是对llm的一次调用,只是上下文和工具的不同导致了他不同的行为,那么如果我们对这个运行中上下文进行动态的影响调整呢,我们总是提醒它,我们总是让他去做聪明模型在合适时机该做的事情和思考方向,那么是否小模型也能达到较大模型的效果?

什么时候并行,什么时候串行?

llm 除了glm5.2和cluade之外,其他模型是不知道什么时候串行什么时候并行的,如果我们通过提示词影响它的行为,那么我们就可以让它在合适的时机并行,或者串行,甚至是混合模式。

这里有一个很巧妙的设计,我们是没法在合适的时机提醒它什么时候并行,什么时候串行的,但是如果他在长任务调用总会因为提示词调用todo工具,那么每一次todo工具的调用都会提示他先规划并行还是串行agent或者task的细节,这能明显的影响agent的行为,甚至就让agent在合适的时机分阶段走合适的行为模式。

plan 模式

在agent越来越强的日子,plan模式的效果越来越弱,它更像是一个让人类先了解agent的计划和思路然后进行优化的一种模式,但是小模型因为参数量的问题,它大概率是不会有一个良好的计划模版实现的,所以我们通常会通过提示词给予一个提示词模版,来让他的输出质量更好更有条理,甚至让他反思一次自己的计划和思路,来达到一个更好的计划质量,可这是怎么做到的?也许不是参数量越大的模型越聪明,是他们更懂得如何思考和规划,而我们也可以通过提示词让小模型也能达到类似的思考和规划来优化其输出结果

错误恢复

为什么llm会重复走相同的错误路径?仅仅是llm的预测循环了吗?我认为其实质是llm并不知道下一步做什么?如果我们给对应的错误进行处理,给予llm进行下一步的提示,是否能直接让llm走出错误的路径?答案是?百分之80的概率是可以的,为什么不是100%呢?因为我遇到一些神奇的问题比如xml没闭合也会导致llm重复走相同的错误路径还无法恢复!

更长任务

小llm常常会因为上下文长度的限制习惯走较短路径,我们的todo工具的设计不止是为了让llm在长任务中也能有一个较好的规划和思路,更是让它面对长任务的情况下刷新一次,根据todo的提示时刻让他知道他在做什么,在合适的时机让他知道下一步做什么,优化长任务的表现

如何更加的agentic harness但是不丢失本身的优化

让llm自己选择自己要走的路径,什么时候plan,什么时候todo,什么时候反思,什么时候优化,什么时候并行,什么时候串行!

总结

让agent 变得agentic ,增加llm自主度,也许llm并没有你想象的那么脆弱