我把 Karpathy 的 AutoResearch 搬到了软件开发领域,效果炸了

像 Karpathy 训模型一样开发软件。

Andrej Karpathy 的 AutoResearch 项目于 2026 年 3 月发布,短短几天内在 GitHub 收获 5 万+ 星标,介绍视频播放量达 860 万次。这是一款开源 Python 工具,代码量仅 600 行左右,可让 AI 智能体在无需人工干预的情况下,于单张 GPU 上自主运行机器学习实验。它通过修改训练代码文件(train.py)生成实验方案,以固定 5 分钟训练时长和验证比特率(val_bpb)为统一评估指标,自动筛选并保留效果更优的代码修改,形成「假设生成 → 训练执行 → 指标判断 → 结果回滚/保留」的循环机制。

这个项目的精髓在于三点:① 量化目标(val loss 是唯一判断标准)、② 自主循环(Agent 不需要人类每轮介入)、③ 只保留改进(退化就回滚,绝不将就)。预计每小时可完成约 12 次实验,一觉醒来就能收获上百轮自动优化的结果。

阅读全文

Hermes Dashboard Light Theme 改造指南

背景

Hermes Agent 的 Web Dashboard 原本采用深青色(dark teal)主题,视觉风格偏向赛博朋克——暗底、琥珀色文字、锯齿化像素字体(Mondwest、RulesCompressed、RulesExpanded、Collapse)。这种风格虽然独特,但在日常使用中存在几个问题:

  1. 像素字体可读性差 — Mondwest 等自定义字体在低 DPI 屏幕上锯齿明显,中文环境下尤为突出

  2. 暗色主题不适合长时间使用 — 在明亮环境下对比度过高,容易视觉疲劳

  3. 与现代 SaaS 工具视觉割裂 — Linear、Vercel、Stripe 等主流工具均已采用亮色设计

![Hermes Dashboard Light Theme 改造指南__assets/image-20260414085354195.png](Hermes Dashboard Light Theme 改造指南__assets/image-20260414085354195.png)

因此我们将其改造为现代亮色主题,以 Inter + JetBrains Mono 为基础字体栈,主色选用紫色(#6d5dfc),整体风格干净克制。

改造概览

设计语言

属性 旧值(Dark Teal) 新值(Light)
背景色 #041C1C #fafafa

阅读全文

拆解Manus:真正有用的深度报告的生成

真正的深度研究报告不是让 AI "写"出来的,而是"研究"出来的。这两个字差别大了。

最近几个月,几个产品让我眼前一亮:Gemini Deep Research、Manus Wide Research,还有 OpenAI 的 Deep Research。它们都在做同一件事——让 AI 具备真正的"研究能力"。

这事儿得从"上下文窗口陷阱"说起。

一、上下文窗口陷阱

这个方案的巧妙之处在于规避了上下文窗口问题

传统方式是一个 Agent 处理所有任务,越往后上下文越拥挤,质量必然下降。而 Manus 的方式是每个 Agent 都从零开始,大家都是"满血"状态,不存在谁挤占谁的问题。

官方有个案例——研究 250 位 AI 研究员。

第 1 位到第 250 位,每位的详细程度都一样:完整的背景、研究方向、代表作、核心论文。这换成传统 AI 根本做不到——早就因为上下文爆炸而开始胡编乱造了。

技术实现细节

剥开产品外壳,Manus 的架构其实挺讲究的。核心思想来自一篇叫《CodeAct》的论文:让 AI 像程序员一样工作——写代码、运行代码、看结果、改代码、再运行。

ReAct 模式

每个 Agent 的执行逻辑是一个循环:观察(Observation)→ 思考(Thought)→ 行动(Action)→ 观察...不断迭代,直到任务完成。

这不是简单的"调用工具",而是边思考边行动。搜索结果不相关?换关键词。代码执行报错?检查原因、修改命令、重试。

1
2
3
┌─────────────────────────────────────────────┐
│ 观察 → 思考 → 行动 → 观察 → 思考 → 行动... │
└─────────────────────────────────────────────┘

沙箱隔离

每个 Agent 跑在独立的虚拟机环境里。这不是多线程,而是真正的隔离——独立的文件系统、独立的网络、独立的进程空间。

Manus 用了沙箱技术,这样就算某个 Agent 被诱导执行了危险命令,也影响不到其他 Agent 和宿主系统。

任务分解:DAG 结构

主 Agent 把复杂任务拆成有向无环图(DAG)。清楚知道哪些步骤可以并行,哪些必须等前置条件。

比如"研究 50 家风电公司"的执行图:

1
2
3
4
5
6
7
8
9
10
                [主 Agent:任务分解]

┌─────────┬─────────┼─────────┬─────────┐
↓ ↓ ↓ ↓ ↓
[Agent 1] [Agent 2] [Agent 3] ... [Agent 50]
研究公司1 研究公司2 研究公司3 研究公司50
↓ ↓ ↓ ↓ ↓
└─────────┴─────────┴─────────┴─────────┘

[主 Agent:结果汇总]

工具集

Manus 提供了 29 种工具,分成几类:

类别 工具示例 用途
命令执行 Shell、Python 执行任意代码和系统命令
文件操作 读写 txt/md/pdf/xlsx 处理各种格式的文档
网络能力 搜索、浏览器、端口部署 获取信息、部署服务
系统能力 进程管理、软件安装 配置运行环境

这些工具让 Agent 能真正"动手做事",而不是只会生成文本。比如研究一家公司,它可以:搜索公司官网、爬取财报数据、用 Python 分析财务指标、把结果写入表格。

动态质量检测

Manus 不是按预设流程走到黑。每次执行完一个步骤,都会判断:结果可信吗?需要调整方向吗?

1
2
3
4
def quality_check(result):
if result.confidence < 0.7:
trigger_self_correction()
return generate_validation_report()

代码执行报错?调整命令重试。搜索结果太少?换搜索引擎或关键词。这种自我纠错能力,让它在遇到问题时不会死磕,而是会寻找替代方案。

状态管理

每个任务维护一个 todo.md 文件,实时更新进度:

1
2
3
4
5
6
7
8
9
# TODO

{% asset_img cover.png %}

- [x] 收集公司列表
- [x] 研究前 10 家公司
- [ ] 研究中 30 家公司
- [ ] 研究后 10 家公司
- [ ] 汇总分析报告

这样做的好处是:任务中断后可以恢复;用户随时能看到进展;中间结果有地方存储,不会丢失。

当然这些分析都是我们基于Manus的产品、宣传资料和外部人员的分析做的推测,我们实际并不知道Manus内部的方案。仅供分析和学习。

四、真正的"研究"是什么?

看这些产品,我发现一个有趣的共通点:它们都在模仿人类研究员的工作方式。

人类研究员怎么做深度报告?

  • 首先规划:这个问题要从哪些角度分析?需要哪些数据?
  • 然后执行:找数据、读文献、做访谈、整理信息。
  • 最后综合:把零散的信息组织成有逻辑的故事。

关键在于,这不是一次性能完成的。需要反复迭代——查了资料发现方向不对,得换方向;分析到一半发现缺数据,得补数据。

传统的 LLM chat 模式,本质上是一次性生成。给你个 prompt,你吐出结果。这是"写作",不是"研究"。

真正的深度研究 agent,应该具备:

① 规划能力:能理解任务,制定研究策略,知道先查什么后查什么。

② 工具能力:会用搜索引擎、读数据库、解析文档,不只是从训练数据里抠信息。

③ 迭代能力:能根据中间结果调整方向,不是按预定流程走到黑。

④ 验证能力:能交叉验证信息来源,不是捡到什么信什么。

⑤ 综合能力:能把碎片信息拼成完整故事,不是简单的信息罗列。

Gemini Deep Research 和 Manus Wide Research,本质上都是在往这个方向努力。只是侧重点不同——前者重"深",后者重"广"。

五、一些思考

高质量的资料源

就像研究员一样,要想生成高质量的报告,必须要有高质量的数据源作为基础。

如上面提到过的,这方面搜索引擎具有优势,他们拥有全面性,时效性高的搜索资料。

一些专业的网站也有行业方面的专业资料,比如金融领域相关的,IT技术相关的、白酒方面相关的
电商方面相关的,旅游行业相关的、出行方面相关的、法律行业相关的,科普方面相关的,他们能够提供垂类专业的资料,如果要生成这方面的报告,找这些行业相关的网站信息是最好的。当然如果这些资料是公开的,可以通过搜索因为+专业的搜索词进行搜索获取,所以搜索引擎的重要性在AI的深度调研报告生成中占很重要的地位。

但是搜索引擎并不轻易把它的能力无偿的暴露出来,比如谷歌,它提供付费的搜索API,价格不低。Bing已经把它的搜索API下掉了。还有一些第三方的服务,或许是通过爬虫的方式进行搜索,比如Travily、Brave、SerpAPI等,也提供收费的服务。总的来说,好东西都是有价格的。这些搜索引擎增加了反爬虫的机制,我几个月前还能绕过这些限制,现在也不行了,他们都很聪明,不会轻易让你免费使用的。

从 Manus网站的输出来看,我怀疑它们买了某个或者某几个服务器服务商的服务,可以针对用户的请求,得到搜索引擎的列表 (SERP), 这是猜测,前端并看不出来,因为它们并不可能去做个搜索引擎。专业的人做专业的事。它们拿到搜索结果列表后,通过它们的AI浏览器,也就是虚拟机的浏览器去浏览网络,获取网页的内容。它们叫cloud browser,应该是基于browserbase开发的。沙盒技术和Browser我放在下一个拆解文章中在再专门介绍,这一篇还是专门关注调研报告的实现。

识别用户的意图

专业的用户会提供详细的、简洁的、对 AI 友好的提示词,但是大部分用户并不能很好的表达自己的意图,比如:

请帮我分析Apple的市场行情

这里的Apple指的是苹果电脑公司还是水果苹果🍎呢?非常有歧义。还有的提示词含糊不清。在Insight的实现在,我们首先实现的就是对用户的提示词进行澄清。理论上对于非常模糊的提示词,比如Apple这里例子,我们需要进一步询问用户,反问用户的意图,但是Insight还没进一步的实现这个功能,而是自动进行澄清,它是怎么实现的呢?

生成报告大纲

接下来专门有个agent(StructurePlannerNode)负责生成报告的节点,主要确定报告的主要大纲和方向。

区分报告的种类进行规划搜索任务

接下来针对报告的大纲, Planner Agent针对金融投资领域、技术开发领域、商业分析领域、政策相关领域、通用领域等各种领域制定搜索计划,为每个章节搜索足够的信息备用。

执行搜索

Search Agent 会根据搜索计划,逐步实现相关内容的搜索。

它会根据项目提供的工具,进行搜索。目前提供了travily、github、谷歌学术、知乎、微信公众号等网站的搜索,我其实还是期望能直接搜索google的搜索结果和一些顶级的专业网站的搜索内容。

搜索的结果内容如果太长,还会对它们进行summary,以便压缩上下文。

此节点还会针对每个章节进行内容的总结。

现在万事俱备了,所有的大纲和材料都准备好了,可以进行报告的编写了。有请 ContentWriter Agent。

内容的编写

ContentWriter 负责报告的编写,它根据大纲和材料进行内容的创作。

说起创作来,针对内容创作的场景,我们为了提高创作产品的质量,经常采用Reflection模式,针对生成的内容进行打分,要不要进行优化。

所以这个Agent生成后,会调用Reflector Agent进行打分,以便决定要不要调用Revisor节点进行订正。你看报告生成的日志也能观察到这一点。

除非生成的报告片段达到了“优”的级别,否则就会尝试补充和订正,直到达到了 5 轮的反复订正才算通过。

所以你会看到Insight生成的报告的质量还是很高的,不像一个玩具或者示例deep research产品的报告那么简略或者偏离主题。

Reportor Agent

最后这个Agent把各个章节合在一起,生成一个完整的markdown的报告。

会生成合理的章节,并进行编号。

另外还有的Podcast Agent,可以生成播客的脚本。如果用户请求中要求生成播客,那么此Agent就会自动生成。

工作流程

完整的工作流 (graph)如下:

工程开发

报告中缺乏图表,可以加强数据的采集和图表的展示。

报告中缺乏图片的润色,网上搜索的图片经常文不对题,不过我已经有方案了。


参考资料:

拆解Manus:沙盒架构深度解析

Manus 是一个通用目的 AI 代理(General-Purpose AI Agent),它能够在完整的沙盒环境中运行并交付生产级结果[1]。与传统的单一 LLM 聊天机器人不同,Manus 采用更复杂的多代理协调系统(Multi-Agent Coordination System):用户提示首先传递给规划代理(Planner Agent),该代理将任务分解为一系列子任务;然后执行代理(Executor Agent)使用多种工具(从网页浏览到终端命令)完成这些子任务[2]。为了使执行代理能够像人类研究人员或开发者一样工作,Manus 必须为其提供一个完整的云计算机环境——这就是 Manus 选择 E2B 作为其沙盒基础设施的核心原因。

Manus 的沙盒环境本质上是由 E2B 平台提供的 Firecracker 微虚拟机(microVMs)[3]。Firecracker 是 AWS 开发的轻量级虚拟化技术,能够在约 150 毫秒内启动一个完整的虚拟计算机环境——相比之下,Docker 容器需要 10-20 秒的启动时间,更重要的是,Docker 作为容器解决方案无法提供完整操作系统的所有功能[4]。Manus 联合创始人 Tao Zhang 强调:"Manus 不只是运行一些代码片段,它使用 27 种不同的工具,需要 E2B 提供完整的虚拟计算机来像真人一样工作"[5]。这些工具涵盖了从 Chromium 浏览器(访问 URL、保存图片、滚动页面)到终端命令(创建、编辑、删除文件),再到 Python、JavaScript、Bash 等编程语言环境的全栈能力。

从部署架构来看,Manus 选择了 E2B 的自托管部署模式(Self-Hosting Deployment)[6]。这意味着 Manus 在自己的机器上运行 E2B,而非依赖 E2B 的云服务——这种选择使 Manus 能够完全控制沙盒基础设施,同时简化运维管理。Tao Zhang 表示:"E2B 自托管很容易管理,我们能够在半天内完成实现和部署"[7]。如果 Manus 选择自建这套基础设施,技术上是可行的,但需要一支 3-5 人的全职基础设施团队花费数月时间来开发和维护——对于大多数构建 Agent 平台的团队来说,这会分散对产品和研发工作的注意力。通过选择 E2B,Manus 能够快速交付产品,专注于改进多代理编排系统,而不是重新发明云运行时基础设施。

E2B 沙盒的会话持久性(Session Persistence)是 Manus 架构的关键特性之一。沙盒会话可以持续运行数小时,代理在每次迭代中决定在沙盒中执行哪个操作[8]。对于付费用户,E2B 沙盒中保存的信息可以长达 14 天——这对于需要数十分钟才能完成的复杂任务至关重要。更重要的是,沙盒会话支持暂停和恢复(Pause and Resume):当代理需要向用户确认某些信息、需要凭据访问特定网站、或者需要通过"验证你是人类"测试时,可以暂停当前任务,待条件满足后恢复执行。这种能力使得 Manus 的代理能够在保持上下文的同时,灵活地处理需要人工介入的场景。

阅读全文

了解 Manus Sandbox - 您的云计算机

了解 Manus Sandbox - 您的云计算机

本来想写拆解Manus沙箱的文章,结果Manus官方自己写了 :)
了解 Manus Sandbox - 您的云计算机

正如 Manus 名称的出处"Mens et Manus"(Mind and Hand)所说的,Manus 希望让 AI 模型不仅只是思考,更可以帮你做出行动。而在我们给 AI 模型赋予的"手"中,最强大的莫过于一台真正的云计算机 —— Manus Sandbox。

什么是 Manus Sandbox?

Manus Sandbox 是 Manus 为每一个任务分配的完全独立的云虚拟机。每个 Sandbox 在自己的环境中运行,互不影响,可以并行执行任务。

Sandbox 的强大之处在于它的完整性——就像你手上使用的个人电脑一样,它拥有完整的能力:网络、文件系统、浏览器、各种各样的软件工具。我们的 AI Agent 经过设计与训练,可以很好地选择并正确使用这些工具帮助你完成任务。不仅如此,有了这台计算机,AI 可以通过自己最擅长的方式——编写代码来解决问题,甚至可以帮你制作一个完整的网站和移动端 App。这一切都发生在 Manus 背后的虚拟化平台上。这些 Sandbox 可以 7x24 小时工作,完成你下发的任务而不占用你的本地资源。

阅读全文

Notex:一个开源 NotebookLM 替代方案的实现

Google 的 NotebookLM 上线后,不少人体验了它的文档问答和内容生成功能。它很好用,但有个问题:数据需要上传到 Google 的服务器。对于一些敏感的内部文档,这不太合适。

于是就想做一个开源版本:数据存在本地,想用什么模型就自己配置。一个元旦假期,基本功能就跑起来了。

项目叫 Notex,代码在 GitHub 上,今天聊聊它的实现。

本项目受open-notebook项目的启发。但是open-notebook缺少信息图、思维导图、幻灯片等高级功能。本项目弥补了这些功能
信息图采用最新的nano banana pro实现
幻灯片采用 宝玉的 《预订本年度最有价值提示词 —— 生成既有质感,又能随意修改文字的完美 PPT》 的方式,生成真正意义上的PPT

功能概览

这块是核心,负责和 LLM 打交道。

使用 LangChainGo 作为抽象层,支持 OpenAI 和 Ollama:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
func createLLM(cfg Config) (llms.Model, error) {
if cfg.IsOllama() {
return ollamallm.New(
ollamallm.WithModel(cfg.OllamaModel),
ollamallm.WithServerURL(cfg.OllamaBaseURL),
)
}

opts := []openai.Option{
openai.WithToken(cfg.OpenAIAPIKey),
openai.WithModel(cfg.OpenAIModel),
}
if cfg.OpenAIBaseURL != "" {
opts = append(opts, openai.WithBaseURL(cfg.OpenAIBaseURL))
}

return openai.New(opts...)
}

Prompt Engineering 是关键。不同的转换类型需要不同的 prompt 模板:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
case "mindmap":
return `你是一位资深的信息架构师和知识管理专家。
请将【文本内容】提炼并转换为 Mermaid.js 的 mindmap 格式。

# 样式规范:
1. 中心主题:root((内容))
2. 主要分支:(内容)
3. 细节节点:[内容]

# 严格规范:
- 严禁使用 graph, LR, --> 等字符
- 节点内容 10 字以内
- 只输出代码块,不解释

来源:{sources}
`

注意这里的 prompt 设计:明确的输出格式要求,加上反面示例("严禁"),能有效减少 LLM 输出格式不稳定的问题。

3. PPT 生成

这是比较复杂的 feature。需要两个步骤:

第一步:生成大纲

用 Gemini Flash 生成 PPT 大纲,每页包含:

  • 叙事目标(这张幻灯片要讲什么)
  • 关键内容(标题、要点)
  • 视觉元素(需要什么图)
  • 布局(怎么排版)

第二步:解析和生成图片

1
2
3
4
5
6
7
8
9
10
11
12
13
14
func (a *Agent) ParsePPTSlides(content string) []Slide {
// 1. 提取风格指南
styleStart := strings.Index(content, "<STYLE_INSTRUCTIONS>")
styleEnd := strings.Index(content, "</STYLE_INSTRUCTIONS>")

// 2. 按幻灯片分割(支持多种标记)
re := regexp.MustCompile(`(?m)^(?:\s*#{1,6}\s*)?(?:Slide|幻灯片)\s*\d+`)
indices := re.FindAllStringIndex(content, -1)

// 3. 验证每张幻灯片是否包含必需字段
if strings.Contains(lower, "叙事目标") || strings.Contains(lower, "关键内容") {
slides = append(slides, Slide{Style: style, Content: slideContent})
}
}

然后为每张幻灯片调用 Gemini Pro Image 生成图片:

1
2
3
4
5
for i, slide := range slides {
prompt := fmt.Sprintf("Style: %s\n\nSlide Content: %s", slides[0].Style, slide.Content)
imagePath, err := s.agent.GenerateImage(ctx, "gemini-3-pro-image-preview", prompt)
slideURLs = append(slideURLs, "/uploads/"+filepath.Base(imagePath))
}

4. 信息图生成

信息图的核心是让 LLM 把文本内容"翻译"成视觉描述,然后把描述作为 prompt 喂给图像模型。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
case "infograph":
return `# Role
你是一位世界顶级的数据可视化设计师和信息图专家。

# Task
阅读所附文本,设计一张信息图。不要进行总结,
而是描述这张图应该长什么样。你的输出将被直接用作图像生成的 prompt。

# Design Guidelines
1. 核心信息提炼:找出最重要的 3-5 个数据点
2. 视觉隐喻:用形象的比喻(如网络安全用"盾牌和锁")
3. 布局结构:明确定义图的结构
4. 文本限制:极简,只保留标题和关键数据
5. 风格:插画或手绘感

# Output Format
Start with "Infographic illustration created in a soft, hand-drawn digital art style..."
[描述整体布局和背景风格]
[详细描述主要视觉元素]
...
`

这个 prompt 设计的要点是:明确告诉 LLM 它的输出会被用作另一个 prompt,这样 LLM 就会更注意输出的结构化和可用性。

5. 思维导图

思维导图的实现最简单,核心是生成 Mermaid.js 的语法:

1
2
3
4
5
6
7
8
9
10
11
12
13
case "mindmap":
return `将文本转换为 Mermaid.js mindmap 格式。

# 样式规范:
root((中心主题)) # 圆圈
(主要分支) # 圆角矩形
[细节节点] # 矩形

# 严格规范:
- 仅限 mindmap 语法
- 节点内容 10 字以内
- 严禁包含引号
`

前端用 Mermaid.js 自动渲染:

1
2
import mermaid from 'https://s4.zstatic.net/ajax/libs/mermaid/11.4.0/mermaid.min.js';
mermaid.initialize({ startOnLoad: true });

数据流

本地运行

1
2
3
4
5
6
7
8
9
10
11
12
git clone https://github.com/smallnest/notex.git
cd notex
go mod tidy

# 使用 OpenAI
export OPENAI_API_KEY=your_key
go run . -server

# 或使用 Ollama(本地模型)
export OLLAMA_BASE_URL=http://localhost:11434
export OLLAMA_MODEL=qwen2.5:7b
go run . -server

Docker 部署

1
docker-compose up

环境变量

变量 说明 默认值
OPENAI_API_KEY OpenAI API 密钥 -
OPENAI_BASE_URL 自定义 API 地址 -
OPENAI_MODEL 模型名称 gpt-4o-mini
OLLAMA_BASE_URL Ollama 地址 -
OLLAMA_MODEL Ollama 模型 -
GOOGLE_API_KEY Gemini API(PPT/信息图) -
SERVER_PORT 服务端口 8080

扩展性

代码结构支持几种扩展方式:

1. 添加新的转换类型

agent.gogetTransformationPrompt 添加新 case:

1
2
case "new_type":
return `你的 prompt 模板...`

2. 支持新的 LLM

LangChainGo 支持多种模型,只需在 createLLM 添加新的分支。

3. 接入向量数据库

VectorStore 目前是内存实现,可以替换成 Qdrant、Milvus 等。

4. 添加新的文档格式

vector.goneedsMarkitdown 添加新的文件扩展名。

代码量和学习价值

项目核心代码大约 2000 行左右,适合学习:

  1. RAG 的完整实现:从文档处理到检索到生成
  2. Prompt Engineering:如何设计稳定的 prompt
  3. Go Web 开发:Gin 框架、SQLite、并发处理
  4. 前后端分离:单页应用 + REST API
  5. LLM 应用架构:如何组织一个 AI 应用的代码

如果你想学习如何构建 AI 应用,或者想找一个 NotebookLM 的替代方案,这个项目可以作为一个起点。

总结

Notex 不是什么高大上的项目,代码也写得朴素。但它解决了实际问题:让你在本地使用 AI 处理文档,数据不外泄。

核心功能就几个:

  • 文档问答(RAG)
  • 多种内容转换(摘要、FAQ、大纲等)
  • 视觉内容生成(PPT、信息图、思维导图)

技术选型务实地选择了 Go 和原生 JS,没有过多的依赖。部署简单,维护成本低。

如果你感兴趣,可以看看代码,提提 PR,或者直接 fork 改成你自己的工具。


项目地址: https://github.com/smallnest/notex

欢迎 Star、Issue、PR。

Ralph 实验:构建 SQLite UI

摘要

  • 我使用 Ralph 技巧配合 Claude Code,根据生成的 PRD 自主构建了一个基于浏览器的 SQLite UI。
  • Claude 逐个处理需求,在极少指导且不使用框架的情况下,生成了一个简单的静态应用。
  • 这种方法效果出奇地好,但速度慢、消耗 token 多,且在没有测试或版本控制的情况下存在风险。
  • 更强的护栏、更短的冲刺周期和更好的项目结构将显著提高可靠性和效率。
  • 总的来说,当时间和 token 成本可接受时,Ralph 被证明对这种无需人工干预的从零开发是有效的。

最终结果可以在 lochie.dev/sqlite-ui 找到。

简介

首先 —— Ralph Wiggum 和软件开发有什么关系?

Geoffrey Huntley 在 2025 年 7 月首次创造了这个术语

Ralph 是一种技巧。在其最纯粹的形式中,Ralph 就是一个 Bash 循环。

1
while :; do cat PROMPT.md | claude-code ; done

Ralph 可以取代大多数公司在全新项目上的大部分外包工作。它有缺陷,但这些缺陷是可以识别的,并且可以通过各种风格的提示词来解决。

本周早些时候,Matt Pocock 关于他的 Ralph 工作流的精彩 视频 出现在我的视野中。Matt 采纳了 Geoffrey 的最初想法,并将其调整以适应他自己的开发风格。

阅读全文

Claude Code 使用

Codex CLI vs Gemini CLI vs Claude Code: Which is the Best?

https://www.analyticsvidhya.com/blog/2025/08/codex-cli-vs-gemini-cli-vs-claude-code/

In 2025, several AI coding assistants have been released, which can be accessed directly from the terminal. Codex CLI, Gemini CLI, and Claude Code are some of the popular names that embed large language models into command-line workflows. These programming tools that can generate and fix code via natural language prompts are truly incredible. We document our evaluation of all three of these across different tasks to determine which is most useful.

阅读全文