如何构建 24/7 全天候挖掘 Alpha 的 AI Agent 集群

@RohOnChain
英语2周前 · 2026年7月06日
322K
269
43
29
895

TL;DR

Roan 详细介绍了专为量化研究自动化设计的六阶段 AI Agent 架构,并利用 Slate 框架运行并行循环,以实现 Alpha 的发现与验证。

我来拆解如何构建一个能取代整个量化研究团队的 AI Agent 集群。

我们直接进入正题。

收藏本文

- 我是 Roan,一名专注于系统设计、高频交易风格执行和量化交易系统的后端开发者。我的工作重点是研究预测市场在实际负载下的表现。如有任何建议、深思熟虑的合作或合作意向,欢迎私信联系。

在上一篇文章中,我说过会亲自指导前 20 位构建 AI 量化系统的人完成前 20 个设置。我是认真的。

已经有四位构建者和我一起深入这个流程。其中一位正在运行完整的自我改进对冲基金循环。

这个提议仍然有效。

如果你正在构建一个 Alpha 研究系统,即将开始,或者甚至只是在考虑,请在本文下方回复或私信我你的当前设置。我将亲自审视你的架构,并向你展示你现有的方案与一个能自主寻找 Alpha 的集群之间的差距。

如果我没有回复,说明你不在前 20 名之内。动作要快。

大多数量化研究员寻找 Alpha 的方式,和十年前如出一辙。

他们读一篇论文。打开一个 Jupyter Notebook。设计几个特征。跑一个回测。盯着夏普比率看一会儿。然后转向下一个想法。

他们自己就是整个流程。

研究的每个阶段都是他们自己,坐在屏幕前,一次只运行一个假设。

这个星球上最聪明的量化构建者已经不再这么做了。

他们构建集群。 集群中的每个 Agent 负责研究的一个阶段。这些 Agent 并行工作。集群持续运行。新的 Alpha 在他们睡觉时,每天早上自动出现。

Anthropic 公司 Claude Code 的负责人 Boris Cherny 两周前说过:"我不再给 Claude 提示词了。我有循环在运行,这些循环会提示 Claude 并决定下一步做什么。我的工作就是编写这些循环。"

这一句话重新定义了地球上每个严肃构建者对 AI 的思考方式。

对于量化研究来说,这改变了一切。

因为 Alpha 研究本身就是一个流程。阅读论文。提取假设。设计特征。在 20 年的数据上进行回测。检查显著性。检查信号是否在不同市场体制下都有效。对照所有已知因子进行分解。

华尔街每个严肃的基金都在运行这个精确的流程。Renaissance 用 100 个博士来运行它。Two Sigma 用 200 个。Citadel 用更多。

唯一的区别是,他们需要数百个人类坐在这个流程里。而你不需要。

一个 AI Agent 集群可以为你运行这个流程的每个阶段。每个 Agent 各司其职。每个 Agent 运行在与其任务复杂度相匹配的模型上。所有 Agent 全天候并行工作。

过去几天我一直在构建这个集群。

它会在夜间阅读新的研究论文。研究其中的数学原理。提取所声称的精确假设。设计所需的特征。在 20 年的历史数据上回测信号。执行统计严谨性检查。检查过拟合。标记任何只在一个市场体制下有效的信号。

读完这篇文章,你将了解一个六 Agent Alpha 研究集群的精确架构。

你将知道那个能让你在一个周末内构建它,而无需从头编写自己的 Agent 框架的工具。

你还会知道导致 90% 的个人尝试失败的五个失败模式。

让我们开始吧。

第一部分:集群到底是什么

提示词是一个问题。你提问,模型回答一次,然后停止。

循环是一个任务。Agent 持续工作,检查自己的进度,并一直进行直到任务真正完成。

集群是许多并行运行的循环。每个循环是一个专家。每个专家负责流程的一个阶段。一个的输出是下一个的输入。

这就是整个思维模型。

如果你用过 Claude Code、Cursor 或 Codex,你已经在不知不觉中使用过循环了。Agent 调用模型,模型选择一个动作,动作执行,结果返回给模型,然后重复直到目标达成。

循环是让 Agent 成为 Agent(而非单个答案)的原因。

集群是让一个研究团队成为研究团队(而非一个研究员在打字)的原因。

第二部分:运行集群的工具

你可以尝试自己用 Python 脚本来构建,这些脚本会调用不同的 API。

我试过。当一个 Agent 需要等待另一个 Agent 时,它就崩溃了。当你需要在不同周期之间保持状态时,它就崩溃了。当你想要在六个不同的模型上并行运行六个循环时,它就崩溃了。

你最终会从头开始构建自己的 Agent 框架,而不是做研究。

然后我找到了 Slate

Roan - inline image

Slate 是一个由 @wearerandomlabs 构建的 AI 编码工具。它在你的终端中运行。它可以将任何任务分散到你的代码库中的子 Agent 集群中。它可以在任何步骤选择你想要的任何模型。你现有的订阅即可使用。

我之所以用它来构建这个集群,是因为他们刚刚推出了一项名为 Programs 的功能。

Program 是一个用 JavaScript 编写的循环,由 Slate 为你运行。

提示词运行一次就停止。Program 是一个精心设计的循环。它持续运行。它在运行之间保持状态。它一直进行直到任务完成。

你决定每一步做什么。哪个模型处理哪个步骤。循环在继续之前检查什么。何时停止。

你并非独自编写 Program。你告诉 Slate 你想要什么,它会逐步与你一起起草这个循环。它保存这个循环。它运行它。它持续运行它。

因为循环是代码,它可以保持状态,与你的代码库交互,调用外部 API,发布到 Slack,并在你选择的任何模型组合上并行编排多个子 Agent。简单的工作用便宜的开放权重模型。困难的推理用前沿模型。适合步骤的就行。

对于一个六 Agent 的研究集群来说,这正是过去缺失的那一层。

你可以在 https://randomlabs.ai 找到 Slate。它现在已经可用。

现在让我向你展示这个集群。

第三部分:六个 Agent

每个严肃的量化基金都运行着相同的六个研究阶段。

以下是取代它们的集群。

Agent 1:想法生成器。

每晚阅读来自 arXiv q-fin、SSRN 和金融期刊的新研究论文。

研究每篇论文提出的数学模型。提取所声称的精确假设、所需数据以及预测信号的方向。

将每个假设写成一个结构化的研究任务,供下一个 Agent 接手。

运行在快速、成本效益高的模型上,因为任务是高容量的结构化提取。

Agent 2:特征工程师。

接收一个假设任务。从价格数据库或基本面数据库中提取所需数据。

构建特征向量。在横截面上进行标准化。处理缺失观测值、超过三个标准差之外的异常值以及前视偏差。

输出一个干净的数据框,准备进行回测。

Agent 3:回测器。

接收特征向量。构建投资组合构建规则。在 20 年的数据上运行历史回测,包含实际的交易成本、做空方的借券成本和滑点。

输出夏普比率、最大回撤、换手率和容量估计。

Agent 4:验证器。

这是严谨性所在。

接收回测结果。运行 Newey-West 调整后的 t 统计量,以修正收益序列中的自相关。运行 10,000 次迭代的 Bootstrap 重采样,以检查夏普比率是真实的还是样本伪影。

标记任何未通过显著性阈值的信号。杀死任何样本内与样本外表现退化超过 30% 的信号,因为那是过拟合。

运行在更强的推理模型上。制造者永远不能验证自己的工作。永远不能。

Agent 5:体制审计员。

接收通过验证的信号。根据体制(通过波动率和收益的隐马尔可夫模型识别)对 20 年历史进行分段。

在每个体制内重新计算夏普比率、回撤和命中率。杀死任何只在一个体制下有效的信号,因为那是伪装成 Alpha 的体制择时。

Agent 6:因子分解器。

接收具有体制鲁棒性的信号。将它们对 Fama-French 五因子模型加上 Carhart 动量因子再加上低波动因子进行回归。

报告残差 Alpha(回归的截距)及其 t 统计量。

只有残差 Alpha 在因子分解后仍然存在的信号才是真正的新 Alpha。其他一切都是经过额外步骤重新包装的动量或重新包装的价值。

六个 Agent。每个负责一个阶段。它们将输出沿着链条向下传递。

Roan - inline image

一个 Slate Program。六个专门的 Agent。每 24 小时运行一次。

整个集群运行在一个每 24 小时触发一次的 Slate Program 上。

第四部分:如何逐步构建

以下是精确的构建步骤。跟着做,你将在今天结束前让集群运行起来。

步骤 1:安装 Slate

打开你的终端并运行:

bash
1npm install -g @randomlabs/slate

Slate 在 30 秒内作为全局 CLI 安装完成。

然后创建项目目录:

bash
1mkdir alpha-swarm
2cd alpha-swarm
3slate init

slate init 会为你搭建项目,包含状态、Programs 和提供者所需的文件夹。

步骤 2:连接你的模型

运行:

bash
1slate /providers

这会打开 Slate CLI 内的提供者配置屏幕。连接你想要使用的模型。

对于这个集群,我在快速 Agent(想法生成、特征工程、回测、体制审计)上使用 Sonnet,在推理密集型 Agent(验证和因子分解)上使用 Opus。

Roan - inline image

步骤 3:起草 Program

启动 Slate:

bash
1slate

然后在 Slate CLI 中输入:

为我起草一个 Program,按顺序运行六个研究 Agent:想法生成器、特征工程师、回测器、验证器、体制审计员、因子分解器。每 24 小时运行一次。快速 Agent 使用 Sonnet,验证和因子分解使用 Opus。

Slate 会与你一起起草 Program。它会问一些澄清性问题。使用哪个数据源。回测窗口是什么。夏普比率阈值是多少。使用什么体制分类器。你用自然语言回答。Slate 会编写 JavaScript。

以下是编写完成后的循环样子:

javascript
1export default async function alphaSwarm(slate) {
2 while (true) {
3 // 阶段 1:阅读论文,提取假设
4 const hypotheses = await slate.agent('idea-generator', {
5 model: 'sonnet',
6 task: '阅读过去 24 小时内 arXiv q-fin 和 SSRN 上的论文。提取 10 个 Alpha 假设,包括声称的方向、所需数据和论文引用。',
7 state: slate.state.get('tested-hypotheses')
8 });
9
10 // 阶段 2:特征工程,每个假设并行进行
11 const features = await Promise.all(
12 hypotheses.map(h => slate.agent('feature-engineer', {
13 model: 'sonnet',
14 task: `为以下假设构建特征向量:${h.claim}。进行横截面标准化。处理前视偏差。`,
15 data: slate.tools.priceData()
16 }))
17 );
18
19 // 阶段 3:20 年回测,包含实际成本
20 const backtests = await Promise.all(
21 features.map(f => slate.agent('backtester', {
22 model: 'sonnet',
23 task: '运行 20 年回测。包含每笔交易 5 个基点的交易成本和做空成本。',
24 features: f
25 }))
26 );
27
28 // 阶段 4:在推理模型上进行统计验证
29 const validated = await Promise.all(
30 backtests.map(b => slate.agent('validator', {
31 model: 'opus',
32 task: 'Newey-West t 统计量高于 2.5。Bootstrap 10,000 次。如果样本内/样本外夏普比率退化超过 30% 则拒绝。',
33 backtest: b
34 }))
35 );
36
37 // 阶段 5:通过 HMM 进行体制分割
38 const regimeChecked = await Promise.all(
39 validated
40 .filter(v => v.passed)
41 .map(v => slate.agent('regime-auditor', {
42 model: 'sonnet',
43 task: '在波动率和收益上拟合 3 状态 HMM。在每个体制内重新计算夏普比率。如果只有一个体制有效则拒绝。',
44 result: v
45 }))
46 );
47
48 // 阶段 6:因子分解以分离残差 Alpha
49 const finalSignals = await Promise.all(
50 regimeChecked
51 .filter(r => r.passed)
52 .map(r => slate.agent('factor-decomposer', {
53 model: 'opus',
54 task: '对 Fama-French 5 因子 + Carhart 动量 + 低波动因子进行回归。报告残差 Alpha 和 t 统计量。',
55 result: r
56 }))
57 );
58
59 // 持久化、通知、休眠
60 await slate.state.set('final-signals', finalSignals);
61 await slate.state.append('tested-hypotheses', hypotheses);
62 await slate.notify.slack('research', `${finalSignals.length} 个新信号今天通过了所有六个阶段。`);
63 await slate.sleep('24h');
64 }
65}

这就是整个集群。一个文件。六个 Agent。永远运行。

Roan - inline image
Roan - inline image
Roan - inline image

步骤 4:运行集群

保存文件并运行:

bash
1slate run alpha-swarm.js

按下回车键的那一刻,Slate 就会启动循环。六个 Agent 按顺序启动。

特征工程在每个假设上并行运行。回测并行运行。验证在更强的模型上运行。

你可以从 Slate CLI 实时观察每个 Agent 的工作。每个 Agent 都会显示其状态、当前任务和进度。

[截图 4:显示集群正在运行的终端,多个 Agent 并行活动,每个阶段都有进度指示器。]

第一个周期需要 20 到 40 分钟,具体取决于第一阶段产生了多少假设。

最后,Slate 会将幸存者及其夏普比率、回撤和残差 Alpha 发布到你的 Slack 频道。然后休眠到明天。

步骤 5:迭代

循环的第一个版本永远不会是最终版本。

想法生成器会产生重复项。在 Slate 中输入:

添加一个针对状态历史的检查,使其只提出我们过去 30 天内未测试过的假设。

验证器会拒绝你认为应该通过的信号。输入:

将夏普比率阈值放宽到 1.2,但将最大回撤阈值收紧到 8%。

Slate 会为你更新 Program。下一个周期将使用新的逻辑。每一次改进都会累积到状态文件中,随着时间的推移,集群会变得更加敏锐,因为它记住了所有已经测试过和拒绝过的内容。

第五部分:这如何真正取代一个研究团队

三种模式涵盖了所有真实的部署场景。

模式 1:隔夜发现。

集群从晚上 8 点运行到早上 8 点。每天早上你醒来时,会看到两到三个通过了所有六个阶段的信号。

你的工作变成了审查幸存者,而不是自己运行整个流程。

模式 2:假设爆发模式。

新论文发布。新数据源可用。你按需启动集群,当天下午就能测试 100 个假设。

一个人类研究员在相同时间内只能测试两个。

模式 3:Alpha 衰减监控。

集群每周用新数据重新运行已验证的信号。一旦某个信号的夏普比率跌破阈值,它就会标记衰减。

你在回撤累积之前削减敞口。

每种模式都取代了以前需要博士学位的特定功能。它们加在一起取代了研究团队日常所做的大部分工作。

第六部分:导致 90% 的个人尝试失败的五个失败模式

失败模式 1:跳过验证器。

你会得到 100 个具有漂亮夏普比率但毫无严谨性的信号。每一个都是伪装的数据挖掘。

验证器是不可协商的。使用你最强的模型。设置严格的拒绝阈值。永远不要让制造者验证自己的工作。

失败模式 2:没有状态持久化。

一个没有记忆的集群每天都会测试同一个已经失败的假设。

每个被拒绝的信号都必须记录确切的拒绝原因,这样就没有 Agent 会在同一个失败上浪费两次 Token。

失败模式 3:没有制造者-检查者分离。

生成假设的 Agent 是判断它是否为真正 Alpha 的最差人选。

将制造者和检查者分散到不同模型的不同 Agent 上。Renaissance 这样做。Two Sigma 这样做。Citadel 这样做。你的集群也应该这样做。

失败模式 4:一个 Agent 包揽一切。

当你试图让一个 Agent 同时负责生成、设计、回测和验证时,质量就会崩溃。

专业化是集群工作的关键。每个 Agent 完美地做好一件事。

失败模式 5:循环没有停止条件。

一个没有真正停止条件的循环会静默失败。Agent 发出完成信号,认为任务已完成。糟糕的结果得不到纠正。

每个停止条件都必须能被 Agent 自身声明之外的东西检查。"过去 30 个样本外交易的夏普比率高于 1.5。" "回撤低于 5%。" 永远不要用 "Agent 说它完成了"。

尊重这五点,集群就能产生机构级别的研究成果。

总结

Alpha 研究本身就是一个流程。六个阶段。阅读论文。设计特征。回测。验证。检查体制。对照因子进行分解。

每个严肃的基金都用 100 个博士来运行它。

一个由六个专门的 AI Agent 组成的集群为你运行每个阶段。每个 Agent 选择与其任务复杂度相匹配的模型。整个集群运行在一个每 24 小时触发一次的 Slate Program 上。

Slate 的 Programs 是让你能在一个周末(而不是六个月)内真正交付这一成果的关键。

它与你一起起草循环。它保存循环。它运行循环。它永远运行下去。

你不再是流程本身。你成为了架构师。

基础设施的护城河是真实的。研究的护城河已经消亡。

这就是关键所在。

如果你想尝试一下,请在

https://randomlabs.ai 注册,并关注

@wearerandomlabs 以获取发布信息。

在我上一篇关于循环工程的文章中,我详细介绍了相同的架构如何连接到一个完整的、能够自主执行交易的自我改进交易系统。如果你还没读过,请在读完本文后立即阅读。

这个集群就是那个系统的研究部分。

https://x.com/RohOnChain/status/2069056530960490835

最先构建这个系统的基金将在未来十年内实现复利增长。

那些仍然一次只运行一个假设的基金将被抛在后面。

所以,这里有一个问题值得深思。

你是一个每周仍在测试一个假设的研究员,还是一个构建了每晚在你睡觉时测试一百个假设的集群的架构师?

没有错误的答案。但有些答案非常能说明问题。

一键保存

使用 YouMind AI 深度阅读爆款文章

保存原文、追问细节、总结观点,并在一个 AI 工作空间里把爆款文章沉淀成可复用笔记。

了解 YouMind
写给创作者

把你的 Markdown 变成干净的 𝕏 文章

图片上传、表格、代码块,往 𝕏 上手动重排太痛苦。YouMind 把整篇 Markdown 一键转成干净、可直接发布的 𝕏 文章草稿。

试试 Markdown 转 𝕏

更多可拆解样本

近期爆款文章

探索更多爆款文章