实测展示使用廉价开源模型+特定优化策略,在检索任务上以百分之一的成本超越前沿大模型效果,提供工程可复现的方案。
“大多数团队最好的训练数据就躺在数据库里。问题在于把原始数据变成可用之物非常困难,而让 Agent 以低成本、大规模地读取、搜索和修改数据需要高级的基础设施。把 Castform 指向 Neon,两者都能跳过。”
一个“好的 Agent”需要在两个领域都强:
Context:我们能否提供工具来找到正确的数据?
Model:模型能否决定搜索什么?
Neon(Lakebase Postgres)及其新的 Search 扩展解决了第一个问题;Castform 解决了第二个。
2022 年左右,整个行业全力投入 embedding 搜索。每个数据库提供商都加了一个,pgvector 是 Neon 下载量最大的扩展。为了给 LLM 提供 context,工程师们手工打造 RAG 流水线,本质上就是某种形式的 embedding 相似性搜索。
2025 年左右,Agent 开始获得更多关注。开发者开始创建多跳搜索工作流,将大问题分解为小问题。检索从一次性搜索系统转向了 Agentic 检索。模型不再发出单个查询,而是在循环中规划和搜索多次。每次循环迭代都意味着又调用一次前沿模型,增加了每个用户请求的总体成本和延迟。

具体来说,用 gpt-5.6-sol 处理一个典型的多轮搜索请求需要超过 10 秒,端到端成本约 0.03 美元,使其慢得令人却步且成本高昂。
与此同时,小型开源模型便宜 100 倍。但开箱即用时,它们的能力落后于闭源 API 模型。RL 后训练有助于弥合这一差距。在搜索等特定任务上,经过后训练的开源模型可以匹敌甚至超越前沿模型,而每次请求的成本低几个数量级。
这就是我们构建 Castform 的原因:让开发者无需处理机器学习与 GPU 内部细节,就能对模型进行 RL 后训练。目标是让后训练像提示工程一样易于上手。
Castform 的流水线通过 Lakebase Search 针对 Neon 运行:
为了有效地进行 RL 后训练,你需要:
三部分就位后,RL 后训练就是一个试错循环:模型给定工具后尝试任务,奖励函数对尝试打分,反馈信号指导模型如何逐步爬升到最优性能。
然而,大多数公司并没有现成的、干净的任务和奖励函数数据集。
企业确实拥有大量专有数据:
这些数据包含 Agent 所需的知识,但将其转化为有效的训练数据集通常需要大量的数据工程和人工标注。
这导致许多团队基于以下两个原因放弃后训练:
“我们没有训练数据。” “微调太难了,需要我们没有的基础设施。”
Castform 同时解决了这两个问题。它将现有语料库转化为训练任务,然后管理 RL 循环,教会开源模型如何有效地使用这些数据。
使用 Castform,你可以将公司知识库转化为模型:
文档(来自你的数据):通过 Navan 预订的火车行程将由 GitLab 差旅卡支付。火车必须乘坐标准舱,需提前 14 天预订。
Ground truth(从你的数据推断):火车必须乘坐标准舱,需提前 14 天预订。
问题(合成生成):在 Navan 预订火车出行时,关于需要提前多久预订以及应该选择哪种座位级别,有什么规则?
有了生成的问题-答案数据集,Castform 允许你通过指定 Agent 可访问的工具和奖励函数来搭建训练运行框架。
奖励函数指定了你希望模型擅长什么。在我们的案例中,我们希望它能检索到正确的 chunk、引用正确的来源,并提供正确的最终答案。
def run_tool(tool, tool_args):
"""Single tool: hybrid search over Lakebase."""
if tool == "search":
query = tool_args["query"]
bm25 = neon.lakebase_text(query, k)
vector = neon.lakebase_vector(query, k)
return rrf_merge(bm25, vector, k)
def reward(trace, ground_truth):
"""Grade a trace against the ground-truth answer."""
answer = parse_trace(trace)
retrieval = ... # did it retrieve the right source
citation = ... # did it cite the right chunk
correctness = ... # did it land on the right answer
return retrieval + citation + correctness
在这里查看完整的代码示例。
Castform 让你对 RL 运行有完整的可观测性。你可以监控每一步的奖励爬升,但更重要的是,你可以深入到单个任务/提示中,观察模型在质量上的表现,从而调试诸如工具损坏或奖励黑客等问题。
有关如何监控训练运行的更多细节,你可以在这里查看 Castform 博客。你也可以在这里查看我们的示例训练运行。

在训练期间,Agent 反复调用 Lakebase Search,直到获得足够的 context 来回答。在数千个并行 rollout 中,每个可能发出数十次调用,这产生了高度突发的工作负载。

Neon 的动态计算扩展吸收了这些峰值,无需 Castform 全天候配置最大容量。训练运行在需求高峰时获得低延迟搜索,而在空闲期计算会缩减。
当 Agent 超越搜索开始修改数据时,这种基础设施变得更加有价值。训练有状态的 Agent 需要能够廉价创建和重置的隔离环境,防止一个 rollout 的操作影响另一个或触碰生产环境。
Neon 分支可以为每个 rollout 提供隔离的数据库状态,而时间旅行查询使得重建和检查 Agent 遇到的状态成为可能。结合自动扩展和缩容至零,这为训练数千个有状态 Agent rollout 开辟了一条道路,而无需维护数千个持续运行的环境。
Castform 让任何开发者都能轻松地将开源模型后训练得比前沿模型更便宜、更快、更好。今天就在 castform.com 后训练你的第一个模型。