Reading view

There are new articles available, click to refresh the page.

终于有人做了 Subagent,TRAE 国内版 SOLO 模式来了

一、

全世界最好的 AI 编程工具,我不知道。

但是,我知道全世界最卷的 AI 编程工具,那一定是 TRAE

为什么这么说?

AI 编程工具一般有三种产品形态。

(1)插件。最早的 AI 编程工具 GitHub Copilot 就是插件。

(2)IDE。插件受制于宿主软件,有些公司不甘束缚,就开始做专门的 AI 编程 IDE,比如 Cursor、亚马逊的 Kiro、谷歌的 AntiGravity。

(3)终端。还有一些公司,专门做基于终端(也就是命令行)的工具,比如 Claude Code、Codex CLI、Gemini CLI。

所有的 AI 编程工具,基本上都属于这三大类之一。但是 TRAE 居然三种产品形态都做了,同时属于这三类!

它最早是插件,后来做了独立的 IDE,现在居然有第三种产品形态:SOLO 模式

从插件到 IDE(国内版),我都是 TRAE 的用户。我没用国际版,原因很简单,因为国内版免费。

今年7月份,TRAE 的国际版开始内测 SOLO 模式,反响热烈,我就很心动。现在终于正式发布了,本月12日国际版正式推出 SOLO 模式,国内版也在25日上线,更棒的是完全免费。

今天就来说说,什么是 SOLO 模式,为什么它很重要。

或者说,到底是什么原因,让 TRAE 觉得一种产品形态还不够,不停添加其他形态?

对于一个程序员来说,这三种产品形态,怎么选择?哪一种更好?

二、

插件没什么好说的。它调用的是 IDE 的内部接口,如果你有现成 IDE 环境需要加入 AI 功能,就选择它。

IDE 相比插件,功能更强、性能更好、一体化程度更高,适合追求功能和性能的用户。

至于 IDE 与终端,可以参考我的上一篇文章。它们各有特点,不是替代关系,而是互补关系。

IDE 强在它集成的那些功能,比如自动补全、智能感知(intellisense),终端没有。

终端强在方便调用各种命令行工具,可以加入 CI/CD 流程,以及下面要介绍的 Subagent,这是 IDE 缺乏的。

这一次 TRAE 发布的 SOLO 模式,就引入了很多终端才有的功能,所以才单独做成一个模式,因为很难把这些功能加入 IDE 形态。

习惯了 IDE 的同学,或者在 IDE 与终端之间犹豫的同学,有必要了解一下 SOLO 模式,也许有你要的功能。

三、

这次引入的新功能之中,最值得一提的就是 Subagent

我的印象中,国内还没有其他厂家做过这个功能。如果你想用好 AI 编程,一定要知道它。

顾名思义,Subagent 就是次一级的 agent(智能体)。可以理解成,它是一个 AI 应用之中的子任务。也就是说,它可以把一个大的 AI 编程任务拆分成若干个小任务。

这特别适合大项目,你根据不同的任务或者子目录,建立相应的 Subagent。

它有几个显著的优点。

(1)并行执行。多个 Subagent 可以同时执行,你把它们放在后台,自己在前台做其他事情,这大大节省了时间。IDE 就做不到这一点,只能顺序执行,这是终端独有的一个极大优点。

(2)节省上下文。通常来说,每次执行 AI 任务,都会把整个仓库作为上下文,发给模型。Subagent 可以指定不同的上下文,或者限制上下文局限于某一个目录,因此就节省了上下文,降低了费用。

(3)重复使用。子任务本身也是一个智能体,可以跨项目使用,也可与他人共享,简化了工作流程。

(4)灵活权限。每个子任务可以设置不同的访问权限,从而可以做出适合不同等级成员使用的 Subagent。

总之,Subagent 非常实用,很多人不想使用 IDE,部分原因就是没有 Subagent。

四、

TRAE 这次的 SOLO 模式,一大亮点就是引入了 Subagent,用它实现了多任务并行执行。

进入 SOLO 模式后,整个工作区分成了三栏,最左侧多出了一个任务栏(上图的红框)。

你可以在任务栏里面,点击"+"号,新建 Subagent 子任务(下图)。

上图中,新建子任务时,可以选择内置的智能体,也可以新建智能体,由不同的智能体负责执行子任务。

多个子任务可以并行执行。你在任务栏随时切换,查看每个任务执行到哪一步了。

上图就是同时新建了三个子任务,每个任务都有中文标题,可以很清晰了解它们的用途。

这个并行执行的任务栏,除了 TRAE 的 SOLO 模式,我在其他国产 AI 编程工具里面就没见过,希望能够跟进。

五、

SOLO 模型还提供其他一些 IDE 模式没有的功能。

(1)Plan 功能:先对任务进行思考,产生一个"执行计划",等你批准以后再实际执行(下图)。

(2)上下文压缩:智能压缩过长的上下文,防止上下文变得太长导致的模型效果下降,同时显著节省使用 AI 的成本。

(3)代码变更:更好的代码 DiffView 视图,帮助用户快速了解 AI 对代码的变更。

六、

最后总结一下,TRAE 的 SOLO 模式提供了很多 IDE 模式下没有的功能,更接近终端的用法。

由于贴近终端,所以它能做到多任务并行,以及任务执行过程中更好的实时感知。

TRAE 在一个软件里面,集成了 IDE 和 SOLO 两种模式,无疑为程序员提供了最大的灵活性。

再加上国内版完全免费,超大上下文窗口,对于那些既想拥有 IDE 的便捷性,又想拥有终端多任务并行能力的同学,可谓再合适不过的选择。

TRAE 国内版和国际版,都有 SOLO 模式,区别是国内版免费,而国际版提供国外模型,大家可以根据需求选择下载。

(完)

文档信息

  • 版权声明:自由转载-非商用-非衍生-保持署名(创意共享3.0许可证
  • 发表日期: 2025年11月26日

VS Code 使用国产大模型 MiniMax M2 教程

一、

上周,我写了一篇 Claude Code 接入国产大模型的教程,就有同学问我,为什么不用 VS Code?

问得好。我习惯命令行了,确实忽略了 VS Code。

今天就补上,我来介绍,如何不用插件在 VS Code 里面使用 Claude Code。

我真心觉得,Claude Code 比插件好用,所以试试看跳过插件,直接在 VS Code 里面使用它。

跟以前一样,这一次 Claude Code 也是接入国产大模型,我选的是 MiniMax M2。它的质量很不错,而且这周有活动。

二、

这次评测的题目很有趣,我自己都很喜欢。

它是一个老外程序员最近想出来的,已经在国外引起了轰动。

他用了九个著名模型,生成网页时钟的动画,然后把这些动画放在网站上,网站标题就叫"AI 时钟"。

说来奇怪,这个测试看上去不难,但是大多数模型生成的效果并不好,有些甚至很差。

举例来说,下图是 OpenAI 公司 GPT-5 模型生成的时钟,让人无语。

这个时钟的提示词如下,大家可以拿来自己测。

Create HTML/CSS of an analog clock showing ${time}. Include numbers (or numerals) if you wish, and have a CSS animated second hand. Make it responsive and use a white background. Return ONLY the HTML/CSS code with no markdown formatting.

翻译成中文就是:

"创建一个显示时间 ${time} 的模拟时钟的 HTML/CSS 代码。如果需要,可以包含数字,并添加 CSS 动画秒针。使其具有响应式设计,并使用白色背景。仅返回 HTML/CSS 代码,不要包含任何 Markdown 格式。"

我也拿它来测试,看看 MiniMax M2 的效果如何。

三、

进入正题之前,我想强调一下,VS Code 与 Claude Code 是两种截然不同的工具。

VS Code 是 IDE,你是在 IDE 里面使用 AI。

Claude Code 是命令行工具,你是在终端窗口使用 AI。

它们的特点完全不同。IDE 支持智能感知(intellisense)和自动补全,而命令行支持调用系统工具和脚本,还能自动化集成,以及并行执行。

所以,它们两个不是替代关系,而是互补关系。你应该根据需要,选择最合适的工具。

我要演示的方法,正是将 IDE 和命令行结合起来,让你具有最大的灵活性。

四、

我用来测试的模型是 MiniMax M2,说一下为什么选择它。

它是上月底(10月27日)发布的,很多评测显示它是编程能力最强的开源模型之一,而且在 OpenRouter 平台上,它是 Token 调用量最大的国产模型。

我当时对它做了评测,大家还有印象吗?结论是,它的编程表现超出了我的预期。

但是那个时候,它没有包月套餐,只能按 API 使用量计费,就让人不敢多用。

现在不一样了,上个周末,它突然推出了 Coding Plan 包月套餐,有三档资费。

最低一档针对普通强度的使用,首月只要9.9元,(续费29元/月),这就很划算了。

除了这个优惠活动,它还有两个特点,很适合这篇教程。

(1)兼容性好,接入外部工具很容易。我用它接入 Claude Code 和 VS Code 都非常顺利。

官网文档给出接口示例的工具非常全,包括 Cursor、Cline、Codex、Kilo Code、Droid、Trae、Grok、OpenCode、iFlow 等等。

(2)响应速度、生成速度快。它的 API 服务器,在国内的响应时间一般是几十毫秒,每秒生成 Token 的数量(即 TPS 指标)超过100,比国外模型快得多。

五、

现在进入正题,首先是一些准备工作,要将 MiniMax M2 接入 Claude Code。

具体步骤就不详述了,大家按照前一篇教程就可以了。

简单说,就是新建一个claude-minimax 脚本(下图),将从 MiniMax M2 官网获取的接口参数填入。

完成后,可以测试一下,看看能否正常运行。


$ claude-minimax --version

六、

下面就是在 VS Code 使用 Claude Code 生成网页时钟的测试。

第一步,新建一个本地目录作为项目目录,比如ai-clock


$ mkdir ai-clock 

然后,在 VS Code 里面打开这个目录 ai-clock,作为工作区。

第二步,打开 VS Code 的菜单"终端/新建终端",在这个终端窗口里面,输入 claude-minimax


$ claude-minimax

这时,窗口会提示你授予权限,同意后,就会进入主界面,大概就是下面这样。

现在,我们就能在 VS Code 里面使用命令行的 Claude Code 了。

这时,你既可以使用 IDE 编写代码,又可以通过命令行使用 AI 模型,兼得两者的优势。

第三步,在 Claude Code 的提示符后面,输入/init命令,用来在仓库里面生成一个 CLAUDE.md 文件,记录 AI 对这个仓库操作。


/init

生成结束后,你可以打开看一下 CLAUDE.md 文件(下图)。

因为我们这个示例仓库是空的,所以文件里面没什么内容。如果是有现成代码的仓库,文件里面会有 AI 对代码库的详细解析。

这个文件的作用是当作上下文,每次查询模型时,都会自动附上这个文件,以便模型了解代码库。

如果在提示框输入反斜杠,Claude Code 就会显示所有可用的命令(下图)。

通过这些命令,我们就能使用 Claude Code 的强大功能,完成各种 AI 操作了。

这一步是 Claude Code 的基础用法,对所有项目都是通用的。

第四步,在提示框输入前面的提示词(下图),让模型生成网页时钟。

MiniMax M2 思考了不到一分钟,就生成完毕了(下图),并且自动把这些代码写入文件 index.html

打开网页就是下面的效果。

真的很不错,第一次就能有这样的效果。钟面的形状正确,秒钟跳动的动画十分流畅,每秒都在刷新,显示当前时间。

大家可以使用这个提示词,自己去生成看看,如果手边没有 Claude Code,可以在官网上执行。

也可以查看我得到的完整代码,复制保存成 HTML 文件,在浏览器打开。

七、

从这个测试结果来看,MiniMax M2 的生成结果,无论是横向对比,还是实际效果,都是令人满意的。

结合它现在的价格,性价比很高,我认为值得推荐给大家上手尝试。

最后,转发一下他们的 Coding Plan 活动的海报,首月9.9元,一杯咖啡的钱,包月使用最新的 AI 编程模型,需要者自取。

(完)

文档信息

  • 版权声明:自由转载-非商用-非衍生-保持署名(创意共享3.0许可证
  • 发表日期: 2025年11月19日

国产大模型接入 Claude Code 教程:以 Doubao-Seed-Code 为例

一、

国产大模型如火如荼,新模型层出不穷,大家有没有在用?

很多同学用惯了现有模型,懒得尝试新模型,真的很可惜。

我的做法是,只要是新模型,就尽量试用,体验最新训练成果。而且,推广期往往有优惠,不用白不用。

今天就来分享,我怎么把国产大模型接入 Claude Code。

大家知道,Claude Code 是眼下最流行、公认功能最强的 AI 终端,但是限制国人使用。所以,我们要换掉它的底层模型。

大家用我的方法,只需要几分钟,就可以简易快速地接入各种国产大模型,丝滑使用。

这几天,字节旗下的豆包,正好发布了最新的编程模型 Doubao-Seed-Code

我就拿它来演示,顺便测一下这个模型。

二、

我要分享的方法,完全不影响 Claude Code 本身,它还能正常使用。

也就是说,执行 claude 命令,调用的还是原来的 Claude Sonnet 4.5 模型。


$ claude

我会新增一个 claude-doubao 命令,执行后底层模型就切换了。


$ claude-doubao

这时,Claude Code 的功能一样都不少,但是使用的模型已经变成了 Doubao-Seed-Code。

上面两个命令,可以同时使用,互不影响。你还能继续添加其他模型,每一个模型都有自己的调用命令,最大程度方便测试新模型。

三、

开始之前,我先简单介绍一下 Doubao-Seed-Code,优秀的国产模型值得好好宣传。

它属于豆包大模型系列,是该系列第一个专门用于编程推理的模型。也就是说,这是字节跳动首次发布编程模型。

根据 SWE-bench 的评测,它和同是字节旗下的智能 IDE 产品 Trae 的组合,在 SWE-Bench-Verified 的排行榜位列第一。

我对这个模型非常感兴趣,主要有三个原因。

(1)它是大厂的主推模型,模型质量、性能表现、响应速度都有保证。

(2)它原生兼容 Anthropic API,可以丝滑接入 Claude Code,不用任何调整,是国外模型很好的平替。

(3)它价格便宜,现在有一个 Coding Plan 活动,可以 API 包月。一般强度使用的情况下,首月只要9.9元(续费40元/月),官方的宣传是"属于国内最低价格"。

大家可以在火山方舟,开通这个模型的 API Key,后面要用到。

四、

下面就来演示,Doubao-Seed-Code 如何快捷接入 Claude Code。

如果你已经安装了 Claude Code,下面的方法完全不影响,还是正常使用。

如果还没有安装 Claude Code,但想体验它的 Claude Sonnet 4.5 模型,可以根据官方文档进行安装,跟下面的方法也不冲突。

更改底层模型,只需要三个步骤,几分钟即可。

第一步,新建一个项目目录claude-model,在里面安装一个单独的 Claude Code。


$ mkdir ~/claude-model
$ cd ~/claude-model
$ npm init -y
$ npm install @anthropic-ai/claude-code

然后,新建一个子目录 .claude-doubao,用来存放豆包的配置文件和缓存。


$ mkdir .claude-doubao

第二步,新建一个子目录 bin,用来存放可执行脚本。


$ mkdir ~/claude-model/bin

然后,要把这个 bin 目录放入 PATH 变量,让系统可以找到里面的命令。

PATH 变量的设置,macOS 可以修改 ~/.bash_profile 文件,Linux 可以修改 ~/.bashrc 文件,大概改成下面这样。


export PATH="$HOME/claude-model/bin:$PATH"

改完后,别忘了重启终端。

第三步,在上一步创建的 bin 目录里面,新建一个名为claude-doubao 的脚本,用来调用豆包模型。


$ touch ~/claude-model/bin/claude-doubao

在这个 claude-doubao 脚本里面,输入下面的内容。


#!/usr/bin/env bash
# Wrapper for Claude Code CLI using Doubao API

CLAUDE_BIN="$HOME/claude-model/node_modules/.bin/claude"

# Inject API credentials
export ANTHROPIC_AUTH_TOKEN="YOUR_DOUBAO_API_KEY"
export ANTHROPIC_BASE_URL="https://ark.cn-beijing.volces.com/api/compatible"
export ANTHROPIC_MODEL="doubao-seed-code-preview-latest"
export API_TIMEOUT_MS=3000000

# Keep a separate config dir (optional)
export CLAUDE_CONFIG_DIR="$HOME/claude-model/.claude-doubao"

exec "$CLAUDE_BIN" "$@"

注意,上面脚本里面的 API Key,要填入你自己申请的 Key。另外,模型的名称和 URL 可能会发生变化,最好核对一下最新的官方文档。

然后,将它变成可执行脚本。


$ chmod +x ~/claude-model/bin/claude-doubao

这样就完成了所有步骤,可以开始使用了。

先测一下,Claude Code 是否正常运行。


$ claude-doubao --version

以后,调用 Doubao-Seed-Code 模型,就用 claude-doubao 命令;调用原始的 Claude Code,就用 claude命令。


# 调用 Doubao-Seed-Code
$ claude-doubao

# 调用原始模型
$ claude

上面的方法是通用的,其他模型也可以这样添加。

五、

下面,我们就用 Claude Code 来调用 Doubao-Seed-Code 模型,测试它的表现。

以前,有一个著名的游戏《太空侵略者》(Space Invaders),大家都玩过吧,就是战斗机发射子弹,击落外星人舰队。

我让 Doubao-Seed-Code 来生成这个游戏。

首先,新建一个项目目录 space-invaders,在该目录中启动 Claude Code(使用claude-doubao命令)。


$ mkdir space-invaders
$ cd space-invaders
$ claude-doubao

然后,填入提示词,"使用 HTML 和 JavaScript 在网页上实现《太空侵略者》"。

Write an HTML and JavaScript page implementing space invaders

屏幕上就会不停滚动模型的思考步骤,大概两三分钟,所有文件就在 space-invaders 目录里面生成完毕。

上面就是浏览器的网页截屏,我没有做任何的修改,第一次生成就是可玩的,没有报错,所有操作都正常,令人满意。

生成的 HTML 源码看这里,你可以复制过去,在浏览器打开玩玩看。模型的完整对话看这里

接着,我还测试让它生成的"鹈鹕骑自行车"的 SVG 图片,大家自己看效果吧。

六、

总结一下,我用下来,Claude Code 接入 Doubao-Seed-Code 以后,用起来非常流畅,响应速度快,体验上跟原生模型没有差异。

至于 Doubao-Seed-Code 这个编程模型本身,总体上令人满意:一步步的推理非常清晰,思考时间短,生成的代码完成度高,且容易读懂,往往一次就能运行成功。

考虑到它现在有 Coding Plan 活动,9.9元就可以 API 包月,性价比很高,大家如果需要编程模型,建议开通。

(完)

文档信息

  • 版权声明:自由转载-非商用-非衍生-保持署名(创意共享3.0许可证
  • 发表日期: 2025年11月11日

大模型比拼:MiniMax M2 vs GLM 4.6 vs Claude Sonnet 4.5

一、

上个月,我写了一篇文章,比较了两个大模型。

就有人留言,两个模型太少了,能不能加入其他模型?

正好上周(10月27日),MiniMax 公司发布了 M2 模型,代表了国产大模型的最新水平。

我就想,可以测测它的实战效果,跟智谱公司的 GLM 4.6 和 Anthropic 公司的 Claude Sonnet 4.5 对比一下。

毕竟它们都属于目前最先进的编程大模型,跟我们开发者切身相关。

二、

先要说明,其实我不太熟悉 MiniMax 公司,它比较低调。

我只知道,这家公司专门研发大模型,产品有文本模型、视频模型、音频模型等等,但都不是非常热门。我就没有特别关注。

上周,我在滑推特的时候,看到一些老外在议论(123),这才知道 MiniMax 发布了新的旗舰模型 M2。

上面说话的这个人是 HuggingFace 大模型社区的负责人,提到了 M2 模型在 Artificial Analysis 性能评比之中排名世界第五,开源模型第一。

当天的 HuggingFace 热度榜上,它也是第一名。

OpenRouter 的大模型全球调用量排名,它这周排在第三。

我就来了兴趣,准备好好试用一下。

三、

根据 MiniMax 公司的说明,M2 模型的编程能力特别强,是目前最优秀的编程模型之一。

大家知道,国际上最流行的编程模型现在是 Claude Sonnet 4.5,国内的 GLM 4.6 模型也很强,我就把它们三个放在一起对比。

简单起见,我就直接在官方的网页版(国内版国外版)上运行测试,大家可以跟着一起动手试试看。

网页版实际是官方的智能体产品 MiniMax Agent,底层用的就是 M2 模型。

网页使用是免费的,API 调用现在也是免费期,为期两周。后面定价是百万 tokens 输入/输出 2.1元/8.4元人民币,官方宣传只有 Claude 价格的8%。

它的其他链接,我也列一下,文档仓库在 GitHub,API 调用指南(兼容 OpenAI 和 Anthopic 格式)看官方文档,模型下载在 HuggingFace,下载以后可以本地部署使用(如果条件允许)。

四、

我的测试题来自著名程序员西蒙·威利森(Simon Willison),他的网站有 Cluase Sonnet 4.5 的测试结果

此前,我用这些题目测过智谱公司的 GLM 4.6 模型,大家可以参考

本文主要是 MiniMax M2 的测试表现。

五、

第一题,测试模型理解和运行代码的能力。

拉取代码仓库 https://github.com/simonw/llm ,然后通过下面的命令运行测试用例。

pip install -e '.[test]'
pytest

上面的提示词要求模型抓取一个 Python 仓库,运行里面的测试用例,并返回结果。

从网页的显示来看,Minimax Agent 显然内置了沙盒,会在隔离环境的命令行下运行代码(下图)。

整个运行过程大约三分钟,然后它给出了结果:运行通过了466个测试用例。这个结果完全正确。

令我惊喜的是,除了运行结果,它还给出了覆盖率分析(下图),指出测试用例覆盖了代码的哪些功能。我还没在其他模型见过主动提供覆盖率的。

完整的对话看这里

六、

第二题,测试大家最关心的代码生成能力,看看它能不能按照要求生成应用程序。

我还是使用上面的仓库,要求 M2 为其增加一个功能,不仅需要修改代码,还需要修改数据库结构,并增加配套的测试用例。

1、代码仓库 https://github.com/simonw/llm 是一个 AI 对话应用,它将用户的提示和 AI 的响应存储在 SQLite 数据库中。

2、它目前使用线性集合,保存单个对话和响应。你尝试在响应表中添加一个 parentresponseid 列,并通过该列将对话的响应建模为树状结构。

3、编写新的 pytest 测试用例,验证你的设计。

4、编写一个 tree_notes.md 文件,首先将你的设计写入该文件,然后在运行过程中将该文件用作笔记。

这个任务比较复杂,运行时间稍微长一点。

这里有一个插曲。在运行过程中,它突然提示读取 GitHub 仓库没有成功,这时出现了我意外不到的一幕。

它竟自动切换到第三方的 deepwiki.com 去获取仓库。后面,分析数据库结构时,它又切换到 datasette.io 去分析 SQLite 数据库。这种第三方云服务的自动切换,我也是第一次见,可惜没来得及截图。

任务完成后,它给出了一段总结(下图),详细描述了它做了哪些事情,包括修改数据库、新增测试用例等等。

它甚至增加了一个示例文件(下图),演示新增的功能怎么用,还有一个示例图,演示修改后的对话结构,提示词里面可没要求它这么做。

完整的对话看这里

另外,官网的画廊有很多它生成的应用,我觉得也值得看一下。

七、

第三题就是西蒙·威利森发明的"鹈鹕骑自行车"场景,测试它的理解和推理能力。

生成鹈鹕骑自行车的 SVG 图片。(Generate an SVG of a pelican riding a bicycle)

这是现实中不存在的情景,全靠模型自己推理出来。理解能力越强,生成的图像就越逼真。

下面就是它生成的结果,完整的对话看这里

作为比较,我把另外两个模型的结果也贴出来。

GLM 4.6

Claude Sonnet 4.5

我觉得,MiniMax M2 的结果(第一张图片)有两个值得注意的地方。首先,它添加了道路;其次,它的自行车结构相对更完整,只是缺了握把。另外,要是那只鹈鹕的姿势更像"骑车"就好了。

八、

测试就到这里,至于 GLM 4.6Claude Sonnet 4.5 的结果对比,大家可以看它们各自的链接,自行比较。

我必须诚实地说,MiniMax M2 的表现超出了我的预期

最吸引我的地方,还不是运行结果本身,而是它处理问题的方式,对用户很友好,会添加一些帮助理解的辅助结果,让你觉得很易用(accessible)也很易懂,这也从侧面增强了生成结果的可靠性。

我倾向于相信,各种评测结果确实是 M2 的真实实力。再考虑到它的 API 价格(现在还是免费期),我会在接下来的工作中使用它,也推荐大家试试看。

(完)

文档信息

  • 版权声明:自由转载-非商用-非衍生-保持署名(创意共享3.0许可证
  • 发表日期: 2025年11月 4日

错误处理:异常好于状态码

错误处理有不同的方式。

JavaScript 和 Python 是抛出异常, Rust 语言是变相抛出异常。

C 语言和 Go 语言则是返回一个错误值,你必须判断该值是否为 -1 或空值。

我一直想知道,哪一种方式更好?

前不久,我读到一篇多年前的文章,明确提出抛出异常好于返回状态码。他的理由很有说服力,文章好像还没有中译,我就翻译出来了。

异常与返回状态码

作者:内德·巴切尔德(Ned Batchelder)

原文网址:nedbatchelder.com

在软件中,错误处理有两种方式:抛出异常(throwing exceptions)和返回状态码(returning status codes)。

几乎所有人都认为异常是更好的处理方式,但有些人仍然更喜欢返回状态码。本文解释为什么异常是更好的选择。

一、代码干净

异常可以让你在大部分代码中省去错误处理步骤。它会自动通过不捕捉异常的层,向上传递。你因此可以编写完全没有错误处理逻辑的代码,这有助于保持代码的简洁易读。

让我们比较一下,编写同一个简单函数的两种方法。

先是返回状态码。


STATUS DoSomething(int a, int b)
{
    STATUS st;
    st = DoThing1(a);
    if (st != SGOOD) return st;
    st = DoThing2(b);
    if (st != SGOOD) return st;
    return SGOOD;
}

上面示例中,必须判断DoThing1(a)DoThing2(b)的返回值是否正常,才能进行下一步。

如果是抛出异常,就不需要中间的错误判断了。


void DoSomething(int a, int b)
{
    DoThing1(a);
    DoThing2(b);
}

这只是最简单的情况,如果遇到复杂的场景,状态码带来的噪音会更严重,异常则可以保持代码的整洁。

二、有意义的返回值

状态码会占用宝贵的返回值,你不得不增加代码,判断返回值是否正确。

有些函数本来只需要返回一个正常值,现在不得不增加返回错误的情况。随着时间的推移,代码量不断增长,函数变得越来越大,返回值也越来越复杂。

比如,很多函数的返回值是有重载的:"如果失败,则返回 NULL",或者失败返回 -1。结果就是每次调用这个方法,都需要检查返回值是否是 NULL 或 -1。如果函数后来增加新的错误返回值,则必须更新所有调用点。

如果是抛出异常,那么函数就总是成功的情况下才返回,所有的错误处理也可以简化放在一个地方。

三、更丰富的错误信息

状态码通常是一个整数,能够传递的信息相当有限。假设错误是找不到文件,那么是哪一个文件呢?状态码无法传递那么多信息。

返回状态码的时候,最好记录一条错误消息,放在专门的错误日志里面,调用者可以从中获取详细信息。

异常完全不同,它是类的实例,因此可以携带大量信息。由于异常可以被子类化,不同的异常可以携带不同的数据,从而形成非常丰富的错误消息体系。

四、可以处理隐式代码

某些函数无法返回状态码。例如,构造函数就没有显式的返回值,因此无法返回状态码。还有一些函数(比如析构函数)甚至无法直接调用,更不用说返回值了。

这些没有返回值的函数,如果不使用异常处理,你不得不想出其他方法来给出错误信息,或者假装这些函数不会失败。简单的函数或许可以做到无故障,但代码量会不断增长,失败的可能性也随之增加。如果没有办法表达失败,系统只会变得更加容易出错,也更加难以捉摸。

五、错误的可见性

考虑一下,如果程序员疏忽了,没有写错误处理代码,会发生什么情况?

如果返回的状态码没有经过检查,错误就不会被发现,代码将继续执行,就像操作成功一样。代码稍后可能会失败,但这可能是许多步操作之后的事情,你如何将问题追溯到最初错误发生的地方?

相反的,如果异常未被立刻捕获,它就会在调用栈中向上传递,要么到达更高的 catch 块,要么到达顶层,交给操作系统处理,操作系统通常会把错误呈现给用户。这对程序是不好的,但错误至少是可见的。你会看到异常,能够判断出它抛出的位置,以及它应该被捕获的位置,从而修复代码。

这里不讨论错误未能报出的情况,这种情况无论是返回状态码还是抛出异常,都没用。

所以,对于报出的错误没有被处理,可以归结为两种情况:一种是返回的状态码会隐藏问题,另一种是抛出异常会导致错误可见。你会选择哪一种?

六、反驳

著名程序员 Joel Spolsky 认为,返回状态码更好,因为他认为异常是一种糟糕得多的 goto 语句。

"异常在源代码中是不可见的。阅读代码块时,无法知道哪些异常可能被抛出,以及从哪里抛出。这意味着即使仔细检查代码,也无法发现潜在的错误。"

"异常为一个函数创建了太多可能的出口。要编写正确的代码,你必须考虑每一条可能的代码路径。每次调用一个可能抛出异常的函数,但没有立即捕获异常时,函数可能突然终止,或者出现其他你没有想到的代码路径。"

这些话听起来似乎很有道理,但如果改为返回状态码,你就必须显式地检查函数每一个可能的返回点。所以,你是用显式的复杂性换取了隐式的复杂性。这也有缺点,显式的复杂性会让你只见树木不见森林,代码会因此变得杂乱无章。

当面临这种显式复杂性时,程序员会写得不胜其烦,最后要么用自定义的方法隐藏错误处理,要么索性省略错误处理。

前者隐藏错误处理,只会将显式处理重新变为隐式处理,并且不如原始的 Try 方法方便和功能齐全。后者省略错误处理更糟糕,程序员假设某种错误不会发生,从而埋下风险。

七、总结

返回状态码很难用,有些地方根本无法使用。它会劫持返回值。程序员很容易不去写错误处理代码,从而在系统中造成无声的故障。

异常优于状态码。只要你的编程语言提供了异常处理工具,请使用它们。

(完)

文档信息

  • 版权声明:自由转载-非商用-非衍生-保持署名(创意共享3.0许可证
  • 发表日期: 2025年10月22日

一天之内,智谱和 Anthropic 都发了最强编程模型

1、

假期前最后一天(9月30日),热闹非凡。

上午,Anthropic 公司发布了 Claude Sonnet 4.5 模型

下午,智谱公司发布了 GLM 4.6 模型

我觉得,对于程序员,这个动态很重要。

因为这两个模型都属于目前最先进的 AI 编程模型。你想让 AI 生成代码,首选就是它们。

这就是说,一天之内,AI 编程模型又达到了新高度。

2、

Anthropic 发布公告的第一句话,就毫不谦虚地用了三个"世界之最"。

"Claude Sonnet 4.5 是世界上最好的编码模型。它是构建复杂代理的最强大模型。它是使用计算机的最佳模型。它在推理和数学方面表现出显著的进步。"

智谱的发布公告也是当仁不让。

"我们再次突破大模型的能力边界。

GLM-4.6是我们最强的代码 Coding 模型(较 GLM-4.5 提升27%)。在真实编程、长上下文处理、推理能力、信息搜索、写作能力与智能体应用等多个方面实现全面提升。"

为了让人信服,智谱的发布公告还给出了详细的测试结果。

上图一共是8个测试基准的结果图。每个图的蓝柱是 GLM-4.6,绿柱是 GLM-4.5。对照组是前两天刚发布的 DeepSeek V3.2 Exp、Claude sonnet 4、Claude sonnet 4.5。

可以看到,蓝柱基本上都是排名前列,甚至第一。智谱还声称,GLM-4.6 非常节省 Token(也就是省钱),"比 GLM-4.5 节省30%以上,为同类模型最低"。

所以,它的结论就是:"GLM-4.6 在部分榜单表现对齐 Claude Sonnet 4/Claude Sonnet 4.5,稳居国产模型首位。"

这就有意思了,一个自称"世界上最好的编码模型",另一个自称"稳居国产模型首位"。

下面,我来测试,GLM-4.6 相比 Claude sonnet 4.5 到底怎么样。

3、

需要说明的是,这两个模型的比较,不完全是为了测试,也有实际的意义。

Anthropic 公司虽然产品很强,但是它限制中国人使用,国内用户正常途径无法开通它的服务。另一方面,它是付费模型,价格也不便宜,百万 token 的输入输出价格是3美元/15美元。

形成鲜明对照的是,GLM-4.6 是完完全全的国产模型,来自北京智谱公司。它采取彻底的开源路线(MIT 许可证),模型代码完全公开,可以任意使用。

你要想自己在家里安装,也是可以的。但是,它的硬件要求太高,家用设备达不到,所以,一般都使用它的云服务。

目前,智谱的官网(BigModelZ.ai),通过 Web 界面使用 GLM-4.6 是免费的。

它的 API 调用需要付费,入门套餐(coding plan)好像是一个月20元人民币。

另外,它有完备的中文支持(文档+客服),这也是 Anthropic 没有的。

总之,我的测试目的,也是想看看,它是不是真如官方宣称的那样强大,能不能替代 Claude Sonnet 模型。

4、

我的测试方法很简单。Anthropic 公司事先邀请了著名程序员西蒙·威利森(Simon Willison),试用 Claude Sonnet 4.5 模型。

西蒙·威利森已经在他的网站上,公布了试用结果

我就拿他的几个测试,用在 GLM-4.6 上面,然后比较一下运行结果就可以了。

大家可以跟着一起做,打开官网,把题目粘贴进去(最好贴英文),这样会有更深切的感受。

AI 终端工具(比如 Claude Code、Cline、OpenCode、Crush 等)也可以用,参考官方文档进行设置(需要先开通 API)。

5、

第一个测试。

拉取代码仓库 https://github.com/simonw/llm ,然后通过下面的命令运行测试用例。

pip install -e '.[test]'

pytest

这个测试需要联网获取代码,然后在后台运行。

智谱官网的 Web 界面跟 Claude 一样,提供 Python 和 Node.js 的服务器沙箱环境,可以生成后直接执行代码。

我省略它中间的推理步骤了,最后结果如下图(官网查看完整对话)。

278个测试用例通过,耗时 18.31s

整个运行过程(拉取、安装依赖、执行命令)跟 Claude Sonnet 是一样的。奇怪的是,Claude Sonnet 运行了466个测试用例,多出来100多个,不知道为什么。

6、

第二个测试是较复杂的编程任务,原始提示是英文,我翻译成中文。

1、 代码仓库 https://github.com/simonw/llm 是一个 AI 对话应用,它将用户的提示和 AI 的响应存储在 SQLite 数据库中。

2、它目前使用线性集合,保存单个对话和响应。你尝试在响应表中添加一个 parentresponseid 列,并通过该列将对话的响应建模为树状结构。

3、编写新的 pytest 测试用例,验证你的设计。

4、编写一个 tree_notes.md 文件,首先将你的设计写入该文件,然后在运行过程中将该文件用作笔记。

大家可以查看完整的对话记录

GLM-4.6 运行了几分钟,不停地吐出生成的代码。最终,它修改了脚本,增加了 API 和命令行调用接口,并编写和运行通过了测试用例。

它还生成了一个 tree_notes.md 文件,里面是本次修改的详细说明。

大家可以比较它的运行结果与 Claude Sonnet 的运行结果

从结果上看,它们的差异不大,都做到了提示的要求,并且代码都是可运行的。差异主要是实现细节,这个就需要详细阅读代码了。

7、

第三个测试是西蒙·威利森独家的,就是让 AI 生成一个鹈鹕骑自行车的 SVG 图片(Generate an SVG of a pelican riding a bicycle)。

这是现实中不存在、且没有参考物的景象,考察模型的想象和生成能力。

下面是 GLM-4.6 打开深度思考后生成的图片

下面是 Claude sonnet 4.5 打开深度思考后生成的图片。

两者的结果相当接近,只是 Claude 生成的鸟喙更明显,更能看出是一只鹈鹕。

8、

测试就到这里,我觉得总结来说,GLM-4.6 是一个非常强的国产模型,编码能力确实很优秀,可以当作目前公认的最强模型 Claude Sonnet 的替代品。

它的功能全面,除了编码,其他任务也能完成,而且响应速度快,价格低,性价比非常突出。

(完)

文档信息

  • 版权声明:自由转载-非商用-非衍生-保持署名(创意共享3.0许可证
  • 发表日期: 2025年10月 1日

扣子空间网页设计,是在挑战 V0 吗?

一、

扣子(coze.cn)大概是字节旗下最不好定义的产品。

它的定位是智能体(AI agent)平台,可以开发/运行各种 AI 应用。这意味着,AI 可以干的事情,它都能做。

但是,AI 一直在进化,所以扣子的形态也一直在变。

一开始,扣子是面向程序员的开发平台。它有工作流模式,在图形界面上拖拉节点,定义 AI 工作流,生成应用。

但是不久后,它又推出了"扣子空间",面向普通用户,使用自然语言,调用它内置的各种智能体。

我写过测评,把它当成办公助手,完成各种任务(PPT 生成、旅游地图规划、写研究报告等),完全是傻瓜式操作。

可是没有想到,昨天我发现,扣子空间加入了网页设计,又变成了 UI 工具,很像内置了一个 V0。

二、

V0 是最早的、也是目前最有名的网页设计/生成方面的 AI 工具。用户描述想要什么网站,它来实现。

这一次,扣子空间引入了这个功能,让自己又多了一种产品形态----网页设计工具。

现在,你完全可以在扣子里面,进行网页开发。而且,它是免费服务,并有安卓客户端(已发布)和 iOS 客户端(待发布),可以在手机上操作。

这听上去很吸引人。我试了一下,比如截图还原和网站生成,尤其是 Figma 设计稿的还原,看看它到底行不行。

下面就是我的试用体会。

三、截图还原

我首先测了截图还原,上传一张网页截图,让它把页面写出来。

扣子的网页设计功能,必须打开扣子空间的"网页"按钮。

我上传了 airbnb 的首页截图(下图),并输入"把这个截图还原成网页"。

系统提示,需要3到5分钟思考,代码在页面右侧滚动生成。

几分钟后,代码生成完毕,切换到预览页,下面就是它生成的页面。

这是第一次生成的结果,没有经过调整,我觉得还原度还可以,页面结构和每个区域都正确复刻出来了。

分享出来了,这个页面和整个 AI 对话,大家点击进去,可以看清晰效果。

值得一提的是,扣子生成的是 React + Tailwind 项目,可以整个下载到本地,用 npm 运行。这样的话,后期的手工处理比较方便。

四、Figma 设计稿还原

扣子空间的真正杀招是从 Figma 设计稿生成网页

具体做法是先在提示框,点击下方的 Figma 按钮。

网页会提示你,输入 Figma 链接。

这个链接怎么得到呢?在 Figma 网站的工作区,选中一个页面,打开右键菜单"复制粘贴/复制选区链接"(下图),就可以了。

我选了一个 Figma 官网的示例文件,把链接发到扣子空间。大家看看扣子的还原度

基本上,跟设计稿很接近,还原度非常高。所以,如果有设计稿原始文件,通过 AI 工具,完全可以替代手工开发。

这属于高级功能,国内其他 AI 工具,我好像没见过,在 V0 也是需要付费的。

五、可视化编辑

预览生成后,扣子空间提供了可视化编辑,修改起来相当方便。

先在预览界面,打开"编辑"按钮。

然后,选中页面元素,就会跳出 AI 对话框,你可以用自然语言编辑。

选中按钮后,我要求 AI 将按钮的背景色改成绿色(上图),提交后就会重新生成代码(下图)。

六、零基础生成网站

下面我直接用自然语言,跟 AI 描述需求,让它生成网站。

我让它生成一个待办事项(Todos)应用。

"生成一个蓝色主题的待办事项列表应用,并实现编辑功能,可以编辑列表任务。"

扣子空间就开始自动完成页面设计、代码编写、服务器部署,最后给出了下面的效果

这个页面还可以部署成可访问的链接,向外部用户公开。

我觉得,效果相当不错,各项操作(添加任务、编辑任务、删除任务)都没报错,一次生成就能运行,该有的按钮也都有。

这真的超出了我的预料,是不是扣子对常见任务做过特别训练?

理论上,网站生成不需要专业知识,零基础用户就能生成全站。实际操作也确实是这样,就算出现报错,也可以交给 AI 处理。但前提是只限于简单互动的网站,如果需要 JS 脚本处理复杂交互,就很可能出现 AI 解决不了的报错。

七、总结

上面就是初步的使用感受。

我感到,扣子空间的网页设计功能虽然刚上线,但是完成度很不错

它的三个重点功能----设计稿/截图还原、可视化编辑、网站生成----相当好用,生成质量完全可以接受,加上免费,我觉得很有竞争力。

它同样也有一些使用限制。

(1)没有命令行窗口。如果你不需要 UI,只让它生成后端代码,它没有提供命令行,无法测试。

(2)未集成 GitHub。它无法将代码直接跟 GitHub 同步,只能先下载到本地,再手动推送到 GitHub。

(3)不适合复杂的状态管理。它的强项是 UI 生成,不适合复杂的状态管理和交互逻辑。

总体上,这次更新让扣子空间变得更有用了,除了早先的聊天功能、办公功能,现在又增加了网页设计,实用性更强,常见的 UI 开发任务(生成网页和组件、完成原型设计),完全可以考虑用它。

(完)

文档信息

  • 版权声明:自由转载-非商用-非衍生-保持署名(创意共享3.0许可证
  • 发表日期: 2025年7月24日

国产 AI 网页开发工具:豆包 AI 编程简单测评

一、引言

AI 编程(AI coding)是眼下的热点,但它其实不是单一功能,而是分成不同的方向。

其中的一个方向,就是 UI 生成,尤其是生成网页的 UI。

UI 生成涉及到视觉设计,需要专门的 AI 工具。国外已经有不少这类产品,比如 v0.devlovable.devbolt.new

它们能够根据你的文字描述,自动设计和生成网页,并部署上线。

我一直想来测评,这些 UI 生成器到底好不好用,可惜只有开通付费版,才有完整体验(包括最新、最强的模型)。

二、豆包

上周,我发现字节旗下的豆包,也上线了 UI 生成功能,能够直接生成网页应用了。

官方还特别加注"应用创作 1.0",唯恐你没注意到。

原因好像是底层的豆包大模型发了1.6版,代码生成能力大大加强。官方宣传,它在多个测试集上,得分属于国际第一梯队。

出于好奇,我就对它做了简单测评。它是完全免费的,而且对于国内用户,这种国产工具要比国外竞品更易上手。

三、基本功能

点击菜单的"AI 编程"选项,就进入了编程界面,就是一个大的输入框,下面有几个示例。

废话少说,我直接输入:

生成一个电商网站。

系统立刻转入代码生成页面,左侧是 AI 对话栏,右侧是不断滚动生成的网页代码(下图)。

等到代码生成完毕,右侧就会切换为生成的网页预览。

为了便于展示,我把这个页面分享出来(点击右上角的"分享"按钮)。

大家自己看效果吧(点击这里)。

声明一下,这是系统直接生成的,我没做任何修改。

我觉得,不足10个字的输入,能生成这样的网页,算可以了,反正是超过了我的预期。

虽然这个页面看上去能用,但许多细节需要修改。

四、可视化编辑

修改的时候,我发现,豆包的编辑功能做得挺好,完全是可视化编辑,不懂代码的人也能上手,其他竞品好像都没有做到这种程度。

豆包的可视化编辑,分成 AI 编辑和手工编辑。

4.1 AI 编辑

AI 编辑就是在左侧的 AI 框,直接输入指令,让 AI 帮你编辑。

编辑过程就像下图,选中标题,输入指令"优化表述,同时改为艺术字",就立刻生效了。

一条指令可以修改多处,每次修改系统都会实时保存,不用手动保存。

4.2 手工编辑

手工编辑就是直接在前端,自己动手修改文字和图片。

先点击上方的"编辑"按钮,进入编辑状态。

然后,选中要修改的元素,进行编辑。

举例来说,AI 生成的网页,配图往往不匹配,需要更换。

上图中,图片应该是蓝牙耳机,AI 却配了一张笔记本电脑的图片,需要更换。

在编辑状态下,选中这张图片,下方会出现一个编辑框。

里面有三个选项。

  1. 智能生图:AI 生成图片。
  2. 一键搜图:搜索系统图库。
  3. 本地替换:上传本地图片。

选中第一项"智能生图",输入"蓝牙耳机",就会得到 AI 生成的蓝牙耳机图片。

五、文本秒变网页

豆包的这一次更新,还有一个"文本秒变网页"的功能,我觉得很实用。

它能把长文本(会议记录、旅行攻略、新闻报道、论文等等)经过 AI 解读,自动变成网页

具体来说,对话框底下,有一排功能按钮,第一个就是这次新增的"文本秒变网页"。

点击它,输入框就会出现一句系统提示:

"分析以下内容,并将其转化为清晰美观的可视化 HTML 网页。"

你把长文本贴在这段提示下面,就可以了。比如,你贴一篇研究报告,AI 就会进行内容总结,然后将总结的内容生成网页。

更实用的是,长文本还可以通过 AI 生成。具体做法是在聊天界面,让 AI 生成长文本,然后切换至 AI 编程,输入指令"把上述内容转化成 html 网页"。

举例来说,先跟 AI 聊天,"帮我制定三天两晚的6月杭州旅游攻略"。

AI 会滔滔不绝,生成一大段文字(点击查看)。然后,你切换到 AI 编程,输入"帮我把上述信息转化为可交互的 html 网页"。

网页就生成好了(点击查看)。

有了这个功能,AI 的内容生成与网页生成,就一体化了。

于是,玩法就无穷无尽了。比如,上传会议的录音文件,生成会议记录网站;上传文献,生成内容介绍网站;让 AI 分析财务报表,生成折线图、流程图的分析网站。

六、总结

试用下来,我对豆包这次的网页生成功能,印象很好,觉得很实用,完成度也高,是一个有用的工具

首先,模型生成的页面效果,比我想象的好,是可用的。

其次,可视化编辑很好用,操作方便,上手门槛低,适合新手和不懂编程的项目经理、设计师等。

豆包团队重点打造这个功能,表明他们对 AI 编程现状有清醒的认识:AI 生成的页面,还无法一次就达到理想的状态,所以要把编辑功能做好,方便修改调优。

最后,对比国外的竞品,它有更好的本土化。除了中文界面和用法提示,它生成的网页风格,明显就是用了本土化的模版,而不是国外设计师的风格。

如果要说缺点,大概是 JS 脚本能力还不够令人满意,有一些页面的互动效果,不能一次成功,需要跟 AI 纠正多次。

总之,在前端应用生成这方面,豆包的 AI 编程是一个有生产力的产品,美观度和可用性都比较强,又是免费的,大家可以自己动手试试看

(完)

文档信息

  • 版权声明:自由转载-非商用-非衍生-保持署名(创意共享3.0许可证
  • 发表日期: 2025年6月24日

谷歌的 NotebookLM 能生成中文播客了

两天前,谷歌发了一个公告

它旗下的 AI 笔记产品 NotebookLM,现在支持50种语言生成播客了(原来只支持英文)。

我一定要分享这个消息,终于能生成中文播客了。这是我一直想要的功能,相信也是很多朋友想要的。

我演示一下,大家听听效果,会惊到你的。

首先,访问它的官网,点开右上角的设置,选择"Output Language"(输出语言)。

切换到"中文(简体)"。

然后,在首页新建一个笔记本。一般来说,一个学习主题,对应一个笔记本。

作为演示,我新建了一个"中国小说"的笔记本。进入后,在 Source(原始材料)标签页上传了鲁迅的《阿Q正传》。

注意,上传的文件格式目前只限于 PDF、TXT 和 Markdown。

另外,经过我测试,如果是图片扫描的 PDF 文件,它会自动进行文字识别。

接着,切换到 Studio(工作室)标签页,点击 Generate(生成)按钮,它就开始生成播客。

几分钟以后,播客就生成了,里面是一男一女在谈论你上传的资料。

大家听听看,是不是很像那些精心准备的真人播客。

NotebookLM 不仅可以上传文本材料,还可以针对网站和 Youtube 视频,生成播客。

我随便找了一个 Youtube 的英文视频,内容是国产旗舰手机的摄影能力比较。

下面是生成的播客

我听了以后,觉得都不必看视频了。而且,中文播客比英文视频,更容易抓住重点。

总之,有了中文播客以后,任何枯燥的学习资料,都能变成平易近人的播客节目。走路、休息、锻炼、开车的时候都能听,学习时间和途径都变多了。

需要注意的是,免费账户一天只能生成三个播客,更多需要付费。

除了播客,NotebookLM 的 AI 笔记功能,也非常好用。

你可以上传自己的学习材料,也可以用它搜索某个主题的学习材料。

下面是我用它搜索 PostgreSQL 数据库的学习材料。

指定学习材料以后,你可以跟这些材料聊天。

它还会自动生成各种笔记:学习指导、内容摘要、常见问题、时间线等等。

以上就是 NotebookLM 的基本用法。

我的评价是,NotebookLM 是一款革命性的笔记工具,属于少数几个真正有重大用处的 AI 产品。

它会改变做笔记的方式和学习方式,每个学习者都应该知道有这样一个工具。

它属于谷歌的产品,似乎还没有竞品,希望国内的厂商能够做出替代品。

(完)

文档信息

  • 版权声明:自由转载-非商用-非衍生-保持署名(创意共享3.0许可证
  • 发表日期: 2025年5月 1日

巨头的新战场:AI 编程 IDE(暨 字节 Trae 调用 MCP 教程)

一、引言

本周,我要加写一篇文章。

因为 AI 编程 IDE 突然成了热门,国内外都有大事发生。

先说国外,OpenAI 要用30亿美元收购 Windsurf

这个消息太惊人。Windsurf(前身叫做 Codeium)的历史很短,发布至今两年多,市场份额也不高,居然值这么多钱!

OpenAI 最新一轮融资(今年3月)不过400亿美元,现在一下子要拿出30亿去收购,看中 Windsurf 哪一点呀!

OpenAI 自己没有编程助手,所以唯一的解释是,它要收购 IDE 打入 AI 编程市场,这个市场对它很重要。

二、MarsCode 更名 Trae

再看国内,字节也有大动作。

它旗下的编程助手,最早是 MarsCode 插件,后来又多了一个独立的 AI IDE 产品 Trae

本周,MarsCode 宣布改名为 Trae 插件,不再作为独立品牌发展了。

以后,字节的 AI 编程助手,将只有 Trae 这一个品牌,分成两种产品形态。

习惯传统 IDE 的用户,可以加装 Trae 插件;想要更好 AI 体验的用户,可以安装独立的 Trae IDE。

这个消息公布的同时,Trae 新版本也一起发布,加入了重磅的新功能(后面会详谈)。

可以看出,字节是下了决心,整合了产品,准备在 AI 编程工具上发力了。

三、AI IDE + MCP

为什么国内外的巨头,在同一个时间,不约而同都看上了 AI IDE?

我猜想,答案是 MCP 的出现。

有了 MCP 以后,AI IDE 可以扩展外部能力,从而无所不能,这让它成为巨头的必争之地。

下面,我来解释 MCP 是什么,怎么在 Trae 里面调用。大家看了,就会理解为什么 MCP 这么重要。

四、Trae 的简介

我选择 Trae 来演示,主要因为它是国产软件,有中文界面和文档,并且完全免费(国外产品都需要付费)。

前面说过,Trae 分成插件和 IDE 两种形态,它的 IDE 又分成国内版和海外版。这些产品的功能基本一致,就是内置的 AI 模型不一样。

国内版:内置 deepseek R1、V3、v3-0324 和 doubao 1.5 pro 模型

海外版:内置 Claude 3.5、3.7,Gemini 2.5 pro,GPT-4o、GPT-4.1 模型

我建议使用国内版,因为海外版的内置模型经常需要排队,很浪费时间,而且可能还会通信不畅。

不过,这两个版本都支持自定义模型,你可以提供密钥,接入你指定的模型。所以,版本的差别也不算很重要。

顺便提一下,Trae 这个词的意思是"The Real AI Engineer"(真正的 AI 工程师)。我以前总是以为 Trae 的意思是 True Ai。

五、Trae 的新版本

Trae 的 MCP 调用功能,是从新版本 v0.5.0 开始加入的。

没安装的朋友,可以去官网下载新版。已经安装的朋友,请检查一下版本。

它的界面这一次简化了,聊天框和 Builder(项目生成)合并成一个对话框(下图)。所有跟 AI 的对话,都在这里输入。

上图中,左下角多了两个按钮:"@智能体"和"#上下文"。这就是本次新增的核心功能。

至于 Trae 的基本用法,这里就不提了,可以看以前的文章

六、调用智能体

MCP 调用的入口,就是上图左下角的"@智能体"按钮。

如果想要扩展 AI 的功能,就要使用这个按钮。因为 AI 模型的本质只是语言模型,自身的功能是有限的,必须通过外部应用(智能体)来扩展功能。

点击"@智能体"(或者输入@),就会弹出一个对话框,显示目前可用的智能体(下图)。

可以看到,Trae 内置了两个智能体:"@Build" 和 "@Builder with MCP"。

其中,"@Build"用来让 AI 生成一个可运行的新项目。

@Build 俄罗斯方块网页小游戏

输入上面的命令,就会生成一个 HTML 文件,打开就是俄罗斯方块小游戏。

另一个内置的智能体"@Build with MCP",就是用来连接 MCP 服务器。

七、MCP 是什么

我先解释一下,MCP 是什么,很容易理解。

我们知道,AI 模型通过连接外部应用,来扩展功能。每个外部应用的接口,都不一样,如果要接入10个应用,就要写10种接入代码,非常麻烦。而且,要是换一个模型,可能所有接入代码都要重写。

有鉴于此,Anthropic 公司在2024年11月提出了 MCP 协议。外部应用只需要支持这个协议,提供一个 MCP 接口(又称 MCP 服务器),那么 AI 模型就可以用统一的格式接入,不需要了解外部应用的接入细节。

所以,MCP 可以理解成一个 AI 与外部应用之间的适配层。对于 AI 来说,只要安装某个应用的 MCP 服务器,就能接入该应用,不用写任何代码(除了少数的配置项)。

由于 MCP 解决了 AI 应用的接入痛点,诞生至今仅半年,已经变得极其流行,就连 Anthropic 的竞争对手 OpenAI 公司都公开支持,网上开源的 MCP 服务器项目已经有上万个。

八、调用 MCP

现在就来看 Trae 怎么调用 MCP。

点击 AI 标签栏右上角的齿轮图标,弹出一个菜单,选择菜单项 MCP。

它会跳出一个 MCP 的标签页(下图),点击底部的"+ 添加 MCP Servers"。

Trae 内置了 MCP 市场,提供一些常用的 MCP 服务器。如果里面没有你需要的,可以点击"手动配置",添加你自己的 MCP。

为了便于演示,我选择第一个服务器 Puppeteer,让 AI 可以调用无头浏览器。

鼠标点击 Puppeteer 的名字,会进入该开源项目的主页,可以查看一下它提供的内部命令(即能力)。

上图中可以看到,这个 MCP 服务器提供 puppeteernavigator(打开指定网址)、puppeteerscreenshot(截图)、puppeteer_select(选中页面元素)等内部命令,供 AI 模型调用。

用户不需要记住这些命令,只需了解它有哪些能力就可以了。

接着,点击它后面的加号,添加该 MCP 服务器。

这个 MCP 带有"轻松配置"标签,表示不需要任何设置,可以直接运行。

所有自己添加的 MCP,默认都放在内置的智能体"@Build with MCP",所以可以通过这个智能体来使用。

在 AI 对话框里面,选中智能体"@Build with MCP",然后输入下面的命令"打开 https://www.baidu.com",试试看新安装的 Puppeteer 服务器。

正常情况下,Trae 会让你选择一个项目文件夹,然后就会打开一个浏览器窗口,显示百度的首页。

这就是 MCP 的作用。AI 本来没有能力控制浏览器,但是现在就可以通过 MCP 来控制。

接着,可以给出一些更复杂的命令,比如生成截图,也能顺利完成。

这就是调用 MCP 的基本流程。你还可以把添加的 MCP 服务器保存成智能体(下图)。

然后,通过你起的名字,调用该智能体(下图),从而连接指定的 MCP 服务器。

九、上下文功能

除了 MCP 调用,Trae 的本次更新,还加强了上下文功能,这里也简单提一下。

所谓上下文,就是额外提供的信息,帮助 AI 模型思考,来完成任务。

通过#号,可以调出上下文菜单。

从上图可以看到,可以提供的上下文,包括额外的代码(code)、文件(file)、目录(folder)、工作区(workspace)。

本次更新多了两个选项,"Doc"表示额外的文档。

点击"添加文档集",就可以添加文档目录,作为 AI 模型的上下文。

另一个选项"Web",表示用网上信息作为上下文。这为 AI 提供了实时联网能力。

上图的实时天气问题,AI 只有具有联网能力,才能回答。

十、总结

有了 MCP 调用和联网能力,AI IDE 就具备了巨大的想象空间,不仅仅是编程工具,而成了一个无所不能的 AI 控制台。

那些大公司一定是看到了这一点,所以才愿意投入大量资源,去做这个产品。

我认为,在 AI IDE 里面调用 MCP 服务器,将成为近期软件业的热点,值得大家重点关注。

(完)

文档信息

  • 版权声明:自由转载-非商用-非衍生-保持署名(创意共享3.0许可证
  • 发表日期: 2025年4月22日

办公类 AI 初探:扣子空间

一、AI 的风口

问问大家,AI 产品的风口是什么?

我的意思是,什么样的产品有最大的机会。

现在的 AI 多如过江之鲫,大部分都是昙花一现,走不远。

在我看来,最有机会的产品,既不是面向普通大众的问答类 AI,或者内容生成 AI,也不是面向开发者(API 用户)的编程 AI。

真正的风口是办公类 AI

企业和个人的办公市场巨大无比,而且有真金白银。

谁能把 AI 引入文档、会议、决策......,谁就会吃到肉。就像 Office 软件是商业软件之王一样,企业级办公 AI 也一定会是 AI 的销售之王。

二、办公类 AI 的现状

不过,办公类 AI 眼下寥寥无几。不要说赢得市场,就连想得起名字的产品都不多。

究其原因,一是 AI 现阶段的能力,还达不到企业级软件的安全、稳定、准确、高效。

二是办公类 AI 到底是什么样的产品形态,大家还在摸索。

我一直非常关注这个领域,对于新出现的办公类 AI 有着强烈的兴趣。

下面介绍一个新产品"扣子空间",我这些天一直在试用。大家看看,它怎么用 AI 完成办公任务。

三、扣子空间

先说一下,扣子(coze.cn)是一个国内的平台,提供基于浏览器的低代码环境,来搭建 AI 应用,有免费额度。

我一直是它的用户,以前还写过文章,介绍它的工作流模式:在图形化界面上,用鼠标编排 AI 工作流,生成独立应用。

工作流模式号称不需要编码,小白也能用,但用户最好有编程基础,所以还是有一点点门槛。

于是,扣子现在又推出了"扣子空间",真正零基础,无门槛完成任务。

它的最大特点是,内部自动调用各种 Agent(智能体),不需要用户介入,就能完成各种任务。你可以把它想象成一个"Agent 的自动调用器"。

对于用户来说,因为有了底层的 Agent 能力,它不仅可以回答问题,还能解决问题(任务),从而成为你的办公助手和工作搭子。

正如它的宣传语:"和 Agent 一起开始你的工作"。

注意,它现在需要邀请码,可以去扣子公众号和扣子空间官网(space.coze.cn)领取。

四、界面

扣子空间的网址是 space.coze.cn,点进去就可以使用。

界面很简单,左侧是任务列表,右侧是一个对话框,用来输入新任务。

执行任务要求时,默认是"探索模式",AI 自动完成各个步骤,速度较快。

你也可以改成"规划模式",显示 AI 思考的中间步骤,便于随时调整。

除此以外,就没有需要设置的地方了,很符合直觉。

五、任务示例

下面是我的一些使用实例,都是办公类的任务。

大家看看,它完成得怎么样,像不像一个精通各种技能的实习生。

5.1 撰写研究报告

最常见的办公任务,肯定是撰写文档。我让 AI 撰写下面的研究报告。

我需要一篇研究报告,关于上海茶饮行业近几年的发展情况,以及投资机会的分析,包括行业发展、热门产品等信息。

注意,文档类的任务最好指定输出格式,否则生成的内容以 Markdown 格式展示在对话页上,不方便利用。

我一般是在提示词最后,加上这样一句。

同时做一个可视化的网页。

开始运行后,它就会分解任务,按步完成。

最后,它给出生成的 markdown 文件和网页文件。

你可以在新窗口打开网页预览。下面就是它生成的网页,图文并茂,有数据也有论述。

整个报告分成四个部分,可以根据需要增减,自己使用或交差,总体上没有问题。

5.2 多种输出格式

前面说过,扣子空间内置了各种 Agent。

除了生成网页的 Agent,还有生成 Office 文档、PDF、飞书文档的 Agent,都可以用,下面是一个例子。

帮我比较一下T3、滴滴出行、高德,作为新手网约车司机,在重庆跑,哪个平台最推荐,并说明详细原因,输出一份飞书文档。

由于飞书文档是带有布局的,实际生成时,也是从文字报告生成网页,然后系统提示你将网页内容复制到飞书。

如果输出 PDF 文件或幻灯片 PPT 文件,系统会直接给出文件下载。

我正在编排行程,目的是安徽皖南地区,包括黄山和当地的其他风景点,请详细研究行程、交通路线、景点介绍、门票、住宿和当地饮食等信息,形成一份完整的行程安排,以 PPT 形式展示。

它生成了一个28页的 PPT 文件,下载后,完全可以直接上台演示。

5.3 表格能力

办公类的 AI,一定要有表格处理能力。

请生成一个表格,包含上证50指数成分股,及其最新的收盘价。

默认情况下,表格生成后,会显示在网页上。

系统还会给出一个 csv 文件,供下载。

如果想要完备的电子表格功能,可以把 csv 文件导入电子表格软件。

5.4 其他功能

扣子空间内置的 Agent 很多,还可以调用高德地图、生成网页游戏等等。

请生成一个互动式的学习网站,帮我学习 CSS 的 oklch 颜色函数。

上面是网页小游戏的例子,下面是调用地图的例子。

用高德地图分析一下上海外滩地区所有瑞幸咖啡的门店选址,做成一个可视化的网页给我。

如果内置的 Agent 不足以满足需求,你还可以设置让它接入各种 MCP,扩展能力。

5.5 专家系统

最后,它还自带了专家系统,也就是高级的专业知识库,提供深度的分析能力。

目前,内置了两个专家系统:用户研究专家和 A 股观察助手。

前者用来用户问卷调查、访谈、生成分析报告;后者用来分析自选股和大盘,提供研究分析报告。

深度的分析和处理任务,需要特定的专业知识,可以试试它们。

六、总结

经过初步的试用,我对扣子空间评价很好,非常好用的办公助手和 AI 实习生,确实能够提高办公效率。

我觉得,它的设计思路很正确,自动调用各种 Agent,既能扩展各种能力,又能消除了上手难度,同时具备深度研究(deep research)能力。

更难得的是,它的完成度相当不错,没遇到明显的 bug,可以用于实际的办公。

总之,作为办公类的 AI 产品,它的"工作搭子"的模式,我觉得可用也可行。

后面,办公类 AI 产品相信会大量涌现,鉴于它的重要性,我还会介绍和评测更多。

(完)

文档信息

  • 版权声明:自由转载-非商用-非衍生-保持署名(创意共享3.0许可证
  • 发表日期: 2025年4月21日

Trae 国内版出来了,真的好用吗?

年初一月份,我就看到新闻,字节面向海外发布了一款 AI IDE,叫做 Trae

我心想,现在的 IDE 都有 AI 插件,功能完备,字节自己也有 MarsCode 插件,有必要再做一款单独的 IDE 吗?

我就没有特别关注这个工具。

上周,我遇到字节的同学,得知 Trae 国内版就在本周发布,我还提前拿到了内测版,这可是国内市场的首个 AI 原生 IDE。

今天,就来说说我的使用心得,顺便也探讨一个更大的问题:AI 工具已经这么多了,该不该造新的轮子?

先透露一下结论:Trae 国内版值得用。它作为一个 AI IDE,整体比插件好用,而且内置的大模型----豆包 1.5 pro、DeepSeek 满血版----无限量免费使用。

一、国外版与国内版

介绍使用体会之前,我先解释一下,两个版本的区别,主要是模型的差异。

Trae 国外版使用国外的模型,对于国内用户来说,存在连接不上、等待时间长、网速较慢等问题。

Trae 国内版使用国内的模型,连接可以保证稳定快速,界面也根据国内用户的习惯进行了定制。

我也问了字节的同学,Trae 国内版和 MarsCode 是什么关系。回答是,它们是同一个团队的作品,适用于不同场景

如果你想保留原来使用的 IDE,只增加 AI 编程相关功能,那就用 MarsCode 插件。如果想体验一个全新的围绕 AI 设计的原生 IDE,那就试试 Trae。

这两个产品后续都会长期开发,可以根据自己的需要选择。

二、安装

Trae 国内版需要去官网 trae.com.cn下载。

目前,有三个版本:Windows 版、macOS Intel 芯片版、macOS M 系列芯片版。

安装启动后,会出现下面的画面。

接着,让你选择亮色/暗色主题,以及语言(简体中文)。

它还会问你,要不要导入原来 IDE(VS Code/Cursor)的配置,算是很贴心的设计了。

最后,问你要不要登录。不登录也可以用,只是某些功能会受到限制。登录的话,就跳转到 Trae 官网,用你的手机号登录。

一切完毕,就会进入使用界面。

三、使用界面

Trae 的使用界面,相当简洁。左侧就是 VS Code 的界面,熟悉的话,上手没有任何难度。

界面的右侧是 AI 区域。可以看到,它分成两个模式:Chat 和 Builder。

Chat 模式是默认模式,也就是问答模式。AI 回答问题,也可以生成代码,但不会生成项目,需要自己手动把代码复制过去。

Builder 模式是项目模式,你给出文字描述,让 AI 一键生成项目。

下面,就来试试这两个模式。

四、Chat 模式

Chat 模式的主体就是一个对话框,右下角按钮可以选择底层模型。

国内版目前有三个模型可供选择。

  • 豆包 1.5 pro
  • DeepSeek R1
  • DeepSeek V3

这三个模型都是免费无限量使用,DeepSeek 系列模型都是满血版。我实测,速度令人满意,能够较快地给出回答,没有遇到"服务器繁忙"的提示,包括最耗时的 DeepSeek R1 模型都是如此。

至于,回答问题的质量,老实说,现阶段领先的大模型,这方面已经没有太多可挑剔的了。

任何问题都可以问,包括非技术类的问题。

我直接让它生成代码,回答的格式非常友好。

大家注意,上图中,第一个代码块是终端代码,右上角有三个按钮(下图)。

上图右上角的三个按钮,分别是"复制"、"添加到终端"和"运行"。如果点击后两个按钮,会直接把代码传入 Trae 内置的终端,就像下面这样。

这部分,我感觉用起来比插件版流畅,整体感更强,这大概就是把 AI 做成 IDE 的好处了。

五、Builder 模式

再看 Builder 模式,它可以一键生成项目。

点击上方的标签页,切换到该模式。可以看到,第一次进入,会有一个"启动 Builder"按钮(下图)。

系统会提示你(下图),这里可以从零到一完成项目构建,并且所有修改会自动保存,并显示两个示例项目:贪吃蛇和 Todo List。

为了测试正常的流程,我就直接在下方的对话框输入:"请用 React 生成一个 Todo List 应用。"

系统会提示你指定一个目录,作为项目目录。然后,它不断给出操作步骤(下图)。

上图中,需要执行具体的命令时,它会附有"运行"按钮,要你点击确认。

点击后,Trae 会自动打开内置的终端,执行该命令(下图)。

然后,它会一个个生成所需的文件,要求你审查。

所有文件生成完毕,就出现了启动本地预览服务器的命令。

运行后,Trae 会启动一个内置的 webview 页面,展示渲染效果,实时更新。

这个很赞,任何修改都可以马上看到结果。

但是我必须说,不知道是不是内测版的缘故,Builder 模式目前还不完善,只适合为项目生成架构,做不到一步到位,离理想状态有些差距。我试了多次,如果需求复杂一点,生成的代码很难一次就跑起来,需要多次修改。大家对它要抱有合理期待,这个模式后续还需要不断完善。

六、其他功能

除了两大模式,Trae 的其他功能也可圈可点。

(1)代码智能补全。

这是 AI 编程助手的基本功能,就不多说了。只要按回车键换行,Trae 会阅读并理解当前代码,然后自动补全后续代码。

如果有注释,它会根据注释,生成缺少的代码。

(2)指定上下文。

Trae 允许指定对话的范围(上下文)。具体方法是在对话框输入#号。

上图中,在对话框输入#后,系统就会自动弹出一个菜单,让你选择上下文(context),一共有四种。

  • Code(代码)
  • File(文件)
  • Folder(文件夹)
  • Workspace(工作区)

默认的上下文是当前工作区(Workspace,即目前打开的项目),也可以指定为某个函数或类(Code)、某个文件(File)、某个文件夹(Folder)。

一旦指定了上下文,AI 的回答会更有针对性。比如生成代码时,就会结合上下文的场景。

(3)一键转对话。

为了方便地将代码编辑框的内容,传送给 AI,Trae 提供"一键转对话"按钮,省去了复制粘贴的麻烦。

上图中,选中某段代码,系统就会弹出"添加到对话"的浮动菜单,一键复制到 AI 对话框,便于提问。

终端窗口的报错信息,也有这个功能(下图),这就很方便让 AI 来 debug。

(4)模型自定义功能。

我听字节的同学说,Trae 后面会支持模型自定义功能,用户可根据自己的喜好,接入对应的模型API。

七、总结

我试用 Trae 国内版后,感到它有几个显著优点。

(1)产品设计周全,最常用的场景都考虑到了,用户体验比较流畅。

(2)界面友好,交互设计良好,开发者容易上手。

(3)AI 模型(包括满血版 DeepSeek)无限量免费使用,响应始终稳定快速。

不足之处是 Builder 模式还不够强,生成的程序有 bug,第一次生成往往跑不起来,需要不断调整,耗时较多。

总结就是,一个完整的 AI IDE 还是比 AI 插件,用起来更容易,有"一体感",达到了更大的定制程度。

随着 AI 的能力进一步发展,AI IDE 的想象空间会更大,也许会成为未来 IDE 发展的主要方向。

Trae 国内版刚刚上线,开发团队希望大家下载试用,多提宝贵意见。

(完)

文档信息

  • 版权声明:自由转载-非商用-非衍生-保持署名(创意共享3.0许可证
  • 发表日期: 2025年3月 3日
❌