用 Cursor 写了一个德州扑克游戏平台(线上游戏筹码管理+发牌,线下游戏筹码管理)
代码: https://github.com/zeruniverse/texas_game
demo 部署: http://8.154.30.149:5173/
其实重点不是这个游戏平台本身,而是想分享一下用 Cursor 做软件工程的经历。
## 为什么做这个平台
我平常工作中用 AI 编码工具大部分是在已有项目上修修补补,用补全比较多。而在已有项目中,因为有些代码也写得不标准,导致用 AI agent 反而会把事情搞糟。所以这次我的主要目的是想体验纯 AI 编程,即**不手动改任何代码,全部通过给 AI agent 指令来完成一个项目**以及**不手动改任何代码,全部通过给 AI agent 指令来重构一个项目**
写德州扑克游戏平台纯粹是前几周线下游戏没有筹码搞得大家很难受,然后这个项目感觉对于 AI 来说也难度适中。没有什么特别的原因,做狼人杀或者什么 ERP 系统也是一样的。
## 项目经历
整个项目跨度 2.5 天(周四周五以及周六半天),周四要上班所以整天只花了 3 小时,周五白天上班花了午休 1 小时,晚上从 9:30PM 通宵到周六的 4:30AM ,花了 7 小时,周六起床后花了 3 小时。所以整个项目(包括打字/debug/测试)总共花了 13 小时(可能物理时间要多加两三个小时,需要写大量代码的时候我就把 cursor 挂着去干别的了)。分为两部分:
1. 实现并验证功能,花费 7 小时
2. 把每个游戏房间的逻辑拆成单独的 worker 线程,花费 6 小时
整个项目我只扮演产品经理和测试工程师,告诉 AI 我想要什么及 BUG 的现象是什么,技术选型及 debug 全部尽量由 AI 完成(期间有大约 3 次我让 AI 改了 10 次 AI 都改不对,所以我就帮了 AI 一下告诉他哪里的逻辑不对,代码修改仍然是 AI 做的)
AI 的技术选型是前端 VUE + 后端 Node.js 。我对这两者其实都算有所接触但不是很熟,(我工作中主要写 python 和 cpp, 但没有关系,反正代码也不是我写
我用了 o4-mini, claude-4.0-sonnet-thinking, deepseek-r1 和 gemini-2.5-pro ,全是思考模型,但是 deepseek-r1 和 gemini-2.5-pro 会把事情搞糟。所以后面只用 o4-mini, claude-4.0-sonnet-thinking
Cursor 的账号总共消耗了 157 次请求(目前 o4-mini 每次请求算 1 次,claude-4.0-sonnet-thinking 算 0.8 次),我应该总共请求了大概 130 次 agent(有些比较长的任务 cursor 会自动中止,此时按 resume 继续运行会重新算请求,请求数量大概是 180 次左右)
目前这个项目的状态我自己开了几个不同的浏览器测试已经测不出什么致命问题了。
## “可以节省”的时间
1. deepseek-r1 和 gemini-2.5-pro 浪费时间。早不用这两个估计能省 0.5 小时
2. 3 个 bug AI 怎么改都改不对,所以让 AI 加调试信息然后自己去看代码。再加上已经知道怎么改后,不自己改,教 AI 改。这 3 个 bug 自己改估计能省 1 小时 (我是 AI 改了差不多 10 次还改不对才自己去看,AI 每次改都要时间)
3. 半夜 o4-mini 特别特别慢,感觉是美国那边开始干活导致的。如果一直是白天的速度估计能再省 1 小时
4. 如果我再熟悉一点 vue 以及 node.js ,我感觉可以再省 1 小时
5. 按我自己的想法把复杂模块的技术方案告诉 AI, 让 AI 按我的技术方案做,可能可以再省 2 小时。
所以在极限情况下项目时间是一个 8 小时的编码,如果一开始就告诉 AI 做成多线程就不需要重构了,这样的话,大概项目时长在 6 小时左右。
我大概看了几眼代码和 AI 给出来的 PRD ,如果不用 AI 纯手工我一个人把这个项目做完(不摸鱼)大概需要 80 小时以上的工作量(这个一方面是我写前后端不专业,全栈大佬可以看代码和 demo 估一个时间)
## 经验
1. 项目刚开始一定要让一个靠谱的 AI 写一个完整的 PRD, 然后把 prd 作为 context 把项目框架搭出来。直接按需求开始写会很乱,因为需求几个字也描述不清楚。我是先让 o4-mini 根据 web 完全调研德州扑克游戏,然后根据我的需求写完整 PRD 。后面的框架代码把核心逻辑用 TODO 表示出来,然后用后续的指令去消除 TODO
2. 复杂的模块一定要让 AI 单独去写,不要混在一大堆任务里,不然一定写不对
3. claude-4.0-sonnet 不太聪明但是一般不会写 bug ,o4-mini 聪明但喜欢写小 bug 。所以难的小模块和框架让 o4-mini 去写,修 bug 都用 claude-4.0-sonnet
## 感想
1. 5205 年了应该放弃传统编程思维,不要再手撸代码
2. 于程序员来说,经验的重要性会快速下降,逻辑能力的重要性会提升( AI 确实没有办法解复杂的 bug )
3. 懂技术的产品经理是这个时代的王
4. 基于 3 ,一个人可以开一家技术公司的时代已经来了
5. 这个世界可能再也不需要那么多程序员岗位了,得想想后路。
代码: https://github.com/zeruniverse/texas_game
demo 部署: http://8.154.30.149:5173/
其实重点不是这个游戏平台本身,而是想分享一下用 Cursor 做软件工程的经历。
## 为什么做这个平台
我平常工作中用 AI 编码工具大部分是在已有项目上修修补补,用补全比较多。而在已有项目中,因为有些代码也写得不标准,导致用 AI agent 反而会把事情搞糟。所以这次我的主要目的是想体验纯 AI 编程,即**不手动改任何代码,全部通过给 AI agent 指令来完成一个项目**以及**不手动改任何代码,全部通过给 AI agent 指令来重构一个项目**
写德州扑克游戏平台纯粹是前几周线下游戏没有筹码搞得大家很难受,然后这个项目感觉对于 AI 来说也难度适中。没有什么特别的原因,做狼人杀或者什么 ERP 系统也是一样的。
## 项目经历
整个项目跨度 2.5 天(周四周五以及周六半天),周四要上班所以整天只花了 3 小时,周五白天上班花了午休 1 小时,晚上从 9:30PM 通宵到周六的 4:30AM ,花了 7 小时,周六起床后花了 3 小时。所以整个项目(包括打字/debug/测试)总共花了 13 小时(可能物理时间要多加两三个小时,需要写大量代码的时候我就把 cursor 挂着去干别的了)。分为两部分:
1. 实现并验证功能,花费 7 小时
2. 把每个游戏房间的逻辑拆成单独的 worker 线程,花费 6 小时
整个项目我只扮演产品经理和测试工程师,告诉 AI 我想要什么及 BUG 的现象是什么,技术选型及 debug 全部尽量由 AI 完成(期间有大约 3 次我让 AI 改了 10 次 AI 都改不对,所以我就帮了 AI 一下告诉他哪里的逻辑不对,代码修改仍然是 AI 做的)
AI 的技术选型是前端 VUE + 后端 Node.js 。我对这两者其实都算有所接触但不是很熟,(我工作中主要写 python 和 cpp, 但没有关系,反正代码也不是我写
我用了 o4-mini, claude-4.0-sonnet-thinking, deepseek-r1 和 gemini-2.5-pro ,全是思考模型,但是 deepseek-r1 和 gemini-2.5-pro 会把事情搞糟。所以后面只用 o4-mini, claude-4.0-sonnet-thinking
Cursor 的账号总共消耗了 157 次请求(目前 o4-mini 每次请求算 1 次,claude-4.0-sonnet-thinking 算 0.8 次),我应该总共请求了大概 130 次 agent(有些比较长的任务 cursor 会自动中止,此时按 resume 继续运行会重新算请求,请求数量大概是 180 次左右)
目前这个项目的状态我自己开了几个不同的浏览器测试已经测不出什么致命问题了。
## “可以节省”的时间
1. deepseek-r1 和 gemini-2.5-pro 浪费时间。早不用这两个估计能省 0.5 小时
2. 3 个 bug AI 怎么改都改不对,所以让 AI 加调试信息然后自己去看代码。再加上已经知道怎么改后,不自己改,教 AI 改。这 3 个 bug 自己改估计能省 1 小时 (我是 AI 改了差不多 10 次还改不对才自己去看,AI 每次改都要时间)
3. 半夜 o4-mini 特别特别慢,感觉是美国那边开始干活导致的。如果一直是白天的速度估计能再省 1 小时
4. 如果我再熟悉一点 vue 以及 node.js ,我感觉可以再省 1 小时
5. 按我自己的想法把复杂模块的技术方案告诉 AI, 让 AI 按我的技术方案做,可能可以再省 2 小时。
所以在极限情况下项目时间是一个 8 小时的编码,如果一开始就告诉 AI 做成多线程就不需要重构了,这样的话,大概项目时长在 6 小时左右。
我大概看了几眼代码和 AI 给出来的 PRD ,如果不用 AI 纯手工我一个人把这个项目做完(不摸鱼)大概需要 80 小时以上的工作量(这个一方面是我写前后端不专业,全栈大佬可以看代码和 demo 估一个时间)
## 经验
1. 项目刚开始一定要让一个靠谱的 AI 写一个完整的 PRD, 然后把 prd 作为 context 把项目框架搭出来。直接按需求开始写会很乱,因为需求几个字也描述不清楚。我是先让 o4-mini 根据 web 完全调研德州扑克游戏,然后根据我的需求写完整 PRD 。后面的框架代码把核心逻辑用 TODO 表示出来,然后用后续的指令去消除 TODO
2. 复杂的模块一定要让 AI 单独去写,不要混在一大堆任务里,不然一定写不对
3. claude-4.0-sonnet 不太聪明但是一般不会写 bug ,o4-mini 聪明但喜欢写小 bug 。所以难的小模块和框架让 o4-mini 去写,修 bug 都用 claude-4.0-sonnet
## 感想
1. 5205 年了应该放弃传统编程思维,不要再手撸代码
2. 于程序员来说,经验的重要性会快速下降,逻辑能力的重要性会提升( AI 确实没有办法解复杂的 bug )
3. 懂技术的产品经理是这个时代的王
4. 基于 3 ,一个人可以开一家技术公司的时代已经来了
5. 这个世界可能再也不需要那么多程序员岗位了,得想想后路。
Sharing a Fun Music Creation Game Platform - Sprunki Games
Hey everyone,
I recently discovered an interesting music creation game platform called Sprunki Games (sprunki-games.online) that I'd like to share with the community. It's an Incredibox-inspired project that lets you create music through an intuitive drag-and-drop interface using colorful characters.
What I find interesting about it:
No download required - runs directly in your browser
Multiple game versions (called "Phases") with different musical styles and characters
Completely free to play
Works well on both desktop and mobile devices
Has some unique variants like "Sprunki Pyramixed" and "Sprunki Retake"
The core gameplay is pretty straightforward - you select characters that represent different sounds, beats, and melodies, then combine them to create your own musical compositions. Each character adds a unique sound to the mix.
There are several versions to try:
Classic phases (Phase 3 through 6)
Special editions with unique themes
Community-created mods
Retro-styled versions like "Sprunki 1996"
I especially enjoy how it makes music creation accessible to everyone, regardless of musical background. You can save your creations and share them with others too.
If you're into music creation games or just looking for something creative to play during breaks, give it a try. Would love to hear what you think if you check it out.
Hey everyone,
I recently discovered an interesting music creation game platform called Sprunki Games (sprunki-games.online) that I'd like to share with the community. It's an Incredibox-inspired project that lets you create music through an intuitive drag-and-drop interface using colorful characters.
What I find interesting about it:
No download required - runs directly in your browser
Multiple game versions (called "Phases") with different musical styles and characters
Completely free to play
Works well on both desktop and mobile devices
Has some unique variants like "Sprunki Pyramixed" and "Sprunki Retake"
The core gameplay is pretty straightforward - you select characters that represent different sounds, beats, and melodies, then combine them to create your own musical compositions. Each character adds a unique sound to the mix.
There are several versions to try:
Classic phases (Phase 3 through 6)
Special editions with unique themes
Community-created mods
Retro-styled versions like "Sprunki 1996"
I especially enjoy how it makes music creation accessible to everyone, regardless of musical background. You can save your creations and share them with others too.
If you're into music creation games or just looking for something creative to play during breaks, give it a try. Would love to hear what you think if you check it out.
看“Steam 账号被盗刷”分享一个自己的防盗策略
因为我账号里的高价值饰品比较多,再加上被清理过一次饰品痛失一千多块,所以研究了一个基于家庭账户功能费防盗手段。
核心就是利用 Steam 账号家庭功能进行防盗。
1.注册小号 A ,开启两步认证
2.小号 A 作为家长创建家庭(新号创建家庭账户需要消费 30 元还是 40 元,记不太清了)
3.主号 B 作为 儿童 加入小号 A 家庭
4.在旧手机上登录小号 A ,并移除所有其他设备授权,至此小号 A 只在这个旧手机上登录并操作,该手机只做这件事情
5.开启大号 A 家长控制,关闭一切游戏时不需要的功能,比如社区市场
到这里设置完毕
日常使用中大号正常游戏无感,在需要社区市场以及其他被限制功能时会直接弹出功能申请提示
届时可用旧手机选择暂时关闭或者批准使用(批准时间可选择 1 小时 4 小时 24 小时)
因为有家长控制,所以这个号不能进行账号操作如改密码等,不能进行社区交易,还可以限制不能使用时长被清理余额
因为我账号里的高价值饰品比较多,再加上被清理过一次饰品痛失一千多块,所以研究了一个基于家庭账户功能费防盗手段。
核心就是利用 Steam 账号家庭功能进行防盗。
1.注册小号 A ,开启两步认证
2.小号 A 作为家长创建家庭(新号创建家庭账户需要消费 30 元还是 40 元,记不太清了)
3.主号 B 作为 儿童 加入小号 A 家庭
4.在旧手机上登录小号 A ,并移除所有其他设备授权,至此小号 A 只在这个旧手机上登录并操作,该手机只做这件事情
5.开启大号 A 家长控制,关闭一切游戏时不需要的功能,比如社区市场
到这里设置完毕
日常使用中大号正常游戏无感,在需要社区市场以及其他被限制功能时会直接弹出功能申请提示
届时可用旧手机选择暂时关闭或者批准使用(批准时间可选择 1 小时 4 小时 24 小时)
因为有家长控制,所以这个号不能进行账号操作如改密码等,不能进行社区交易,还可以限制不能使用时长被清理余额
极致隐私与便捷体验的 HEIC 转 PDF 在线工具
当然可以,以下是一篇更完整、真诚、细致的介绍文章,包含了官网和开源地址,适合用于推广、分享或项目介绍:
---
# HEIC to PDF:极致隐私与便捷体验的 HEIC 转 PDF 在线工具
在数字影像时代,苹果设备拍摄的 HEIC 格式照片以高效、高清著称,但在实际分享、归档或办公场景中,PDF 格式往往更为通用。面对市面上众多 HEIC 转换工具,许多用户最关心的其实是隐私、效率和易用性。今天,真诚地向大家推荐一款完全不同的选择——[HEIC to PDF 在线工具]( https://heictopdf.tech)。
## 为什么选择 HEIC to PDF ?
### 1. 纯前端本地处理,隐私无忧
HEIC to PDF 最大的亮点就是**所有图片处理都在本地浏览器完成**,无需上传任何文件到服务器。这意味着你的照片不会离开你的设备,真正做到了隐私保护。无论你是摄影师、设计师,还是企业用户,都可以放心使用,无需担心数据泄露风险。
### 2. 批量转换与 PDF 合并,效率拉满
支持批量上传、批量转换,无论是一张还是上百张 HEIC 图片,都能一键处理。你可以选择将多张图片合并成一个多页 PDF ,或分别导出为多个 PDF 文件,灵活满足不同需求。整个过程流畅高效,没有数量和大小的限制,真正为高效办公和大批量图片处理场景而生。
### 3. 高级设置,满足专业需求
内置丰富的高级选项:自定义图片尺寸、页面大小( A4 、Letter 、原始尺寸)、裁剪与缩放、是否保留元数据等。无论是日常办公,还是专业图片归档,都能找到最适合你的参数组合。
### 4. 跨平台兼容,随时随地可用
HEIC to PDF 支持 Windows 、macOS 、Linux 以及所有主流浏览器和移动设备。无需安装、无需注册,打开网页即可使用。没有广告、没有水印、没有功能限制,真正做到“即开即用”。
### 5. 免费且开源,用户至上
这个项目完全免费,且开源,代码托管在 [GitHub]( https://github.com/Gijela/heic-to-pdf)。开发团队承诺永远不会收取费用,也不会设置任何使用门槛。如果你有英文版需求或其他定制化想法,也欢迎随时联系开发者或提交 issue 。
## 如何使用?
1. 打开 [https://heictopdf.tech]( https://heictopdf.tech)。
2. 点击“上传文件”或直接拖拽 HEIC 图片到转换区域。
3. 可继续添加更多图片,实现批量转换。
4. 勾选“合并 PDF”选项(如需将多张图片合成一个 PDF )。
5. 点击“转换”,PDF 文件会自动下载到本地。
## 常见问题解答
- **支持哪些文件?** 目前仅支持 .heic 图片,单文件最大 10MB 。
- **转换后的 PDF 可以编辑吗?** 可以,导出的 PDF 可用任何标准 PDF 编辑器打开和编辑。
- **手机能用吗?** 完全支持 iOS 、Android 及所有现代浏览器。
- **图片质量如何?** 默认保留原图画质,也可在高级设置中自定义。
更多详细用法和常见问题,欢迎查阅[用户指南]( https://heictopdf.tech/how-to-use)和[FAQ]( https://heictopdf.tech/faq)。
## 技术栈一览
- Next.js 15
- React 19
- TypeScript
- Tailwind CSS
- heic2any ( HEIC 转换)
- jsPDF ( PDF 生成)
## 开源与贡献
HEIC to PDF 项目完全开源,欢迎大家访问 [GitHub 仓库]( https://github.com/Gijela/heic-to-pdf) 查看源码、提交建议或参与贡献。无论你是开发者还是普通用户,都可以为项目添砖加瓦,让工具变得更好、更强大。
## 结语
HEIC to PDF 在线工具不仅仅是一个简单的格式转换器,更是对用户隐私和体验的极致追求。无论你是普通用户,还是有专业需求的从业者,都能在这里找到最安心、最高效的解决方案。欢迎大家体验并分享给有需要的朋友!
- 在线体验:[https://heictopdf.tech]( https://heictopdf.tech)
- 开源地址:[https://github.com/Gijela/heic-to-pdf]( https://github.com/Gijela/heic-to-pdf)
如果你有任何建议或定制需求,也欢迎随时与开发团队联系。让我们一起让图片转换变得更简单、更安全!
---
当然可以,以下是一篇更完整、真诚、细致的介绍文章,包含了官网和开源地址,适合用于推广、分享或项目介绍:
---
# HEIC to PDF:极致隐私与便捷体验的 HEIC 转 PDF 在线工具
在数字影像时代,苹果设备拍摄的 HEIC 格式照片以高效、高清著称,但在实际分享、归档或办公场景中,PDF 格式往往更为通用。面对市面上众多 HEIC 转换工具,许多用户最关心的其实是隐私、效率和易用性。今天,真诚地向大家推荐一款完全不同的选择——[HEIC to PDF 在线工具]( https://heictopdf.tech)。
## 为什么选择 HEIC to PDF ?
### 1. 纯前端本地处理,隐私无忧
HEIC to PDF 最大的亮点就是**所有图片处理都在本地浏览器完成**,无需上传任何文件到服务器。这意味着你的照片不会离开你的设备,真正做到了隐私保护。无论你是摄影师、设计师,还是企业用户,都可以放心使用,无需担心数据泄露风险。
### 2. 批量转换与 PDF 合并,效率拉满
支持批量上传、批量转换,无论是一张还是上百张 HEIC 图片,都能一键处理。你可以选择将多张图片合并成一个多页 PDF ,或分别导出为多个 PDF 文件,灵活满足不同需求。整个过程流畅高效,没有数量和大小的限制,真正为高效办公和大批量图片处理场景而生。
### 3. 高级设置,满足专业需求
内置丰富的高级选项:自定义图片尺寸、页面大小( A4 、Letter 、原始尺寸)、裁剪与缩放、是否保留元数据等。无论是日常办公,还是专业图片归档,都能找到最适合你的参数组合。
### 4. 跨平台兼容,随时随地可用
HEIC to PDF 支持 Windows 、macOS 、Linux 以及所有主流浏览器和移动设备。无需安装、无需注册,打开网页即可使用。没有广告、没有水印、没有功能限制,真正做到“即开即用”。
### 5. 免费且开源,用户至上
这个项目完全免费,且开源,代码托管在 [GitHub]( https://github.com/Gijela/heic-to-pdf)。开发团队承诺永远不会收取费用,也不会设置任何使用门槛。如果你有英文版需求或其他定制化想法,也欢迎随时联系开发者或提交 issue 。
## 如何使用?
1. 打开 [https://heictopdf.tech]( https://heictopdf.tech)。
2. 点击“上传文件”或直接拖拽 HEIC 图片到转换区域。
3. 可继续添加更多图片,实现批量转换。
4. 勾选“合并 PDF”选项(如需将多张图片合成一个 PDF )。
5. 点击“转换”,PDF 文件会自动下载到本地。
## 常见问题解答
- **支持哪些文件?** 目前仅支持 .heic 图片,单文件最大 10MB 。
- **转换后的 PDF 可以编辑吗?** 可以,导出的 PDF 可用任何标准 PDF 编辑器打开和编辑。
- **手机能用吗?** 完全支持 iOS 、Android 及所有现代浏览器。
- **图片质量如何?** 默认保留原图画质,也可在高级设置中自定义。
更多详细用法和常见问题,欢迎查阅[用户指南]( https://heictopdf.tech/how-to-use)和[FAQ]( https://heictopdf.tech/faq)。
## 技术栈一览
- Next.js 15
- React 19
- TypeScript
- Tailwind CSS
- heic2any ( HEIC 转换)
- jsPDF ( PDF 生成)
## 开源与贡献
HEIC to PDF 项目完全开源,欢迎大家访问 [GitHub 仓库]( https://github.com/Gijela/heic-to-pdf) 查看源码、提交建议或参与贡献。无论你是开发者还是普通用户,都可以为项目添砖加瓦,让工具变得更好、更强大。
## 结语
HEIC to PDF 在线工具不仅仅是一个简单的格式转换器,更是对用户隐私和体验的极致追求。无论你是普通用户,还是有专业需求的从业者,都能在这里找到最安心、最高效的解决方案。欢迎大家体验并分享给有需要的朋友!
- 在线体验:[https://heictopdf.tech]( https://heictopdf.tech)
- 开源地址:[https://github.com/Gijela/heic-to-pdf]( https://github.com/Gijela/heic-to-pdf)
如果你有任何建议或定制需求,也欢迎随时与开发团队联系。让我们一起让图片转换变得更简单、更安全!
---
MCP 虽好,但我还是有一些槽不吐不快
# 背景
在 MCP 出现之前,我也会用外部工具增强 AI 的能力。比如我开发了一个助手 bot ,开发和使用流程如下:
1. 在 python 里定义一些工具函数(比如生成图片或下载文件等)。
2. 当用户向 bot 发送文本时,bot 把工具的描述和用户文案给到 AI ,让 AI 判断需要调用哪个工具。
3. 当工具执行完后,再将执行结果发给 AI ,让 AI 决定是继续调用工具、还是向用户输出结果。
这套流程只能说在我的场景勉强够用,问题主要有两个:
1. 工具函数不够通用,只能在这个 bot 里使用
2. 对话都在一个 bot 聊天框里完成,上下文管理让人头疼
# MCP 的愿景
虽然 MCP 出来有一段时间了,但昨天才真正开始上手使用,用的公司内部工具。首次使用时 MCP 给我的愿景还挺好的:我只需要维护工具函数的代码,就可以在各种客户端( cluade desktop/cusor 等)中复用,甚至共享给其他人,看起来很好解决了我上面的两个问题。
今晚和昨天我重点关注 MCP 服务器的开发、MCP 客户端的体验,也在过程中碰到了不少槽点,在此记录一下。
# 1. 协议交互
1. OpenWebUI 没有选择标准 MCP 协议,而是特立独行**自创了一套 OpenAPI 的协议**。虽然可以用 mcpo 命令很容易地转换,但这也增加了部署和理解成本。转换后每个工具函数还被加上了_post 后缀,强迫症震怒。
2. sse 协议下,MCP 服务器重启后 MCP 客户端也要跟着重启,否则下次调用工具函数时就会报错
# 2. 工具函数 to AI
MCP 协议主要定义了 client 和 server 的交互。client 在获取到工具函数后如何传递给 AI ,这各软件各显神通了。
1. trae 海外版隐藏了提示词,但有意思的是,使用官方模型能很顺利调用 MCP 的工具函数;但如果是填写 key 、调用**第三方的模型**(甚至是火山引擎),**AI 就基本无法感知用户的输入和工具函数,开始胡言乱语**。可能是提示词设计的问题。
4. cline/roo code 等插件,将 MCP 的工具函数塞到自己本来就已经很长的提示词( 10k+ tokens!)里了,可能会导致**AI 优先使用内置的工具**。当然这点可以通过提示词强调优先使用 MCP 、或切换 roo code 的模式来缓解。
5. OpenWebUI 又特立独行,每次对话时会先根据少量上下文和用户输入让 AI 决定是否调用工具函数。如果没有调用工具、或工具调用结束,AI 是感知不到工具函数的。**也就是说,如果你问 AI 当前有哪些工具、或者某个工具的参数是什么,AI 是回答不出来的**。
另外,cline/roo code 和 AI 交互用的是 xml 格式 prompt ,OpenWebUI 用的是 json 格式 prompt ,反正都不是大模型标准的 tools 格式哈哈。
# 3. 上下文管理
这一部分槽点也较少。不过点名批评 OpenWebUI ,由于工具的调用判断是单独的链路,所以就会出现很多奇特现象:
- 你无法向 AI 询问当前有哪些工具,或者工具的参数定义
- **工具调用完成后,AI 就感知不到工具了**。导致无法实现“用户提问 -> AI 调用工具 1 -> AI 基于工具 1 的结果调用工具 2 -> AI 给用户结果“的链式调用。
- 工具调用完成后,AI 调用**工具的参数、工具的返回值都不会记录在对话上下文里**。虽然用户可以看到这些内容,但 AI 是永远不会知道了……
相比之下,cline/root code 都是将全量信息记录在上下文里,使用起来顺畅很多。
# 4. 用户界面和其它
1. trae 海外版,前端明显有 bug ,看不到工具函数的返回值,只能按复制按钮把返回值粘贴到其它地方看。
2. cline ,工具函数的返回值没法折叠。roo code 也不支持折叠,甚至还不支持在对话框里展示图片内容。
3. OpenWebUI 在处理 json 数据(工具函数定义/展示参数、响应)时,会用 unicode 格式(/uffff )处理,可读性基本没有。
4. ChatGPTNextWeb 宣称 v2.16 支持了 MCP ,但我启动 v2.16 的 docker 镜像后,前端显示依然是 v2.15 版本,也不支持 MCP……你赢了
5. 网页版本 Claude 我能正常使用,但 Claude Desktop 提示我 APP 不可用。
# 总结
MCP (或者说用通用协议来增强 AI 对真实世界的感知和操作能力)确实是一个非常有潜力的技术。但它太新了、协议覆盖的范围也太小了,业界还没有一个如何用好 MCP 的最佳实践。当然也有可能是我太穷了,说不定直接用 cursor 就没啥问题了(
希望不久的将来,有完善的 MCP 客户端和成熟的 MCP 生态,能让每个人都能用上便捷好用的 AI 和工具。
# 背景
在 MCP 出现之前,我也会用外部工具增强 AI 的能力。比如我开发了一个助手 bot ,开发和使用流程如下:
1. 在 python 里定义一些工具函数(比如生成图片或下载文件等)。
2. 当用户向 bot 发送文本时,bot 把工具的描述和用户文案给到 AI ,让 AI 判断需要调用哪个工具。
3. 当工具执行完后,再将执行结果发给 AI ,让 AI 决定是继续调用工具、还是向用户输出结果。
这套流程只能说在我的场景勉强够用,问题主要有两个:
1. 工具函数不够通用,只能在这个 bot 里使用
2. 对话都在一个 bot 聊天框里完成,上下文管理让人头疼
# MCP 的愿景
虽然 MCP 出来有一段时间了,但昨天才真正开始上手使用,用的公司内部工具。首次使用时 MCP 给我的愿景还挺好的:我只需要维护工具函数的代码,就可以在各种客户端( cluade desktop/cusor 等)中复用,甚至共享给其他人,看起来很好解决了我上面的两个问题。
今晚和昨天我重点关注 MCP 服务器的开发、MCP 客户端的体验,也在过程中碰到了不少槽点,在此记录一下。
# 1. 协议交互
1. OpenWebUI 没有选择标准 MCP 协议,而是特立独行**自创了一套 OpenAPI 的协议**。虽然可以用 mcpo 命令很容易地转换,但这也增加了部署和理解成本。转换后每个工具函数还被加上了_post 后缀,强迫症震怒。
2. sse 协议下,MCP 服务器重启后 MCP 客户端也要跟着重启,否则下次调用工具函数时就会报错
# 2. 工具函数 to AI
MCP 协议主要定义了 client 和 server 的交互。client 在获取到工具函数后如何传递给 AI ,这各软件各显神通了。
1. trae 海外版隐藏了提示词,但有意思的是,使用官方模型能很顺利调用 MCP 的工具函数;但如果是填写 key 、调用**第三方的模型**(甚至是火山引擎),**AI 就基本无法感知用户的输入和工具函数,开始胡言乱语**。可能是提示词设计的问题。
4. cline/roo code 等插件,将 MCP 的工具函数塞到自己本来就已经很长的提示词( 10k+ tokens!)里了,可能会导致**AI 优先使用内置的工具**。当然这点可以通过提示词强调优先使用 MCP 、或切换 roo code 的模式来缓解。
5. OpenWebUI 又特立独行,每次对话时会先根据少量上下文和用户输入让 AI 决定是否调用工具函数。如果没有调用工具、或工具调用结束,AI 是感知不到工具函数的。**也就是说,如果你问 AI 当前有哪些工具、或者某个工具的参数是什么,AI 是回答不出来的**。
另外,cline/roo code 和 AI 交互用的是 xml 格式 prompt ,OpenWebUI 用的是 json 格式 prompt ,反正都不是大模型标准的 tools 格式哈哈。
# 3. 上下文管理
这一部分槽点也较少。不过点名批评 OpenWebUI ,由于工具的调用判断是单独的链路,所以就会出现很多奇特现象:
- 你无法向 AI 询问当前有哪些工具,或者工具的参数定义
- **工具调用完成后,AI 就感知不到工具了**。导致无法实现“用户提问 -> AI 调用工具 1 -> AI 基于工具 1 的结果调用工具 2 -> AI 给用户结果“的链式调用。
- 工具调用完成后,AI 调用**工具的参数、工具的返回值都不会记录在对话上下文里**。虽然用户可以看到这些内容,但 AI 是永远不会知道了……
相比之下,cline/root code 都是将全量信息记录在上下文里,使用起来顺畅很多。
# 4. 用户界面和其它
1. trae 海外版,前端明显有 bug ,看不到工具函数的返回值,只能按复制按钮把返回值粘贴到其它地方看。
2. cline ,工具函数的返回值没法折叠。roo code 也不支持折叠,甚至还不支持在对话框里展示图片内容。
3. OpenWebUI 在处理 json 数据(工具函数定义/展示参数、响应)时,会用 unicode 格式(/uffff )处理,可读性基本没有。
4. ChatGPTNextWeb 宣称 v2.16 支持了 MCP ,但我启动 v2.16 的 docker 镜像后,前端显示依然是 v2.15 版本,也不支持 MCP……你赢了
5. 网页版本 Claude 我能正常使用,但 Claude Desktop 提示我 APP 不可用。
# 总结
MCP (或者说用通用协议来增强 AI 对真实世界的感知和操作能力)确实是一个非常有潜力的技术。但它太新了、协议覆盖的范围也太小了,业界还没有一个如何用好 MCP 的最佳实践。当然也有可能是我太穷了,说不定直接用 cursor 就没啥问题了(
希望不久的将来,有完善的 MCP 客户端和成熟的 MCP 生态,能让每个人都能用上便捷好用的 AI 和工具。
长桥证券开户福利, 去香港的兄弟别错过了
这几天,长桥证券有个开户羊毛,建议有条件的朋友别错过:入金 1 万港币,就能港美股交易终身免佣,也有新客入金 2 万港币,拿 800 港币的现金卡。想着也不麻烦,今天中午让老婆也新开了个户,达成半天白嫖 1600 港币成就。😄
说下流程,供参考:
1. 中午用中银快汇,中银购汇,转了 2W 港币到中银香港,几个小时就到账了,还挺快的。手续费、电讯费全免,无损。
2.老婆自己在手机上下载长桥 App (注册时输入邀请码 S7LS58 ),也可以使用我的邀请链接 https://app.lbmkt.ing/ac/oa?account_channel=lb&channel=HB100035&invite-code=S7LS58
3.开户的时候挂着境外 IP:可以避开要求中国境内用户提供存量用户证明那个限制(这好像是个流程漏洞?🥹),开户很快,验证下身份证、内地银联卡,人脸,半个小时就搞定了。
4.长桥入金支持 eDDA (绑定中银,可在 App 里直接发起入金)。
5.直接 eDDA 入金达标,等 3 个工作日,奖励到账即可。
这几天,长桥证券有个开户羊毛,建议有条件的朋友别错过:入金 1 万港币,就能港美股交易终身免佣,也有新客入金 2 万港币,拿 800 港币的现金卡。想着也不麻烦,今天中午让老婆也新开了个户,达成半天白嫖 1600 港币成就。😄
说下流程,供参考:
1. 中午用中银快汇,中银购汇,转了 2W 港币到中银香港,几个小时就到账了,还挺快的。手续费、电讯费全免,无损。
2.老婆自己在手机上下载长桥 App (注册时输入邀请码 S7LS58 ),也可以使用我的邀请链接 https://app.lbmkt.ing/ac/oa?account_channel=lb&channel=HB100035&invite-code=S7LS58
3.开户的时候挂着境外 IP:可以避开要求中国境内用户提供存量用户证明那个限制(这好像是个流程漏洞?🥹),开户很快,验证下身份证、内地银联卡,人脸,半个小时就搞定了。
4.长桥入金支持 eDDA (绑定中银,可在 App 里直接发起入金)。
5.直接 eDDA 入金达标,等 3 个工作日,奖励到账即可。
惠购商城是不是传销平台
0. 说是下载软件,购买积分,几个月回本。
1. 百度搜索不到这个平台。
2. 我老婆的妹妹买了,他们村里有些人都买了,搞定我老婆也想买。
v 友有了解的吗?
我感觉就是经典的庞氏骗局啊
我又搜索不到更多的资料,大家一起看看,帮忙搜索一下资料呢
软件的下载链接: https://h5.runruntongxin.com/down
0. 说是下载软件,购买积分,几个月回本。
1. 百度搜索不到这个平台。
2. 我老婆的妹妹买了,他们村里有些人都买了,搞定我老婆也想买。
v 友有了解的吗?
我感觉就是经典的庞氏骗局啊
我又搜索不到更多的资料,大家一起看看,帮忙搜索一下资料呢
软件的下载链接: https://h5.runruntongxin.com/down
虚拟机时间跳变问题
运行在青云私有云上的 Ubuntu 22.04 虚拟机,通过 systemd-timesyncd 采用 ntp.ubuntu.com 服务器进行 NTP 同步。在 /var/log/syslog 中每隔大约半小时就会产生两条来自 systemd-resolved 的日志提示系统时间更改。
一台虚拟机 xxx 时间突然向过去跳变,再恢复正常:
May 31 17:18:44 xxx systemd-resolved[724]: Clock change detected. Flushing caches.
May 31 17:18:51 xxx systemd-resolved[724]: Clock change detected. Flushing caches.
May 31 17:48:48 xxx systemd-resolved[724]: Clock change detected. Flushing caches.
May 31 17:48:54 xxx systemd-resolved[724]: Clock change detected. Flushing caches.
另一台虚拟机时间 yyy 突然向将来跳变,再恢复正常:
May 31 17:53:58 yyy systemd-resolved[690]: Clock change detected. Flushing caches.
May 31 17:52:22 yyy systemd-resolved[690]: Clock change detected. Flushing caches.
May 31 18:24:03 yyy systemd-resolved[690]: Clock change detected. Flushing caches.
May 31 18:22:27 yyy systemd-resolved[690]: Clock change detected. Flushing caches.
在服务器上通过 top (间隔设为 0.1 秒)现场观测观察到的时间跳变现象与日志中的记录相符。
虚拟机上 /sys/devices/syste/clocksource/clocksource0/current_clocksource 为 kvm-clock 。
以上现象是什么原因造成的?是否说明虚拟机所在主机的时间不准,或者主机上的时间同步与虚拟机存在冲突?有没有什么办法可以缓解或解决时间上的跳变?
如果禁用虚拟机 xxx 上的 systemd-timesyncd 服务,日志中发生时间变化的间隔变长( 1.5 小时或 2 小时),且每次只有一行,不再出现跳变。但是这会导致系统时间始终比北京时间慢 6~7 秒(可能刚好与启用时间同步时跳变的时间差相等?)。
运行在青云私有云上的 Ubuntu 22.04 虚拟机,通过 systemd-timesyncd 采用 ntp.ubuntu.com 服务器进行 NTP 同步。在 /var/log/syslog 中每隔大约半小时就会产生两条来自 systemd-resolved 的日志提示系统时间更改。
一台虚拟机 xxx 时间突然向过去跳变,再恢复正常:
May 31 17:18:44 xxx systemd-resolved[724]: Clock change detected. Flushing caches.
May 31 17:18:51 xxx systemd-resolved[724]: Clock change detected. Flushing caches.
May 31 17:48:48 xxx systemd-resolved[724]: Clock change detected. Flushing caches.
May 31 17:48:54 xxx systemd-resolved[724]: Clock change detected. Flushing caches.
另一台虚拟机时间 yyy 突然向将来跳变,再恢复正常:
May 31 17:53:58 yyy systemd-resolved[690]: Clock change detected. Flushing caches.
May 31 17:52:22 yyy systemd-resolved[690]: Clock change detected. Flushing caches.
May 31 18:24:03 yyy systemd-resolved[690]: Clock change detected. Flushing caches.
May 31 18:22:27 yyy systemd-resolved[690]: Clock change detected. Flushing caches.
在服务器上通过 top (间隔设为 0.1 秒)现场观测观察到的时间跳变现象与日志中的记录相符。
虚拟机上 /sys/devices/syste/clocksource/clocksource0/current_clocksource 为 kvm-clock 。
以上现象是什么原因造成的?是否说明虚拟机所在主机的时间不准,或者主机上的时间同步与虚拟机存在冲突?有没有什么办法可以缓解或解决时间上的跳变?
如果禁用虚拟机 xxx 上的 systemd-timesyncd 服务,日志中发生时间变化的间隔变长( 1.5 小时或 2 小时),且每次只有一行,不再出现跳变。但是这会导致系统时间始终比北京时间慢 6~7 秒(可能刚好与启用时间同步时跳变的时间差相等?)。
网速卡顿原因
请教各位大佬一个问题,老家宽带是 300m 的,之前用的是磊科的路由器,Wi-Fi 信号还算比较正常的,没有偶尔卡顿的情况,前几天换了个 TP-Link 路由器( 139 元),有时候 Wi-Fi 信号很卡,网页打不开,视频加载不出来,过一分钟左右就会回复,这种 Wi-Fi 信号偶尔卡顿是什么原因呢,(已经尝试过切换无线信道 无线模式 频段带宽。也可排除是其他网络设备下占用宽带的原因) 是路由器原因吗,如果是怎么修复呢,
租房这里也是用的 TP-Link 型号 TL-XDR3050 易展版,有时候也会卡顿,是什么原因呢,大佬们
请教各位大佬一个问题,老家宽带是 300m 的,之前用的是磊科的路由器,Wi-Fi 信号还算比较正常的,没有偶尔卡顿的情况,前几天换了个 TP-Link 路由器( 139 元),有时候 Wi-Fi 信号很卡,网页打不开,视频加载不出来,过一分钟左右就会回复,这种 Wi-Fi 信号偶尔卡顿是什么原因呢,(已经尝试过切换无线信道 无线模式 频段带宽。也可排除是其他网络设备下占用宽带的原因) 是路由器原因吗,如果是怎么修复呢,
租房这里也是用的 TP-Link 型号 TL-XDR3050 易展版,有时候也会卡顿,是什么原因呢,大佬们