很早之前用 sonnet 3+cline 发现钱包爆炸,一天得好几刀。 后来换成了 gemini 2.0 flash 虽然偶尔有问题,但基本能 cover ,便宜了很多 接着就一直白嫖 gemini 2.5 pro
但是 8 月中左右各种截断和报错,基本没法用了 之前国产这仨就在 chat 里偶尔用用,就想着万一不给白嫖了还是得付费,先试试着这仨便宜的来写代码,看看效果。 GLM 4.5/ds 3.1 用的智谱/deepseek 官网 qwen3-coder 用的魔搭的每日免费 魔搭也有 GLM4.5 和 ds3.1 但是似乎速度没有 qwen3-coder 快?
主要是 remix/nextjs+ts 的几个网站,再加 ts 写一些脚本。 使用的场景主要是辅助,不是那种完全所有默认 approve 让 AI 刷刷刷写,基本就是某些页面/组件,把需求告诉 AI ,手动 approve ,然后看 AI 生成的 diff ,一边改一边 approve 。
示例的任务说明:
帮我实现一个 xxxx
具体需求
字段可以增加 已经有的字段可以删除
页面放到`src/app/[locale]/(tools)/tools/`对应的工具名的文件夹下
i18 翻译放在`messages/tools`新建一个工具名的文件夹,新建 en.json, ja.json, zh.json 表示英语 日文 中文的翻译文件
组件放到`src/components/tools`下对应的工具名的文件夹中
server actions 放到`src/actions/tools`下对应的工具名的文件夹中
你可以参考:
`src/app/[locale]/(tools)/tools/xxx`
`src/components/tools/xxx`
`messages/tools/xxx`
`src/actions/xxx`
这个 xxx 的实现
先说结论,这仨都能满足需求,虽然 roocode 比 cc 之类的省 token ,那些来回读取 1-2M 的任务都能 cover 住。
然后说说每个的缺点:
用的 reasoner (虽然现在这俩都是 3.1 ),主要就一个问题,慢,太慢了。
用 ds 写的时候我各种摸鱼,有时候一个问题光思考就分钟级,diff 生成的时候是一行行出来的,痛啊...
工具调用偶尔会出错,但是基本下一轮能恢复
网上之前比较火的遇到极的问题,运气好没遇到过
速度挺快的,大部分时候质量也挺好。
但是非常的轴。。。工具调用失败挺多的。。而且一旦失败了就怎么也恢复不了,反复失败。
有个例子:
**Assistant:**
<edit_file>
<path>src/components/tools/test-data-generator/test-data-generator-tool.tsx</path>
<new_content>
import { Button } from "@/components/ui/button";
import { Input } from "@/components/ui/input";
import { Label } from "@/components/ui/label";
import { Card, CardContent, CardHeader, CardTitle } from "@/components/ui/card";
import { Select, SelectContent, SelectItem, SelectTrigger, SelectValue } from "@/components/ui/select";
import { Textarea } from "@/components/ui/textarea";
import { CopyButton } from "@/components/ui/copy-button";
import { useToast } from "@/components/ui/use-toast";
import { Trash2, Plus, Download } from "lucide-react";
</new_content>
<old_content>
import { Button } from "@/components/ui/button";
import { Input } from "@/components/ui/input";
import { Label } from "@/components/ui/label";
import { Card, CardContent, CardHeader, CardTitle } from "@/components/ui/card";
import { Select, SelectContent, SelectItem, SelectTrigger, SelectValue } from "@/components/ui/select";
import { Table, TableBody, TableCell, TableHead, TableHeader, TableRow } from "@/components/ui/table";
import { Textarea } from "@/components/ui/textarea";
import { CopyButton } from "@/components/ui/copy-button";
import { useToast } from "@/components/ui/use-toast";
import { Trash2, Plus, Download } from "lucide-react";
</old_content>
</edit_file>
---
**User:**
[ERROR] You did not use a tool in your previous response! Please retry with a tool use.
# Reminder: Instructions for Tool Use
Tool uses are formatted using XML-style tags. The tool name itself becomes the XML tag name. Each parameter is enclosed within its own set of tags. Here's the structure:
<actual_tool_name>
<parameter1_name>value1</parameter1_name>
<parameter2_name>value2</parameter2_name>
...
</actual_tool_name>
For example, to use the attempt_completion tool:
<attempt_completion>
<result>
I have completed the task...
</result>
</attempt_completion>
Always use the actual tool name as the XML tag name for proper parsing and execution.
# Next Steps
If you have completed the user's task, use the attempt_completion tool.
If you require additional information from the user, use the ask_followup_question tool.
Otherwise, if you have not completed the task and do not need additional information, then proceed with the next step of the task.
(This is an automated message, so do not respond to it conversationally.)
<environment_details>
# VSCode Visible Files
package.json
# VSCode Open Tabs
# Current Time
Current time in ISO 8601 UTC format: 2025-08-29T18:07:29.609Z
User time zone: Asia/Hong_Kong, UTC+8:00
# Current Cost
$0.21
# Current Mode
<slug>code</slug>
<name>💻 Code</name>
<model>glm-4.5</model>
====
REMINDERS
Below is your current list of reminders for this task. Keep them updated as you progress.
| # | Content | Status |
|---|---------|--------|
| 1 | 创建测试数据生成器的目录结构 | Completed |
| 2 | 实现测试数据生成器的主页面组件 | Completed |
| 3 | 实现测试数据生成器的核心功能组件,包括: | In Progress |
| 4 | 创建多语言翻译文件(英文、日文、中文) | Pending |
| 5 | 更新工具导航数据,添加新工具 | Pending |
| 6 | 测试功能并确保一切正常工作 | Pending |
IMPORTANT: When task status changes, remember to call the `update_todo_list` tool to update your progress.
</environment_details>
---
**Assistant:**
<edit_file>
<path>src/components/tools/test-data-generator/test-data-generator-tool.tsx</path>
<new_content>
import { Button } from "@/components/ui/button";
import { Input } from "@/components/ui/input";
import { Label } from "@/components/ui/label";
import { Card, CardContent, CardHeader, CardTitle } from "@/components/ui/card";
import { Select, SelectContent, SelectItem, SelectTrigger, SelectValue } from "@/components/ui/select";
import { Textarea } from "@/components/ui/textarea";
import { CopyButton } from "@/components/ui/copy-button";
import { useToast } from "@/components/ui/use-toast";
import { Trash2, Plus, Download } from "lucide-react";
</new_content>
<old_content>
import { Button } from "@/components/ui/button";
import { Input } from "@/components/ui/input";
import { Label } from "@/components/ui/label";
import { Card, CardContent, CardHeader, CardTitle } from "@/components/ui/card";
import { Select, SelectContent, SelectItem, SelectTrigger, SelectValue } from "@/components/ui/select";
import { Table, TableBody, TableCell, TableHead, TableHeader, TableRow } from "@/components/ui/table";
import { Textarea } from "@/components/ui/textarea";
import { CopyButton } from "@/components/ui/copy-button";
import { useToast } from "@/components/ui/use-toast";
import { Trash2, Plus, Download } from "lucide-react";
</old_content>
</edit_file>
---
roocode 压根就没edit_file
这个 tool... ...
无限循环了,试了几次中断,继续。和他说不要改了他还是会这么回。
然后这么多来几次,GLM 4.5 送的 2Mtoken 直接爆炸,然后发现他送的 2M 居然是所有模型 2M+GLM 4.5 2M 共用的,用完 GLM 4.5 的 2M ,那个所有模型的也没了 🤣🤣🤣🤣
速度也挺快的,总体感觉都不错。
就是偶尔写的 ts 有一股 java 的味道,面向对象优先了,他写的代码:
/**
* Sync manager for CloudWatch logs to MySQL database
*/
export class SyncManager {
private cloudWatchClient: CloudWatchLogClient;
private mysqlClient: MySQLClient;
private syncConfig: SyncConfig;
constructor(
cloudWatchClient: CloudWatchLogClient,
mysqlClient: MySQLClient,
syncConfig: SyncConfig
) {
this.cloudWatchClient = cloudWatchClient;
this.mysqlClient = mysqlClient;
this.syncConfig = syncConfig;
}
/**
* Calculate the time window for syncing logs
* @returns Object containing startTime and endTime in milliseconds
*/
public calculateTimeWindow(): { startTime: number; endTime: number } {
const endTime = Date.now();
const startTime = endTime - this.syncConfig.intervalHours * 60 * 60 * 1000;
return { startTime, endTime };
}
...
export class Logger {
private static readonly LEVELS = {
ERROR: 0,
WARN: 1,
INFO: 2,
DEBUG: 3,
};
private static level = Logger.LEVELS.INFO;
public static setLevel(level: keyof typeof Logger.LEVELS) {
Logger.level = Logger.LEVELS[level];
}
public static error(message: string, error?: Error) {
if (Logger.level >= Logger.LEVELS.ERROR) {
const timestamp = new Date().toISOString();
console.error(
`[ERROR] ${timestamp} - ${message}`,
error ? error.stack : ""
);
}
}
🤣🤣🤣🤣🤣🤣
![]() |
1
kk2syc 14 小时 40 分钟前
所以说浪费这个时间干嘛……类似 i18n 翻译的 json 文件可以直接写好 zh.json 之后让 ai 去处理其他的,至于类似前端框架这些,有这个时间调教 ai ,ctrl+cv 改改都干完喝咖啡了……
|
3
connecting 7 小时 50 分钟前
最便宜的是哪个,想搞个凑合的,费用巨便宜的来大量使用
|
4
sthwrong 6 小时 52 分钟前
写代码的话,不建议用 reasoner, 除非你想用它定制一些复杂的处理流程,比如让它构建 todo ,再让 3.1 编码。
|
![]() |
5
tt0411 6 小时 6 分钟前
对话记录怎么导出来的呢?
|
![]() |
6
kxg3030 5 小时 59 分钟前
你时间是真的多 一直跟 AI 对话 打字不累么... 对公司来讲用 AI 可能会提升开发效率节省时间 个人项目为什么要省那时间 还把老本行给忘了 程序员还是太单纯了 就跟 10 年前的开源一样 革自己的命
|
![]() |
7
bbbblue OP @tt0411 roocode 自带 cline 的话在 C:\Users\<用户>\AppData\Roaming\Code\User\globalStorage\saoudrizwan.claude-dev\tasks 这里
|
![]() |
9
bbbblue OP @connecting qwen3-coder 魔搭每天 2000 次 根本用不完 还快 魔搭也有 glm4.5 和 ds 但是比较慢
|
10
lgc653 1 小时 6 分钟前
大任务先用 gemini-cli 写个架子,再用 roocode+GLM4.5 (魔搭送的)拧螺丝(这两天 gemini pro 好像不截断了,但是感觉降智了)
几个项目代码估计也都有 10w 行以上,不乏 10 年前的祖传屎山项目 但只要对项目上下文熟悉这个套路还是蛮实用的,每天基本大量时间都在喝茶 现在离开 AI 是一句代码都不想写,改个标题的文字都要 AI 改 |
11
ptstone 1 小时 2 分钟前
我用 kilo + gemini 2.5pro 的 api ,每台每个 api 100 次的额度,偶尔会出现不够用的情况,现在 api 不能用了,用 kilo+gemini cli ,每天 1000 次吧,一般情况不是从 0 开始做一个项目,都用不完 1000 次; 配合 mcp 给出接口路径和参考页面,几轮对话能生成 ,会有 bug ,自己测一下,基本上不会动手写前端页面了,涉及到 ui 设计的,先用 claude code 生成一个 ui 草图,传给 gemini ,要求不是很高的情况下,写的 ui 比我设计的好看
|
12
ptstone 1 小时 2 分钟前
一月份的时候也用 cline +deepseek ,体验了几次,放弃了
|
13
ptstone 1 小时 1 分钟前
效果最好还是 claude code 就是费钱
|