最开始接触 AI 时,我只是把 ChatGPT 当作一个聊天机器人。到后来又用上了 Cline 、Windsuf 、Cursor 这类 AI 编程工具。起初不太习惯不怎么去用,但习惯了之后发现,这些工具用起来是挺爽的。比如,用 Cline 和 Cursor 直接对话就可以快速定位和修复代码问题,脑子不在线的时候直接提需求‘你要 XXXXXX’,然后等着结果就行。我可以信不过 AI ,但我可以信得过测试用例和运行结果,渐渐的AI 不再只是对话,而是逐渐成为工作流的一部分,不想动脑子的时候就不动脑子,直接提需求就行,然后 TAB 、TAB 、TAB ,done 。
我的上一份工作是做物流行业的信息系统。这个行业里,很多人还在用 Excel 、手写单据、打印 PDF 、手动录入数据——效率低得让人抓狂。曾经,我花了三个月写了个 Mac/iOS 的 OCR 工具,想帮他们自动提取表格数据。虽然效果不错,但考虑到物流从业者大多用 Windows 和 Android ,市场覆盖率太低,就放弃了。
再后来,GPT-4 刚出来的时候我测试了 GPT-4 的多模态能力,让它解析 PDF 和图片里的表格数据——结果远超预期。我就想如果给 AI 一对翅膀,让 AI 不仅能“看懂”文件,还能“操作”软件,工作方式会被彻底改变。
2025 年 2 月,公司裁员我领了大礼包。“说人话+自动化”再次点燃了我的热情,按捺不住心中的悸动“现在不做,回头就只有看别人做好的了“, ”just do it”!
让 AI 长上翅膀和手脚吧
最开始,我并没有想清楚 Swiflow 到底要服务谁。只是觉得“说人话+自动化”很酷。为了验证想法,我在朋友的数据库上跑了个用例:让 AI 根据媒体资讯自动生成研究报告。
效果很好——即使没有数据字典的辅助,AI 也能自己查询分析表结构、查询数据、输出报表构建看起来不错的分析。
这个正向反馈让我开心了好一阵子,但问题也随即而来:我开发的是桌面端应用,大多数用户根本没有数据库可用。
“酷炫效果”不等于“实用产品”,只能继续从桌面场景找具体用例。
第一版 Swiflow 内置了几个核心工具:
浏览器工具让我纠结了很久:“到底该支持哪些操作?” 点击?输入?滚动?还是直接模拟用户行为?
越想越复杂,最后意识到:“先解决一个具体问题,别妄想做‘全能 Agent’。”
在这个项目之前我没做过真正的 Autonomous Agent (自主智能体),只写过自动回复邮件的 Bot 。
但完全自动化的 Agent 复杂程度远超预期——原本乐观估计一两个月搞定,结果光是 MVP 就花了俩月,中间还不停从开源项目( Cline 、Sono 、Open Manus )中学习经验,有时候忍不住问自己为什么要自己造轮子,开车不香么。
感谢开源组织,好人一生平安
问题 1:Prompt 像豆腐渣工程
初始 Prompt 是基于别的项目改的,只做了简单约束,结果 AI 经常“自由发挥”——要么误解需求,要么生成不靠谱的代码。
问题 2:多轮对话崩盘
用户提问:“将这个目录下的 PDF 单据整理成表格。”
Agent 响应:写 Python 脚本→装依赖→调整环境→修改报错→再错再改……
出发了很久,还没走出高老庄。
问题 3:上下文爆炸 由上可以看出 AI 是个老好人,不会拒绝你,也不会拒绝你做的事。在 Agent 里正是如此‘我错了,我要改’,‘让我再试试’,‘我还能行,扶我起来’。 但 Agent 每执行一步都会往对话里塞更多信息,而且不停试错不停改,很快就把上下文窗口撑爆了。
Agent 勤奋且努力,我半夜醒来都觉得自己不如 Agent 努力,忍不住想说‘扶我起来我还能行’。
问题 4: 造工具不靠谱
最初没有经验,以为 python 的轮子那么多了,让 agent 随便造呗,给你 100 块钱想吃啥买啥
等实际测试时发现,agent: '你让我自己做饭么?','是的,你自己做饭','好的,请放心'
最后:'MAMA ,房子被烧了'
由于让 Agent 自己搓工具靠不住,最终决定还是先用现成的吧。 于是迅速拥抱 MCP 生态,先解决工具链的稳定性问题。
饿肚子的时候吃外卖也挺好的,预制菜不预制菜的重要么?
测试时,Swiflow 玩五子棋、写贪吃蛇、解数独——表现惊艳。但一遇到真实工作场景(比如“物流单据转 Excel”),效果就大打折扣。
后来我懂了:AI 有知识,但没经验 它知道“表格”是什么,但它不懂“物流行业的单据长啥样”,也不懂每个字段之间的业务关系。这个问题也不是一个复杂的问题,本可以调整 Prompt 来优化,但整个流程中“发现问题→修改 Prompt →重新对话”的循环太不友好。于是,我加入了“记忆功能”——用户只需在对话中提醒 Agent “记住这个、记住那个”,它就能逐步学习业务规则。
传统软件开发是"输入→处理→输出",但 Agent 更像是概率性的探索。如果完全放手让它自己跑,很容易南辕北辙。在合适的地方适当的停下来咨询用户的意见也是个不错的选择,像 Cursor 的 Agent 就经常这么干不知道是为了省 token 还是为啥。
最初我希望 Swiflow 能"完全自主"——用户说一句话,AI 就能独立完成整个任务。但现实给了我当头一棒:
所以现在的思路是:与其信马由缰,不如相敬如宾 —— 让 AI 成为"会主动汇报的助手",而不是"全权代理的黑盒"。
经过半年的摸爬滚打,Swiflow (swiflow.cc)现在具备了一些实用的核心功能:
在实际应用中,它能稳定处理批量文件处理、数据格式转换、邮件管理、信息收集等桌面自动化任务。虽然离最初"AI 万能助手"的愿景还有距离,但至少在具体场景下,它确实能帮用户省下不少时间。
更重要的是,这个过程让我对 AI Agent 有了更现实的认知:它不是魔法,而是工具。就像任何工具一样,关键在于找到合适的使用场景,而不是期待它解决所有问题。
做 Swiflow 的半年里,我的体会是:虽然 AI Agent 还不完美,但大模型的快速进化和 Agent 在某些场景下的优异表现,让未来值得期待。也许某一天,我们真的可以直接委托 AI Agent 撒手去做了,我们就吃着火锅唱着歌,事儿就办成了。
如果你也想体验一下这种"撒手掌柜"的感觉,欢迎来试试 Swiflow——说不定真能让你提前下班去吃火锅呢。
![]() |
1
chnwine OP 官网地址: https://swiflow.cc/ 欢迎体验
|
2
bisnail 36 天前
© 2024 Swiflow. 保留所有权利。
底部的日期可以更新到 2025 哈哈,给你点赞 |
![]() |
4
frankmdong 36 天前
感谢,对我有点启发,想知道你是如何挑选的技术栈呢,agent 使用的现成框架吗
|
![]() |
5
chnwine OP @frankmdong 挑选技术栈,最早我想选用 js\ts, 这块开源项目比较丰富(cherry-ai,5ire), 适合学习参考,如果是 web app 开发的话 python 资源也比较丰富。但我之前用 golang 多一点,但这次做的也是客户端开发,考察了一下 golang 跨平台编译开发便捷性也都还不错于是把 golang 拿来做了后端,前端选的 vue3 没上什么其他的 framework ,app 这块用的 tauri 当初忘了为啥选 tauri 好像是因为打包后比较小也可能是 在 X 上受了 ChatWise 作者的影响。
**回到正题**:agent 没使用现成框架,完全手搓,但 coze 最近开源了一波代码可以参考学习下 coze-studio 、coze-loop |
![]() |
6
frankmdong 36 天前
@chnwine #5 那很厉害啊手搓 agent !佩服!所以你是用了 go 来搓 agent 是吗,你的应用是需要要连服务器使用?
|
![]() |
7
chnwine OP ![]() @frankmdong 等我回头写了 agent 部分的分享 @ 你一下,敬请期待
|
![]() |
8
chnwine OP @frankmdong golang 就是服务器端,直接在本地起了个 server ,前端连的是这个 server 。你可以理解还是 bs 架构,用 tauri 包了一下打包在了桌面环境。
|
9
RotkPPP 36 天前
牛逼哥,能不能分享一波技术分享,我也想自己手搓 agent 应用
|
![]() |
11
linKnowEasy 36 天前
|
![]() |
12
frankmdong 36 天前
@chnwine #8 噢噢,就是 sidecar
|
![]() |
13
chnwine OP @linKnowEasy 谢谢你的建议 [建议去掉用户设置 API key 的过程] 这个建议非常中肯,非常感谢。
我之前有想过去掉这时'API key'这个不走,如果去掉的话就需要自建一个模型代理和认证体系,目前还处于探索阶段,等产品成熟稳定了会考虑把这个加上的。 第二个问题,我晚上修复一下~🫰 |
![]() |
14
linKnowEasy 36 天前 ![]() @chnwine #13 你可以前期用脚本啥的多注册几个免费模型的账号. 一般种子用户也不会那么多的。 后面成熟了再考虑其他类似 API 服务商. 花钱就行了
按照你的说法就是 制作核心功能. 你甚至可以把其他功能隐藏掉. 对一个普通用户来说. 什么 mcp, 什么记忆, 模型都是陌生的. 普通用户要的就是 一句话就能完成一个任务 . 默认都给直接配置上 常见文件格式的处理支持就行了. 在我看来, 你这个工具还是通用的 AI Agent 甚至你更加聚焦一点. 定位到 需要批量文件处理 的普通用户. 能一句话就能完成任务 不同任务设置专门的 Agent, 这里 Agent 直接拆分命名为 pdf 机器人. excel 机器人. 用户要处理什么格式的。 就切换到不同的机器人就行. 不要增加用户的操作成本 电脑端用户更习惯 GUI . 处理文件的时候. 你只需要给用户提供一个选择文件夹的功能(比如拖动文件夹到指定区域啥的, 更加的小白化) |
![]() |
15
chnwine OP @linKnowEasy 大佬你这个回复就真的很专业直指问题点了。
> ‘普通用户要的就是 一句话就能完成一个任务’ 我先回复这个问题,实际上你说的方向和我期待的一样,前两天在准备 case 的时候也是按照这个方向录制的视频,但我反复调整提示词,中间介入 agent 的工具使用还是有 15% 的幻觉数据没有发现和修复。我这两天在反思提示词要放开约束还是加强约束,目前还没有方向。另外一个问题是 agent 自动化操作 word 、excel 等数据的时候,其实这不像编程开发开着 ide 就能实时看到 agent 对代码的更新,xlsx 文件更新不会直接体现在 Excel 上,如果不能 100% 正确,又不能对操作对象的修改实时预览就有很难介入对 agent 对指导。 如果放手 agent 去独立完成,那么准确率就需要有一定的保证。如果让 agent 起到一个协助过程,那 ‘实时预览’ 就很有必要。这是两个我还没有思路的问题点。 所以 > 不同任务设置专门的 Agent, 这里 Agent 直接拆分命名为 pdf 机器人. excel 机器人. 用户要处理什么格式的。 就切换到不同的机器人就行. 不要增加用户的操作成本 这个问题就是,这是产品方向的优化方案,参考上一个问题但在技术层面我还没搞定,以至于能看到‘这个工具还是通用的 AI Agent’。 > 电脑端用户更习惯 GUI, 比如拖动文件夹到指定区域啥的, 更加的小白化 这个在 WEB 上我是做了的,套了壳之后发现拖拽不了,但核心问题还在,锦上添花的事情也没那么重要了。 再次 respect ~ |
![]() |
16
linKnowEasy 36 天前
@chnwine #15
我的一个思路 不一定对. 1.加强收束 2. 增加一个 agent ? 准确率肯定是要高的,不然产品都不可用, 那一切都没意义 产品形态问题. 可以是纯 web . 优先满足需求 |
![]() |
17
chnwine OP @linKnowEasy 嗯谢谢,让我多 try 一 try, 这个场景不行就换一个场景,先 try 出一条路来~
|
![]() |
18
chnwine OP 切换模型之后选用的工具也不一样了,但如果在使用工具的时候直接就得到了正向的结果整个流程也会通顺不少,消极的结果虽然 agent 也不会放弃但开始了试探就少了好多信心
Agent 也像真人一样么,出了错就开始丧了? |
![]() |
19
chnwine OP 修正了工具减少错误几率,换了豆包和 bigmodel 的模型,调整上下文配置后开始好起来了
|
![]() |
20
chnwine OP @frankmdong @RotkPPP 不好意思食言了,技术内容很早就写了但接下来忙的兵荒马乱的就没分享出来
但现在我把项目开源了,https://www.v2ex.com/t/1156317#reply0 至今未润色的 [我在构建 AI Agent 时遇到的问题]( https://uth.ink/posts/2507/swiflow-build.html) 别嫌弃😆 |