开源自己 YY 原理写了一套 agent,仿照 Cursor、Copliot 等..

11 条回复
87 次浏览

之前发帖提过自己在折腾一个 AI 记账项目,最近花时间把代码整理了一下,文档补全了。

先放仓库地址,觉得有意思的佬帮忙点个 Star,这对我很重要,感谢!


为什么要自己造轮子?

市面上的记账 App 很多,但 AI 记账大多是简单的 "正则匹配" 或者 "Chatbot 聊天式"。我想要的是一个真正的 Agent——它能理解"帮我把上周的餐饮支出统计一下做个图表",也能在我要"删除所有数据"时跳出来拦住我。

为了实现这个,我没有用现成的 LangGraph(太重),而是自己手搓了一套 Stateful Agent 架构。
image

核心技术实现 (Agent 设计细节)

这部分是项目的核心,也是我掉坑最多的地方。整个 Agent 不是一个简单的 LLM 调用,而是一个包含规划、执行、反思的闭环系统:
image

  1. Intent Rewriter (意图预处理)
    这是第一道关。用户说话很随意(比如"记一笔 50"),LLM 直接处理容易幻觉。我加了一层预处理,负责把口语转化为结构化数据(提取金额、日期、分类),并且自动评估风险等级。如果是高风险操作(比如批量删除),直接在这里就标记需要确认。

  2. Planner (动态规划器)
    拒绝硬编码模板。Agent 会根据用户意图,动态生成一个 ExecutionPlan
    比如你说"统计本月支出",它会自动拆解为:查询交易 -> 计算总额 -> 调用渲染工具画图。每一步执行完,还可以根据结果动态调整后续计划。

  3. Stateful Agent (状态机执行)
    这是个有限状态机。精确控制 Thinking -> Tool Call -> Confirmation -> Reflection 的状态流转。
    最重要的是加入了 Human-in-the-Loop (人机协同)。涉及钱和数据的操作,Agent 会弹窗让你确认,而不是自作主张。

  4. Reflector (ReAct 反思模式)
    这是为了解决 LLM "死脑筋"的问题。每一步执行完,都有一个独立的模型在后台"反思":结果对不对?是不是报错了?
    如果工具调用失败,Reflector 会自动生成修正建议(Correction Hint),告诉执行器换个姿势重试,而不是直接报错摆烂。

  5. 后端 MCP 协议
    服务端集成了 Spring AI 和 MCP (后续放弃 MCP 了,直接基于 function call 做的工具)。业务逻辑(记账、查询、统计)直接封装成标准 Tool 暴露给 AI。

正常的业务功能

当然,抛开 AI 不谈,这也是个功能完整的记账 App:

  • 多账本:支持个人、家庭共享、商业账本。
  • 图表分析:饼图、折线图、多维分析,该有的都有。
  • 数据导出:支持导出 Excel/CSV/JSON,数据掌握在自己手里。
  • 权限管理:基于 RBAC 的权限控制。

碎碎念

代码虽然开源了,但肯定还有不少 Bug 和优化空间。目前的架构是我在实践中摸索出来的,可能不是最优解,但对于想在 RN 或 Java 项目中集成复杂 Agent 的佬,应该有点参考价值。

最后,再次厚脸皮求个 Star 🌟!

再感谢下 AI,AI 在开发过程中帮了很多忙。

❤️2
👍2
175
种子用户

GitHub 的图床是用 content 那个域名吧,我这打开就是裂开的。
image

OP

直接用的 github 的地址。我看点击【打开图片链接】可正常访问。。。

种子用户

@jamessmith 这是实际文件访问的地址,你访问的 GitHub 是链接,图片、文件什么的实际上是这个域名分发的。

发表一个评论

R保持