# 新系列二：邪修 · 我在工作流里集成了opencode

在开发投标智能体的过程中，我遇到了一个很难搞的问题。

不同模型能力与偏好不同，在生成json时，尤其是多层级+数组嵌套的json，不同的模型总是会暴露不同的问题。

因为是开源软件，支持接入任意模型，所以也没法针对每个问题进行定向优化。

之前的解决方案是尝试序列化AI返回的json，如果失败，把报错信息再扔给AI，让他修一次，一共重试3次。

这样已经能解决大多数问题了，但是仍有小概率发生如下问题：

1. 错误过多，3轮修复不完
2. 修改后虽然序列化不报错了，但是不是工作流需要的json格式了
3. 极个别模型会直接删除报错的部分。。。

## 邪修来了

经常看我文章的老板们，都知道我这个项目是用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无法解决的：

1. 超长上下文，让agent写个三五万字还行，100万字的投标文件，agent处理不来（我没测过，以我对agent+skill的了解，搞不定）
   
2. 投标文件生成步骤很多，绝不只是按照招标文件写这么简单，agent单轮对话处理不完，需要用户和AI频繁交互，记住大量提示词，不如集成到工作流+GUI，用户只需要点点选选就可以了。
   
3. 缓存优化，经过我优化后的固定工作流，以DeepSeek为例，缓存比例在40%-70%之间，综合缓存率可到达60%以上，而通过agent+skill去处理，我无法控制这些


Q：Agent还能做什么？

A：语义化修改局部内容，这是一个很好的想法（就是还没实现的意思），不让agent去处理几十上百万字，但是可以让他有针对性的修改某一段。

比如现在生成的目录不满意，只能通过UI界面操作排序、新增、修改，有了Agent功能后，可以让我的软件暴露接口，用户通过语义化提需求，agent自动操作软件。

