AI-bid CN
公开方法论

排名是怎么算出来的

本页完整公开榜单的信号来源、收录标准、算分公式与同分规则——全部可独立复算。排名不可购买:不存在任何影响名次的付费项。

公式版本 1.0.0 · 本页与代码同源 · 更新 2026-09-21

Public methodology

How the ranking works

This page fully documents the signal sources, inclusion criteria, scoring formula, and tie-breaking rules behind the board — all independently reproducible. Rankings cannot be bought: no payment affects any position.

Formula version 1.0.0 · This page mirrors the code · Updated 2026-09-21

本页不是营销文案:这里的每一条都与线上代码一一对应(公式实现在 assets/ranking.js,收录面在 scripts/signal-registry.json,接口在 数据 API)。改任何一处,页面、接口与代码会一起变。

一、三句话版本

  1. 收录谁:由平台维护的公开策展清单决定(当前 36 个条目、6 个分类),不是 GitHub 搜索结果的镜像。
  2. 怎么排:公开信号分 = star 数 + 0.25 × fork 数,降序排列;公式随每个接口响应一起下发。
  3. 钱在哪:不在名次里——榜单免费公开,付费只买数据访问(API 配额);任何付费都不改变任何名次。

二、信号来源

  1. 信号数据取自 GitHub 公开 API(对每个收录仓库调用一次 /repos/{owner}/{repo}),字段为公开可查的 star 数、fork 数、主语言与最近推送时间。
  2. 我们不使用 GitHub 的搜索排序结果作为名次:直接镜像它会变成转卖 GitHub 服务(GitHub API 条款 H 节所禁)。名次来自我们自己的公开公式,star 数只是输入之一。
  3. 不采集任何私有数据:不上榜方后台、不采购数据、不使用无法公开举证的"内部指标"。

三、收录标准

  1. 收录范围为面向开发者的 AI 工具类开源项目(当前分类:智能体框架、编码智能体、LLM 应用平台、模型运行时等 6 类)。
  2. 收录与移除由平台依据公开标准编辑决定:项目真实存在且持续维护、仓库公开可访问、与 AI 工具分类直接相关。每条收录理由在策展清单中注明、公开可查。
  3. 收录与名次均不接受付费、申请或交换;认为应当增删条目的,通过帮助中心提交理由即可,免费。
  4. 收录条目不构成平台对该项目的推荐或背书。

四、算分公式与同分规则

text
score = stars + 0.25 × forks        (公式版本 1.0.0)
  1. 分数降序排列即名次;0.25 的含义是 fork 的信息量约为 star 的四分之一,该权重自榜单上线起固定,调整必须升公式版本号并在本页公告。
  2. 同分规则(依次比较):① 分数高者在前;② 分数相同,最近有推送(pushedAt 较新)者在前;③ 再同,star 数高者在前;④ 仍同,按收录 id 字典序——保证排序全序确定、可复算。
  3. 排序实现只读 score / pushedAt / stars / id 四个字段;即使数据里混入付费字段,也不参与任何比较——这不是承诺,是有自动化守卫钉死的代码事实(同信号、不同付费字段 ⇒ 排序结果完全一致)。

五、更新频率与数据时点

  1. 信号按固定周期采集,页面与接口均注明数据时点(updatedAt)。
  2. 公开接口响应缓存 60 秒;数据分两层:收录清单随站点部署更新(改清单必须走人工复核),指标(stars / forks / 最近推送时间)由每日自动任务刷新。任一层取不到都回落到最近一份有效数据,并如实标注数据时点,不编造、不猜测。
  3. 榜单为空时显示空态——空数组是有效响应,绝不会用示例条目顶替真实榜单。

六、完整性与反操纵

  1. 名次不可购买:不存在付费收录、付费提升名次、保名次或名次交易产品;任何声称能影响名次的渠道均与本平台无关。
  2. 异常信号(短时间暴涨、刷星、互刷)会被人工复核并剔除;被剔除的信号不计入名次。
  3. 公式与权重变更受版本号管理(当前 1.0.0),历史版本可追溯;接口响应中的 signal.version 即数据所用的公式版本。

七、如何独立验证

  1. 取任意条目的 repo 字段,访问 https://api.github.com/repos/{owner}/{repo} 查公开 star / fork 数。
  2. 代入本页公式计算 score = stars + 0.25 × forks,与 数据 API 返回的 score 对照。
  3. 按同分规则排序,即可复现完整名次——与页面一致。
  4. 发现任何不一致,请通过帮助中心提交工单,我们核查后 24 小时内答复。

This page is not marketing copy: every statement here maps one-to-one to the live code (formula in assets/ranking.js, inclusion in scripts/signal-registry.json, API in Data API). Change any of them and page, API, and code change together.

1. The three-sentence version

  1. Who is listed: a publicly maintained curation list decides (currently 36 entries across 6 categories) — not a mirror of GitHub search results.
  2. How ranked: public signal score = star count + 0.25 × fork count, descending; the formula ships with every API response.
  3. Where money is: nowhere — the board is free and public, payment buys data access (API quota) only; no payment changes any rank.

2. Signal sources

  1. Signals come from the GitHub public API (one call to /repos/{owner}/{repo} per listed repo): publicly verifiable star count, fork count, primary language, and last-push time.
  2. We do not use GitHub's search ranking as our rank: mirroring it would amount to reselling GitHub's service (prohibited by GitHub's API Terms, section H). Our rank comes from our own public formula; star count is just one input.
  3. No private data is collected: no advertiser backends, no purchased datasets, no "internal metrics" that cannot be publicly evidenced.

3. Inclusion criteria

  1. The scope is developer-facing open-source AI tools (currently 6 categories: agent frameworks, coding agents, LLM platforms, model runtimes, etc.).
  2. Inclusion and removal are editorial decisions under published criteria: the project genuinely exists and is actively maintained, the repository is public, and it directly fits an AI-tool category. The reason for each inclusion is recorded in the curation list and publicly checkable.
  3. Neither inclusion nor rank can be paid for, applied for, or traded; to propose adding or removing an entry, open a ticket via the Help Center — it's free.
  4. Inclusion is not an endorsement or recommendation by the Platform.

4. Formula & tie-breaking

text
score = stars + 0.25 × forks        (formula version 1.0.0)
  1. Ranks follow the score in descending order. The 0.25 weight treats a fork as roughly a quarter of a star's information; it has been fixed since launch, and any change must bump the formula version and be announced on this page.
  2. Tie-breaking (in order): ① higher score first; ② equal score — more recent push (newer pushedAt) first; ③ still equal — higher star count first; ④ otherwise by curated id lexicographically — guaranteeing a total, reproducible order.
  3. The sort reads exactly four fields: score / pushedAt / stars / id. Even if payment fields were injected into the data, they would not participate in any comparison — a code fact pinned by automated guards (same signals, different payment fields ⇒ identical ordering), not a promise.

5. Freshness & data timestamp

  1. Signals are collected on a fixed schedule; both the page and the API carry the data timestamp (updatedAt).
  2. The public endpoint caches for 60 seconds; the data has two layers: the inclusion list ships with a site deployment (changing it always goes through review), while metrics (stars / forks / last push time) are refreshed by a daily automatic task. If either layer is unavailable, the last valid data is used and the data timestamp is stated honestly — nothing is fabricated or guessed.
  3. An empty board renders an empty state — an empty array is a valid response; sample entries never substitute for the real board.

6. Integrity & anti-manipulation

  1. Rankings cannot be bought: there is no paid inclusion, paid rank boost, rank guarantee, or rank-trading product; any channel claiming to influence rank is unaffiliated with us.
  2. Abnormal signals (sudden spikes, star farming, reciprocal starring) are manually reviewed and excluded; excluded signals do not count toward rank.
  3. Formula and weight changes are version-managed (currently 1.0.0) and traceable; signal.version in each API response identifies the formula version used for that data.

7. How to verify independently

  1. Take any entry's repo field and query https://api.github.com/repos/{owner}/{repo} for its public star and fork counts.
  2. Compute score = stars + 0.25 × forks with the formula above and compare it to the score returned by the Data API.
  3. Sort using the tie-breaking rules to reproduce the full ranking — it will match the page.
  4. If anything does not match, open a ticket via the Help Center; we will investigate and respond within 24 hours.