本来准备开源自己的agent,但是测试以后还不是特别满意,尤其是coding上还欠点火候,还需要再打磨打磨再出开源第一个commit。目前使用的是qwen3.6:35b,token生成速度已经非常快了,它可以配置好自动approve的规则以后持续自主学习,然后写问答到知识数据库,推理的时候再通过知识数据库读取之前的知识,然后作出更好的行动。比如让它读linux源代码,从一个user space的行为追踪到kernel代码,已经很不错了;或者读取伤寒杂病论让它总结什么病症对应使用什么方剂;或者结合pdfcpu把pdf转markdown并提取图片,让它read file、read image然后总结知识。这样算是24小时自主学习系统差不多没大问题了。
现在的agent有几个问题:
- 不知道如何组合工具进行复杂推理 比如 js sandbox和read file,guide prompt都写了例子了,也还是不会用,不知道第一步 js sandbox (const files = (await agent.run("ls .")).split("\n")),然后第二步 js sandbox (files.shift()) 得到一个文件名,然后使用read file读取文件进行总结,再重复files.shift()直到返回空。它是真的没这个概念,在example里写出来分几个step都没有用!但是呢,如果让它直接 terminal(ls .),再一个一个读文件甚至
ls . > list+head -n 1 list && tail -n +2 list > list0 && mv list0 list它每次都是取几个,然后就开始循环崩坏了。这也是目前agent的通病。明明js array能精准控制,它意识不到;不用说我的agent了,claude code和小模型配合也不行;也用过cursor + gemini去处理这种重复劳动,gemini前面还正常后面竟然偷懒开始tail -n +<总数>直接跳到最后一个文件! - 在一个地方错了以后,retry有时候容易死循环,即便prompt很清楚了,就拿使用tool的时候需要给tool name,明确让它只选列表里的tool name并且其他文字都不要,它偏偏要带tool name + parameter比如 READ_FILE ./test.txt,重试都没有用,于是只能给它加一个如果有空格直接取第一个当tool name;后面竟然它还能在
Tool: <tool name>卡死的,它死活要输出一个前缀Tool:,只能让用户控制看到这种情况regenerate,让随机数和temperature帮它一把。 - 忽略复杂指令,比如让它读所有文件,每个文件里面把东西挑出来存成一个md文件,有时候可以work,有时候它就把文件都读了一遍,把东西也挑出来了,就是不写md文件。这个其实也应该算是和第一个问题一样的毛病。其实这个是我要写的下一个feature,把代码重构一遍,把所有行动都变成node,之后需要有一个compile过程让llm自己根据用户要求生成按要求的js code,解析js code,把它compile成DAG,然后再执行这个DAG。
现在的vibe coding仍然在使用cursor + gemini 3.x flash,最近cllama项目尝试了下更小的qwen3.8 flash next + zed效果也不错。等再迭代几轮,我们就要开始qwen3.6:35b + agent自己改进自己了。这个闭环还是比较重要的:至少是我们提出需求,它自己改自己。但先要解决DAG或者长程工具之间配合的问题,再解决知识各种错乱的问题换句话说消歧。
百废待兴,还有知识管理的很多问题要解决。嗯,还要花时间看看如何改进ds4,后面尝试下一个server+cllama短视频音频图像生成流水线整合起来,最近看到LocalAI,差不多那个方向吧。然后再自动写个量化系统赚点发电资金。