一句话摘要
构建全天候捕捉交易 Alpha 的智能体集群
如何构建一支 24/7 全天候挖掘 Alpha 的 AI 智能体集群 2026年6月22日 · 阅读时长 15 分钟 · 查看源文 ↗ AI Claude 量化 循环
我将详细讲解如何构建一支能够取代整个量化研究团队的 AI 智能体集群。
我们直接开始。
收藏本文——
我是 Roan,一名后端开发者,致力于系统设计、HFT 式执行和量化交易系统。我的工作重点是研究预测市场在负载下的真实运行方式。如有任何建议,或希望进行深入合作、建立合作伙伴关系,欢迎私信。
在上一篇文章中,我说过,我会亲自带前 20 位搭建 AI 量化系统的人走一遍搭建过程。我是认真的。
已经有四位构建者和我一起深入推进这个过程。其中一位此刻正在运行完整的自我改进型对冲基金循环。
这个邀请仍然有效。
如果你正在构建 Alpha 研究系统、准备开始构建,甚至只是正在考虑这件事,请在本文下方回复,或私信我你目前的配置。我会亲自梳理你的架构,并向你展示,你当前拥有的系统与一个能够自主挖掘 Alpha 的智能体集群之间究竟差在哪里。
如果我没有回复,说明你没有排进前 20 名。行动要快。
大多数量化研究员寻找 Alpha 的方式,仍然和十年前一样。
他们读一篇论文。打开一个 Jupyter notebook。设计几个特征。运行一次回测。盯着夏普比率仔细端详。然后转向下一个想法。
他们自己就是整条流水线。
研究的每个阶段都由他们亲自完成:坐在屏幕前,一次验证一个假设。
这个星球上最聪明的量化系统构建者已经不再这么做了。
他们构建智能体集群。集群中的每个智能体负责研究流程的一个阶段。各智能体并行工作。整个集群持续运行。他们睡觉的时候,新的 Alpha 每天早晨都会自动出现。
Anthropic 的 Claude Code 负责人 Boris Cherny 两周前说过:“我已经不再直接提示 Claude 了。我运行的是一些循环,由这些循环来提示 Claude,并判断接下来该做什么。我的工作就是编写循环。”
仅仅这一句话,就重塑了全球每一位严肃构建者对 AI 的思考方式。
对于量化研究而言,它改变了一切。
因为 Alpha 研究本身就是一条流水线。阅读论文。提取假设。设计特征。基于 20 年的数据进行回测。检查显著性。检查信号能否在不同市场状态下持续有效。针对所有已知因子进行分解。
华尔街上每一家严肃的基金都在运行完全相同的流程。Renaissance 用 100 名博士运行它。Two Sigma 用 200 名博士。Citadel 用的人更多。
唯一的区别是,他们需要数百名人类坐在这条流水线中。而你不需要。
一支 AI 智能体集群可以替你运行这条流水线的每个阶段。每个智能体各有所长。每个智能体都运行在与其任务复杂度相匹配的模型上。所有智能体都 24/7 全天候并行运行。
过去几天里,我一直在构建这套集群。
它会在夜间阅读新研究论文。研究其中的数学内容。提取论文所声称的确切假设。设计所需特征。用 20 年的历史数据回测信号。执行严格的统计检验。检查是否存在过拟合。标记任何只在单一市场状态下有效的信号。
读完本文,你将了解一支由六个智能体组成的 Alpha 研究集群的确切架构。
你还会知道,使用什么工具能让你在一个周末内构建它,而不必从头编写自己的智能体框架。
你也会了解会扼杀 90% 零售级尝试的五种失败模式。
我们开始吧。
第 1 部分:智能体集群究竟是什么
提示词是一个问题。你发问,模型回答一次,然后停止。
循环是一项工作。智能体会持续工作,检查自己的进度,并不断继续,直到任务真正完成。
智能体集群则是许多个并行运行的循环。每个循环都是一个专家。每个专家负责流水线中的一个阶段。一个专家的输出会成为下一个专家的输入。
这就是完整的思维模型。
如果你使用过 Claude Code、Cursor 或 Codex,那么你其实已经使用过循环,只是自己没有意识到。智能体调用模型,模型选择一个动作,动作被执行,结果返回给模型,然后不断重复,直到实现目标。
循环让智能体成为真正的智能体,而不只是生成一次性的回答。
智能体集群让研究团队成为真正的研究团队,而不只是一个研究员在打字。
第 2 部分:运行智能体集群的工具
你可以尝试自己用 Python 脚本构建这一切,让脚本通过 shell 调用不同的 API。
我试过了。当一个智能体需要等待另一个智能体时,系统就会崩溃。当你需要让状态跨周期持久保存时,系统就会崩溃。当你想在不同模型上并行运行六个循环时,系统还是会崩溃。
最后,你会发现自己不是在做研究,而是在从头构建一个智能体框架。
后来我找到了 Slate。
Slate 是由 @wearerandomlabs 构建的 AI 编码执行框架。它在终端中运行,可以将任何任务拆分并分发给一组子智能体,让它们在你的代码库中协同执行。每一步都可以使用你指定的任意模型。你现有的订阅就能直接使用。
我之所以用它运行这套集群,是因为他们刚刚推出了一项名为 Programs 的功能。
Program 是一段用 JavaScript 编写、由 Slate 替你运行的循环。
提示词只运行一次,然后停止。Program 则是一个经过工程化设计的循环。它会持续运行,在多次运行之间保存状态,并不断执行,直到任务完成。
你可以决定每一步发生什么、哪一个模型负责哪一步、循环在继续前要检查什么,以及什么时候停止。
你不需要独自编写 Program。你只要告诉 Slate 自己想要什么,它就会和你一起逐步起草循环。它会保存循环、运行循环,并让循环持续运行。
因为循环本身是代码,所以它可以保存状态、与你的代码库交互、调用外部 API、向 Slack 发帖,并在你选择的任意模型组合上并行编排多个子智能体。简单工作使用便宜的开放权重模型。困难推理使用前沿模型。选择最适合当前步骤的模型即可。
对于一支由六个智能体组成的研究集群来说,这正是过去一直缺失的那一层。
你可以在 https://randomlabs.ai 找到 Slate。现在就可以使用。
下面让我向你展示这支智能体集群。
第 3 部分:六个智能体
每一家严肃的量化基金都遵循相同的六个研究阶段。
下面这支智能体集群可以取代它们。
智能体 1:创意生成器。
每天夜里阅读来自 arXiv q-fin、SSRN 和金融期刊的新研究论文。
研究每篇论文提出的数学模型。提取论文所声称的确切假设、所需数据以及预测信号的方向。
将每个假设写成结构化的研究工单,供下一个智能体接手。
它运行在快速且成本高效的模型上,因为这项任务属于大批量的结构化提取工作。
智能体 2:特征工程师。
接收一张假设工单。从价格数据库或基本面数据库中提取所需数据。
构建特征向量。在横截面上进行标准化。处理缺失观测值、超出三个标准差的异常值以及前视偏差。
输出一个可直接用于回测的干净 dataframe。
智能体 3:回测器。
接收特征向量。构建投资组合规则。基于 20 年的数据运行历史回测,并纳入真实的交易成本、空头侧借券成本以及滑点。
输出夏普比率、最大回撤、换手率和容量估算。
智能体 4:验证器。
严谨性就体现在这里。
接收回测结果。运行经过 Newey-West 调整的 t 统计量,以校正收益率序列中的自相关。执行 10,000 次 bootstrap 重采样,检查夏普比率是真实有效,还是仅仅来自样本假象。
标记任何未达到显著性阈值的信号。只要样本内与样本外表现的退化幅度超过 30%,就直接淘汰,因为这就是过拟合。
它运行在推理能力更强的模型上。生成者绝不能验证自己的工作。永远不能。
智能体 5:市场状态审计器。
接收通过验证的信号。按市场状态切分 20 年的历史数据(市场状态通过基于波动率和收益率的隐马尔可夫模型识别)。
在每种市场状态中重新计算夏普比率、回撤和命中率。淘汰任何只在一种市场状态下有效的信号,因为那不过是披着 Alpha 外衣的市场状态择时。
智能体 6:因子分解器。
接收在不同市场状态下均具备稳健性的信号。将它们对 Fama-French 五因子模型、Carhart 动量因子以及低波动因子进行回归。
报告残余 Alpha(回归截距)及其 t 统计量。
只有在因子分解后残余 Alpha 仍然存在的信号,才是真正的新 Alpha。其他所有信号,都只不过是经过额外包装的动量策略或价值策略。
六个智能体。每一个都负责一个阶段。它们沿着整条链路向下传递输出。
整个智能体集群运行在一个每 24 小时触发一次的 Slate Program 上。
第 4 部分:如何逐步构建
下面是确切的构建过程。跟着操作,到今天结束时,你的智能体集群就能运行起来。
第 1 步:安装 Slate
打开终端并运行:
Slate 会在 30 秒内作为全局 CLI 完成安装。
然后创建项目目录:
slate init 会为项目搭建好保存状态、Programs 和 providers 所需的文件夹。
第 2 步:连接你的模型
运行:
这会在 Slate CLI 中打开 provider 配置界面。连接你想要使用的模型。
在这支集群中,我让快速智能体(创意生成、特征工程、回测和市场状态审计)使用 Sonnet,让推理密集型智能体(验证和因子分解)使用 Opus。
第 3 步:起草 Program
启动 Slate:
然后在 Slate CLI 中输入:
为我起草一个 program,按顺序运行六个研究智能体:创意生成器、特征工程师、回测器、验证器、市场状态审计器、因子分解器。每 24 小时运行一次。快速智能体使用 sonnet,验证和因子分解使用 opus。
Slate 会和你一起起草 Program。它会提出澄清问题。使用哪个数据源。回测窗口多长。夏普比率阈值是多少。使用哪一种市场状态分类器。你用自然语言回答,Slate 会编写 JavaScript。
循环编写完成后,看起来如下:
这就是整个智能体集群。一个文件。六个智能体。永久运行。
第 4 步:运行智能体集群
保存文件并运行:
按下回车键的那一刻,Slate 就会启动循环。六个智能体将按顺序触发。
每个假设的特征工程会并行运行。回测也会并行运行。验证则在能力更强的模型上运行。
你可以通过 Slate CLI 实时观察每个智能体的工作。每个智能体都会显示自己的状态、当前任务和进度。
[截图 4:终端显示智能体集群正在运行,多个智能体并行处于活动状态,每个阶段都显示了进度指示器。]
第一个周期需要 20 到 40 分钟,具体取决于第一阶段产生了多少个假设。
结束时,Slate 会将幸存信号及其夏普比率、回撤和残余 Alpha 发布到你的 Slack 频道中。然后进入休眠,直到明天。
第 5 步:迭代
循环的第一个版本永远不会是最终版本。
创意生成器会产生重复内容。在 Slate 中输入:
添加一项针对状态历史记录的检查,确保它只提出我们在过去 30 天内没有测试过的假设。
验证器可能会拒绝你认为本应通过的信号。输入:
将夏普比率阈值放宽至 1.2,但把最大回撤阈值收紧至 8%。
Slate 会替你更新 Program。下一个周期将使用新逻辑。每一项改进都会累积到状态文件中。随着时间推移,这支集群会变得越来越敏锐,因为它会记住自己已经测试过的一切,以及已经拒绝过的一切。
第 5 部分:它实际上如何取代一支研究团队
三种模式涵盖了所有真实部署场景。
模式 1:夜间发现。
智能体集群从晚上 8 点运行到早上 8 点。每天早晨醒来时,你都会看到两三个成功通过全部六个阶段的信号。
你的工作将从亲自运行整条流水线,变成审核最终幸存的信号。
模式 2:假设突发模式。
新论文发布了。新的数据源可以使用了。你按需启动智能体集群,当天下午就能完成对 100 个假设的测试。
同样的时间里,一名人类研究员只能测试两个。
模式 3:Alpha 衰减监控。
智能体集群每周都会使用最新数据重新运行已经验证的信号。一旦某个信号的夏普比率跌破阈值,它就会标记该信号的衰减。
你可以在回撤累积之前削减敞口。
每种模式都取代了一项过去需要博士才能完成的特定职能。合在一起,它们可以取代研究团队日常实际工作中的大部分内容。
第 6 部分:会扼杀 90% 零售级尝试的五种失败模式
失败模式 1:跳过验证器。
你会得到 100 个夏普比率漂亮得惊人的信号,但没有任何严谨性可言。每一个信号都是披着伪装的数据窥探。
验证器不容妥协。使用你最强的模型。设定硬性拒绝阈值。绝不能让生成者验证自己的工作。
失败模式 2:没有状态持久化。
没有记忆的智能体集群会每天测试同一个已经失败的假设。
每个被拒绝的信号都必须记录确切的拒绝原因,确保没有任何智能体会第二次在同一个失败案例上浪费 token。
失败模式 3:没有生成者—检查者分离机制。
生成假设的智能体,是判断该假设是否为真实 Alpha 的最糟糕人选。
将生成者和检查者拆分到运行不同模型的不同智能体上。Renaissance 是这样做的。Two Sigma 是这样做的。Citadel 也是这样做的。你的智能体集群也应该这样做。
失败模式 4:让一个智能体包办一切。
一旦你试图让单个智能体同时完成生成、工程设计、回测和验证,质量就会崩溃。
专业化分工是智能体集群能够有效工作的关键。每个智能体只做一件事,并把它做到极致。
失败模式 5:循环没有停止条件。
没有真实停止条件的循环会悄无声息地失败。智能体会在误以为任务已经完成时发出完成信号,而错误结果则留在那里,得不到纠正。
每一个停止条件都必须能由智能体自身声明之外的某种机制进行检查。“过去 30 笔样本外交易的夏普比率高于 1.5。”“回撤低于 5%。”绝不能是“智能体说它已经完成了”。
遵守这五条原则,智能体集群就能产出机构级的研究成果。
总结
Alpha 研究本身就是一条流水线。六个阶段。阅读论文。设计特征。回测。验证。检查市场状态。对因子进行分解。
每一家严肃的基金都使用 100 名博士来运行它。
一支由六个专业 AI 智能体组成的集群可以替你运行每一个阶段。每个智能体都会选择与其任务复杂度相匹配的模型。整个集群运行在一个每 24 小时触发一次的 Slate Program 上。
Slate 的 Programs 是真正让这一系统能够在一个周末内交付,而不是耗时六个月的关键层。
它与你一起起草循环。保存循环。运行循环。让循环永久运行。
你不再是流水线本身。你成为了架构师。
基础设施护城河是真实存在的。研究护城河已经消失。
这就是重点。
如果你想尝试,请前往 https://randomlabs.ai 注册,并关注 @wearerandomlabs 以获取发布动态。
在上一篇关于循环工程的文章中,我详细讲解了如何将同一套架构接入一个完整的自我改进型交易系统,让它能够自主执行交易。如果你还没有读过,请在读完本文后马上阅读。
这支智能体集群就是该系统的研究部分。
最先构建出这套系统的基金,将在未来十年持续获得复利优势。
那些仍然一次只运行一个假设的基金,将被远远甩在后面。
所以,这里有一个值得你认真思考的问题。
你是那个每周仍然只测试一个假设的研究员,还是那个构建出智能体集群、让它在你睡觉时每晚测试一百个假设的架构师?
没有错误答案。但有些答案非常能说明问题。
嵌入帖子:
作者:Roan (@RohOnChain)
帖子 ID:2069056530960490835
来源:https://x.com/RohOnChain/status/2069056530960490835
回复:无
正文:
> http://x.com/i/article/2067524770175057920
提示词
slate
npm install -g @randomlabs/slate
mkdir alpha-swarm
cd alpha-swarm
slate init
export default async function alphaSwarm(slate) {
while (true) {
// Stage 1: read papers, extract hypotheses
const hypotheses = await slate.agent('idea-generator', {
model: 'sonnet',
task: 'Read arXiv q-fin and SSRN from the last 24 hours. Extract 10 alpha hypotheses with claimed direction, required data, and paper reference.',
state: slate.state.get('tested-hypotheses')
});
// Stage 2: feature engineering, in parallel per hypothesis
const features = await Promise.all(
hypotheses.map(h => slate.agent('feature-engineer', {
model: 'sonnet',
task: `Build the feature vector for: ${h.claim}. Standardize cross-section. Handle look-ahead.`,
data: slate.tools.priceData()
}))
);
// Stage 3: 20-year backtest with realistic costs
const backtests = await Promise.all(
features.map(f => slate.agent('backtester', {
model: 'sonnet',
task: 'Run 20-year backtest. Include transaction costs of 5bps per trade and shorting costs.',
features: f
}))
);
// Stage 4: statistical validation on the reasoning model
const validated = await Promise.all(
backtests.map(b => slate.agent('validator', {
model: 'opus',
task: 'Newey-West t-stat above 2.5. Bootstrap 10k. Reject if IS/OOS Sharpe degrades more than 30 percent.',
backtest: b
}))
);
// Stage 5: regime segmentation via HMM
const regimeChecked = await Promise.all(
validated
.filter(v => v.passed)
.map(v => slate.agent('regime-auditor', {
model: 'sonnet',
task: 'Fit 3-state HMM on volatility and returns. Recompute Sharpe per regime. Reject if only one regime works.',
result: v
}))
);
// Stage 6: factor decomposition to isolate residual alpha
const finalSignals = await Promise.all(
regimeChecked
.filter(r => r.passed)
.map(r => slate.agent('factor-decomposer', {
model: 'opus',
task: 'Regress against Fama-French 5 + Carhart momentum + low-vol. Report residual alpha and t-stat.',
result: r
}))
);
// Persist, notify, sleep
await slate.state.set('final-signals', finalSignals);
await slate.state.append('tested-hypotheses', hypotheses);
await slate.notify.slack('research', `${finalSignals.length} new signals survived all six stages today.`);
await slate.sleep('24h');
}
}
slate /providers
slate run alpha-swarm.js
链接
randomlabs.ai
randomlabs.ai/
x.com/wearerandomlabs
标签:# X # AI # Claude # 量化 # 循环 # 指南 # Sonnet
相关文章 如何构建一家 AI 原生公司:招聘、标准与节奏 *我们花了一年时间举办黑客松、AI 培训和答疑时间。但直到我们把 AI 能力设为一项硬性要求,一切才真正发生改变。* AI 循环 Claude 营销
原文参考:https://maxed.wiki/posts/how-to-build-a-swarm-of-ai-agents-that-hunts-alpha-24-7/ (Maxed.wiki,本页为站内中文整理)