【开源自荐】OpenBidKit_Yibiao:一个基于AI的智能投标工具箱 - 资源荟萃 - LINUX DO
在开发投标智能体的过程中,我遇到了一个很难搞的问题。
不同模型能力与偏好不同,在生成json时,尤其是多层级+数组嵌套的json,不同的模型总是会暴露不同的问题。
因为是开源软件,支持接入任意模型,所以也没法针对每个问题进行定向优化。
之前的解决方案是尝试序列化AI返回的json,如果失败,把报错信息再扔给AI,让他修一次,一共重试3次。
这样已经能解决大多数问题了,但是仍有小概率发生如下问题:
- 错误过多,3轮修复不完
- 修改后虽然序列化不报错了,但是不是工作流需要的json格式了
- 极个别模型会直接删除报错的部分。。。
邪修来了
经常看我文章的老板们,都知道我这个项目是用opencode开发的。
于是我又突发奇想了,opencode写这种json代码正确率很高,而是有错了会自己修,那我何不~
opencode支持http服务端点,我直接在项目里内嵌了一个opencode runtime,通过api和opencode通讯,然后重写了opencode的AI服务商配置,直接代理到易标投标工具箱的AI服务商,和项目共用一套AI配置。
然后把如json格式校验/修复、全文一致性审计、原文覆盖率审计等需要理解性决策的内容,都交给opencode去处理。
大大降低了我代码的复杂度,还提升了稳定性~
扩展
Q:为什么不直接用Agent+Skill?
A:现在skill太火了,不少用户想让我开发skill版本,直接放到他的“龙虾”里,我从晚上也看到很多招投标相关的skill。
但是真的用AI写过标书就会知道,skill只能处理轻量级的项目,以下场景是Agent+Skill无法解决的:
超长上下文,让agent写个三五万字还行,100万字的投标文件,agent处理不来(我没测过,以我对agent+skill的了解,搞不定)
投标文件生成步骤很多,绝不只是按照招标文件写这么简单,agent单轮对话处理不完,需要用户和AI频繁交互,记住大量提示词,不如集成到工作流+GUI,用户只需要点点选选就可以了。
缓存优化,经过我优化后的固定工作流,以DeepSeek为例,缓存比例在40%-70%之间,综合缓存率可到达60%以上,而通过agent+skill去处理,我无法控制这些
Q:Agent还能做什么?
A:语义化修改局部内容,这是一个很好的想法(就是还没实现的意思),不让agent去处理几十上百万字,但是可以让他有针对性的修改某一段。
比如现在生成的目录不满意,只能通过UI界面操作排序、新增、修改,有了Agent功能后,可以让我的软件暴露接口,用户通过语义化提需求,agent自动操作软件。