0%

SWE-agent关键洞察

简要列举SWE-agent这篇文章的key observation

  • SWE解决方案总体对比
    • 有交互的方法将显著高于无交互的方法(比如直接搞一个简单的RAG)
    • 有合理设计的ACI将显著高于直接与为人类设计的接口(linux shell之类)交互的方法

ACI=agent computer interface,和HCI相对,指根据LLM特点提供一系列对LLM更友好的交互指令,令其可以(相比于直接操作linux指令)更好完成SWE任务。

这里涉及到的LLM特征有(当然是相对人而言的):

  • 更弱的记忆能力
  • 本质上是无状态的
  • 更弱的规划、纠错能力
  • ……

因此相应的新ACI接口做如下设计

  • find/navigation直接用search+文件名,避免多次使用ls/cd之后陷入文件树错误的分支出不来。即使ls/cd能找到正确的文件,find也能省下很多token
  • file viewer精确定位行,标注行号,方便LLM引用
  • edit指令直接指定若干范围的行进行修改,比sed之类方便,比vim简洁
  • edit执行完了会返回修改结果,便于LLM跟随code的最新状态
  • viewer-edit-linter这部分设计使得LLM可以更稳定地进行多次试错

(当然,也保留了LLM根据需要调用原始linux指令的能力)

(另外,感觉这篇文章更像是实现了一个mini text版的IDE,linux经验不足的人来用这套系统说不定也能很舒服)

  • editing
    • 有linting更好
  • search
    • 一次性给出结果最好,不要让模型去“翻下一条”
  • viewer
    • 查看范围(行数)适中最好
  • context
    • 只保留近期最好,完整历史反而不好
  • failure
    • 成功的案例都不需要太多步数
    • 主要还是incorrect implementations

欢迎关注我的其它发布渠道