mcpField
S
SetuHQ transit search

SetuHQ transit search

本地服务
setuhq.com科研与教育0今天更新

关于 SetuHQ transit search

SetuHQ 是面向系外行星研究者和公众的开源观测工具,用于搜索、审查并解释 TESS 凌星候选信号。它结合盲审的 AI Sentinels 与确定性 Probes,并保留审查依据和数据来源;结果始终标记为候选,而非已确认行星。

主要功能

  1. 01处理 TESS 光变曲线
  2. 02盲审并聚合候选信号
  3. 03拟合凌星并检查假阳性
  4. 04记录审查标记与数据来源
  5. 05导出候选目录和后续观测信息
  6. 06提供系外行星目录与交互视图

适用场景

  1. 01筛查 TESS 数据中的凌星信号
  2. 02复核候选信号的审查过程与来源
  3. 03导出候选以便后续跟进
  4. 04浏览系外行星目录与观测方法

MCP 相关

项目包含名为 setuhq-mcp 的 MCP 服务。README 未说明该服务向 MCP 客户端暴露的具体工具或资源。

配置

本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。

mcp.json · 通用配置
{
"mcpServers": {
"ashfordeou-setuhq": {
"command": "uvx",
"args": [
"setuhq"
],
"env": {
"SETUHQ_ROOT": "<SETUHQ_ROOT>"
}
}
}
}
启动命令uvx setuhq
需要配置的环境变量
SETUHQ_ROOTData root the tools read and write (a SetuHQ checkout holds the stored runs, the catalogue and the benchmarks). No tool reaches outside it. Default: the checkout the package runs from, else the working directory.

本地服务需要在你的电脑上安装运行环境(如 Node.js 18+)。各客户端的配置文件位置不同,请参考客户端文档。

安装包
pypisetuhq0.1.0

工具

16

收录的工具列表 · 更新于 6 天前

参数类型必填说明
limitinteger否
querystring否
methodany否
catalogue_pathstring否

详细介绍

SetuHQ:Setu 标志,由两条路径和中间的虚线组成,呈流动的 S 形(setu 意为桥);旁边是 SetuHQ 字标,Q 上有一颗穿过其表面的带星行星:一次凌日。

SetuHQ · सेतु · 桥
开放系外行星天文台:从公开天空数据到经过审查、解说的候选目标。

SetuHQ 0.1.0 已发布于 PyPI:pip install setuhq Zenodo 概念 DOI 10.5281/zenodo.23568348,指向最新归档版本 pytest 共收集 803 项测试:CI 中离线运行 797 项;scripts/ci_local.sh 运行 4 项慢速测试和 2 项网络测试 在 662 个真实 TOI 上的留出集完备率:可搜索恒星中的 150 颗已确认或已知行星有 90 颗;Wilson 95% 区间为 52% 至 67% 目录收录了 exoplanet.eu 的全部 8,376 条记录,获取日期为 2026-10-18 15 个经过动画呈现的 Methods 章节,涵盖经过测试的物理学原理 许可证:AGPL-3.0-only;也可向 Ashforde OÜ 获取商业许可证;数据、基准和论文采用 CC BY 4.0 可向 Ashforde OÜ 咨询商业许可证和 SetuHQ Pro

setuhq.com · 应用 · 运行原理 · 证据 · 快速开始 · 版本 · 引用 · 许可证

所有已知且有距离数据的系外行星,围绕太阳分布:系外行星目录 exoplanet.eu 中的 8,376 颗行星里,绘制了 8,049 颗(数据获取于 2026-10-18),围绕约 5,433 颗宿主恒星分布;视角位于银河平面上方,太阳居中,银河系中心(经度 0°)位于顶部。角度表示银道经度;距中心的距离表示目录所列距离,采用对数刻度,圆环分别位于 10、100、1,000 和 10,000 光年处;银纬未显示。颜色表示列出的第一种探测方法:凌星法 4,790;视向速度法 1,329;直接成像 1,216;微引力透镜法 356;计时法 181;天体测量法 89;其他(TTV、运动学、其他)88。未绘制没有距离数据的 327 颗行星。pi Men 是 pi Men c 的宿主星,也是 SetuHQ 已存储运行记录对应的恒星,标记在 59.9 光年处。图中未绘制银河系:每个点都表示目录中的位置,而非示意图。来源:docs/results/exoplanet_map.json,提交 befef30。

天空中的每一次亮度骤降,都经过审查并得到解释

TESS 已观测约 98% 的天空。几乎所有这些光变数据都已公开,但几乎没有人逐次检查其中的亮度骤降。SetuHQ 负责检查:由 AI 哨兵和确定性探测器组成的审查小组,会像 Planet Hunters 志愿者一样,在盲编码光变曲线上标记每一次亮度骤降。每份判定都会保留标记、权重;对于哨兵,还会保留文字说明的理由。随后,流水线进行物理分析:考虑边缘昏暗效应的凌星拟合、有界误报概率、奇偶次凌星与次级凌星检查,并为所有结果诚实标注。

哨兵默认基于 Claude(Anthropic)运行;也支持其他提供商,并会标明。探测器是确定性的匹配滤波检测器。

SetuHQ 致力于成为:

  • 可审计的搜索工具。 每个候选体都附有完整来源信息:数据哈希值、配置哈希值、代码指纹以及每位审查者的标记。
  • **让所有人都保持诚实的基准测试,**包括 SetuHQ 自身。基于 662 个真实 TESS 候选体的冻结盲测,配有对照组、公开排行榜,并将负面结果置于首位展示。
  • 可供探索的天文台。 在一个应用中,探索所有已知系外行星的 3D 分布、完整目录,以及十五个介绍行星发现过程的动画章节。

0.1.0 新增内容

首个公开版本(更新日志)。本页内容均不声称发现了行星: SetuHQ 会发现并审核候选体。

  • 名称。 项目最初以 exoplan 为名开发,现在更名为 SetuHQ;setu 在梵语中意为桥梁,寓意从公开的天空数据到经过审核的候选体。软件包和命令名为 setuhq,MCP 服务名为 setuhq-mcp;旧的 exoplan 命令仍可运行,但会显示弃用通知。Logo 中的 Q 是一颗被行星掠过的恒星(品牌套件)。
  • 开放许可。 采用 AGPL-3.0-only,或使用 Ashforde OÜ 提供的商业许可;数据、基准测试、排行榜数据和论文采用 CC BY 4.0(许可)。
  • 信息流的预注册规则。 搜索信息流现在要求信号同时出现在两个经审核的扇区中,且 FAP 低于 0.001。在留出数据上用当前代码测得,该规则将噪声减少约 4.5 倍,但每 100 个目标仍会纳入约 6 个假信号,因此纳入的信息只是待审核线索(见证据)。
  • 此版本包含: 像素级和 Data-Validation 风格的审核、带稳定性门槛的降低假阳性概率、ExoFOP 风格导出以及深凹陷裁剪修复;一篇方法论文,以及真实 TOI 排行榜,其中设有 SetuHQ 尚未超越的目录元数据基准线;“所有变暗天体”目录、全天区扫描和贡献者数据包;适用于任意提供方的 Sentinels、一个 MCP 服务和一个 Claude Code 插件;本 README、生成的图表和品牌套件。各部分在合并前均经过独立审核。

应用

以下每张截图都遵循同一帧规则:窗口大小为 1440 × 900,像素密度为两倍,将动画设为静止状态,并裁剪为应用的 1360 × 850 内容区域(16:10),从所示部分上方开始。浅色和深色模式会跟随你的 GitHub 主题。网站的各个版块、地址和端到端测试见 docs/SITE.md。

任务控制中心:目录统计(来自 exoplanet.eu 的 8,376 颗行星和 5,684 颗恒星,获取于 2026-10-18;已定位 8,049 颗行星;运行 tess-pi-men-s1,包含 7 次凹陷;信息流包含 28 条记录)以及六个互相关联的面板:选中了 pi Men 及其三颗行星的银河系视图、天空位置、存储的光变曲线及其凹陷、目录切片、系统视图和 Sentinel 信息流。在一个面板中选择恒星后,所有面板都会同步选中该恒星。

任务控制中心。 六个互相关联的面板:实时银河系视图、天空位置、光变曲线、带恒星查找器的目录切片、动态系统视图和 Sentinel 信息流。在一个面板中选择恒星后,所有面板和弹出窗口都会同步选中该恒星。遥测栏上的每个数字都由应用自己的数据计算得出。

概览:着陆页,经过审核的天空。由 Sentinels(Claude)和 Probes(确定性探测器)组成的校准面板会读取每条光变曲线;每项判定都有解释;只有确认是行星后才会称其为行星。下方是 pi Men 的艺术构想图,并标注为艺术构想。

概览。 着陆页:介绍审核面板,并说明只有确认是行星后才会称其为行星。

星系:太阳周围所有已知的系外行星。5,433 颗恒星周围的 8,049 颗行星,根据 exoplanet.eu 列出的位置,以 3D 星系坐标放置,并标有以光年为单位的距离环、雷达,以及显示瞄准方向附近行星信息的抬头显示读数。该应用说明,它绘制的是这些行星的位置,并非发现了它们。

星系。 exoplanet.eu 收录的 8,376 颗行星中,有 8,049 颗以 3D 形式放置在太阳周围。银河系是页面绘制的艺术想象图;每颗行星的位置都是数据。

目录:exoplanet.eu 的全部 8,376 条记录,列于可排序、可筛选的表格中,支持文本搜索和 CSV 导出,每行都链接到对应行星的专属页面。

目录。 exoplanet.eu 的全部 8,376 条记录、5,684 颗恒星,每颗行星都有自己的页面,还可以从任何位置搜索(⌘K)。

行星页面:pi Men c(凌日发现,2018 年发现,超级地球)。恒星和行星根据存储值按比例绘制(轨道不按比例);凌日光变曲线根据存储值绘制,并包含 SetuHQ 自有的存储数据点;参数来自 exoplanet.eu,包含其上下限。

行星页面。 显示存储的参数及其上下限,并根据存储值按比例绘制行星系统;有数据时,还会显示 SetuHQ 自有的数据点。

BTJD 1331.77 时 pi Men c 的凌日案例:241 ppm,2.46 小时,SNR 为 16.0,是一个尚未确认的候选信号。该轮观测的 7 次下降以标签页显示;凌日根据存储值回放;面板评分为 1.00,并说明其周期与 pi Men c 相符(恢复了已知行星,并非新发现);还显示每位审阅者存储的标记、Probes 和 Sentinels。

凌日案例。 SetuHQ 自有的凌日下降数据,包含存储的数据点、肢暗化拟合结果和每位审阅者的标记。

方法篇,第 15 章中的第 4 章,视向速度:51 Peg b 及其恒星围绕共同质心运行,并展示视向速度曲线(K = 56.7 m/s,依据 m sin i;存储值为 55.77 m/s)以及恒星光谱线的移动;标注为根据存储值建立的模型,恒星运动幅度放大了 1,000 倍。

方法篇:15 章。 巡天如何工作、凌日、远近运动、视向速度、天体测量、微引力透镜、遮挡星光、计时与相位、射电、假阳性、大气解读、分子与生命、行星族群、生命方程、历史与论文。物理模型通过与闭式解和已发表数值的测试进行验证。

方法,第 11 章(共 15 章),读取大气:真实光谱,JWST 观测的 WASP-39 b。NIRSpec PRISM 透射光谱(Carter 等,2024,CC BY 4.0),包含 36 个分箱数据点及误差线,以及论文中的最佳拟合模型;在 0.5 至 5.5 µm 范围内,透射深度为 20,607 至 23,063 ppm,并标出了 Na、K、H₂O、CH₄、CO₂ 和 CO 吸收带;最深的数据点位于 4.37 µm,即二氧化碳吸收带。标注为真实数据,并注明出处。

标注清晰的真实数据。 WASP-39 b 的真实 JWST 光谱(4.37 µm 处的 CO₂),以及一座 大气实验室。每张图都注明其内容是真实数据、模型还是插图。

方法,第 7 章(共 15 章),遮挡星光:使用四个平面上的夫琅禾费光学计算 Lyot 日冕仪(入瞳、带有 4 λ/D 遮挡圆盘的焦平面、光阑位于 80% 入瞳处的 Lyot 平面、最终图像),以及延伸至 12 λ/D 的星光对数强度分布:在 8 λ/D 处,星光强度为恒星峰值的 1.8×10⁻⁷;不使用日冕仪时则为 7.8×10⁻⁵。标注为插图:理想单色光学系统、对数拉伸,行星位置仅作示意,亮度为 10⁻³。

通过计算模拟日冕仪。 Lyot 日冕仪、渐晕入瞳、涡旋日冕仪,以及结合角差成像的自适应光学,均基于真实的夫琅禾费数值计算。

方法章节中的更多内容
  • 物理计算通过与闭式解和已发表数值进行对比测试验证;下方四项均使用相同函数绘制。
  • **日冕仪:**将 Lyot 光阑从 150% 收至 80%,可使 8 λ/D 处的星光从峰值的 6.7×10⁻⁵ 降至 1.8×10⁻⁷。
  • **逐种模式解析分子。**涵盖十种分子,将每种振动与其红外波段关联,标出红外静默模式,并注明每种模式的振幅夸大倍数。
  • **径向速度:**恒星与行星绕共同质心运行,通过开普勒方程求解;并注明恒星运动的夸大倍数。

功能

一颗已知行星:盲测发现并完成拟合

pi Men 的已存运行结果(TESS 第 1 扇区):面板中的标记、七个共识凌星信号,以及考虑临边昏暗效应的拟合,并与 Huang et al. 2018 对比。

SetuHQ 已存运行结果中的 TESS 第 1 扇区 pi Men c。左侧:pi Men(TIC 261136679)已存光变曲线,BTJD 1325.3 至 1351.3 期间按 10 分钟分箱的 3,485 个数据点,单位为百万分率,其中有 7 个共识凌星信号:5 个通过筛选,且符合 pi Men c 已发表的星历(已知,BTJD 1325.50、1331.77、1338.05、1344.27、1350.57);1 个通过筛选但不符合星历,已标记(空心,BTJD 1348.94);1 个未通过审查(BTJD 1348.38)。下方是各位审查者存储的标记:Probe · Sensitive 8;Probe · Typical 8;Probe · Cautious 8;Sentinel · Volunteer 5;Sentinel · Skeptic 5 个时段。右侧:按五个历元的联合临边昏暗拟合折叠后的数据点(周期 6.2680 d),范围为凌星中点前后各 5 小时,采用 20 分钟均值,拟合模型则在 10 分钟分箱内积分。Rp/R★ = 0.0179 ± 0.0017,是 Huang et al. 2018 所报 0.01703 的 1.05 倍;T14 = 3.07 ± 0.17 h,是 Huang 所报 2.953 h 的 1.04 倍;模型凌星深度为 292 ± 8 ppm。这是找回一颗已知行星,并非发现新行星。来源:runs/tess-pi-men-s1(subjects、classifications.csv、candidates.json)和 docs/results/pi_men_validation.json,提交 b742c73。
天空观测覆盖范围

Survey footprints 天空页面绘制的观测覆盖范围,以及各范围内有多少行星宿主星。

截至 2026-10-18,赤道坐标系下等面积 Mollweide 投影地图上的天空覆盖范围(赤经向左递增:两侧边缘均为 12h,6h、0h 位于中心,18h;赤纬 ±90°,并标注 ±60° 线)。TESS 第 1 至 110 扇区覆盖天空的 97.8%,以扇区数量着色(1–2、3–5、6–12、13 个或更多;13 个或更多的覆盖范围占 4.9%)。Kepler 观测视场覆盖 0.3%,K2 C0–C19 任务覆盖 4.5%,两者均根据 CCD 通道轮廓绘制;所有覆盖范围以外的天空(TESS、Kepler、K2、CoRoT 或银心凸起区域)以灰色单元格绘制,占 2.1%。在 5,433 个行星宿主星中,5,381 个位于 TESS 覆盖的天空内,1,362 个位于 Kepler 观测视场内,661 个位于 K2 覆盖范围内,35 个不在任何覆盖范围内。虚线为银道面。来源:docs/results/survey_coverage.json(tess-point 和 K2fov 覆盖范围),提交 54b255e。 ### 如何发现和计算行星

15 个方法章节中的 4 个,由应用使用的同一组函数绘制,并经过测试验证。

4 种方法,使用 setuhq.methods 计算(应用的“方法”章节使用这些函数绘图,测试也会验证这些函数)。1. 考虑临边昏暗的凌星(transit_flux):pi Men c,k = Rp/R★ = 0.0156,数值依据 exoplanet.eu 上的 0.16719 RJ 和半径为 1.1 R☉ 的恒星;b = 0.5738,二次临边昏暗参数 u1 = 0.333、u2 = 0.228(Claret 2017,Teff 6037 K):凌星深度为 267 ppm,均匀圆盘模型为 244 ppm;图中以恒星半径为单位,显示行星经过恒星表面的位置。2. 径向速度(rv_curve):HD 80606 b,P = 111.44 d,e = 0.93183,ω = 301.213°,K = 469.22 m/s,显示一个轨道周期。3. 微引力透镜(paczynski):点质量透镜放大率 A(u),纵轴为对数刻度,横轴为以爱因斯坦穿越时间为单位的时间;u0 = 0.1 时峰值 A = 10.04,u0 = 0.3 时峰值 A = 3.44,u0 = 1 时峰值 A = 1.34。4. 遮挡星光(airy_intensity,lyot_final_intensity):以对数刻度显示恒星成像强度随角距(0 至 12 λ/D)的变化;对比无遮挡孔径与带有 4 λ/D 遮罩的 Lyot 日冕仪。在 8 λ/D 处,无遮挡孔径的峰值强度为 7.8×10⁻⁵,遮光器比例为 150% 时为 6.7×10⁻⁵,比例为 80% 时为 1.8×10⁻⁷。坐标轴:相对通量随恒星表面位置(单位为恒星半径)的变化;径向速度(m/s,标出零点)随轨道相位的变化;放大率(对数刻度)随以爱因斯坦穿越时间为单位的时间的变化;相对于未遮挡峰值的强度(对数刻度)随角距(单位为 λ/D)的变化。模型使用存储值,而非观测值。来源:src/setuhq/methods.py 和 docs/results/methods_examples.json(数据来自 exoplanet.eu,获取于 2026-10-18),提交 5f5e110。

一次运行的工作流程

一次运行的工作流程,以及 SetuHQ 对 pi Men 的已存储运行数据(TESS 第 1 扇区)统计:1. 导入(TESS、CHEOPS、CSV):1 条包含 3,485 个数据点的光变曲线;2. 清理(裁剪、去趋势、分箱):屏蔽局部二次基线,按 10 分钟分箱;3. 盲编码(13 天的观测对象):2 个观测对象,不含目标名称;4. 审查(面板标记凌星):2 名 Sentinel + 3 名 Probe;10 次分类;5. 汇总(按技能加权达成共识):7 个共识凌星;6. 验证(信噪比、奇偶、次级凌星):6 个通过(1 个标记为偏离星历),1 个拒绝;7. 拟合(临边昏暗凌星):星历上的 5 个历元全部通过;Rp/R★ 0.0179;8. FAP(区块自助法):在 10,000 次试验中 < 10⁻⁴:这是一个界限,而非具体值;9. 写入(候选目标 + 溯源信息):CSV、JSON、SQLite、清单和网站。每一步的输出都会保留,因此可以根据存储的分类重新验证一次运行,无需再次询问审查者。来源:runs/tess-pi-men-s1(manifest.json、candidates.json、subjects)、configs/tess_pi_men_s1.toml 和 docs/results/pi_men_validation.json,提交 b742c73。
分步说明
1. **摄取**来自 MAST 的 TESS SPOC 光变曲线、CHEOPS 光变曲线 FITS 文件或 CSV。 2. **清理并去趋势**:尖峰裁剪、带掩码的局部二次基线,以及分箱。 3. **切分盲编码目标**:固定为 13 天的片段,并使用不透明 ID。目标名称绝不会传给审阅者。 4. **运行评审小组**:每位审阅者独立标记并标注每个目标。任务采用 Planet Hunters 的任务形式:标记每次下降的开始和结束,然后标注为 `potential_planet` 或 `noise`。 5. **聚合**标记:通过单链接聚类,按标记该次下降的审阅者中技能加权审阅者的占比为每次下降评分,并要求评审小组将目标判定为潜在行星。 6. **审核**每个共识事件:SNR、持续时间、边缘效应、奇偶深度、次级食,以及与周期星历的拟合情况。 Kepler/SPOC Data Validation 套件之外的扩展测试会在其旁边添加标记(`dvtests.py`、`pixel.py`): SPOC 拥挤度(CROWDSAP 低于 0.8 时标记为 `crowded`)、使用拟合持续时间在所有相位搜索较弱次级食(阈值来自白噪声模拟,`scripts/calibrate_secondary.py`)、通过逐历元拟合计算奇偶深度、逐历元凌星时刻(线性星历和奇偶计时测试);所有测试均基于经过两轮重新去趋势的光变曲线,拟合的凌星已屏蔽,仿照 DV 屏蔽凌星的做法(第二轮还会屏蔽相位 0.5;只有当第一轮已发现最显著的其他下降具有统计显著性时,才会屏蔽它);此外,还会根据 SPOC 目标像素文件,计算以像素和角秒为单位的差分图像质心及其显著性、质心移动测试、核心/光晕鬼影检查、动量卸载重合情况,以及一张目录中邻近天体的表格,列出每个天体所需的食深。**默认情况下,这些测试只会添加标记**:通过/失败仍按原先方式判定,因此运行结果和基准测试可与早期版本保持可比。设置 `[vetting] decide = true` 会将 `secondary_any_phase`、`odd_even_depth`、`odd_even_timing` 和 `centroid_offset` 设为否决条件,并允许全相位次级食搜索取代相位 0.5 检查。像素测试会下载 TPF,除非设置 `[vetting] pixel = true`,否则默认关闭。 7. **评估**每个周期候选体的假阳性情景(`validate.py`):SetuHQ 自行计算的简化 FPP(行星、周期为 P 或 2P 的食双星、已分辨邻近天体上的食),基于 S2 测量值和明确列出的先验。这不是 TRICERATOPS,也绝不会称其为“已验证”。只有使用 TRICERATOPS,且 FPP < 0.015、NFPP < 10⁻³,*并且*具有高分辨率成像对比曲线时,才会标注为“已验证(统计意义上)”;没有对比曲线时,所有候选体均标注为“未验证:无对比曲线”。SetuHQ 绝不会称自己的结果为已确认。 8. **写入**候选体目录(CSV 和 JSON)、Zooniverse 格式的分类导出文件、SQLite 存储、溯源清单和静态报告站点。 9. **导出以供后续观测**(`setuhq export RUN --out DIR`、`exofop.py`):生成一份 ExoFOP CTOI 风格的表格(CSV 和 JSON),包含通过 S2 和 S3 门槛、且在同一 TIC 上没有重复 TOI 的已审核候选体;另外还会预测未来 12 个月的凌星时窗,并给出星历不确定性范围,σ(Tₙ)² = σ_T0² + n²σ_P² (+ 2n cov),采用与 `match_toi` 相同的传播方式(`ephemeris.py`)。**尚未核实 CTOI 字段列表是否与 ExoFOP 当前表单一致**(ExoFOP 无法访问);字段列表仅在 `exofop.CTOI_FIELDS` 中定义。须由个人使用自己的 ExoFOP 账户提交 CTOI;SetuHQ 不会代为提交。若没有该归档的 TOI 表,导出会拒绝执行,除非指定 `--allow-unchecked`;此时每一行都会注明尚未进行检查。 10. **扩展处理规模**,使用 `setuhq batch CONFIG --targets FILE`(`batch.py`):对任意目标列表运行 `discover` 流程,将光变曲线缓存到 `cache/lightkurve`,并使用状态文件支持因进程被终止或时间限制而中断的会话恢复(跳过已完成的目标,重试失败的目标;配置发生变化时则从头开始)。
评审面板:Sentinel 和 Probe
评审者类型显示为说明需要
simulatedProbe确定性的匹配滤波检测器,具有人类式局限(阈值、漏检率、边界抖动)。作为基线和校准参考。无
claude_codeSentinelClaude 通过 Claude Code CLI 审阅渲染后的图表,并使用 Claude 团队或个人订阅登录。PATH 中有 claude,且已登录
claudeSentinel通过 Anthropic API(视觉功能)使用 Claude。ANTHROPIC_API_KEY

页面显示的是展示名称;所有数据文件、CSV、JSON 和 URL 中的评审者 ID 均保持不变。默认面板包含 2 个 Sentinel 和 3 个 Probe:Sentinel · 志愿者(claude-volunteer)、Sentinel · 怀疑者(claude-skeptic),以及 Probe · 灵敏型、Probe · 典型型和 Probe · 谨慎型(volunteer-sensitive、volunteer-typical、volunteer-cautious)。

Sentinel 收到的任务与志愿者相同,看到的是盲编码图表,且不会收到目标名称。它们返回严格 JSON,经过验证后会裁剪至受试对象的时间范围。不可用的评审者会被跳过,并列入清单。响应按模型、提示词和图像的哈希缓存,因此重新运行无需额外成本且结果可复现。

两个 Sentinel 使用两种角色设定:volunteer(谨慎,会标记低谷)和 skeptic(除非二元和系统性特征十分明显,否则会予以否定)。Sentinel 也可以通过 OpenAI、Gemini 或任何兼容 OpenAI 的端点运行,并会标明相应来源(参见 AI 提供商)。

证据

SetuHQ 报告实际测量结果,也会说明其局限。

测量指标结果来源
pi Men c,与 Huang et al. 2018 的 Rp/R★ 对比1.05(0.0179 ± 0.0017)验证
pi Men c,凌星持续时间 T141.04(3.07 ± 0.17 h)验证
Real-TOI 基准测试,留出集完整率60%(90/150;52–67%),在当前代码上重新运行;首次运行时为 57%(86/150),使用的是修复前的代码基准测试
… 半径小于 2 R⊕ 的行星10%基准测试
实时数据流中的“新”信号按旧规则,与噪声一致(对照组每 100 个目标约 12 个,而观测值为 15.8)。在当前代码中,预先注册的双扇区规则将留出集噪声降低约 4.5 倍,从每 100 个目标 27.8(23.1–33.1)降至 6.1(4.0–9.4),仍高于每 100 个目标 1.6 个真实新信号,且完整率降低超过一半;按该规则重新运行实时数据流后,接纳的新信号为 0 个验证
Real-TOI 排行榜:Probes 与不读取任何光变曲线的基准对比未显示出优于基准(配对 ΔJ 区间包含零)排行榜
Blind benchmark on 662 real TESS Objects of Interest (NASA Exoplanet Archive TOI table, fetched 2026-10-19, seed 20261019), held-out half, the three Probes. Completeness is the share of confirmed or known planets (CP/KP) on searchable stars recovered as a vetted dip on the ephemeris, with Wilson 95% intervals. Left, in the bins the published references use: All radii: SetuHQ 60% (90/150, 52%–67%) against Kepler Robovetter DR25 > 85% (vetting only, on detected TCEs, P < 100 d); 3–4 R⊕: SetuHQ 44% (4/9, 19%–73%) against Planet Hunters TESS 51% (a citizen-science search); > 4 R⊕: SetuHQ 79% (81/102, 71%–86%) against Planet Hunters TESS 85% (a citizen-science search). SetuHQ is below the Kepler Robovetter's completeness (the interval excludes it); not distinguishable from Planet Hunters TESS's 51% at 3 to 4 R⊕ (44%, 19%–73% over 9 stars; a 7-point lower estimate the interval cannot resolve); not distinguishable from Planet Hunters TESS's 85% above 4 R⊕ (79%, 71%–86% over 102 stars; a 6-point lower estimate the interval cannot resolve). Planet Hunters TESS's rates carry their own uncertainty and come from sectors 1 to 26. Right: overall 60% (90/150, 52%–67%); first run, pre-fix code: 57% (86/150). By planet radius: < 2 R⊕: 10% (2/20, 3%–30%); 2–4 R⊕: 23% (6/26, 11%–42%); 4–8 R⊕: 45% (5/11, 21%–72%); > 8 R⊕: 84% (76/91, 75%–90%). By period: 0.5–2 d: 41% (12/29, 26%–59%); 2–5 d: 73% (57/78, 62%–82%); 5–13 d: 49% (21/43, 35%–63%). References, each value checked in its source paper: Thompson et al. 2018; Eisner et al. 2021. Measured on a stated benchmark, not discoveries. Sources: docs/results/benchmark_real_tois_clipfix.json, docs/results/benchmark_toi_sample.json (radii) and docs/paper/references.json (references), commit c72b2fb. False new signals per 100 targets: what the feed's own admission rule passes on light curves with every signal destroyed, against the live feed. Wilson 95% intervals; a target is 2 sectors. Live feed under the old rule, “new” signals: 15.8 per 100 targets (3 over 19 targets; 5.5–37.6); Control: block-scrambled light curves: 12.3 per 100 targets (19 over 309 star-sectors; 7.9–18.8); Control: flux-inverted light curves: 11.7 per 100 targets (18 over 309 star-sectors; 7.4–18.0); Real light curves of TOI hosts: 4.5 per 100 targets (7 over 309 star-sectors; 2.2–9.2); Feed-rule test, old rule: worse control: 27.8 per 100 targets (86 over 309 targets; 23.1–33.1); Feed-rule test, two-sector rule: worse control: 6.1 per 100 targets (19 over 309 targets; 4.0–9.4); Live feed re-run, two-sector rule: 0.0 per 100 targets (0 over 19 targets; 0.0–16.8). Expected from noise alone (the worse control): 12.3 per 100 targets, so the live feed's “new” signals were consistent with noise under the old rule. The pre-registered two-sector rule (FAP < 0.001 over 2,000 trials, the signal in both sectors), measured on the held-out half with the discovery config on the current code, lowers the worse control 4.5-fold, but noise still outnumbers the 1.6 real new signals per 100 targets, so admissions are leads for review. Source: docs/results/benchmark_real_tois_clipfix.json (held-out half, feed-level table, feed_rule), commit c72b2fb.
Results in full

真实数据:π Men(TIC 261136679)的 TESS SPOC 第 1 扇区数据,使用 3 个 Probes 和 2 个 Sentinels(Skeptic 和 Volunteer,通过 CLI 使用 Claude),数据存储在 runs/tess-pi-men-s1 中,并使用当前代码运行(复用 Sentinels 已存储的答案:主题图像和提示词的字节完全一致):

  • 7 个共识凹陷:6 个通过审查,其中 1 个被标记为 off_ephemeris,另有 1 个未通过审查(low_snr、off_ephemeris)。
  • 其中 5 个符合已发表的 pi Men c 星历。在 26 天的观测窗口内,预测的 5 个历元全部被检出;与 NASA Exoplanet Archive 的数值相比,平均凌星时间偏差为 −8 分钟(docs/results/pi_men_crossmatch.json)。
  • 凌星形状,含边缘昏暗效应的拟合(见 docs/results/pi_men_validation.md)。对 5 个历元进行联合拟合,并允许周期在 BLS 周期附近自由变化(6.2680 ± 0.0005 d;Huang:6.26790 d),先给出可直接对照的量:Rp/R★ = 0.0179 ± 0.0017(相当于 Huang et al. 2018 数值的 1.05 倍),T14 = 3.07 ± 0.17 h(相当于 1.04 倍)。含边缘昏暗效应模型的凌星中点深度为 292 ± 8 ppm(相当于 Huang 已发表的 300 ppm 的 0.97 倍;该 300 ppm 按照论文中的定义计算,并非由此模型定义)。被替代的箱形测量结果在深度和持续时间上分别为 0.81 倍和 0.64 倍。误差取值较保守,综合了协方差和沿冲击参数剖面的变化范围。
  • **冲击参数需要结合恒星信息。**对 5 次 TESS 凌星进行自由拟合,只能得到 b < 0.87(1σ),因此 a/R★ 和 ρ★ 均为范围值(ρ★ 在 1σ 下为 0.28 到 2.2 g/cm³,与 TIC 的 1.02 一致)。将 TIC 密度作为高斯先验(1.02 ± 0.20 g/cm³)后,拟合得到 b = 0.64 ± 0.12、a/R★ = 12.85(1σ 范围为 11.5 到 13.6)以及 T23/T14 = 0.95;Huang 对应的值为 0.59、13.38 和 0.95。拟合形状为 U 形,而非 V 形。
  • 两个主题中的周期信号,其虚警概率都低于 10⁻⁴。在 10,000 次区块自助法试验中,没有一次达到观测到的 SNR,因此 10⁻⁴ 是上限,而非具体数值。零假设下的最大值已提交至 runs/tess-pi-men-s1/fap_null/;对这些最大值进行的 Gumbel 拟合存储为 fap_tail,其尾部概率低于 10⁻⁶(仅供参考,见下文)。
  • BTJD 1348.9 处通过审查的凹陷(0.87 h,SNR 9.5)不符合星历,很可能是假阳性。该凹陷予以保留并标记,未被隐藏。
  • BTJD 1348.4 处的凹陷(SNR 6.7)未通过审查,仍保留在已存储的候选项中,并附有相应标记。

已存储的运行结果于 2026-10-21 使用当前代码从头重新运行(scripts/rerun_pi_men.py)。所有凹陷、审查结果、拟合和 FAP 均与首次使用修复前代码进行的运行结果相同(运行清单记录了逐字段比较结果);没有再次询问 Sentinels,而是复用其已存储的答案,因为每个主题图像和提示词的字节完全一致。同一次运行中的扩展审查、降低后的 FPP 和导出结果:

  • 扩展审查与像素级审查(scripts/vet_pi_men_s2.py,真实 SPOC sector-1 文件;参见 docs/results/pi_men_s2_vetting.md)。对全部五个历元进行联合拟合 (P = 6.26795 ± 0.00049 d,T14 = 3.09 ± 0.16 h)后,对经两轮重新去趋势处理的光变曲线进行分析;处理时屏蔽了凌星和相位 0.5 (窗口 1.55 d,12 T14;第一轮中最强的凹陷不显著,因此未将其屏蔽):CROWDSAP 0.9997,FLFRCSAP 0.980(无拥挤);凌星之外任意相位处最强的凹陷为 相位 0.622 处的 42 ± 7 ppm(名义显著性 5.6σ),低于校准阈值 6.9σ(扫描稳健离散度 1.33 的 5.16 倍),其中 86% 来自一个历元;相位 0.5 处为 −12 ± 7 ppm。各历元分别拟合得到的奇偶次凌星深度一致(301 ± 14 对比 311 ± 12 ppm,0.5σ);五个中间时刻符合线性历表(自由度为 3 时 χ² = 1.9,p = 0.59,O−C 在 1.8 min 以内),且没有奇偶次计时偏移(0.5σ)。在本次运行所用设置下没有触发标记,但次级信号处于阈值边缘,是否标记取决于设置:12 种相近的运行设置中(去趋势窗口 1 或 2 d × 分箱间隔 2、6、10、15、20 和 30 min,每种设置都经过完整的两轮预处理),有 3 种标记了 secondary_any_phase:使用 1.55 d 审查窗口时的 15 和 30 min 分箱,以及使用 2 d 窗口时的 30 min 分箱;这些设置下,相位 0.64 处的凹陷达到阈值的 1.05–1.2 倍,且前两种设置在第一轮中就已检测到显著信号。其余 9 种设置均未标记:信号仅达阈值的 0.68–0.93 倍,或不具周期性(20 min 分箱、1.55 d 窗口下,相位 0.74 处的凹陷达到阈值的 1.05 倍,其中 90% 来自一个历元)。此前的代码无论第一轮中最强的凹陷是否显著,都会将其屏蔽,导致默认设置下的凹陷显著性从 5.6σ 升至 7.0σ,并在 15 种设置中有 8 种触发标记,包括窗口不超过 1.5 d 时的所有 6 和 15 min 分箱(即审查者的测量结果)。这些不是相互独立的试验:所有不超过 12 T14 的运行窗口都会归并为相同的 1.55 d 审查窗口,因此这 12 种设置实际上是 2 个不同的审查窗口(1.55 和 2 d)× 6 种分箱间隔,且使用的是同一组数据(审查者采用的 15 种设置网格包含 0.75–2 d 的窗口 × 3 种分箱间隔;同理,实际上只有 6 种不同设置)。

  • pi Men c 的 FPP 降低结果,来自已存储的运行记录(candidates.json 中的 metrics.validation;该方案的先验是明确的选择,见“诚实的限制”)。每个 13-day 目标:第一个为 0.019(0.0186),第二个为 0.015(0.0148)。在管线的五种去趋势设置下(默认设置,以及窗口 ×0.75 和 ×1.5,屏蔽范围为 1.0 和 2.0 T14),使用两种噪声模型时,范围为 0.0111–0.0216(第二个目标为 0.0123–0.0190),对数几率跨度为 0.29 dex(0.19),因此通过稳定性门槛。分类为“未确定”:范围跨越 0.015 阈值。NFPP 未知,因为该次运行没有邻近天体表;标签为“未验证:无对比曲线”。pi Men c 是一颗已发表且测得质量的行星;这说明了该方案在真实数据上的局限。 历史记录:2026-10-20,对整个 sector 的全部五个历元进行联合拟合(scripts/vet_pi_men_s2.py, docs/results/pi_men_s2_vetting.json)后,在相同设置下的结果范围为 0.0079–0.093,因不稳定而被拒绝(几率跨度为 12.9×;允许上限为 10×);在更宽的网格上,其次级信号扫描在 15 种设置中的 6 种显示为白噪声,最大增亮幅度为 2.6–6.2σ。

  • 历表锥体。 导出已存储的运行记录(setuhq export runs/tess-pi-men-s1 --allow-unchecked;归档的 TOI 表请求超时,HTTP 504)后,得到一个信号:根据第一个目标的联合拟合,P = 6.2681 ± 0.0012 d;其对 2026 年 10 月的预测凌星(历元 479)携带 σ = 13.8 h,即 3σ 窗口为 86 h。ATLAS G5 警告,单目标历表在几年内就会过时。使用 TOI 表时,该信号为 TOI 144.01,并因重复项而排除(已使用已发表的历表进行测试)。

  • pi Men 的差分图像质心不可用,SetuHQ 也明确指出了这一点。 PSF 拟合显示,差分图像与星表位置相差 2.05 px(40.1″),偏移主要位于行坐标方向(行 −1.91 px,列 −0.74 px);这正是电荷沿 CCD 列溢出的方向。SPOC 针对 TOI 144.01 的 DV 报告也发现了相同的偏移量级和方向:40.5″,行 −2.07 px,列 0.02 px;DV 质量指标为 0.58,低于 DV 的 0.7 可靠性阈值。pi Men(Tmag 5.1)已饱和:同一列中的五个像素位于接近峰值 5% 以内的平台上,形成溢出拖尾。凌星会缩短拖尾,而不是使 PSF 变暗,因此“偏移”其实是拖尾末端的位置。 拟合结果也印证了这一点:差分图像 PSF 收缩至 0.3 px 的宽度下限,比非凌星状态下的 PSF 窄 3.4 倍。SetuHQ 标记了 saturated 和 centroid_unreliable,但没有发出 centroid_offset。逐次曝光的质心运动测试没有发现偏移(0.1σ),但对于饱和恒星,这同样无法提供信息:恒星变暗时,发生截断的溢出拖尾的通量加权质心不一定会移动。在 150″ 内的 56 颗 TIC 恒星中,除目标星外,其余恒星都需要超过 100% 的食深度;最近的一颗 TIC 261139071(Tmag 14.0 ± 0.75,27″)需要 111%,这一结果处于边缘:在其 Tmag 不确定度的 3σ 范围内。 本次运行中 Sentinel 的操作,依据已存储的分类结果:

  • 在第一个目标(BTJD 1325.3 至 1338.3)上,Sentinel · Volunteer 标记了 1325.50、1331.77 和 1338.05 处的凹陷,并将目标标记为 potential_planet(置信度 0.8);Sentinel · Skeptic 标记了 1325.50、1331.77 和 1338.05 处的凹陷,并将目标标记为 potential_planet(置信度 0.7)。

  • 在第二个目标(BTJD 1338.3 至 1351.3)上,Sentinel · Volunteer 标记了 1344.27 和 1350.57 处的凹陷,并将目标标记为 potential_planet(置信度 0.4);Sentinel · Skeptic 标记了 1344.27 和 1350.57 处的凹陷,并将目标标记为 potential_planet(置信度 0.7)。两者都没有标记 1348.38 处的凹陷(筛查未通过),也没有标记 1348.94 处的凹陷(虽通过筛查,但不符合星历)。

  • 在共识结果中,每个 Sentinel 的权重为 0.5,而 Probe 的权重为 0.4 至 0.6:Sentinel 是经过校准的评审小组中的意见来源,并非整个评审小组。

真实 TOI 上的盲测基准(于 2026-10-21 使用当前代码重新运行;结果是在明确说明的基准上测得,并非发现结果;参见 docs/results/benchmark_real_tois_clipfix.md,首次运行使用修复前的代码,参见 docs/results/benchmark_real_tois.md)。数据取自 NASA Exoplanet Archive 的 TOI 表,共 662 个 TOI(于 2026-10-19 获取,随机种子为 20261019):300 个 CP/KP、300 个 FP 和 62 个 FA,每颗恒星取一个,并按恒星划分为两半。每颗恒星的首个 SPOC 2 分钟观测扇区会经过 Probes 评审组处理,同时还会将通量反转副本和分块打乱副本作为误报对照。保留的半组数据,Wilson 95% 置信区间:

  • 完备度:60%(可搜索恒星上的 150 个 CP/KP 中检出 90 个;52% 至 67%)。 半径大于 8 R⊕ 时为 84%,4 至 8 R⊕ 时为 45%,2 至 4 R⊕ 时为 23%,小于 2 R⊕ 时为 10%。按已发表参考结果使用的分组:所有半径:60%(90/150;52% 至 67%),相比之下,Kepler Robovetter DR25 为 > 85%(仅筛查已检出的 TCE,P < 100 d);3 至 4 R⊕:44%(4/9;19% 至 73%),相比之下,Planet Hunters TESS 为 51%(公民科学搜索);大于 4 R⊕:79%(81/102;71% 至 86%),相比之下,Planet Hunters TESS 为 85%(公民科学搜索)。SetuHQ 的完备度低于 Kepler Robovetter(置信区间不包含其结果);与 Planet Hunters TESS 在 3 至 4 R⊕ 时的 51% 无显著差异(9 颗恒星上的结果为 44%、19%–73%;估值低 7 个百分点,但置信区间无法判定);与 Planet Hunters TESS 在大于 4 R⊕ 时的 85% 无显著差异(102 颗恒星上的结果为 79%、71%–86%;估值低 6 个百分点,但置信区间无法判定)。Planet Hunters TESS 的比率本身也存在不确定性,且数据来自第 1 至 26 扇区。

  • FP TOI:评审组发现了 77% 的凹陷,并将其中 68% 判定为类似双星或标记出来。 这只适用于有 2 分钟数据的 FP 恒星(158 个中有 124 个)。FP TOI 更常只有 FFI 数据,因此这并不代表整个 FP 列表的可靠性。

  • 实时信息流中的“新”信号与噪声一致。 在对照数据中,信息流自身的纳入规则每 1,000 个恒星扇区会通过 58 个(反转)和 61 个(打乱)误报信号。 按该规则计算,相当于每 100 个待审目标约 12 个,而实时信息流中每 100 个目标为 15.8 个(19 个目标中有 3 个)。

  • 修复方案在保留数据上预先注册并进行测量。 信息流现在要求信号在两个已审查扇区中都出现(周期相差不超过 0.5%),且在 2,000 次试验中 FAP 低于 0.001。该规则在调优半组数据上选定,并在保留数据评估前提交(8909cda);保留数据评估使用当前代码重新运行,未作任何更改 (docs/results/feed_rule_validation_clipfix.json)。 使用发现配置测得的保留数据结果,从旧规则到新规则:

    • 对照数据中的噪声:每 100 个目标有 27.8 个(95% CI 23.1–33.1)误报信号,降至 6.1 个(4.0–9.4) (首次评估使用修复前的代码:从 23.0 降至 6.1);
    • 信息流级完备度:从 39% 降至 17%(与此前相同);
    • 排除在外的 FP TOI:从 70% 升至 94%。 噪声减少了约 4.5 倍,但每 100 个目标中有 6 个,仍高于真实光变曲线目前给出的每 100 个目标 1.6 个新信号(修复前代码为 0.3 个)。信息流仍由误报主导,纳入的信息只是供人工或后续审查的线索,并非任何已确认状态的候选项。在当前代码上,用此前的扇区重新运行信息流中的 19 个目标后,纳入了 0 个新信号和 2 个已知 TOI(24 条记录),与修复前代码的结果相同。
  • 对所述 40 颗留出恒星子样本,没有再次调用 Sentinels 进行重新运行。对于当前代码下目标图像和提示词字节完全相同的 37 颗恒星,沿用其已存储的回答;其余 3 颗(修复后会保留深凌星)不纳入统计。在这 37 颗恒星中,每种角色都将 CP/KP 凹陷的 47%(9/19)和 FP 凹陷的 22%(4/18)标记为潜在行星。它们对 37 颗恒星中的 35 颗看法一致(φ = 0.88):它们是同一个模型,因此只是一个相关投票者。

Probes 的注入恢复基准测试(在当前代码上重新运行): docs/results/injection_recovery_simulated_panel.md。 该测试和阈值扫描最初是在 2026-10-16 的代码上完成的,当时注入的凌星还没有加入边缘昏暗效应(2026-10-19 才加入),因此重新运行后的变化并非仅由这两项修复导致。留出集得分从 0.875 降至 0.833,因为在 1000 ppm 下,48 次注入中有 2 次不再被恢复(2 h 时从 12 次降至 5 次中的 6 次;4 h 时从 12 次降至 11 次);这一变化随加入边缘昏暗效应的注入而出现,在修复前的 5a03087 代码上也已存在。 Sentinels 不在该基准测试中。每个注入目标都需要单独调用一次 CLI,因此 Sentinels 会在小样本上单独校准(10 个注入目标和 10 个空目标:权重均为 0.5;Probes 的权重为 0.4 至 0.6)。

持续搜索及其可声称的结论

搜索命令 setuhq discover 每次运行一批 TESS 目标。它会轮换 TOI 主星列表,使覆盖范围每天递增;审查每个目标最近的两个扇区,并将每个新凹陷加入去重后的目录。若某个凹陷与已发布的 TOI 周期匹配,则标记为 known_toi;否则标记为 new_candidate。

  • .github/workflows/discover.yml 在手动启动时运行一批任务(已关闭定时计划),以 ashfordeOU 的身份提交目录并部署网站。设置了 ANTHROPIC_API_KEY 密钥时,会运行 Claude 的 API 审查器;否则该批任务仅运行 Probes。
  • scripts/improve.py 会在注入基准测试上扫描面板阈值。只有在留出种子上胜出的设置才会被提升。阈值扫描中的每次试验都记录在 docs/threshold_sweep.md 中,包括未胜出的试验。这项合成扫描并非真实 TOI 排行榜(见排行榜与方法论文)。

测得的误报率。 在较早的规则下(单个扇区上进行 200 次试验,FAP < 0.01),所有信号都被破坏的光变曲线每 100 个目标仍会通过约 12 个噪声信号。实时信息流显示每 100 个目标有 15.8 个 new_candidate 信号,因此其中的“新”信号与噪声相符(见基准测试)。

现在,信息流要求信号在审查的两个扇区中均出现,并且在 2,000 次试验中 FAP 低于 0.001。该规则是在调优集的一半上选定并预先注册的,随后先在留出集的另一半上用修复前代码评估,再用当前代码以未作改动的规则重新评估 (验证)。噪声因此减少约 4.5 倍,从每 100 个目标 27.8 个(95% CI 23.1–33.1)降至 6.1 个(4.0–9.4),完整率(信息流层面)则下降超过一半,从 39% 降至 17%。噪声仍多于真实新信号(每 100 个目标约 6 个,而真实新信号为 1.6 个),因此信息流纳入的内容只是供人工或后续审查的线索。

在新规则下对当前代码重新运行(使用上次运行涉及的扇区,TOI 表缓存日期为 2026-10-19),19 个实时目标未产生新的信号,仍有相同的 24 个条目对应 2 个已知 TOI。 按旧规则构建的目录保存在 [docs/discoveries/catalog_v1_fap200.json](docs/discoveries/catalog_v1_fap200.json)。

这项工作能够和不能够声称什么。 每个条目都是候选项。这里所说的检测,意味着流水线发现了一个经过审查、且与任何已发表星历都不匹配的凌星信号。这并不意味着已经发现行星。确认需要径向速度测量、地基光度观测,或社区开展的 TESS 后续观测。像素级质心测试是新加入的,默认关闭,且无法用于饱和恒星,因此混叠的食双星仍可能通过审查。本项目能够站得住脚的主张,是提供了一项具有开放溯源信息、可复现且经过校准的搜索。它并不声称发现了新行星,也不声称胜过已发表的流水线。

排行榜与方法论文
  • 真实 TOI 排行榜(docs/leaderboard/,以及网站上的 /evidence/leaderboard/) 统计方法在冻结的 662 个 TOI 基准测试留出半区中,每颗恒星检测到的事件数,并自行评分:完整率、误报拒绝率、对照组误报率和可靠性,均采用 Wilson 区间。排行榜根据基准测试可搜索集合上的 Youden's J 排名,并在两侧使用同一判定条件(干净的候选项),因此,把每个 TOI 都称为行星得 0 分,无论是否标记;只有在两个对照组上都测得结果的条目才会参与排名。Sentinel 子样本(所述 40 颗恒星中有 37 颗在重新运行后保持逐字节不变)会列出,但不会参与排名。一个完全不读取光变曲线、仅使用元数据的基准下限也参与排名,而且该基准测试无法证明 Probes 胜过它:对相同恒星进行配对比较后,下限的表现更好,但 ΔJ 的区间包含零(重新运行中,Probes 的 J = 0.35,下限为 0.39,配对 ΔJ 为 +0.04,95% 区间为 −0.10 至 +0.17;docs/leaderboard/leaderboard.md)。setuhq leaderboard my.json 会为提交评分,并拒绝任何未声明仅使用调优半区输入的哈希值,或包含白名单之外字段的提交。排行榜以 SetuHQ 自身的配置为种子,这些配置根据基准测试存储的输出构建(scripts/leaderboard_seed.py)。
  • 方法论文草稿(docs/paper/paper.md,采用 AAS/AJ 样式的 Markdown)报告了基准测试及其负面结果。文中的每个数字都来自已提交的 JSON,生成方式为 scripts/paper_numbers.py;后续工作会改变的结果会标记为待定。
所有变暗现象:扫描与目录

过去,行星搜索会丢弃所有非行星候选项的凌星信号。扫描会将它们保留下来。 setuhq sweep 会遍历 TESS 扇区中的 SPOC 2 分钟目标,并针对每个恒星-扇区组合,保留面板的所有共识凌星信号(无论面板如何标注)、所有增亮现象以及恒星的变异性,然后按照 src/setuhq/variables.py 中的首个匹配规则对它们进行分类:

| 类别 | 规则(摘要) | |---|---| | 系统性信号 | 0.1 d 内出现目标边缘信号、动量卸载、散射光或指向标记,或数据缺口;或面板标记为仪器因素 | | 食双星 | 奇偶差异或次食;30,000 ppm 或更深;V 形且达到 5,000 ppm 或更深;P < 1 d 时恒星密度不匹配;或面板标记为双星 | | 脉动星或自转变星 | 出现 Lomb-Scargle 峰(Baluev FAP < 10⁻³,且半振幅 ≥ 分箱后散布的 2 倍);有一次持续 ≥ 该周期 ¼ 的下陷 | | 耀发 | 连续 ≥ 3 个点高于滚动中位数 ≥ 3σ,峰值 ≥ 5σ(全局和局部均满足),且并非出现在仪器提示处 | | 行星候选体 | 通过审查,面板至少半数权重认为可能是行星,并非源自恒星自身的信号,且不符合上述规则 | | 未分类 | 其他所有情况,并注明原因 |

每条记录都保留其置信度、决定分类的提示、标记、权重、Sentinels 的原话、光变曲线的 sha256、代码指纹和配置哈希,以及搜索者姓名。没有任何目标会被称为已确认。每个类别都在同一批恒星上与其自身的零假设比较:下陷类别与通量反转副本比较(真实下陷会变成隆起,但真实耀发或脉动峰值也会变成下陷,因此该零假设并非没有真实信号);耀发与向下事件比较,并屏蔽真实下陷;变异与同一颗恒星的红噪声副本比较,该副本是对其自身分箱数据拟合的 AR(1) 过程(翻转通量不会改变周期图,因此反转副本不是适用于变异的零假设;而打乱数据会消除导致虚假峰值的红噪声)。变异规则本身要求周期具有一致性:光变曲线的前后两半中,最佳峰值相同,误差在 10% 以内。每类信号都与同类比较,恒星-观测扇区是统计单位:下陷会集中在少数恒星上,因此超额信号的 95% 区间通过对恒星-观测扇区进行配对自助法得出,同时报告仅一侧出现事件的恒星-观测扇区的 McNemar 精确检验结果。只有两者结论一致时,某个类别才算超出其零假设;否则网站会标注为“在此数据切片中无法与噪声区分”。

setuhq sweep configs/sweep.toml --sector 1 --limit 200 --workers 3   # resumable; cached; polite to MAST
setuhq bundle my-sweep/sector_0005.json.gz --contributor "Your Name" --out bundle/
setuhq ingest bundle/ --attested-by <pr-author>   # sealed, not signed: re-searches every finding + max(3, 5%) by a nonce

网站读取 docs/sweep/catalogue.json:主页计数器、/catalogue/everything-that-dims/(探索 › 所有变暗目标,提供筛选、逐 TIC 页面以及 CSV/JSON 导出)、Sky map 上的巡查图层、Mission Control 的遥测数据和搜索功能。任何人都可以使用自己的 Claude 订阅或 API 密钥添加一个观测扇区(密钥保存在其环境中,绝不写入文件),并获得署名:请参阅 CONTRIBUTING.md。

首个真实数据切片(实测,仅限 Probes)。 TESS 第 1 观测扇区:按巡查顺序选取其 15,898 个 SPOC 2 分钟目标中的前 200 个,并全部完成搜索(无下载失败);搜索代码为 0e87409,分类依据为本次提交中的规则(每条记录均含 search_code 和 classify_code)。面板审查了 936 个共识下陷(2,662 个标记;60 个标记簇未达到共识),目录中共有 1,011 条记录。每项比较均针对同样 200 个恒星-观测扇区,按类别一一比较;区间通过对恒星-观测扇区进行配对自助法得出,“真实 / 零假设”恒星-观测扇区数量是指至少出现一个事件的恒星-观测扇区数量:

比较项真实数据零假设超额(95%)星区真实数据 / 零假设McNemar p 值在此数据切片中的结论
脉动星或自转变星(相干周期图峰值)82+6(0 至 +12)8 / 20.11与噪声无法区分
食双星(凹陷)11077+33(−11 至 +89)26 / 200.24与噪声无法区分
行星候选规则(凹陷)32+1(−3 至 +5)3 / 21.0与噪声无法区分
耀发(增亮)115+6(−6 至 +19)5 / 30.73与噪声无法区分
变星波谷(凹陷)1017−7(−18 至 +1)3 / 41.0与噪声无法区分
系统性(凹陷)720728−8(−103 至 +88)97 / 990.87与噪声无法区分
系统性(增亮)2225−3(−42 至 +27)11 / 60.23与噪声无法区分

此数据切片中没有任何类别超过其零假设。 此表的两个早期版本曾声称有一个类别超过了零假设,但两项说法都不正确:

  • 食双星的说法将凹陷计作独立事件。其中两颗恒星贡献了约三分之一的事件;逐颗恒星来看,超额与零无法区分。
  • 变星的说法使用了红噪声也能通过的周期图规则,并与丢失红噪声的打乱数据零假设进行比较。在通过 FAP 和振幅规则的 36 个峰值中,8 个具有相干周期,即光变曲线前后半段的最佳峰值相同(1.0 至 2.7 d)。20 个周期长到无法用半段数据检验,5 个位于周期网格边缘,3 个在前后半段之间漂移;这 28 个现在被标记为未分类,并注明了原因。现在,零假设是每颗恒星经过相同规则处理后生成的红噪声副本。

6 条食双星类变率记录没有对应类别的零假设,因此未纳入比较。通过行星候选规则的 3 条记录(没有一条与已知 TOI 匹配)与单靠噪声产生的数量相当,因此网站不会将它们列为候选体。在 11 次耀发中,8 次上升速度快于衰减速度,2 次则相反(另有 1 次速度相同)。此数据切片未发现行星,而且在超额显现之前,每个类别都需要更多恒星。扫描时关闭了 FAP 试验(每颗恒星进行 50 次试验约需两分钟),恒星参数来自各文件的标头。记录:docs/sweep/sector_0001.json.gz 和 docs/sweep/catalogue.json。

此数据切片的溯源信息。 在 0e87409 重新搜索记录后,于此提交中基于缓存文件和已存储的运行结果,针对相干性规则和红噪声零假设重新分类一次。每条记录的 reclassifications 都列出了这一步及其规则变更。更早的记录可在 docs/sweep/ 的历史记录中查看:在 b8647ad 搜索;在 3c5862e 重新分类以修复两个错误(一项上升和衰减速度相同的耀发被判定为快速上升,以及两个相隔不到 0.01 d 的增亮事件共用了一个 ID);在 1eb9a6f 重新分类以修正短周期密度规则和各类别的零假设。

重新搜索后的一项修复:已存储的运行目录仍保留着早期搜索的分类结果,首次统计标记时将这些结果也计入其中(5,358)。一致性判定、记录和零假设仅使用本次搜索的结果。n_marks 已根据本次搜索自身的分类结果重新统计(每条发生变化的记录都会在 n_marks_note 中说明)。在干净目录中重新搜索的 8 个星区(包括所有有行星候选体的星区)都能精确复现其记录。现在,每次搜索某颗恒星前,扫描都会清空其运行目录。只有当配置哈希、搜索代码和分类代码全部匹配时,恢复运行才会复用已存储的记录。目录对每个星区仅统计一次搜索,即最新的一次;更早的搜索仅作为溯源信息保留。 数据大小。 每个星区的记录存为一个 gzip 文件(sector_NNNN.json.gz;这 200 颗恒星的数据为 0.47 MB;网站获取的目录为 1.7 MB),因此完整星区的记录约为 37 MB。超过几个星区后,记录将存放在仓库之外,作为发行版资源;仓库中会提交一份记录其 sha256 的清单,供网站构建时校验。届时,目录将只包含条目和覆盖范围,不再包含每颗恒星的事件和空值。第二步目前尚未实现。

如实说明局限
* **Sentinel 仅基于小样本进行校准。** 完整基准测试需要进行大量 CLI 或 API 调用。样本量见校准文件。 * **合成结果不等于真实天空结果。** 基准测试使用白噪声加红噪声。它衡量的是流水线的逻辑,而不是真实完备性。 * **CHEOPS 列映射尚未验证。** 加载器接受多个候选名称,并记录实际使用的名称。请对照真实的 `SCI_COR_Lightcurve` 文件检查。 * **凌星拟合是光变曲线拟合。** 每个共识凹陷都会进行一次带肢暗效应的拟合(根据 TIC 的 Teff 和 log g 使用 Claret 2017 TESS 系数),给出带误差的深度、T14、冲击参数和中间时刻,并进行 ρ★ 一致性检查和 V 形测试。对于周期信号,也会在 BLS 周期附近拟合周期,以免近似搜索周期使各历元发生偏移。只有少数 TESS 凌星时,冲击参数以及由此得到的 a/R★ 和 ρ★ 约束较弱:此时 b 会显示为上限,ρ★ 会显示为范围;此外,还会将使用 TIC 密度作为先验的第二次拟合结果与无先验拟合结果一并保存。密度带(目录值的 0.3 至 3 倍,3σ)仅供说明,并非已发布的阈值。 * **虚警概率受试验次数限制。** FAP 是 N 次区块自助法试验中的 (k + 1)/(N + 1),显示值不会低于 1/(N + 1)。已保存的 pi Men 运行使用 10⁴ 次试验,搜索批次使用 2,000 次(达到该信号 SNR 的试验有 2 次后即停止),库的默认值为 20。数据源的 FAP < 0.001 规则在 2,000 次中 k ≤ 1 时通过;仅凭这一点,仍会在 N 个目标中纳入约 N/1,000 个噪声信号。双扇区规则才是排除大部分其余信号的关键。每个候选信号都会保存一个拟合零假设最大值的 Gumbel 分布(`fap_tail`,以及 `fap_exceed` 和 `fap_method`)。它仅供参考,是在试验范围之外进行的外推,且偏保守(BLS 最大值的尾部比 Gumbel 分布更轻),显示值不会低于 10⁻⁶。 * **像素级审查是新功能,能力有限。** 差分图像质心使用圆形高斯函数代替 SPOC 像素响应函数;其标志会对照目录位置进行测试,并设置一个系统误差下限,等于无凌星拟合位置相对于该位置的偏移,因此对几十分之一个像素以下的偏移不敏感。对于 PSF 与该高斯函数相同的合成 TPF(理想情况),它能将距离 1.5 至 3 px 的邻星食定位到 0.002 px 以内(15 个案例),而目标星上的行星信号始终低于 0.2σ(10 个案例)。对于拉长的 PSF(8 种几何布局,距离 1.5–3 px,每种 2 个随机种子),模型误差占主导:在 1.6:1 时,邻星位置最多偏差 1.10 px(中位数 0.36);在 2:1 时最多偏差 2.15 px(中位数 0.72);在 2.5:1 时最多偏差 2.30 px(中位数 0.95)。在 1.6:1 和 2:1 的所有案例中,双星系统仍会被标记;在 2.5:1 时,8 种几何布局中有 2 种会被标记为不可靠(两个随机种子均如此),其余仍会被标记。目标星上的行星信号从不被标记(每个比例使用 3 个随机种子)。目前尚未在真实假阳性上进行基准测试(ATLAS S2 要求使用 Kepler `koi_fpflag_co` KOI 和 TESS FP TOI)。pi Men 等饱和恒星无法获得可用的质心。邻星表中的通量占比也使用同一高斯函数;若排除范围在恒星 Tmag 误差的 3σ 以内,则会报告为边缘情况。 * **次级搜索仅针对白噪声进行校准。** 其阈值为白噪声条件下、针对扫描位置数量计算的 99.9% 分位数,计算对象为(最大凹陷)/(稳健散布),再乘以 max(1, 扫描的稳健散布);在 3000 个干净的模拟行星中,没有一个被标记(95% CI 0–0.12%;之前引用的 2 个案例早于 max(1, ·) 下限),而被替代的规则标记了 87 个(2.9%),简单的 3 × 稳健散布规则则标记了 681 个(23%)(`scripts/calibrate_secondary.py`、`docs/results/secondary_calibration.json`)。在红噪声较强的情况下(稳健散布为 1.7),使用种子 700000–700999 时,1000 个中有 2 个被标记(审阅者的运行结果:1000 个中 0 个)。在完整的双遍准备流程中,对于使用审阅者种子、以 10 分钟为采样间隔、含 270 ppm 白噪声加 100 ppm 红噪声的 600 个干净行星,有 2 个被标记;单遍处理时有 1 个被标记。第二遍使最强凹陷的中位数提高 +0.03σ。此前的代码每次都会屏蔽第一遍中最强的凹陷,从而避免趋势拟合削弱最大噪声凹陷:600 个中有 8 个被标记,凹陷提高 +0.57σ(此前引用的“300 个中有 1 个”是错误的)。现在,第二遍始终屏蔽相位 0.5,只有在第一遍已发现显著信号时才屏蔽该凹陷。此前降低灵敏度的是去趋势处理,而非阈值:仅屏蔽凌星时,趋势会吸收约一半的次级信号(约 180 ppm 中保留 134 ppm);在每 2 分钟采样噪声为 600 ppm 时,1000/200 ppm 的双星系统在 20 次中有 10 次被标记。屏蔽相位 0.5 后,保留 161 ppm,20 次中有 19 次被标记(噪声为 1000 ppm 时,1500/300 ppm 的案例从 20 次中的 5 次升至 18 次)。第一遍中未达到阈值的偏心次级信号不会受到保护:相位为 0.62 时,1000/200 ppm 的案例在 20 次中有 13 次被标记(单遍处理为 12 次;每次都屏蔽第一遍凹陷时为 18 次)。尚未实现,属于未来工作:使用较低的第一遍阈值来决定屏蔽范围,并通过模拟这一精确的双遍流程来校准第二遍阈值,从而找回这类信号。长凌星曾导致带屏蔽区的去趋势失效(在 3 T14 屏蔽区上拟合 1 天二次曲线,在 7–10 小时处外推误差达 10⁴–10⁶ ppm);现在改为在屏蔽区间内插值趋势,审查窗口至少为 12 T14,因此在审查时,`detrend_window_days` 低于此值不会产生影响(pi Men c 为 1.55 d)。 * **已检查约简 FPP 的稳定性。** 它基于默认去趋势设置和四种变体计算(窗口 ×0.75 和 ×1.5,屏蔽范围为 1 和 2 T14;若某变体的屏蔽范围导致屏蔽区间旁剩余的点数不足一半,则不纳入),并使用两种噪声模型(扫描的稳健散布,以及去除最强凹陷后的标准差,且不会低于标称 σ/√n)。若所有结果均高于 0.5,则类别为“很可能是假阳性”;否则,赔率最多只能相差 10 倍,否则不提供 FPP;若范围跨越 0.015 或 0.5,则标记为“未确定”。其无次级信号似然使用模拟的零假设分布(此前的 max-of-N 模型会因为最强凹陷异常小而惩罚干净行星,FPP 最高达到 0.97),并在第 99 百分位以上拟合指数尾部(40,000 次模拟扫描中,超过 z = 5.1 的不到 40 次)。通过审查流程测量的结果:白噪声下的干净行星中,150 个无一被拒绝(10 分钟采样间隔;大多数被标为“未确定”,其范围跨越 0.015);6–12 小时凌星的 36 个中也无一被拒绝(10 小时那 12 个已在最终代码上重新运行),而审阅时的结果分别为 7% 和约 1/6;红噪声下仍会拒绝,比例约为 3%(审阅者在 2d268cb 上测得 150 个中有 5 个);模拟双星系统中,20 个有 19 个(1000/200 ppm)、20 个有 17 个(1500/300 ppm),以及 20 个有 13 个(相位 0.62 时为 1000/200 ppm)被判定为“很可能是假阳性”;此前其中 20 个有 15–16 个会因不稳定而被拒绝。 * **验证尚未完成。** TRICERATOPS 1.1.0 可通过 pip 安装(额外组件 `validate`),但其 `target()` 在构造时会查询 MAST、Gaia 和 TESSCut,因此无法离线运行;构建时 MAST API 也出现故障:适配器(`validate.run_triceratops`)仅在存根上进行过测试,尚未在真实目标上运行。实际运行的约简 FPP 是有文档说明的近似方法:其情景先验属于人为选择(依据 Guerrero et al. 2021,将假阳性总比例设为 25%),会忽略未分辨伴星和背景恒星;如果没有可靠的质心,就无法区分目标星与可能产生该深度信号的邻星。目前尚未纳入对比曲线。 * **批处理模式仅在离线环境中测试。** 使用合成光变曲线测试了续跑、重试和缓存;由于 MAST 搜索 API 出现故障(2026-10-19),没有运行真实批次,因此不报告真实吞吐量。CTOI 导出结果尚未与 ExoFOP 的在线表单进行比较。 * **两项修复会改变默认结果(包括通过/未通过状态)。**(1)在提交 5a03087 之前,`preprocess.clean` 会删除所有比 0.5 天滚动中位数低、且偏离点对点散布 10 倍以上的点,因此深度超过该阈值的日食或凌星(3% 的双星系统、宁静恒星上 1% 的热木星、噪声为 300 ppm 时的 5000 ppm)会在面板看到之前消失。现在只有在低异常点不属于凹陷时才会将其删除:若一段连续数据至少有 max(3, 20 分钟 / 采样间隔) 个采样点低于中位数 3σ,就视为凹陷(使用滞回处理,因此即使 10–12σ 的日食跨越截断阈值,所有点也都会保留)。向上截断方式不变。(2)深凹陷现在会进入审查流程,`vet.py` 的 `odd_even_mismatch` 曾导致 10 个干净的 1% 热木星中有 6 个未通过:深凌星的箱形深度相对于白噪声波动很大。现在会根据各历元深度相对于奇偶均值的散布增大其误差,并设置 2% 的系统误差下限。2026-10-21,所有能够在不调用 Sentinel 的情况下重新运行的修复前结果,都已使用当前代码重新运行:已保存的 pi Men 运行结果(凹陷、审查、拟合和 FAP 均相同;300 ppm 时的 pi Men c 约为 2 分钟散布的 1.5 倍,不受任何一项修复影响)、实时发现目录、注入回收基准测试、阈值扫描、真实 TOI 基准测试(以及因此更新的真实 TOI 排行榜和方法论文中的数字),还有数据源规则评估。首次运行结果仍作为历史记录保留,每个文件都附有修复前说明,并注明重新运行结果所在文件:`docs/results/benchmark_real_tois.{md,json}`、`feed_rule_validation.json`、`feed_rule_live_rerun.json` 和 `docs/discoveries/catalog_v1_fap200.json`。校准记录(`reviewer_weights_full_panel.calibration.json`)没有重新运行:若不调用 Sentinel,就无法重新测量其速率。Probe 的检出率(TPR 0.6、0.6 和 0.4)是在 2026-10-16 的代码上测得;注入的凌星信号改为带肢暗效应后(2026-10-19),相同随机种子的结果为 0.9、0.8 和 0.6。权重保持冻结,作为基准测试协议的参数:有三个 Probe、最低分数为 0.5、最低行星比例为 0.5 时,任一组权重都会接受至少有三个 Probe 中两个标记的凹陷,因此所有共识判定都相同(`tests/test_calibration_equivalence.py`)。修复(2)的一个后果是:模拟的偏心双星系统(主星 0.8%,次星 0.4%,相位 0.37)现在能够通过默认审查,因为先前的 `odd_even_mismatch` 失败属于误报;其主星星历上的 8 个事件都会被 `secondary_any_phase` 检出(即出现标记,或在 `[vetting] decide = true` 时未通过;其作为独立事件找到的次星食,有 5 次被标记为 `off_ephemeris`,1 次未标记),并且这 8 个事件均被约简 FPP 归类为“很可能是假阳性”(所有去趋势设置下的结果均高于 0.5;在使用按类别判断的门控前,这类双星系统大多显示为“FPP not computed: unstable”,而非“约为 1”)。修复(1)的权衡是:持续时间不足 20 分钟、但深度超过 10σ 的真实事件(以 2 分钟采样的 18 分钟日食)仍会作为尖峰被删除。 * **边缘事件是统计方法和审阅者的薄弱环节。** * **相干变源规则在红噪声下表现不佳,也无法识别长周期信号。** 在强红噪声(AR(1),600 ppm,相关时间 1 天)中,它对 300 ppm 正弦信号在 20 次中仅检出 3 次(白噪声下为 20 次中 20 次;`scripts/variability_rule_check.py`、`docs/sweep/variability_rule_check.json`);对于单个扇区中约 3.8 d 以上的周期,它无法进行测试,因为光变曲线的两半都必须显示该信号(第 1 扇区切片的峰值中有 20 个标为“未测试相干性”,因此仍未分类)。 * **数据源纳入的对象只是线索,不是任何已确认状态的候选对象,而且数据源仍以虚警为主。** 搜索数据源中没有任何已确认的行星。根据预注册的双扇区规则,仅噪声仍会在每 100 个目标中产生约 6 个虚假信号(留出集,95% CI 4.0–9.4),高于真实光变曲线产生的每 100 个 1.6 个。该规则也会降低完备性(数据源层面,留出集:39% 降至 17%)。 * **Real-TOI 在可搜索恒星中的完整率为 60%**(留出集;52% 至 67%),低于 Kepler Robovetter 的完整率;对于半径小于 2 R⊕ 的行星,完整率仅为 10%。FP 指标仅涵盖具有 2 分钟数据的 FP 恒星,这一群体与完整 FP 列表相比存在偏差。
  • 裁剪错误已修复,并重新运行了基准测试。 首次运行的基准测试代码会移除所有低于滚动中位数超过点间散布 10 倍的点,且没有连续长度测试,因此深度超过每次采样散布约 10 倍的凌星,其凌星期间的点会被删除。在其留出集的一半中,有 27 颗 CP/KP 恒星和 11 颗 FP 恒星符合条件(深度超过散布的 8 倍),其中 3 颗 CP/KP 漏检可由此解释。使用修复后的代码重新运行,协议保持不变,27 颗符合条件的 CP/KP 恒星中有 23 颗被检出(此前为 21 颗),其中包括全部 3 颗漏检恒星;留出集完整率为 60%(90/150),而此前为 57%(86/150):5 颗恒星新增检出,1 颗检出丢失,提升 3 个百分点,但未显示出超出重采样噪声的幅度(配对自助法 95% CI 为 0 至 +6 个百分点;McNemar p = 0.22)。大多数新增检出都是被旧奇偶检验拒绝的深层行星。同一修复也解释了其他大多数变化:对于反转对照组,现在通过审查、此前未通过的 24 个凹陷中,16 个曾被旧奇偶检验拒绝,5 个是被旧版清理流程删除的深层反转特征(另有 3 个;3 个现在不再通过),因此每 1,000 个恒星扇区中通过审查的凹陷数从 573 增至 641;而 5 个凹陷现在通过审查的 FP TOI 中,有 4 个曾被旧奇偶检验拒绝(1 个现在不再通过),因此通过审查的 FP 凹陷占比从 31% 升至 34%。唯一一次检出丢失是 TOI 1905.01,其已发布星历已过时:其扇区包含两次完整凌星,深度约为 25 ppt、持续约 2.5 h,但星历预测的时间晚了 7.2 h(为传播误差的 7σ),因此即使完美检出也无法匹配。首次运行中的“检出”是在预测时间处、裁剪已删除凌星后残留的一个凹陷;重新运行后检出的凹陷是真实凌星,其测量窗口仅覆盖 Probes 标记的凌星始入阶段(0.79 h,2.9 ppt;考虑临边昏暗效应的拟合结果为 25.3 ppt、2.75 h),且周期为混叠周期(3P/2)。审计发现,这是留出集 CP/KP 漏检中唯一符合此类情况的案例(已发布星历预测时间处没有凹陷,但在预测历元 12 h 范围内存在深度相近的通过审查的凹陷,且与预测时间的偏差至少为传播星历误差的 3σ);冻结的匹配规则未变,因此仍计为漏检(重新运行报告中的“已知限制”)。首次运行及其修复前说明仍保留在 docs/results/benchmark_real_tois.md 中。

它是什么 / 不是什么

SetuHQ 是SetuHQ 不是
在公开数据上进行可复现、经过校准的凌星搜索已确认行星的来源
带有对照组和公开排行榜的盲测基准声称超越已发布的处理流程
探索每一颗已知系外行星,并提供有来源依据的数据后续观测的替代品
可解释:每个判定都保留标记和理由黑箱

安装

SetuHQ 需要 Python 3.11 或更高版本。每个带标签的发行版本都会以 setuhq 的形式发布到 PyPI(docs/RELEASING.md):

pip install setuhq                   # the setuhq command
pip install "setuhq[mcp]"            # with the MCP server (setuhq mcp, setuhq-mcp)
pip install "setuhq[tess,mcp]"       # with TESS downloads too

发行版本之间 main 分支上的最新代码:

pip install "setuhq[tess,mcp] @ git+https://github.com/ashfordeOU/SetuHQ"

如需参与开发,或重新构建已存储的运行结果、基准测试和网站,请使用仓库检出版本:

git clone https://github.com/ashfordeOU/SetuHQ && cd SetuHQ
python3 -m venv .venv && . .venv/bin/activate
pip install -e ".[tess,dev]"         # add ,claude for the Anthropic API backend, ,mcp for the MCP server

快速开始

pytest -q                            # offline tests (network- and slow-marked tests are deselected)

setuhq run configs/tess_pi_men_s1.toml --out runs/tess-pi-men-s1
setuhq rebuild runs/tess-pi-men-s1 configs/tess_pi_men_s1.toml   # re-vet from the stored classifications
setuhq report runs/tess-pi-men-s1 --out site/report --validation docs/results/pi_men_validation.md
setuhq calibrate configs/tess_pi_men_s1.toml --out weights.json
setuhq benchmark configs/benchmark_simulated_panel.toml --weights weights.json --out bench.md
setuhq export runs/tess-pi-men-s1 --out export   # CTOI-style table and predicted windows (refuses without the TOI check)
setuhq leaderboard my-method.json   # score a submission to the real-TOI leaderboard
setuhq sweep configs/sweep.toml --sector 1 --limit 20   # the everything-that-dims sweep (resumable)
setuhq-mcp --list-tools             # the MCP server (pip install -e ".[mcp]")
pytest -q -m network                 # live MAST download test
scripts/ci_local.sh                  # everything CI runs, plus the slow tests, the site builds and the README check

配置文档见 configs/default.toml。所有会影响结果的值都位于配置文件中,其哈希值会写入清单。

架构

SetuHQ 的架构,计数依据仓库内容读取。公开数据:exoplanet.eu(8,376 颗行星,获取于 2026-10-18);MAST(TESS SPOC 光变曲线);TOI 表(使用种子 20261019 抽取的 662 个 TOI);Claret 2017(TESS 边缘昏暗);JWST(WASP-39 b 光谱,来自 Zenodo)。引擎:53 个模块(一个 Python 包,src/setuhq);流水线(预处理、目标、搜索、筛选、凌星拟合);评分(聚合、校准、benchmark_toi)。页面(报告、应用、星系、方法、任务)。评审面板:Sentinels(默认使用 Claude;支持并标注其他提供方);Probes(确定性匹配滤波检测器,使用固定种子);共识(按技能加权并校准)。界面:CLI,18 条命令(run、rebuild、calibrate、benchmark、discover、export、batch、sweep、bundle、ingest、check-sweep、dashboard、docket、crossmatch、plate、report、leaderboard、mcp);应用(15 个 Methods 章节;Galaxy、Catalogue、Mission Control)。证据:803 项测试(2 项需要网络,4 项运行较慢);pi Men c(对照 Huang 2018 检查);真实 TOI 基准(662 个 TOI,含对照组);阈值扫描(7 次试验,保留未胜出的结果);溯源信息(数据、配置和代码哈希)。每个候选目标都会保留其数据哈希、配置哈希、代码指纹以及每位评审者的所有标记;无需再次询问评审者,即可重新审核一次运行。计数依据 src/setuhq、CLI 和 pytest --collect-only 读取;数据来自 docs/threshold_sweep.json、docs/results/exoplanet_map.json、docs/results/benchmark_real_tois.json(docs/threshold_sweep.json 是阈值扫描),提交 8bee5cc。
仓库布局
src/setuhq/
  lightcurve.py   container with provenance      loaders.py   TESS (MAST), CHEOPS FITS, CSV
  preprocess.py   clean, detrend, bin            subjects.py  blind-coded 13-day segments
  search.py       BLS and single-event search    vet.py       automatic vetting
  dvtests.py      DV-style light-curve tests      pixel.py     TPF difference images, centroids, neighbours
  validate.py     reduced FPP, TRICERATOPS adapter, validation labels
  ephemeris.py    propagation, uncertainty cone   exofop.py    CTOI-style export, predicted windows
  batch.py        resumable multi-target runs     leaderboard.py the real-TOI leaderboard
  injection.py    synthetic transits              calibrate.py skill-based reviewer weights
  aggregate.py    clustering and consensus       pipeline.py  end-to-end run
  benchmark.py    injection recovery             report.py    static HTML site
  store.py        SQLite and CSV export          config.py    TOML configs
  variables.py    everything-that-dims rules     starsearch.py one star-sector of the sweep
  sweep.py        resumable sector sweep         contrib.py   contribution bundles and ingest
  everything.py   #/variables, counter, Sky layer
  tools.py        the MCP tools' functions       mcp_server.py setuhq-mcp
  agreement.py    Sentinel agreement, effective number of voters
  reviewers/      simulated; Sentinels: sentinel.py (shared), claude (API), claude_code (CLI),
                  openai_compat (OpenAI and compatible endpoints), gemini
configs/          run configs                    scripts/     known-planet validation
docs/             research notes and results     site/        generated report
tests/            offline tests, plus network- and slow-marked tests
tools/            README figures (gen_readme_assets.py) and app screenshots (capture_site_shots.mjs)
skills/, commands/, .claude-plugin/   the Claude Code plugin    examples/  mixed-provider panel, example agent

贡献一次扫描

在 TESS 扇区上运行 SetuHQ,使用你自己的 Claude 订阅或 API 密钥,在 pull request 中提交密封 bundle,即可在你带来的每条记录上获得署名:先运行 setuhq sweep,然后运行 setuhq bundle;维护者会运行 setuhq ingest,在结果计入前重新搜索每项发现。指南见 CONTRIBUTING.md,扫描本身位于证据下。密钥绝不能写入文件或消息:只能使用环境变量。

AI 提供方

Sentinel 默认使用 Claude(Anthropic);也支持其他提供方,并会标注。探测器是确定性的匹配滤波检测器。

目前仅对 Claude 进行了基准测试。 每个提供方都会收到相同的任务和提示词,并使用相同的严格 JSON 架构、验证和截断规则,因此,格式错误或超出范围的回答都无法让候选项通过。每条审核都会记录提供方、API 返回的确切模型 ID、调用时间和提示词版本;缓存键包含提供方、模型、提示词和图像哈希。

[[reviewers]] 中的 type提供方密钥(仅限环境变量)安装是否经过基准测试
claude_code通过 Claude Code CLI 使用 Claude(订阅)无:已登录 claudeClaude Code是:40 星子样本
claude通过 Anthropic API 使用 ClaudeANTHROPIC_API_KEY.[claude]未单独测试(与 CLI 使用相同模型)
openaiOpenAI(Chat Completions,图像输入)OPENAI_API_KEY无(纯 HTTPS)否
geminiGoogle Gemini(generateContent)GEMINI_API_KEY无(纯 HTTPS)否
openai_compatible通过 base_url 指定的任意端点:Ollama、vLLM、LM Studio、OpenRouter、Azure OpenAIapi_key_env 指定的变量,或无无(纯 HTTPS)否

一个面板可以混用多个提供方(examples/panels/mixed_providers.toml:Sentinel · Volunteer 使用 Claude,Sentinel · Skeptic 使用 OpenAI,第三个使用 Gemini)。名称仍为“Sentinel · persona”;页面会在名称旁显示提供方和模型,并将其存入 manifest.json。

  • 缺少密钥、SDK 或 CLI: 将跳过该 Sentinel,并在清单中列出跳过原因。
  • 密钥不会出现在任何记录中: 若 base_url 包含 user:password@、片段、;param、类似令牌的路径段、名称中含有凭据字样的查询参数,或提供方密钥的值,则会拒绝该地址;端点记录为协议、主机和端口,以及路径的哈希值;密钥被拒绝(401、403、除 429 以外的其他 4xx)时会立即失败,不会重试;错误正文会被脱敏,也会处理密钥的 base64 形式。
  • 缓存: Anthropic API 的缓存键现在包含提供方,因此,此变更前由 claude 后端缓存的回答会重新请求一次;Claude Code 的缓存键保持不变。
  • 权重按提供方和模型分别设置。 未针对其提供方和模型进行校准的 Sentinel 将使用最低权重(0.05)投票,并标记为未校准,直到 setuhq calibrate 完成测量。
  • 为何重要: 两个 Claude persona 的一致性为 φ = 0.89,因此它们几乎相当于一个投票者。scripts/benchmark_real_tois.py sentinels --panel <config> 会让任意面板中的 Sentinel 使用相同的 40 星子样本运行(仅限已设置密钥的 Sentinel),并在报告中添加每一对的 φ 值,以衡量另一个模型是否让面板更具独立性。

AI 助手(MCP、Agent)

setuhq-mcp 是一个 MCP 服务:助手运行 SetuHQ 自己的代码并读取其存储的结果,而不是靠猜测。它的 16 个工具各自都是对一个公共函数的轻量封装(src/setuhq/tools.py),每个回答都附带来源和真实性标签。默认使用 Stdio;通过 --http HOST:PORT 提供可自托管的流式 HTTP 服务。

服务运行在你的计算机上;不会向 Ashforde OÜ 发送任何内容。助手通过它找到的是候选目标,而非发现结果。

渠道命令要求
安装pip install "setuhq[mcp]"(或在检出目录中运行 pip install -e '.[mcp]'),然后运行 setuhq-mcp --list-toolsPython 3.11+
Claude Codeclaude mcp add setuhq -- /path/to/SetuHQ/.venv/bin/setuhq-mcp已安装
Claude Code 插件/plugin install setuhq --marketplace ashfordeOU/SetuHQsetuhq-mcp 位于 PATH 中
Claude Desktop、Cursor、VS Code、Codex CLI、Gemini CLI配置片段见 docs/MCP-INSTALL.md已安装
远程(流式 HTTP)setuhq-mcp --http 8080(localhost;除非指定 --allow-writes,否则仅提供只读工具;无身份验证)你自己的主机
工具功能
search_catalogue、get_planet、get_star系外行星目录(按存储内容提供,并附带来源)
list_candidates、get_candidate某次已存储运行中的凌日信号,附带完整来源信息和每位审阅者的判定
vet_lightcurve、fit_transit、compute_fapBLS 和审查、肢暗化拟合、有界 FAP
run_pipeline_csv、run_pipeline_tess在 CSV 或 TIC 上运行完整管线(除非另有要求,否则仅运行探测)
rv_semi_amplitude、transit_depth、microlensing_magnification、habitable_zoneMethods 中的物理学功能
benchmark_results、sentinel_providers已存储的基准测试;哪些提供方可在此运行

该插件在工具之上添加了斜杠命令(/setuhq-vet、/setuhq-explain、/setuhq-sweep、 /setuhq-catalogue、/setuhq-physics、/setuhq-benchmarks),以及 skills/ 中的四项技能: 审查 TESS 目标、解释候选目标、运行扇区扫描、提交至排行榜。 examples/agents/vet_agent.py 是一个 示例 Agent(Claude Agent SDK、 .[agents]),它通过服务端端到端地审查一个候选目标:将每次工具调用和结果记录到来源文件中, 自由运行只读工具,在运行管线前征求许可,并拒绝任何面向外部的操作。其结论是供人审阅的候选结果,而非发现结果。

版本

整个引擎都是免费的。SetuHQ Pro 和定制研究面向有更多需求的机构,而所有付费方案都从一条消息开始:这里没有定价。

免费SetuHQ Pro定制研究
内容完整的开源 SetuHQ:搜索、Sentinels 和 Probes、审查、基准测试和排行榜、扫描、MCP 服务和应用,没有功能限制在同一开源引擎上叠加的专有层,按合同提供基于开源引擎为你完成的研究,按合同提供:行业扫描、候选目标档案或产出率研究
许可证AGPL-3.0-only,或商业许可证专有合同
状态可用计划中;可按需提供(尚未构建)按需提供
如何开始安装或打开setuhq.com申请 Pro 评估申请研究

用 docs/PRO.md 中的话来说,Pro 将会是:

开源 SetuHQ 的严格超集。 Pro 依赖开源引擎,绝不分叉。所有开源功能都将保持开源,也不会有任何免费功能转为需授权使用。

不引入新科学。 Pro 不添加任何检测、审查或拟合方法,也不会修改这些方法。Pro 的所有数值都来自开源引擎运行结果,任何人都可以用免费代码复现。

Pro 的规划围绕公共代码仓库无法为机构提供的内容展开:为冻结基准测试中的任意 AI 审核者提供校准证书(Pro Calibrate,主打产品);私有目标列表、尚未公开的候选目标和团队工作区(Pro Workspace);大规模托管扫描(Pro Sweeps);结合客户望远镜可观测性数据的后续观测资料包(Pro Follow-up);课堂和天文馆版本(Education & Dome);以及附带 SDK 的商业许可证。目前这些都尚未构建;docs/PRO.md 说明了每项功能将基于什么构建,以及还需要什么。Pro 产出的任何内容都不能确认或验证一颗行星,定制研究也不能。

研究

方法论文草稿见 docs/paper/paper.md,真实 TOI 排行榜见 docs/leaderboard/。注入阈值扫描(它不是排行榜)见 docs/threshold_sweep.md;Methods 各章背后的研究笔记见 docs/RESEARCH.md。

引用

请使用 CITATION.cff 引用本软件(GitHub 的引用此仓库按钮会读取该文件),并注明所用版本或提交。每个发行版本都会存档到 Zenodo:概念 DOI 10.5281/zenodo.23568348 涵盖所有版本并指向最新版本;每个发行版本也都有自己的 Zenodo 记录版本 DOI(v0.1.0: 10.5281/zenodo.23568349)。方法论文目前仍是草稿 (docs/paper/paper.md),尚无独立 DOI。

许可

SetuHQ 采用双重许可。代码依据 GNU AGPL-3.0-only(LICENSE)许可,或者对于不适合采用 AGPL 的用途(例如闭源产品,或未提供源代码的托管服务),可使用 Ashforde OÜ 提供的商业许可([email protected])。SetuHQ 自有的数据、基准测试、排行榜数据和论文依据 CC BY 4.0 许可;第三方数据遵循其自身条款。通俗易懂的许可指南见 LICENSING.md,第三方组件和数据见 NOTICE,贡献须遵循 CLA(CONTRIBUTING)。“SetuHQ”和 Setu 标志是 Ashforde® OÜ 的商标;分叉项目必须使用其他名称(TRADEMARKS.md)。字体(Geist、Geist Mono、Unbounded)依据 SIL Open Font License 许可。

另请参阅:GOVERNANCE · SECURITY · CODE OF CONDUCT · ROADMAP · CHANGELOG。

SetuHQ · सेतु · 桥梁 — 由 Ashforde OÜ 构建。Sentinels 默认运行于 Claude(Anthropic)上;也支持并标明其他提供商。Probes 是确定性的匹配滤波检测器。

评论

支持 Markdown

第一次接触 MCP?

从协议是什么,到在客户端里装上第一个服务,这几条回答覆盖了大多数入门问题。

一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。