Compare commits
1 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| 0dcd178394 |
@@ -98,18 +98,11 @@ AUTH_CONFIG_FILE=/private/tmp/tabularium-auth/config.json AUTH_COOKIE_SECURE=fal
|
||||
同一版本内容变化会拒绝导入,避免静默读取旧数据。回退代码时继续读取对应旧版本。
|
||||
所有修改都经过工作分支和 PR,部署仍等待人工合并主线。
|
||||
|
||||
当前资料包含 1,021 条公司/产品记录、10 类业务及待分类组、1,209 条证据记录和 189 条经营与技术观测。
|
||||
其中保留 93 家个案资料、912 条目录基础资料,并新增 16 个平台产品/业务样本;目录项不等于完成财务和技术核验。
|
||||
Product Hunt两年档案各首批19张、合计38张发布/推广卡片以`candidateBatches`保存;公司成立年待核者不自动新增公司。其中18条仍待核成立年;排除依据区分正式成立字段与2025前已运营证据,精确注册日期未核者明确标注。候选元数据与其他研究记录同库持久化,覆盖报告逐条展示状态、缺项和公司关联。Kilo Code与KiloClaw两项映射一个已被收购的2025公司个案,采用规模、token吞吐及同名健康公司的收入不作为其ARR。
|
||||
机器之心首批4条公司线索以独立候选批次记录:直达正文未读,经公司公开主页、官方代码或发起方公告补核PrismShadow与Stargate;SSI用2024官方历史更新排除,Utopai仍待核。不是两年中文来源全量。
|
||||
TechCrunch栏目首批3条公司候选已追溯原始材料;Wabi据两个公开名录2025年份入表,精确注册日未核。官方条款称当前免费,收入仍未知,不填零。DreamHQ及Thrive Holdings成立年仍待核,后者2025公开发布公告另存。DreamHQ与名录同名摄像头公司区分,ADT拟收购尚待交割,融资、估值和目标公司业绩不当新AI公司的ARR。分类接口与RSS访问403及两年档案缺项保留。
|
||||
Eloquent补按结果/用量混合收费与工作流自述;Peec补品牌套餐、招聘中的ARR里程碑和团队下界。招聘发布日期不当业务截止日,报价与客户降本不当供应商收入。Gojiberry报价保留原文$,未见币种代码不强转美元。平台MRR样本与统计不变。
|
||||
Bessemer、Menlo、Stripe年度信与SaaS Capital的已核方法和访问限制另存为背景基准适用性表;不将高增长选样、采购支出、平台商户或增长率摘要当新AI公司ARR分布。SaaS Capital完整报告及各来源底表未取得者继续留缺。
|
||||
当前资料包含 1,015 条公司/产品记录、10 类业务及待分类组、1,091 条证据记录和 183 条经营与技术观测。
|
||||
其中保留 86 家个案资料、913 条目录基础资料,并新增 16 个平台产品/业务样本;目录项不等于完成财务和技术核验。
|
||||
补充ThinkWheel与中国NaiveAI;MiroMind成立年未核,公开研发年份单列。保留灵初智能成立年排除、深度原理日期待核和Naive近名实体复核记录。
|
||||
新增7条Speedrun个案,保留标题/正文冲突、七位数数量级、币种不明、合同管线与履历归属排除记录;相对日期不充当同期收入时点。核查页优先按人工确认的公司ID关联明细,旧版本保留按证据归属回退;74条核查中54条指向具体公司、8条属于全局方法、12条是未纳入候选。明细反向列出关联核查;币种不明的声明保留原值,不绘制美元收入长度条。
|
||||
Lightfield按Magical Tome主体与2025前历史业务列为CRM转型对照,成立年未知,不计新成立公司;Fundraisly成立年待核,其客户融资和创始人历史ARR不转移为公司收入。
|
||||
新增7条Speedrun个案,保留标题/正文冲突、七位数数量级、币种不明、合同管线与履历归属排除记录;相对日期不充当同期收入时点。核查页优先按人工确认的公司ID关联明细,旧版本保留按证据归属回退;54条核查中43条指向具体公司、3条属于全局方法、8条是未纳入候选。明细反向列出关联核查;币种不明的声明保留原值,不绘制美元收入长度条。
|
||||
Bud保留为2025成立且YC标记已收购的案例;Rocket.new按前身2021成立、2025产品上线的转型对照记录,历史ARR不混入新成立公司同期统计。
|
||||
原候选36088 EveryApp从AI不明经补证入表,`directoryRechecks`保存后续复核,原1,428条台账及928条原始新增计数不改。OpenSEO与EveryApp不重复计公司;定价、星标、客户数和数据成本加价均不转为ARR。
|
||||
验收按2026-10-30确认的公开来源清单边界逐条核对并标明缺项;YC候选池有完整读取台账,其他来源目前为定向补充,不能把来源出现次数当作覆盖完成。收入披露不足且统计时点不统一,不代表全部 AI 公司。
|
||||
界面将公司自述、第三方估算、融资、客户收入和履历收入分开,未知收入不记为零。
|
||||
保留被撤回的声明作为核查记录,并排除收入比较;并购后业务、管理层预测与历史里程碑单列。
|
||||
@@ -138,7 +131,6 @@ MRR×12仅作为显示单位转换,不改写为公司ARR;公司ARR、估算
|
||||
逐条读取对应 YC 官方公开页面,以页面中的成立年份、团队字段和业务描述筛选。
|
||||
962 条初筛匹配,其中 34 条与原表 URL 重合,实际新增 928 条;268 条年份不符或缺失、
|
||||
192 条 AI 业务待确认、6 条成立年份晚于批次年份未纳入本批新增。
|
||||
`content/research/ai-companies.sources.json` 保留最初12项来源与后续补充渠道、用途、覆盖边界及下一步;覆盖报告逐渠道复算证据、公司及观测数量。背景报告、入口可读和候选池逐条读取分别标记,零计数不表示没有公司。
|
||||
`content/research/ai-companies.coverage.json` 保留逐条筛选结果、来源与响应摘要,
|
||||
数据快照中的 `coverage` 也随版本进入同一 SQLite 数据库。只覆盖该候选池,不能称全球全量。
|
||||
|
||||
@@ -151,7 +143,7 @@ MRR×12仅作为显示单位转换,不改写为公司ARR;公司ARR、估算
|
||||
仍有3条因简介不足保留待分类。人工复核分类不代表独立验证技术水平、客户效果或财务数据。
|
||||
AI 关键词可能出现在业务背景中,收入、买家和交付状态仍须逐家深查,不能把目录项的未知收入当作未披露。
|
||||
技术专项评审用独立字段记录层级、日期、摘要与证据:未评审、已读技术自述、公开代码/模型材料可访问、有第三方独立评测记录。
|
||||
当前14条完成该字段的专项记录,其中6条确认材料可访问、1条记录第三方已发表评测(Gradium TTS Sep 2026);本轮未自行运行模型测试。缺字段不表示无技术能力,代码或模型卡可读不证明性能。
|
||||
当前7条完成该字段的专项记录,其中3条确认材料可访问、1条记录第三方已发表评测(Gradium TTS Sep 2026);本轮未自行运行模型测试。缺字段不表示无技术能力,代码或模型卡可读不证明性能。
|
||||
界面支持按资料深度、记录团队规模和技术验证证据筛选;证据列表每页 30 条,避免一次渲染全部来源。
|
||||
|
||||
`pnpm test:research` 在远程 Runner 上验证同库持久化、重复读取、版本导入与回退、
|
||||
|
||||
@@ -185,10 +185,10 @@ async function main() {
|
||||
assert.equal(researchResponse.status, 200, "authenticated research API");
|
||||
assert.ok(researchResponse.headers.get("cache-control")?.includes("no-store"));
|
||||
const research = await researchResponse.json();
|
||||
assert.equal(research.companies.length, 1021);
|
||||
assert.equal(research.companies.length, 1015);
|
||||
assert.equal(research.categories.length, 11);
|
||||
assert.equal(research.evidence.length, 1209);
|
||||
assert.equal(research.observations.length, 189);
|
||||
assert.equal(research.evidence.length, 1091);
|
||||
assert.equal(research.observations.length, 183);
|
||||
assert.equal((await request("/api/research/ai-companies", { method: "POST", headers })).status, 405);
|
||||
const researchPage = await request("/docs/other-research/ai-company-research/overview", { headers });
|
||||
assert.equal(researchPage.status, 200);
|
||||
|
||||
@@ -43,24 +43,11 @@ export type ResearchCoverage = {
|
||||
otherOrMissingYear: number; unclearAI: number; dateConflicts: number; failedProfiles: number;
|
||||
discoverySha256: string;
|
||||
};
|
||||
export type ResearchCandidateBatch = {
|
||||
id: string; sourceId: string; url: string; accessedAt: string; scope: string; complete: boolean;
|
||||
records: {
|
||||
id: string; name: string; url: string | null; categoryId: string;
|
||||
kind: "product" | "company" | "promotion"; profileStatus: "readable" | "unavailable" | "archive-only";
|
||||
status: "pending-year" | "linked" | "existing-outside-cohort" | "outside-cohort" | "promotion";
|
||||
companyId?: string; evidenceIds?: string[]; note: string;
|
||||
}[];
|
||||
};
|
||||
export type ResearchSnapshot = {
|
||||
version: string; asOf: string; scope: string; limitations: string[];
|
||||
categories: ResearchCategory[]; companies: ResearchCompany[];
|
||||
observations: ResearchObservation[]; evidence: ResearchEvidence[];
|
||||
reviews: ResearchReview[]; coverage?: ResearchCoverage; candidateBatches?: ResearchCandidateBatch[];
|
||||
directoryRechecks?: {
|
||||
ycId: number; originalStatus: "ai-unclear" | "year-outside-or-missing" | "date-conflict";
|
||||
companyId: string; reviewedAt: string; evidenceIds: string[]; reason: string;
|
||||
}[];
|
||||
reviews: ResearchReview[]; coverage?: ResearchCoverage;
|
||||
};
|
||||
|
||||
export function evidenceUrl(value: string): string | undefined {
|
||||
@@ -111,40 +98,7 @@ export function validateResearch(snapshot: ResearchSnapshot) {
|
||||
!Number.isFinite(o.value))
|
||||
throw new Error(`Invalid research observation: ${o.id}`);
|
||||
}
|
||||
unique((snapshot.candidateBatches ?? []).map((b) => b.id), "candidate batches");
|
||||
unique((snapshot.candidateBatches ?? []).flatMap((b) => b.records.map((r) => r.id)), "candidates");
|
||||
for (const batch of snapshot.candidateBatches ?? []) {
|
||||
if (!/^S\d{2}$/.test(batch.sourceId) || !evidenceUrl(batch.url) || !batch.scope.trim() ||
|
||||
typeof batch.complete !== "boolean" || !/^\d{4}-\d{2}-\d{2}$/.test(batch.accessedAt) ||
|
||||
Number.isNaN(Date.parse(batch.accessedAt)) ||
|
||||
new Date(batch.accessedAt).toISOString().slice(0, 10) !== batch.accessedAt ||
|
||||
batch.accessedAt > snapshot.asOf)
|
||||
throw new Error(`Invalid research candidate batch: ${batch.id}`);
|
||||
for (const row of batch.records) {
|
||||
const linked = ["linked", "existing-outside-cohort"].includes(row.status);
|
||||
if (!row.name.trim() || !row.note.trim() || !categories.has(row.categoryId) ||
|
||||
!["product", "company", "promotion"].includes(row.kind) ||
|
||||
!["readable", "unavailable", "archive-only"].includes(row.profileStatus) ||
|
||||
!["pending-year", "linked", "existing-outside-cohort", "outside-cohort", "promotion"].includes(row.status) ||
|
||||
(row.kind !== "promotion" && (!row.url || !evidenceUrl(row.url))) ||
|
||||
(row.url !== null && !evidenceUrl(row.url)) ||
|
||||
linked !== !!row.companyId || (row.companyId && !companies.has(row.companyId)) ||
|
||||
(row.kind === "promotion") !== (row.status === "promotion") ||
|
||||
(row.evidenceIds ?? []).some((id) => !evidence.has(id)) ||
|
||||
(row.status === "outside-cohort" && !row.evidenceIds?.length))
|
||||
throw new Error(`Invalid research candidate: ${row.id}`);
|
||||
}
|
||||
}
|
||||
const coverage = snapshot.coverage;
|
||||
unique((snapshot.directoryRechecks ?? []).map((row) => String(row.ycId)), "directory rechecks");
|
||||
for (const row of snapshot.directoryRechecks ?? []) {
|
||||
if (!Number.isSafeInteger(row.ycId) || row.ycId <= 0 || !companies.has(row.companyId) ||
|
||||
!["ai-unclear", "year-outside-or-missing", "date-conflict"].includes(row.originalStatus) ||
|
||||
!/^\d{4}-\d{2}-\d{2}$/.test(row.reviewedAt) || Number.isNaN(Date.parse(row.reviewedAt)) ||
|
||||
new Date(row.reviewedAt).toISOString().slice(0, 10) !== row.reviewedAt || row.reviewedAt > snapshot.asOf ||
|
||||
!row.reason.trim() || !row.evidenceIds.length || row.evidenceIds.some((id) => !evidence.has(id)))
|
||||
throw new Error(`Invalid directory recheck: ${row.ycId}`);
|
||||
}
|
||||
if (coverage && (coverage.profilesRead + coverage.failedProfiles !== coverage.candidateRecords ||
|
||||
coverage.matchingProfiles !== coverage.existingProfiles + coverage.newProfiles ||
|
||||
coverage.matchingProfiles + coverage.otherOrMissingYear + coverage.unclearAI + coverage.dateConflicts !== coverage.profilesRead ||
|
||||
|
||||
@@ -23,11 +23,9 @@ test("research revisions share the authentication database and preserve replay l
|
||||
for (let i = 0; i < 20; i++) consumeCode(config, "invalid");
|
||||
assert.equal(consumeCode(config, "invalid"), "limited");
|
||||
const initial = readResearchSnapshot();
|
||||
assert.equal(initial.companies.length, 1021);
|
||||
assert.equal(initial.evidence.length, 1209);
|
||||
assert.equal(initial.observations.length, 189);
|
||||
assert.deepEqual(initial.candidateBatches, seed.candidateBatches, "candidate gaps persist in the same database metadata");
|
||||
assert.deepEqual(initial.directoryRechecks, seed.directoryRechecks, "follow-up classifications persist without rewriting the discovery audit");
|
||||
assert.equal(initial.companies.length, 1015);
|
||||
assert.equal(initial.evidence.length, 1091);
|
||||
assert.equal(initial.observations.length, 183);
|
||||
assert.deepEqual(readResearchSnapshot(), initial, "reopening does not duplicate records");
|
||||
const db = openSiteDatabase();
|
||||
const tables = db.prepare("SELECT name FROM sqlite_master WHERE type='table'").all() as { name: string }[];
|
||||
@@ -64,9 +62,9 @@ test("research validation rejects broken evidence and unsafe source links", () =
|
||||
|
||||
test("reviews link explicit companies without turning global or excluded cases into companies", () => {
|
||||
const snapshot = structuredClone(seed) as ResearchSnapshot;
|
||||
assert.equal(snapshot.reviews.filter((r) => r.scope === "companies").length, 54);
|
||||
assert.equal(snapshot.reviews.filter((r) => r.scope === "dataset").length, 8);
|
||||
assert.equal(snapshot.reviews.filter((r) => r.scope === "excluded-candidate").length, 12);
|
||||
assert.equal(snapshot.reviews.filter((r) => r.scope === "companies").length, 43);
|
||||
assert.equal(snapshot.reviews.filter((r) => r.scope === "dataset").length, 3);
|
||||
assert.equal(snapshot.reviews.filter((r) => r.scope === "excluded-candidate").length, 8);
|
||||
const review = snapshot.reviews.find((r) => r.id === "R4")!;
|
||||
assert.deepEqual(reviewCompanyIds(snapshot, review), ["AI007", "AI013", "AI021", "AI034"]);
|
||||
assert.deepEqual(reviewCompanyIds(snapshot, snapshot.reviews.find((r) => r.id === "CN-R-PSI")!), []);
|
||||
@@ -85,11 +83,11 @@ test("reviews link explicit companies without turning global or excluded cases i
|
||||
test("disclosure counts exclude client income, biographies, targets and duplicate milestones", () => {
|
||||
const snapshot = seed as ResearchSnapshot;
|
||||
const summary = categorySummary(snapshot);
|
||||
assert.equal(summary.reduce((n, c) => n + c.count, 0), 1021);
|
||||
assert.equal(summary.reduce((n, c) => n + c.count, 0), 1015);
|
||||
assert.equal(summary.reduce((n, c) => n + c.self, 0), 26);
|
||||
assert.equal(summary.reduce((n, c) => n + c.estimate, 0), 1);
|
||||
assert.equal(summary.reduce((n, c) => n + c.platform, 0), 16);
|
||||
assert.equal(summary.reduce((n, c) => n + c.unknown, 0), 978);
|
||||
assert.equal(summary.reduce((n, c) => n + c.unknown, 0), 972);
|
||||
assert.equal(snapshot.companies.find((c) => c.name === "Rork")?.revenueStatus, "unknown");
|
||||
assert.equal(snapshot.companies.find((c) => c.name === "Result")?.revenueStatus, "unknown");
|
||||
assert.ok(snapshot.observations.filter((o) => o.selection === "signal").every((o) => o.scope === "公司整体"));
|
||||
@@ -97,8 +95,8 @@ test("disclosure counts exclude client income, biographies, targets and duplicat
|
||||
|
||||
test("technical reviews keep accessible materials separate from tested capabilities", () => {
|
||||
const snapshot = structuredClone(seed) as ResearchSnapshot;
|
||||
assert.equal(snapshot.companies.filter((c) => c.technicalReview).length, 14);
|
||||
assert.equal(snapshot.companies.filter((c) => c.technicalReview?.level === "public-artifact").length, 6);
|
||||
assert.equal(snapshot.companies.filter((c) => c.technicalReview).length, 7);
|
||||
assert.equal(snapshot.companies.filter((c) => c.technicalReview?.level === "public-artifact").length, 3);
|
||||
assert.equal(snapshot.companies.filter((c) => c.technicalReview?.level === "independent-test").length, 1);
|
||||
assert.equal(snapshot.companies.find((c) => c.id === "AI051")?.revenueStatus, "unknown");
|
||||
assert.match(snapshot.companies.find((c) => c.id === "AI051")!.technicalReview!.testScope!, /Sep 2026/);
|
||||
@@ -257,88 +255,3 @@ test("distribution statistics match independently calculated snapshot references
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
|
||||
test("product launch candidates preserve unresolved years and many launches per company", () => {
|
||||
const snapshot = structuredClone(seed) as ResearchSnapshot;
|
||||
const batch = snapshot.candidateBatches![0];
|
||||
assert.equal(batch.complete, false);
|
||||
assert.equal(batch.records.length, 19);
|
||||
const kilo = batch.records.filter((r) => r.companyId === "AI072");
|
||||
assert.equal(kilo.length, 2, "IDE and hosted products resolve to one company");
|
||||
assert.equal(snapshot.companies.filter((c) => c.id === "AI072").length, 1);
|
||||
assert.ok(batch.records.some((r) => r.status === "pending-year" && !r.companyId));
|
||||
assert.ok(batch.records.some((r) => r.status === "existing-outside-cohort" && r.companyId === "AI054"));
|
||||
kilo[0].companyId = "missing-company";
|
||||
assert.throws(() => validateResearch(snapshot), /research candidate/);
|
||||
});
|
||||
|
||||
test("annual launch archives exclude older companies only with evidence and reuse existing records", () => {
|
||||
const snapshot = structuredClone(seed) as ResearchSnapshot;
|
||||
const batch = snapshot.candidateBatches!.find((b) => b.id === "PH-2025-visible-1")!;
|
||||
assert.equal(batch.complete, false);
|
||||
assert.equal(batch.records.length, 19);
|
||||
const older = batch.records.filter((r) => r.status === "outside-cohort");
|
||||
assert.equal(older.length, 7);
|
||||
assert.ok(older.every((r) => !r.companyId && r.evidenceIds?.length));
|
||||
assert.equal(batch.records.find((r) => r.name === "Trace")?.companyId, "YC30687");
|
||||
const trace = snapshot.companies.find((c) => c.id === "YC30687")!;
|
||||
assert.equal(trace.profileOnly, false);
|
||||
assert.equal(trace.directoryOrigin, "yc-2025-2026");
|
||||
assert.equal(trace.revenueStatus, "unknown");
|
||||
assert.ok(!snapshot.observations.some((o) => o.evidence === "TRACE-HOME"), "demo metrics must not become reported results");
|
||||
older[0].evidenceIds = [];
|
||||
assert.throws(() => validateResearch(snapshot), /research candidate/);
|
||||
older[0].evidenceIds = ["missing-proof"];
|
||||
assert.throws(() => validateResearch(snapshot), /research candidate/);
|
||||
});
|
||||
|
||||
test("unreconciled directory financials remain source reviews instead of income observations", () => {
|
||||
const snapshot = seed as ResearchSnapshot;
|
||||
const review = snapshot.reviews.find((r) => r.id === "PH-R-SOURCE-QUALITY")!;
|
||||
assert.equal(review.scope, "dataset");
|
||||
assert.ok(review.evidenceIds.includes("PH-TANA-DR"));
|
||||
assert.equal(reviewCompanyIds(snapshot, review).length, 0);
|
||||
assert.ok(!snapshot.observations.some((o) => o.evidence === "PH-TANA-DR"));
|
||||
assert.equal(snapshot.candidateBatches!.flatMap((b) => b.records).filter((r) => r.status === "pending-year").length, 21);
|
||||
});
|
||||
|
||||
test("product pivots and founder histories do not become new company years or current revenue", () => {
|
||||
const snapshot = seed as ResearchSnapshot;
|
||||
const pivot = snapshot.companies.find((c) => c.id === "AI073")!;
|
||||
assert.equal(pivot.year, null, "CRM launch is not a verified company founding year");
|
||||
assert.equal(pivot.revenueStatus, "unknown");
|
||||
const candidate = snapshot.candidateBatches!.flatMap((b) => b.records).find((r) => r.id === "PH26-11")!;
|
||||
assert.equal(candidate.status, "existing-outside-cohort");
|
||||
assert.equal(candidate.companyId, pivot.id);
|
||||
assert.ok(!platformIncomeSample(snapshot, { windowDays: null }).points.some((point) => point.company.id === pivot.id));
|
||||
assert.ok(!snapshot.observations.some((o) => ["PH-FUNDRAISLY-ABOUT", "LF-PIVOT", "LF-HISTORY"].includes(o.evidence)), "other ventures' ARR, users and funding must not transfer");
|
||||
});
|
||||
|
||||
test("follow-up evidence can admit an uncertain directory candidate without rewriting its original status", () => {
|
||||
const snapshot = structuredClone(seed) as ResearchSnapshot;
|
||||
const followup = snapshot.directoryRechecks!.find((row) => row.ycId === 36088)!;
|
||||
const original = coverageAudit.records.find((row) => row.ycId === followup.ycId)!;
|
||||
assert.equal(original.status, "ai-unclear");
|
||||
assert.equal(followup.originalStatus, original.status);
|
||||
assert.equal(snapshot.companies.find((c) => c.id === followup.companyId)?.year, 2026);
|
||||
assert.equal(snapshot.candidateBatches!.flatMap((b) => b.records).find((r) => r.name === "OpenSEO")?.companyId, followup.companyId);
|
||||
assert.ok(!snapshot.observations.some((o) => ["SEO-PRICE", "UP-YC", "PAZI-PRICE"].includes(o.evidence)), "pricing, other ventures' ARR and prepaid balances stay outside income observations");
|
||||
followup.companyId = "missing-company";
|
||||
assert.throws(() => validateResearch(snapshot), /directory recheck/);
|
||||
});
|
||||
|
||||
test("Chinese discovery entries preserve unread articles and use separate primary evidence", () => {
|
||||
const snapshot = structuredClone(seed) as ResearchSnapshot;
|
||||
const batch = snapshot.candidateBatches!.find((b) => b.id === "JQ-2026-targeted-1")!;
|
||||
assert.equal(batch.complete, false);
|
||||
assert.equal(batch.records.length, 4);
|
||||
assert.ok(batch.records.every((row) => row.kind === "company" && row.profileStatus === "unavailable"));
|
||||
assert.equal(batch.records.filter((row) => row.status === "linked").length, 2);
|
||||
assert.equal(batch.records.find((row) => row.name === "Utopai")?.status, "pending-year");
|
||||
assert.ok(!snapshot.observations.some((o) => ["PS-CODE", "SG-START", "SG-APR", "SSI-HISTORY"].includes(o.evidence)), "task costs, investment, capacity and financing are not revenue");
|
||||
const prism = snapshot.companies.find((c) => c.id === "AI075")!;
|
||||
assert.equal(prism.team, null, "a team range or linked employees must not become exact headcount");
|
||||
batch.records[0].url = null;
|
||||
assert.throws(() => validateResearch(snapshot), /research candidate/);
|
||||
});
|
||||
|
||||
@@ -64,6 +64,13 @@
|
||||
"slug": "endor/endor-purpose-draft",
|
||||
"category": "Endor"
|
||||
},
|
||||
"08-coding-agent-traffic-platform-draft": {
|
||||
"group": "奇思妙想",
|
||||
"description": "从 AI 供给、注意力与获客成本,探索伪装成 coding agent 的需求与能力分发平台。",
|
||||
"draft": true,
|
||||
"slug": "endor/coding-agent-traffic-platform-draft",
|
||||
"category": "Endor"
|
||||
},
|
||||
"05-object-graphs-gc": {
|
||||
"collection": "对象关系与垃圾回收",
|
||||
"group": "运行时基础",
|
||||
|
||||
@@ -0,0 +1,150 @@
|
||||
# 一个伪装成 coding agent 的流量平台
|
||||
|
||||
> **奇思妙想 · 探索草案,2026-10-30**:记录一次关于 AI、注意力和 Endor 定位的推演。这不是已确认的产品战略、商业模式或架构规范,也不表示下面描述的发现、推荐、交易与结算能力已经实现。本提案保留在 `codex/wild-ideas` 分支,暂不合并主线。
|
||||
|
||||
## 核心命题
|
||||
|
||||
**我们是一个伪装成 coding agent 的流量平台。**
|
||||
|
||||
这句话试图描述 Endor 的一种潜在发展方向:用户因为需要 AI 帮忙写代码、修改程序、完成工作而进入;Endor 在推进任务的过程中,连接用户的真实需求与能够满足需求的对象、程序、服务和开发者。写代码是切入口,需求与能力之间的分发可能成为平台价值的重要来源。
|
||||
|
||||
这里的“伪装”是一种内部讨论的修辞:表面产品形态是 coding agent,底层战略假设是流量与需求分发平台。它不意味着向用户隐瞒推荐依据、商业关系或数据用途。Agent 必须真的把工作做好;商业分发不能成为牺牲用户任务结果的理由。
|
||||
|
||||
这里的“流量”也不只指页面浏览量。我们关心的是一项真实需求最终被交给哪个能力、哪项服务或哪个开发者,以及它有没有被完成。一次没有外部点击、但经用户授权调用了合适能力的任务,也可能构成需求分发。
|
||||
|
||||
## 起点:当生产越来越便宜,什么会变得稀缺
|
||||
|
||||
最初的直觉是:AI 越来越强,互联网的内容、软件和服务产出就会越来越多;人的时间不能同步增长,于是每个产出平均分到的注意力减少,流量越来越贵。
|
||||
|
||||
这条链条有方向上的解释力,但不能把最后一步直接当成定律。需要分开三个问题:
|
||||
|
||||
1. **生产成本**:AI 是否降低了完成某类产出的成本?
|
||||
2. **注意力竞争**:争夺同一人群和同一种需求的有效供给,是否增长得比消费更快?
|
||||
3. **获客成本**:获得一个真正成交、留存的客户,需要花多少成本?
|
||||
|
||||
大量从未被展示的机器文章增加了互联网总产量,却不一定增加某个产品面对的实际竞争。企业也可能用 AI 提高质量或减少投入,而不是无限扩张产量。因而,应观察真正进入候选范围的替代品,而不只统计生成内容总量。
|
||||
|
||||
即使注意力竞争加剧,广告单价也未必上涨。更多内容可能增加广告库存;AI 可能提高匹配与转化效率;经济环境和广告主预算也会改变竞价需求。普通曝光可能更便宜,而高购买意图、可信且能带来结果的触达更贵。
|
||||
|
||||
更适合支撑本提案的假设是:**当更多人能够生产可用的东西,让合适的人发现、信任并选择它,可能成为更大的瓶颈。**
|
||||
|
||||
## 已有证据与推演边界
|
||||
|
||||
以下资料是提出假设的依据,不是 Endor 已经拥有商业价值或市场地位的证明。
|
||||
|
||||
| 观察 | 原始来源 | 能说明什么与不能说明什么 |
|
||||
| --- | --- | --- |
|
||||
| 2023 年针对 453 名专业人士的随机写作实验中,使用 ChatGPT 的参与者平均用时减少 40%,产出质量评分提高 18% | [Noy 与 Zhang,Science](https://doi.org/10.1126/science.adh2586) | 支持部分写作任务的生产成本下降,不能外推所有行业的产量和质量 |
|
||||
| Meta 2022 年广告展示量增长 18%,平均广告价格下降 16% | [Meta 2022 年报](https://www.sec.gov/Archives/edgar/data/1326801/000132680123000013/meta-20221231.htm) | 证明量增不必然价增;这是历史反例,不是生成式 AI 的效果实验 |
|
||||
| Meta 2025 年广告展示量增长 12%,平均广告价格上涨 9% | [Meta 2025 年报](https://www.sec.gov/Archives/edgar/data/1326801/000162828026003942/meta-20251231.htm) | 说明该平台当年的综合单价上涨,不能单独识别 AI 的因果贡献,也不代表每个广告主 |
|
||||
| Pew 对 900 名美国成年人 2025 年 3 月浏览记录的分析中,有 AI 摘要的搜索访问点击传统结果的比例为 8%,没有摘要时为 15%;点击摘要内链接的比例约为 1% | [Pew 原始研究](https://www.pewresearch.org/short-reads/2025/07/22/google-users-are-less-likely-to-click-on-links-when-an-ai-summary-appears-in-the-results/) | 提示需求可能在入口处被满足;查询类型不同,这不是随机因果实验,也不能直接套用中国市场 |
|
||||
|
||||
对经营者而言,一个简化关系是:广告获客成本 = 每次点击价格 ÷ 点击后的新客转化率。完整获客成本还包括内容、销售、人员与工具等投入。单价上涨而转化改善时,获客成本可以下降;单价下降而转化恶化时,获客成本可以上涨。
|
||||
|
||||
因此,我们暂不押注“整个互联网的流量价格持续上涨”。我们要研究的是:**用户越来越依赖谁来表达需求、筛选候选、执行任务和判断结果。** 如果这些环节集中在少数入口,入口可能拥有更强的分发与议价能力;如果 AI 让用户更容易比较和切换,入口溢价也可能被削弱。
|
||||
|
||||
## 为什么从 coding agent 进入
|
||||
|
||||
传统内容入口通常先争夺注意力,再等待用户表达需求。Coding agent 有机会直接从任务开始:用户说要做什么,Agent 读取获准访问的工作上下文,选择能力,执行并获得结果反馈。
|
||||
|
||||
在这个假设下,它可能同时接触到四类信号:
|
||||
|
||||
- **需求**:用户究竟想完成什么,而不仅是搜索过什么关键词。
|
||||
- **上下文**:现有项目、对象、约束和已经作出的选择;以用户授权的访问范围为限。
|
||||
- **执行**:某个候选能力能否被接入,适不适合当前环境,失败时如何继续。
|
||||
- **结果**:用户是否接受、是否继续使用,以及任务有没有达到目标。
|
||||
|
||||
这些信号可能比一次泛曝光更接近真实需求,但是否更准确、更有价值,需要用实际任务验证。用户也完全可能只需要一个本地代码工具,并不愿意让它承担服务发现或购买入口。
|
||||
|
||||
Coding agent 的切入口不等于永远只服务程序员。如果 Endor 的对象与能力能够支持更多工作流,入口可以逐步从“帮我写一个程序”扩展为“帮我把这件事完成”。这种扩展是候选方向,不是已完成的用户覆盖。
|
||||
|
||||
## 与 Endor 对象世界的连接
|
||||
|
||||
[Endor 的意义](/docs/endor/endor-purpose-draft)提出以对象池组织工作对象、由 Agent 推进任务,并把操作权交还给用户与 AI。本提案从需求分发角度重新观察同一条路径,暂不替换原有定位。
|
||||
|
||||
假设用户说:“帮我做一个报名系统。”Coding agent 可以从头生成代码,也可以发现已有的报名、身份、通知或导出能力,在检查适配性和授权后复用。关键不只是找到一个链接,而是让能力能够在当前工作里实际使用。
|
||||
|
||||
| Endor 的既有讨论方向 | 在本提案中的潜在作用 | 尚需验证的部分 |
|
||||
| --- | --- | --- |
|
||||
| 对象、类型与可执行行为 | 让能力具备可识别的输入、输出和使用边界 | 类型可表达不等于自动理解全部业务,也不保证可安全组合 |
|
||||
| 对象池与来源关系 | 让产出、依赖和后续工作能够继续关联 | 身份、版本、迁移和失败状态的实际成本 |
|
||||
| Agent 承载任务 | 在需求出现时选择与组织能力 | 能否比从头生成或手工搜索更好地完成任务 |
|
||||
| Tessera 等呈现入口 | 让用户查看候选、检查效果并继续操作 | 用户能否理解选择依据、商业关系与操作影响 |
|
||||
| 挂载与运行位置 | 探索使用本地、自部署或平台侧的能力 | 可达性、兼容、权限和运行成本,不能假定跨端调用总能成功 |
|
||||
|
||||
这一连接的核心设想是:**别人做出的能力,能够成为 Agent 完成下一项真实任务时的候选;用户自己的产出,也可能在愿意共享时成为他人可用的能力。**
|
||||
|
||||
## 一个候选闭环:从生产工具到需求分发
|
||||
|
||||
1. 用户带着具体任务进入,Agent 先帮助完成工作,形成独立的工具价值。
|
||||
2. 在重复需求出现时,识别哪些已有能力值得复用,而不是每次重新生成。
|
||||
3. 能力提供者以某种待设计的方式描述用途、输入输出、版本、成本与使用条件。
|
||||
4. Agent 根据任务适配性提出候选,用户按任务需要检查、选择和授权。
|
||||
5. 执行产生结果,平台在允许的范围内记录成功、失败和用户反馈,改善后续匹配。
|
||||
6. 供应者因为获得合适需求而继续提供能力,用户因为更容易完成任务而回来。
|
||||
|
||||
这个闭环能否形成网络效应,取决于新增供给是否改善匹配,以及新增需求是否吸引有价值的供给。如果新增的只是大量重复、低质量能力,反而可能增加筛选成本。
|
||||
|
||||
我们因此不能把“有很多用户和很多程序”直接等同于平台已经成立。必须证明任务分发创造了新增价值。
|
||||
|
||||
## 流量平台究竟分发什么
|
||||
|
||||
这里至少存在三种候选对象,不能混为一谈:
|
||||
|
||||
| 分发对象 | 例子 | 可以观察的有效结果 |
|
||||
| --- | --- | --- |
|
||||
| 注意力 | 用户查看一个能力的说明或演示 | 是否进入适合的评估,而非只增加曝光 |
|
||||
| 任务与调用机会 | Agent 选择一个库、对象或外部服务 | 是否适配、成功执行并被用户接受 |
|
||||
| 商业需求 | 用户决定购买服务、订阅能力或联系供应者 | 是否形成可归因的新增成交与持续使用 |
|
||||
|
||||
一个开源组件被复用,可能有用户价值而没有收入;一次付费服务调用,也不必然形成可持续的平台利润。曝光、调用、成交与留存需要分别衡量。
|
||||
|
||||
## 可能的商业模式,以及它们与用户利益的关系
|
||||
|
||||
以下只是待比较的选项,尚未确定定价、抽成比例、排序规则或结算机制。
|
||||
|
||||
- **Agent 订阅或执行收费**:用户为工具本身付费。先检验不依赖广告或交易抽成时,Endor 是否值得使用。
|
||||
- **能力市场的交易服务费**:在确实帮助发现、执行或保障交易时收费,需要验证是否带来新增成交,以及双方是否愿意持续使用平台。
|
||||
- **面向供应者的经营工具**:能力托管、版本维护、运行观测与支持等服务,收入来自提供的服务质量。
|
||||
- **明确标识的商业推荐**:可能产生分发收入,但也最容易与任务适配产生冲突。应单独讨论,不能默认把付费排名混入 Agent 的技术判断。
|
||||
|
||||
一个必须正面处理的矛盾是:用户希望 Agent 帮自己找到最合适的方案,供应者可能希望付费换取更多推荐。如果商业利益损害用户判断,入口赖以成立的信任也会受损。
|
||||
|
||||
所以“伪装成 coding agent”不能演变成“用工具承诺获取信任,再偷偷出售决策”。用户应该理解谁提供能力、为何推荐、要付什么成本,以及是否存在商业关系。具体的展示和治理机制仍需设计。
|
||||
|
||||
## 这条路线最可能失败在哪里
|
||||
|
||||
首先,Coding agent 自身可能没有形成持续使用价值。一个不好用的工具不能靠市场叙事变成入口。
|
||||
|
||||
其次,能力复用未必比即时生成划算。对于简单、一次性的程序,AI 直接生成可能比发现、理解、适配和维护依赖更便宜。更值得验证的是有长期维护、真实数据、专业经验或外部执行资源的能力。
|
||||
|
||||
第三,用户可能多入口并用,供应者也可以直接服务用户。除非 Endor 持续提供匹配、执行、可靠性或关系维护价值,否则不应假定可以长期抽取渠道费用。
|
||||
|
||||
第四,能力分发会带来版本、兼容、质量、供应者退出与外部副作用等成本。对象可连接不代表这些问题消失,也不能把它们隐藏在一次看似顺滑的调用后面。
|
||||
|
||||
最后,平台入口本身也面临竞争。上游模型、现有开发工具、开源生态和其他任务入口都可能承担相同角色。我们不能先假定拥有垄断入口,再倒推出商业模式成立。
|
||||
|
||||
## 怎样把奇思妙想变成可以被否定的实验
|
||||
|
||||
先选择一个明确、重复出现的任务场景,例如前面的报名系统。保持材料、任务目标和辅助条件相近,比较三条正常可用的路径:用户手工寻找和组合、Agent 从头生成、Agent 发现并复用已有能力。不要刻意削弱对照方案。
|
||||
|
||||
| 假设 | 需要收集的证据 | 什么结果会削弱假设 |
|
||||
| --- | --- | --- |
|
||||
| 用户愿意把需求交给入口 | 完成真实任务后的再次使用与主动委托 | 只试用一次,后续仍回到原工具 |
|
||||
| 能力复用优于重新生成 | 完成时间、总成本、成功率与维护负担 | 适配和依赖处理抵消全部节省 |
|
||||
| 匹配带来有效需求 | 候选接受、成功调用、持续使用与新增成交 | 只有曝光或点击,没有任务结果 |
|
||||
| 供给增长改善体验 | 新能力加入前后的任务覆盖和筛选成本 | 重复供给增加,选择更困难 |
|
||||
| 分发不损害信任 | 用户对推荐原因和商业关系的理解、拒绝与切换行为 | 为变现偏离需求,用户难以判断或退出 |
|
||||
| 商业模式能保留收益 | 收入扣除推理、运行、支持与获客后的贡献 | 调用量增长,但服务成本与获客投入更快增长 |
|
||||
|
||||
数值门槛应在具体实验开始前根据场景确定,不能看完结果后再改成功定义。任务完成、用户接受和商业转化也不能互相替代。
|
||||
|
||||
## 暂时保留的定位
|
||||
|
||||
对内部讨论,可以保留这句有冲击力的表达:**我们是一个伪装成 coding agent 的流量平台。**
|
||||
|
||||
展开来说:Endor 先通过 Agent 帮用户完成工作,再探索把真实需求与可执行能力连接起来,使生产、发现、选择、使用和持续维护形成连续过程。生产力工具是起点,需求分发平台是需要证明的可能性。
|
||||
|
||||
这条方向不依赖“所有流量一定涨价”,而依赖三个更具体的假设:用户愿意在这里交付真实任务;平台能比其他方式更好地匹配和执行能力;用户、供应者和平台都能保留足够价值。
|
||||
|
||||
本分支用于继续记录这类奇思妙想及其引出的修改。未经后续评估与明确合并决定,本提案保持探索状态,不据此改变主线产品承诺、推荐策略或部署行为。
|
||||
@@ -8,8 +8,6 @@
|
||||
|
||||
[资料覆盖与缺项](/docs/other-research/ai-company-research/coverage)区分候选池读取、定向样本、人工复核及尚未核验的字段。
|
||||
|
||||
行业报告只作为假设依据:[背景基准适用性与缺项](/docs/other-research/ai-company-research/coverage)分别列明选样、调查对象、时间、指标与未取得的底表。企业采购支出、增长率和支付商户分组不替代公司ARR。
|
||||
|
||||
## 商业模式初评:截至 2026-10-30
|
||||
|
||||
以下为研究假设,用于设计付费试验,尚不足以给行业排收益名次。规模、交付证据和收入来源必须一起看;目录条目数量不是市场需求,平台样本也存在自愿公开与幸存者偏差。
|
||||
@@ -21,15 +19,7 @@
|
||||
| 创意软件与制作服务 | Speel.co、Laper、GetEbook AI、White Glove Content | 软件订阅和交付服务必须分组 | 合格交付的计算与人工成本、返工率、重复购买 | 项目收入占比、人工工时、产能 |
|
||||
| 小企业综合Agent | Runable(AI059) | 公司披露历史ARR里程碑;[官方公告](https://runable.com/blogs/runable-grow) | 限定一个任务,测完整成功率、收费与执行成本 | 当前付费客户、续费、推理成本、人工接管 |
|
||||
| 行业专业Agent与服务 | LunaBill、Plena Health、Bizmark | 有合同ARR、数量级或ARR自述,日历截止日和交付拆分不完整 | 采购周期、上线工时、失败处理与验收标准 | 合同、经常性与实施费拆分、使用深度 |
|
||||
| 复杂任务按结果、简单任务按用量 | [Eloquent AI](/docs/other-research/ai-company-research/overview?company=AI015#research-company-detail) | 官方描述混合收费;旧ARR缺截止日和经常性定义 | 成功验收标准、失败与重试成本、人工接管及单位成功任务毛利 | 单价、最低承诺、结果争议和现金回款;客户降本不作供应商收入 |
|
||||
| AI搜索可见度与行动平台 | [Peec AI](/docs/other-research/ai-company-research/overview?company=AI055#research-company-detail) | 品牌套餐按提示词、模型、项目和Agent额度;席位不限 | 监测成本、Agent额度消耗、品牌续费和代理客户的真实付费归属 | 招聘ARR里程碑缺业务时点/币种;采用品牌数不作ARPA分母,报价不作实际收入 |
|
||||
| AI辅助工程与研究服务 | Marengo、Harbor | 有首月收入、待交付或多年服务合同;不直接当ARR | 已验收项目毛利、专业人员工时、返工和责任成本 | 合同收入确认、软件/服务拆分、应收账款和交付集中度 |
|
||||
| 开源编程工具与企业治理 | [Kilo Code](/docs/other-research/ai-company-research/overview?company=AI072#research-company-detail) | 官方定价区分席位、推理、充值处理费和云算力;已被收购,收入未知 | 企业付费转换、平台净收入、推理转付与补贴、支持成本 | 付费客户、留存、收入确认及并表边界;不能从token吞吐推ARR |
|
||||
| 开源工具、Agent网关与数据服务 | [EveryApp / OpenSEO](/docs/other-research/ai-company-research/overview?company=AI074#research-company-detail) | 官方代码可读;OpenSEO有订阅额度及数据成本加价,EveryApp托管收费仍为计划 | 自托管到付费转化、数据转付与净收入、实际用量、支持成本及供应商依赖 | 真实付费和续费、收入确认、加价与毛利的差异;28%成本加价不等于公司毛利率 |
|
||||
| Agent构建与优化框架 | [PrismShadow](/docs/other-research/ai-company-research/overview?company=AI075#research-company-detail) | PenguinHarness源码及许可证可读,企业收费与收入未知 | 企业持续使用、任务成功率、评估维护及实施支持成本 | 独立复测、付费合同与留存;厂商任务成本不等于收费、毛利或收入 |
|
||||
| 算力基础设施合资 | [Stargate](/docs/other-research/ai-company-research/overview?company=AI076#research-company-detail) | 发起方公告与分期设施进度;投资计划和容量不是收入 | 资本到位、投运进度、利用率、能源成本及长期合同回款 | 注册与并表边界、合同收入确认、实际负载、折旧与资本成本;不套轻资产软件ARR比较 |
|
||||
| 消费者共享助手与个人软件 | [Wabi](/docs/other-research/ai-company-research/overview?company=AI077#research-company-detail) | 官方条款称当前免费;2025成立据公开名录,精确注册未核 | 群组协作留存、任务完成率、每活跃群组推理成本与付费转换 | 未来订阅条款不代表已有收入;融资和创始人此前Replika业绩不归本公司 |
|
||||
| 企业CRM与组织上下文 | [Lightfield转型对照](/docs/other-research/ai-company-research/overview?company=AI073#research-company-detail) | 有席位及工作区套餐,部分含实施、专人支持;2025是产品上线,既有公司历史单列 | 数据接入成本、记录与行动准确率、销售团队留存、实施和人工支持毛利 | 付费采用、用量额度、续费及真实ARPA;不把Tome历史用户当CRM客户 |
|
||||
| 模型、算力与机器人 | Wafer、Induction Labs、Congruent | 可确定产品方向;团队小或融资多不证明单位经济 | 客户真实负载、性能成本、交付与售后成本 | 同口径收入、资本开支、独立性能测试 |
|
||||
|
||||
**对我们商业试验的推论:** 先选择能接触真实买家、结果可验收、成本可计量的工作流,比较软件订阅与服务交付的实际毛利,再评估是否扩成综合Agent。当前证据不足以断定某类必然更赚钱;平台数据更适合帮助选择访谈与试验对象。
|
||||
@@ -46,18 +36,8 @@
|
||||
| ARR与近30日收款差距大 | 查年付、季付、退款、试用、币种及平台计算方法 | 不同指标不应机械相等 |
|
||||
| 用户很多,付费数缺失 | 取得付费客户、套餐与账期数据,再核ARPA | 不能用注册人数直接反推真实性 |
|
||||
| 公司、投资方与媒体重复一个数字 | 追到首发声明及独立底账 | 多篇转述不等于独立证据 |
|
||||
| 品牌改名、业务转型或主体名不同 | 对照服务条款、历史公告、合同主体和原始日期 | 产品上线不是公司成立,历史用户与其他业务收入不自动继承 |
|
||||
| 第三方目录的概览、收入、利润和利润率不能互相核对 | 查原始凭证、字段映射、单位、时期与业务范围 | 先记录来源质量问题,不直接归因为公司造假 |
|
||||
| 声明撤回、口径变更或含并购业务 | 保留历史版本,拆分边界并核对更正原因 | 单个异常无法生成可靠造假概率 |
|
||||
|
||||
2026-10-30读取的[Tana第三方目录](https://dealroom.co/companies/tana/)是一个来源核查实例:可读文本响应的概览与财务表口径不同,若按“利润÷收入”理解,其列值不能与利润率互相核对。尚未取得原始财报,也未确认是否涉及页面占位、文本采集、字段、单位或时期差异,因此这些数字未进入收入观测或图表。该业务本身也早于2025年,保留在候选排除台账;来源异常不能作为公司的造假结论。
|
||||
|
||||
[Fundraisly创始人介绍](https://fundraisly.com/about-us)还展示了履历与客户融资的归属问题:此前Gett业务的ARR、创始人融资经历以及客户筹资,均不等于Fundraisly收入。[现行条款](https://fundraisly.com/terms-of-service)列运营者为Accumulator Fundraising LLC,并提到月订阅和按通话收费;条款生效日不当成立日,固定或经常性费用也需查实际合同、交付与续费,才能讨论可比ARR。该项目目前仍在成立年待核候选中。
|
||||
|
||||
[Pazi官方目录](https://www.ycombinator.com/companies/pazi)中的Founded 2026、Winter 2024和2023 Pythagora历史叙述尚未对齐;[条款](https://pazi.ai/terms)仍列Pythagora Technologies Incorporated运营。其定价页所称业务funding与余额可用于任务及广告,不能直接当软件ARR。项目保持年份待核,避免以一个成立字段覆盖主体和产品历史。
|
||||
|
||||
中文报道的发现与验证也分开处理:机器之心首批四条直达记录均未读到正文,不能把检索摘录当已读全文。PrismShadow的成立和代码材料、Stargate的公司公告另由原始来源补证;SSI以2024官方历史更新排除,Utopai继续待核。具体访问状态与证据见[覆盖台账](/docs/other-research/ai-company-research/coverage)。
|
||||
|
||||
### 从原文到可比较收入:新增核查实例
|
||||
|
||||
以下均为2026-10-30读取的公司自述,读取日不代表收入业务截止日。点击公司可查看分项观测、核查和原始来源。原文仅有美元符号时保留币种待核;未给币种的数字不补成美元。
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
|
||||
截至 2026-10-30,7日窗口内有 14 个产品的美元平台MRR可纳入分组描述。创意软件订阅组的样本均值较高、CV也较大;营销软件组与消费者个人应用组的CV接近。各组只有1至5个产品,尚不足以估计行业总体或造假概率。
|
||||
|
||||
这是已采集资料的固定快照。[动态工作台](/docs/other-research/ai-company-research/overview)提供筛选与原始证据。窗口按最后同步日计算,不保证所有点同日,也不是1,021条公司/产品记录的收入普查。
|
||||
这是已采集资料的固定快照。[动态工作台](/docs/other-research/ai-company-research/overview)提供筛选与原始证据。窗口按最后同步日计算,不保证所有点同日,也不是1,015条公司/产品记录的收入普查。
|
||||
|
||||
## 7日窗口的分组结果
|
||||
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
# AI 公司资料覆盖与缺项
|
||||
|
||||
截至 2026-10-30,研究表含1,021条公司或产品记录。YC候选池有逐条读取审计;其他来源为定向补充。清单尚不能作为全球AI公司普查,也不能将收入未知解释为零。
|
||||
截至 2026-10-30,研究表含1,015条公司或产品记录。YC候选池有逐条读取审计;其他来源为定向补充。清单尚不能作为全球AI公司普查,也不能将收入未知解释为零。
|
||||
|
||||
验收范围已于2026-10-30确认为:以确认的公开来源清单为边界,逐条核对并标明缺项。下方区分已逐条审计的候选池与定向补充来源;已使用某来源不代表该来源已被完整覆盖。
|
||||
|
||||
@@ -19,198 +19,52 @@
|
||||
| AI业务待确认 | 192 | 不强行把背景关键词当主营 |
|
||||
| 成立年与批次冲突 | 6 | 另保留核查记录 |
|
||||
|
||||
全表由912条目录基础项和109条个案或平台记录组成。候选池已匹配项之外另有59条记录,包含其他来源及发布/转型对照;其中已有16条原目录记录深化为个案,仍保留目录来源。两种统计边界不同。候选池数字只是该镜像快照的覆盖,Bud等后续定向补充不回填为原候选池已覆盖。
|
||||
全表由913条目录基础项和102条个案或平台记录组成。候选池已匹配项之外另有53条记录,包含其他来源及发布/转型对照;其中已有15条原目录记录深化为个案,仍保留目录来源。两种统计边界不同。候选池数字只是该镜像快照的覆盖,Bud等后续定向补充不回填为原候选池已覆盖。
|
||||
|
||||
## 成立年与证据深度
|
||||
|
||||
| 维度 | 当前记录 | 解读 |
|
||||
| --- | --- | --- |
|
||||
| 记录为2025年成立 | 623 | 成立来源和精度见公司明细 |
|
||||
| 记录为2026年成立 | 392 | 不将产品发布日期代替成立日 |
|
||||
| 成立年未知或范围外 | 6 | 发布/转型对照单列,不进入两年成立分组 |
|
||||
| 记录为2025年成立 | 619 | 成立来源和精度见公司明细 |
|
||||
| 记录为2026年成立 | 391 | 不将产品发布日期代替成立日 |
|
||||
| 成立年未知或范围外 | 5 | 发布/转型对照单列,不进入两年成立分组 |
|
||||
| 目录业务分类人工复核 | 160 | 仅复核主营分类,不代表技术或财务审计 |
|
||||
| 其他目录基础项 | 752 | 规则初分或资料不足,继续待复核 |
|
||||
| 有团队数字 | 946 | 多为自报Team Size或Employees,时点与口径不统一 |
|
||||
| 专项技术证据记录 | 14 | 其中7条自述、6条公开材料、1条第三方评测 |
|
||||
| 其他目录基础项 | 753 | 规则初分或资料不足,继续待复核 |
|
||||
| 有团队数字 | 945 | 多为自报Team Size或Employees,时点与口径不统一 |
|
||||
| 专项技术证据记录 | 7 | 其中3条自述、3条公开材料、1条第三方评测 |
|
||||
| 公司披露收入线索 | 26 | 含历史、下界、币种不明及产品业务声明,不等于可比ARR |
|
||||
| 仅平台收入线索 | 16 | 同时有公司披露者计入上一行,不重复计数 |
|
||||
| 仅第三方估算 | 1 | 不与直接披露混合 |
|
||||
| 暂无可用收入数字 | 978 | 包含尚未逐家搜索的目录项,不代表没有收入 |
|
||||
| 暂无可用收入数字 | 972 | 包含尚未逐家搜索的目录项,不代表没有收入 |
|
||||
|
||||
## 业务分类与数据入口
|
||||
|
||||
| 业务类别 | 记录数 |
|
||||
| --- | --- |
|
||||
| [基础模型](/docs/other-research/ai-company-research/overview?category=C01) | 29 |
|
||||
| [算力与模型基础设施](/docs/other-research/ai-company-research/overview?category=C02) | 103 |
|
||||
| [Agent 开发与运行设施](/docs/other-research/ai-company-research/overview?category=C03) | 53 |
|
||||
| [软件开发](/docs/other-research/ai-company-research/overview?category=C04) | 110 |
|
||||
| [算力与模型基础设施](/docs/other-research/ai-company-research/overview?category=C02) | 102 |
|
||||
| [Agent 开发与运行设施](/docs/other-research/ai-company-research/overview?category=C03) | 51 |
|
||||
| [软件开发](/docs/other-research/ai-company-research/overview?category=C04) | 109 |
|
||||
| [企业通用工作](/docs/other-research/ai-company-research/overview?category=C05) | 176 |
|
||||
| [客户与收入运营](/docs/other-research/ai-company-research/overview?category=C06) | 53 |
|
||||
| [客户与收入运营](/docs/other-research/ai-company-research/overview?category=C06) | 52 |
|
||||
| [行业专业应用](/docs/other-research/ai-company-research/overview?category=C07) | 321 |
|
||||
| [内容与创意](/docs/other-research/ai-company-research/overview?category=C08) | 45 |
|
||||
| [消费者个人应用](/docs/other-research/ai-company-research/overview?category=C09) | 47 |
|
||||
| [消费者个人应用](/docs/other-research/ai-company-research/overview?category=C09) | 46 |
|
||||
| [机器人及实体产业](/docs/other-research/ai-company-research/overview?category=C10) | 81 |
|
||||
| [业务待分类](/docs/other-research/ai-company-research/overview?category=C00) | 3 |
|
||||
|
||||
## 已使用来源的分布
|
||||
|
||||
1,209条证据记录对应1,195个不同URL。不同URL不自动构成独立验证;同一声明可能由公司、投资方和媒体重复转述。
|
||||
1,091条证据记录对应1,077个不同URL。不同URL不自动构成独立验证;同一声明可能由公司、投资方和媒体重复转述。
|
||||
|
||||
| 来源 | 证据记录 | 不同URL | 用途及限制 |
|
||||
| --- | --- | --- | --- |
|
||||
| YC官方目录 | 989 | 980 | 公司自述的成立、团队与业务;英文及加速器样本偏多 |
|
||||
| YC官方目录 | 984 | 975 | 公司自述的成立、团队与业务;英文及加速器样本偏多 |
|
||||
| TrustMRR | 18 | 18 | 支付平台重建指标及方法;公开者存在选择偏差,非财务审计 |
|
||||
| a16z Speedrun | 11 | 10 | 投资机构中的公司介绍及收入声明;存在利益关系 |
|
||||
| TechCrunch | 7 | 7 | 原始采访或报道;转述公司数字不等于查账 |
|
||||
| TechCrunch | 3 | 3 | 原始采访或报道;转述公司数字不等于查账 |
|
||||
| Sacra | 3 | 3 | 第三方估算;与直接披露分开 |
|
||||
| 其他官网、评测及公开资料 | 181 | 177 | 按每条来源限制理解,不能统一当作独立证据 |
|
||||
|
||||
## 原候选池的后续复核
|
||||
|
||||
原始1,428条读取快照与初筛计数保持不变;下表记录当时未入表、后续补足证据后进入公司表的项目。初筛未通过不是永久排除。后续入表不回写为当时已匹配,也不重复计入928条原始新增目录项。
|
||||
|
||||
| 原候选 | 原始状态 | 后续公司记录 | 复核证据 | 处理与限制 |
|
||||
| --- | --- | --- | --- | --- |
|
||||
| [EveryApp · YC36088](https://www.ycombinator.com/companies/everyapp) | ai-unclear | [EveryApp(含OpenSEO)](/docs/other-research/ai-company-research/overview?company=AI074#research-company-detail) | [EA-YC](https://www.ycombinator.com/companies/everyapp)、[EA-HOME](https://everyapp.com/)、[SEO-HOME](https://openseo.so/) | 2026-10-30:原快照规则初筛未确认AI主营;本次确认Agent应用托管、MCP及OpenSEO产品关联后入表。保留2026成立来源及法律主体待核限制,不更改原初筛状态或928条发现计数。 |
|
||||
|
||||
已记录1条后续复核入表;其余未入表候选仍按原状态保留缺项,不能把这一批复核视为完成全部模糊项。
|
||||
|
||||
|
||||
## 来源清单与验收边界
|
||||
|
||||
S01—S12恢复自已提交用户的《AI公司研究_来源与分类模板》来源清单;S13—S16单列后续已使用的补充证据渠道,不将使用次数当作全量覆盖。
|
||||
|
||||
每条证据在下表只计入一个渠道:先按所列域名归属,再将类型明确标为官方/公司自述/公司披露的剩余项计入S12,其余计入S16。公司可跨渠道出现,所以公司数不可跨行相加。零条证据表示尚未进入研究表,不表示该来源没有相关公司。背景报告不承担公司发现全集的角色。
|
||||
|
||||
| 来源 | 当前状态 | 证据 / 公司 / 观测数 | 已核对范围 | 剩余核查 |
|
||||
| --- | --- | --- | --- | --- |
|
||||
| S01 [Y Combinator](https://www.ycombinator.com/companies) | 候选池逐条已读 | 989 / 970 / 82 | 已读取八个2025—2026批次镜像候选池1428条,再核YC官方页面;不声称覆盖全部YC历年或未公开公司。 | 继续复核规则初分和缺项;候选明细见逐条台账。 |
|
||||
| S02 [TechCrunch AI](https://techcrunch.com/category/artificial-intelligence/) | 定向使用,未穷尽 | 7 / 3 / 1 | 栏目首页选择的3条公司线索已追溯原始资料:Wabi据公开名录2025年份关联公司;DreamHQ与Thrive Holdings成立年待核,后者2025发布公告另存。不是首页全部条目或两年档案;公开分类接口与RSS普通HTTP请求返回403。 | 补可公开取得的2025、2026档案及剩余分页;核DreamHQ、Thrive Holdings成立依据及Wabi精确注册、团队和付费口径。 |
|
||||
| S03 [Dealroom](https://dealroom.co/) | 定向使用,未穷尽 | 2 / 1 / 0 | 已读Tana与Wabi公开公司档案:前者财务字段不一致留缺,后者2025成立字段与官方业务关联入表;尚未取得两年成立筛选结果集,两个个案不等于目录全量。 | 确认公开可取得的两年成立筛选清单;逐项追溯财务原始凭证及字段口径,受权限限制保留缺项。 |
|
||||
| S04 [Product Hunt](https://www.producthunt.com/) | 定向使用,未穷尽 | 25 / 3 / 0 | 2026与2025年度档案各登记首个公开响应19条,共38条候选/推广;2025另有一个仅图片位置未解析。已逐条保留关联、范围外与年份待核状态,未穷尽两年档案。 | 继续补两年其余分页/日期、仅图片位置及18条年份待核候选;保留Pazi日期冲突,核清品牌与主体,避免转移历史业绩。 |
|
||||
| S05 [Sacra](https://sacra.com/) | 定向使用,未穷尽 | 3 / 1 / 3 | 已用于定向估算及日期口径交叉核查;无全站公司名录读取台账。 | 保留估算与公司披露差异,核实历史截至日。 |
|
||||
| S06 [Bessemer](https://www.bvp.com/atlas/the-state-of-ai-2025) | 背景研究 | 1 / 0 / 0 | 主动选取20家高增长AI企业,含组合内外公司;非随机普查;已核方法与增长/毛利基准段;未取得20家逐公司底表。仅背景基准,不构成两年新公司名录。 | 高增长选样和投资机构利益关系;不能把头部样本均值当各领域平均或新成立公司总体;需要公开可核底表时另补,不把缺项当已完成。 |
|
||||
| S07 [Menlo Ventures](https://menlovc.com/perspective/2025-the-state-of-generative-ai-in-the-enterprise/) | 背景研究 | 1 / 0 / 0 | 495名美国企业AI采购/开发决策者,企业已主动使用AI;已核公开方法、范围及限制;受访个体与公司估算底表未取得。仅背景基准,不构成两年新公司名录。 | 仅美国企业;排除芯片、推理/模型服务及既有软件内嵌AI功能,不能与包含这些项目的总量直接比较或分摊为单家公司ARR;需要公开可核底表时另补,不把缺项当已完成。 |
|
||||
| S08 [Stripe](https://stripe.com/annual-updates/2025) | 背景研究 | 2 / 0 / 0 | 2025年开始使用Stripe的商户分组,另有Atlas注册企业分组;已读并视觉核对PDF第1、3页;未取得商户明细与完整分组计算底表。仅背景基准,不构成两年新公司名录。 | 开始使用平台不等成立年,也非AI公司专属样本;交易量不等Stripe收入,门槛数量翻倍不等ARR均值翻倍;不与TrustMRR公开者样本混算;需要公开可核底表时另补,不把缺项当已完成。 |
|
||||
| S09 [SaaS Capital](https://www.saas-capital.com/research/) | 背景研究 | 1 / 0 / 0 | 第15次年度调查,超过1000家私营B2B SaaS公司;仅读公开摘要;完整下载需填写表单,未提交表单或取得完整底表。仅背景基准,不构成两年新公司名录。 | 样本不是两年新AI公司;增长率中位数不能当ARR中位数;完整抽样与指标细节仍缺,不外推至硬件、项目服务或所有AI模式;需要公开可核底表时另补,不把缺项当已完成。 |
|
||||
| S10 [机器之心](https://www.jiqizhixin.com/) | 定向使用,未穷尽 | 5 / 2 / 0 | 已登记4篇定向检索线索;三篇直达仅登录外壳,一篇读取失败。2项经公开原始资料补证关联公司,1项范围外,1项仍待核;未阅读全文或穷尽两年档案。 | 补公开可读文章、2025档案及Utopai原始成立材料;受限正文留缺,不以搜索摘录代全文。 |
|
||||
| S11 [36氪](https://www.36kr.com/) | 访问受限 | 0 / 0 / 0 | 2026-10-30仍返回安全检测页面,未把首页作为已读文章。 | 使用可公开读取的具体文章或其他原始来源;不绕过访问保护。 |
|
||||
| S12 公司官网与官方博客 | 随公司逐条核对 | 91 / 24 / 15 | 公司官网和官方材料逐条绑定证据;不是可预先列尽的全站候选池。 | 核定价、主体、交付与收入定义,自述与独立验证分开。 |
|
||||
| S13 [TrustMRR](https://trustmrr.com/) | 定向使用,未穷尽 | 18 / 17 / 51 | 已采集产品与支付快照;公开者自选,不是全部商户或独立财务审计。 | 核同步日、连接失效、支付平台公式及产品/法人归属。 |
|
||||
| S14 [a16z Speedrun](https://speedrun.a16z.com/) | 定向使用,未穷尽 | 11 / 10 / 19 | 投资机构公司介绍定向样本,收入数字仍多来自公司。 | 核币种、相对时间及管线/履历;未读取的页面保持缺项。 |
|
||||
| S15 [Artificial Analysis](https://artificialanalysis.ai/) | 定向使用,未穷尽 | 2 / 1 / 3 | 第三方已发表技术评测,仅覆盖所列模型版本和任务。 | 核榜单版本、测评方法及置信区间,不将排名变成企业整体能力。 |
|
||||
| S16 其他公开补充资料 | 定向使用,未穷尽 | 51 / 24 / 15 | 未归入上述来源的公开材料按原始证据链接逐条保留;不视为新增已批准的完整候选池。 | 逐项核来源归属、可靠性及可读正文,不能将搜索摘要当全文。 |
|
||||
|
||||
Dealroom、Product Hunt、机器之心与36氪入口于2026-10-30重新访问。官网首页可读不证明已取得完整筛选结果;安全检测页面不作为文章内容。候选池之外的来源边界尚需建立可回查条目,完成前不宣布来源清单已全部覆盖。
|
||||
|
||||
|
||||
## 背景基准适用性与缺项
|
||||
|
||||
以下核对背景资料的方法及适用范围,不是公司名录的完整覆盖。原始方法记录与全局核查随研究版本进入同一数据库;没有把行业汇总值新增为任何公司的收入观测。
|
||||
|
||||
| 来源与证据 | 样本与统计单位 | 时间 | 本次读取范围 | 可用于什么 | 主要限制 |
|
||||
| --- | --- | --- | --- | --- | --- |
|
||||
| S06 Bessemer:[CTX-BVP](https://www.bvp.com/atlas/the-state-of-ai-2025) | 主动选取20家高增长AI企业,含组合内外公司;非随机普查;企业增长与毛利基准,按商业化后的第几年比较 | 2025-08-13报告;商业化年数不等法律成立年 | 已核方法与增长/毛利基准段;未取得20家逐公司底表 | 用于提出留存、毛利、资本效率假设及分类线索 | 高增长选样和投资机构利益关系;不能把头部样本均值当各领域平均或新成立公司总体 |
|
||||
| S07 Menlo Ventures:[CTX-MENLO](https://menlovc.com/perspective/2025-the-state-of-generative-ai-in-the-enterprise/) | 495名美国企业AI采购/开发决策者,企业已主动使用AI;采购调查与自下而上的市场支出估算,非公司逐项ARR | 2025-11-07至11-25调查,市场判断截至2025-12 | 已核公开方法、范围及限制;受访个体与公司估算底表未取得 | 用于买家、采购方式和任务方向假设 | 仅美国企业;排除芯片、推理/模型服务及既有软件内嵌AI功能,不能与包含这些项目的总量直接比较或分摊为单家公司ARR |
|
||||
| S08 Stripe:[CTX-STRIPE](https://assets.stripeassets.com/fzn2n1nzq965/3LlGw839Q6kUwxZlLZDtH6/75ddcbada4aa7743dd8ec7d0f9ca497e/Stripe-annual-letter-2025-desktop.pdf) | 2025年开始使用Stripe的商户分组,另有Atlas注册企业分组;平台交易量、商户增长及达到收入门槛的数量;分母不同 | 2025年度;2026-02-24年度信 | 已读并视觉核对PDF第1、3页;未取得商户明细与完整分组计算底表 | 用于支付、全球市场及首次收费速度假设 | 开始使用平台不等成立年,也非AI公司专属样本;交易量不等Stripe收入,门槛数量翻倍不等ARR均值翻倍;不与TrustMRR公开者样本混算 |
|
||||
| S09 SaaS Capital:[CTX-SAASCAP](https://www.saas-capital.com/research/private-saas-company-growth-rate-benchmarks/) | 第15次年度调查,超过1000家私营B2B SaaS公司;2025年度增长率与留存等公开摘要;非ARR金额分布 | 2026报告回顾2025增长;不把报告年当公司成立年 | 仅读公开摘要;完整下载需填写表单,未提交表单或取得完整底表 | 用于B2B订阅软件的规模、融资和留存分层假设 | 样本不是两年新AI公司;增长率中位数不能当ARR中位数;完整抽样与指标细节仍缺,不外推至硬件、项目服务或所有AI模式 |
|
||||
|
||||
本表的应用解释属于研究判断。选样、分母、时间或指标不同会造成表观差异;这些差异不单独证明财务造假,也不能作为给未知公司填补收入的依据。
|
||||
|
||||
|
||||
## S04 候选核对(PH-2026-visible-1)
|
||||
|
||||
[发现页面](https://www.producthunt.com/leaderboard/yearly/2026),读取于2026-10-30。年度榜单首次公开响应中可见的19张产品或推广卡片;不含分页或后续动态加载,不是2026全年、更不是2025—2026全量。
|
||||
|
||||
本批19条:3条关联公司、2条关联范围外对照、5条范围外不新增公司、8条成立年待核、1条推广活动。完整来源覆盖标记:未完成。主营或产品任务的初分类不计入主公司表数量,只有已关联的公司记录进入对应公司明细。候选与缺项随研究版本保存在文档站同一SQLite的研究元数据中。
|
||||
|
||||
| 发现条目 | 主营或产品任务初分 | 核对状态 | 关联公司 | 核对证据 | 限制 |
|
||||
| --- | --- | --- | --- | --- | --- |
|
||||
| [Fundraisly](https://www.producthunt.com/products/fundraisly) | [行业专业应用](/docs/other-research/ai-company-research/overview?category=C07) | 成立年待核 | — | [PH-FUNDRAISLY-ABOUT](https://fundraisly.com/about-us)、[PH-FUNDRAISLY-ENTITY](https://fundraisly.com/terms-of-service)、[PH-FUNDRAISLY-PLAN](https://fundraisly.com/service-plan) | 运营主体Accumulator Fundraising LLC;成立年待核。固定/经常性或按通话的服务收费需拆分;Gett历史ARR、创始人及客户筹资不作Fundraisly收入。 |
|
||||
| [Rork Max](https://www.producthunt.com/products/rork-app-for-ios) | [软件开发](/docs/other-research/ai-company-research/overview?category=C04) | 已有关联,年份范围外 | [Rork](/docs/other-research/ai-company-research/overview?company=AI054#research-company-detail) | [E054](https://speedrun.a16z.com/companies/rork) | 映射现有Rork对照记录;2024成立,不因Rork Max发布重新算2026新公司。 |
|
||||
| [Brila](https://www.producthunt.com/products/brila-2) | [软件开发](/docs/other-research/ai-company-research/overview?category=C04) | 成立年待核 | — | [PH-BRILA-ENTITY](https://brila.ai/about)、[PH-BRILA-TERMS](https://brila.ai/terms-and-conditions) | 官网及条款列Generated Media, Inc.运营;注册号不代表日期,母公司成立年待核。网站生成与托管订阅为产品业务,不因2026发布新增独立公司。 |
|
||||
| [happycapy](https://www.producthunt.com/products/happycapy) | [消费者个人应用](/docs/other-research/ai-company-research/overview?category=C09) | 成立年待核 | — | [PH25-E-19](https://www.producthunt.com/products/happycapy)、[PH-HAPPYCAPY-ABOUT](https://happycapy.ai/about)、[PH-HAPPYCAPY-PRIVACY](https://happycapy.ai/privacy) | Trickle历史发布与Happycapy当前产品页相关联;官网功能及政策可读,但法人成立与股权沿革未核。政策生效日不作成立日,仍保留候选,不重复新增公司。 |
|
||||
| [Cowork](https://www.producthunt.com/products/claude) | [企业通用工作](/docs/other-research/ai-company-research/overview?category=C05) | 成立年范围外,不新增公司 | — | [PH-COWORK-OWNER](https://www.anthropic.com/news/introducing-anthropic-labs)、[PH-ANTHROPIC-FOUND](https://www.anthropic.com/events/builder-summit-bengaluru) | Cowork是Anthropic产品,官方称母公司2021成立;2026研究预览不新增公司,也不转移其他Claude产品收入。 |
|
||||
| [Upstream](https://www.producthunt.com/products/upstream-3) | [企业通用工作](/docs/other-research/ai-company-research/overview?category=C05) | 成立年范围外,不新增公司 | — | [UP-YC](https://www.ycombinator.com/companies/upstream)、[UP-HOME](https://www.upstream.do/)、[PH-UP](https://www.producthunt.com/products/upstream-3) | YC官方列2023成立、S23批次,2026发布不重算公司年;创始人此前Asana、Algolia的ARR不归Upstream。 |
|
||||
| [Goldfish](https://www.producthunt.com/products/goldfish-early-access) | [消费者个人应用](/docs/other-research/ai-company-research/overview?category=C09) | 成立年待核 | — | [GOLD-HOME](https://goldfish.sh/)、[GOLD-TERMS](https://goldfish.sh/tos)、[GOLD-PRIVACY](https://goldfish.sh/privacy)、[PH-GOLD](https://www.producthunt.com/products/goldfish-early-access) | 运营者Goldfish AI Inc.,成立年未核;政策生效日不当成立日。测试期间免费不说明收入为零,点击计数不等于客户数或MRR。 |
|
||||
| [Framer 3.0](https://www.producthunt.com/products/framer) | [软件开发](/docs/other-research/ai-company-research/overview?category=C04) | 成立年范围外,不新增公司 | — | [PH-FRAMER-ABOUT](https://www.framer.com/about) | Framer官网列2014成立;3.0及AI新产品不作2026新公司,未新增公司。 |
|
||||
| [OpenSEO](https://www.producthunt.com/products/openseo) | [客户与收入运营](/docs/other-research/ai-company-research/overview?category=C06) | 已关联公司 | [EveryApp(含OpenSEO)](/docs/other-research/ai-company-research/overview?company=AI074#research-company-detail) | [EA-YC](https://www.ycombinator.com/companies/everyapp)、[SEO-HOME](https://openseo.so/)、[PH-SEO](https://www.producthunt.com/products/openseo) | OpenSEO归EveryApp;官方目录列EveryApp 2026成立,两者只计一个公司。原候选36088从AI不明复核入表,原台账计数不回写。 |
|
||||
| [Clarify](https://www.producthunt.com/products/clarify-6) | [客户与收入运营](/docs/other-research/ai-company-research/overview?category=C06) | 成立年范围外,不新增公司 | — | [PH-CLARIFY-LINKEDIN](https://www.linkedin.com/company/getclarify)、[PH-CLARIFY-MANIFESTO](https://www.clarify.ai/blog/manifesto) | Clarify CRM公司主页列2024成立,2024创始人宣言佐证已有业务;不与医疗及其他同名Clarify混淆。 |
|
||||
| [Lightfield](https://www.producthunt.com/products/lightfield) | [客户与收入运营](/docs/other-research/ai-company-research/overview?category=C06) | 已有关联,年份范围外 | [Lightfield(Tome转型对照)](/docs/other-research/ai-company-research/overview?company=AI073#research-company-detail) | [LF-ENTITY](https://lightfield.com/privacy)、[LF-PIVOT](https://lightfield.com/blog/venturebeat-tome-s-founders-ditch-viral-presentation-app-with-20m-users-to-build-ai-native-crm)、[LF-HISTORY](https://greylock.com/blog/persuasion-through-stories/) | 映射Magical Tome, Inc.转型对照;2025是CRM上线,2022已有Tome业务,精确注册年未核,不计2026新公司。 |
|
||||
| [Pazi](https://www.producthunt.com/products/pazi) | [企业通用工作](/docs/other-research/ai-company-research/overview?category=C05) | 成立年待核 | — | [PAZI-YC](https://www.ycombinator.com/companies/pazi)、[PAZI-TERMS](https://pazi.ai/terms)、[PAZI-PRICE](https://pazi.ai/pricing)、[PH-PAZI](https://www.producthunt.com/products/pazi) | Founded 2026与W24及2023 Pythagora历史同页冲突;条款运营者为Pythagora Technologies Incorporated,法律沿革未核,保留年份待核。业务余额与广告支出不当ARR。 |
|
||||
| [SuperX](https://www.producthunt.com/products/superx) | [客户与收入运营](/docs/other-research/ai-company-research/overview?category=C06) | 成立年待核 | — | 成立证据待补,产品页读取状态见候选记录 | 候选分类按发布定位初分;公司成立年、主体及收入待核,不能因2026榜单就加入成立年样本。 |
|
||||
| [Kilo Code for VS Code](https://www.producthunt.com/products/kilocode) | [软件开发](/docs/other-research/ai-company-research/overview?category=C04) | 已关联公司 | [Kilo Code(已被Anaconda收购)](/docs/other-research/ai-company-research/overview?company=AI072#research-company-detail) | [KILO-START](https://www.anaconda.com/blog/kilo-code-joins-anaconda-what-builders-should-know)、[KILO-PH](https://www.producthunt.com/products/kilocode) | 映射同一Kilo Code个案,不因插件与托管产品分别发布重复新增公司。 |
|
||||
| [Brew](https://www.producthunt.com/products/brew-5) | [客户与收入运营](/docs/other-research/ai-company-research/overview?category=C06) | 成立年待核 | — | 成立证据待补,产品页读取状态见候选记录 | 产品页读取超时,保留榜单发现;主体、成立年和收入待核。 |
|
||||
| Render startup credits | [算力与模型基础设施](/docs/other-research/ai-company-research/overview?category=C02) | 推广活动,非公司新增 | — | [PH-2026-PAGE](https://www.producthunt.com/leaderboard/yearly/2026) | 推广创业额度活动,链接回榜单,不把额度当公司收入或新成立公司。 |
|
||||
| [DataFast](https://www.producthunt.com/products/datafast) | [企业通用工作](/docs/other-research/ai-company-research/overview?category=C05) | 成立年待核 | — | 成立证据待补,产品页读取状态见候选记录 | 候选分类按发布定位初分;公司成立年、主体及收入待核,不能因2026榜单就加入成立年样本。 |
|
||||
| [KiloClaw](https://www.producthunt.com/products/kiloclaw) | [Agent 开发与运行设施](/docs/other-research/ai-company-research/overview?category=C03) | 已关联公司 | [Kilo Code(已被Anaconda收购)](/docs/other-research/ai-company-research/overview?company=AI072#research-company-detail) | [KILO-START](https://www.anaconda.com/blog/kilo-code-joins-anaconda-what-builders-should-know)、[KILO-PH](https://www.producthunt.com/products/kilocode) | 映射同一Kilo Code个案,不因插件与托管产品分别发布重复新增公司。 |
|
||||
| [Stitch 2.0 by Google](https://www.producthunt.com/products/stitch-2-0-by-google-2) | [内容与创意](/docs/other-research/ai-company-research/overview?category=C08) | 成立年范围外,不新增公司 | — | [PH-STITCH-OWNER](https://blog.google/innovation-and-ai/products/google-io-2025-all-our-announcements/)、[PH-GOOGLE-FOUND](https://about.google/company-info/our-story/) | Google的Stitch产品及新版本,不是独立2026创业公司;Google公司沿革始于1998,不转移集团收入。 |
|
||||
|
||||
产品页可读只表示有可访问的资料;本批未将所有产品页完成公司、技术或财务深查。既有直接HTTP采集返回403,当前采用可读的公开页面响应,不声称取得底层全量列表;后续公开档案与未读页面继续保留缺项。
|
||||
|
||||
|
||||
## S04 候选核对(PH-2025-visible-1)
|
||||
|
||||
[发现页面](https://www.producthunt.com/leaderboard/yearly/2025),读取于2026-10-30。当前年度档案首个公开响应中19张有文字链接的产品/推广卡片;另有一张仅图片的Framer 3.0位置,未解析为独立产品,保留缺项。未穷尽分页或全年;当前推广位不等于2025发布。
|
||||
|
||||
本批19条:1条关联公司、0条关联范围外对照、7条范围外不新增公司、10条成立年待核、1条推广活动。完整来源覆盖标记:未完成。主营或产品任务的初分类不计入主公司表数量,只有已关联的公司记录进入对应公司明细。候选与缺项随研究版本保存在文档站同一SQLite的研究元数据中。
|
||||
|
||||
| 发现条目 | 主营或产品任务初分 | 核对状态 | 关联公司 | 核对证据 | 限制 |
|
||||
| --- | --- | --- | --- | --- | --- |
|
||||
| [Screen Studio 3.0](https://www.producthunt.com/products/screen-studio) | [内容与创意](/docs/other-research/ai-company-research/overview?category=C08) | 成立年待核 | — | [PH25-E-01](https://www.producthunt.com/products/screen-studio) | 产品页还列2022年首次发布;公司成立年和AI主营仍待核,不因3.0版本重新算新公司。 |
|
||||
| [Tana](https://www.producthunt.com/products/tana) | [企业通用工作](/docs/other-research/ai-company-research/overview?category=C05) | 成立年范围外,不新增公司 | — | [PH-TANA-DR](https://dealroom.co/companies/tana/)、[PH-TANA-INV](https://tolacapital.com/2025/02/04/my-productivity-quest-and-tanas-series-a)、[PH-TANA-HOME](https://tana.inc/) | Dealroom列2020成立;投资人回忆2025前已与团队合作。按2025前已有业务排除,法律注册年未核;现行会议平台不另算新公司。 |
|
||||
| [Trace](https://www.producthunt.com/products/trace) | [企业通用工作](/docs/other-research/ai-company-research/overview?category=C05) | 已关联公司 | [Trace](/docs/other-research/ai-company-research/overview?company=YC30687#research-company-detail) | [PH25-E-03](https://www.producthunt.com/products/trace)、[YC-E-30687](https://www.ycombinator.com/companies/trace-so)、[TRACE-HOME](https://www.trace.so/) | 产品页指向trace.so,与现有YC30687对应,不新增近名公司。 |
|
||||
| [Tanka](https://www.producthunt.com/products/tanka) | [企业通用工作](/docs/other-research/ai-company-research/overview?category=C05) | 成立年范围外,不新增公司 | — | [PH-TANKA-RELEASE](https://www.prnewswire.com/news-releases/tankaai-launches-in-japan-bringing-team-memory-to-everyday-work-302891558.html)、[PH-TANKA-LINKEDIN](https://www.linkedin.com/company/tankaai) | 公司新闻稿及公开主页均列2024成立;2025产品榜单及2026日本上线不改变公司成立年。 |
|
||||
| [Sider 5.0](https://www.producthunt.com/products/chatgpt-sidebar-chrome-extension) | [消费者个人应用](/docs/other-research/ai-company-research/overview?category=C09) | 成立年待核 | — | [PH25-E-05](https://www.producthunt.com/products/chatgpt-sidebar-chrome-extension) | AI研究与浏览器工具;版本更新不等于公司创立,成立年待核。 |
|
||||
| [Guideflow](https://www.producthunt.com/products/guideflow) | [客户与收入运营](/docs/other-research/ai-company-research/overview?category=C06) | 成立年范围外,不新增公司 | — | [PH-GUIDEFLOW-ABOUT](https://www.guideflow.com/company/about-us) | Guideflow官网列2023成立;2025榜单为既有公司产品,不加入新成立公司样本。 |
|
||||
| [Clueso](https://www.producthunt.com/products/clueso) | [内容与创意](/docs/other-research/ai-company-research/overview?category=C08) | 成立年范围外,不新增公司 | — | [PH25-E-07](https://www.producthunt.com/products/clueso)、[PH25-CLUESO-YC](https://www.ycombinator.com/companies/clueso) | YC官方列Founded 2023;2025是产品平台发布时间,不纳入2025—2026新公司。 |
|
||||
| [YouMind](https://www.producthunt.com/products/youmind) | [内容与创意](/docs/other-research/ai-company-research/overview?category=C08) | 成立年范围外,不新增公司 | — | [PH-YOUMIND-FOUNDER](https://www.caicai.me/zh/product/youmind)、[PH-YOUMIND-SEED](https://www.caicai.me/zh/blogs/youmind-startup-journey-2) | 联合创始人自述2024创业、获得种子投资并开发产品;按2025前已开展业务排除,精确法人成立日仍未核。 |
|
||||
| [MGX(现Atoms)](https://www.producthunt.com/products/metagpt-x) | [软件开发](/docs/other-research/ai-company-research/overview?category=C04) | 成立年待核 | — | [PH-ATOMS-ABOUT](https://atoms.dev/about)、[PH-ATOMS-TIMELINE](https://atoms.dev/metagpt)、[PH-ATOMS-ENTITY](https://atoms.dev/terms-of-service) | MetaGPT研究→MGX→Atoms为产品沿革;官网产品化年份有2024与2024—2025口径,技术服务方列MetaGPT LLC。公司成立年和跨主体关系待核,不因更名新增公司。 |
|
||||
| Cloudflare Workers推广 | [算力与模型基础设施](/docs/other-research/ai-company-research/overview?category=C02) | 推广活动,非公司新增 | — | [PH-2025-PAGE](https://www.producthunt.com/leaderboard/yearly/2025) | 当前榜单推广位链接回年度榜单;不作为2025新公司或收入。 |
|
||||
| [Tool Finder](https://www.producthunt.com/products/tool-finder) | [企业通用工作](/docs/other-research/ai-company-research/overview?category=C05) | 成立年待核 | — | [PH25-E-11](https://www.producthunt.com/products/tool-finder) | 资料显示较早产品发布;公司成立年与是否AI主营待核,不能把软件目录直接当AI公司。 |
|
||||
| [Chronicle: Cursor for Slides](https://www.producthunt.com/products/chronicle-6) | [内容与创意](/docs/other-research/ai-company-research/overview?category=C08) | 成立年待核 | — | [PH25-E-12](https://www.producthunt.com/products/chronicle-6)、[PH-CHRONICLE-ACCESS](https://blog.chroniclehq.com/2023/02/14/chronicle-raises-7-5m-seed-round-from-accel-and-square-peg-to-reimagine-presentations/) | 演示文稿产品,与Chronicle Labs不同;历史公告正文两次超时,不能据搜索摘要确定成立年,继续待核。 |
|
||||
| [21st.dev](https://www.producthunt.com/products/21st-dev-the-npm-for-design-engineers) | [软件开发](/docs/other-research/ai-company-research/overview?category=C04) | 成立年范围外,不新增公司 | — | [PH25-E-13](https://www.producthunt.com/products/21st-dev-the-npm-for-design-engineers)、[PH25-21ST-YC](https://www.ycombinator.com/companies/21st) | YC官方列Founded 2024、W26批次;发布年与加速器批次不改变成立年,不归新公司样本。 |
|
||||
| [Aha](https://www.producthunt.com/products/aha-3) | [客户与收入运营](/docs/other-research/ai-company-research/overview?category=C06) | 成立年待核 | — | [PH25-E-14](https://www.producthunt.com/products/aha-3) | 网红营销Agent;当前品牌AhaCreator,主体、成立年待核。 |
|
||||
| [Basalt](https://www.producthunt.com/products/basalt) | [Agent 开发与运行设施](/docs/other-research/ai-company-research/overview?category=C03) | 成立年待核 | — | [PH25-E-15](https://www.producthunt.com/products/basalt) | AI评估、监控及部署工具;仅有2025发布信息,成立年待核,质量宣传未独立测试。 |
|
||||
| [Framer AI Agents](https://www.producthunt.com/products/framer) | [软件开发](/docs/other-research/ai-company-research/overview?category=C04) | 成立年范围外,不新增公司 | — | [PH25-E-16](https://www.producthunt.com/products/framer)、[PH-FRAMER-ABOUT](https://www.framer.com/about) | 当前推广卡片指向Framer;官网列2014成立,不作2025新公司或2025发布证据。 |
|
||||
| [Tapflow 2.0](https://www.producthunt.com/products/tapflow) | [企业通用工作](/docs/other-research/ai-company-research/overview?category=C05) | 成立年待核 | — | [PH25-E-17](https://www.producthunt.com/products/tapflow) | 将知识与文档打包出售;公司成立年、AI主营与收入归属待核。 |
|
||||
| [Musa](https://www.producthunt.com/products/musa-2) | [消费者个人应用](/docs/other-research/ai-company-research/overview?category=C09) | 成立年待核 | — | [PH25-E-18](https://www.producthunt.com/products/musa-2) | 个人健康与自我照护产品;公司成立年及AI是否主营待核。 |
|
||||
| [Trickle - Magic Canvas](https://www.producthunt.com/products/happycapy) | [软件开发](/docs/other-research/ai-company-research/overview?category=C04) | 成立年待核 | — | [PH25-E-19](https://www.producthunt.com/products/happycapy)、[PH-HAPPYCAPY-ABOUT](https://happycapy.ai/about)、[PH-HAPPYCAPY-PRIVACY](https://happycapy.ai/privacy) | Trickle历史发布与Happycapy当前产品页相关联;官网功能及政策可读,但法人成立与股权沿革未核。政策生效日不作成立日,仍保留候选,不重复新增公司。 |
|
||||
|
||||
产品页可读只表示有可访问的资料;本批未将所有产品页完成公司、技术或财务深查。既有直接HTTP采集返回403,当前采用可读的公开页面响应,不声称取得底层全量列表;后续公开档案与未读页面继续保留缺项。
|
||||
|
||||
|
||||
## S10 候选核对(JQ-2026-targeted-1)
|
||||
|
||||
[发现页面](https://www.jiqizhixin.com/),读取于2026-10-30。成立年关键词定向检索中选择的4篇2026 URL公司线索;三篇直达仅登录外壳,一篇读取失败。搜索摘录与已读全文分开,关联公司另用原始材料核对;非全部检索结果、非2025—2026全站档案。
|
||||
|
||||
本批4条:2条关联公司、0条关联范围外对照、1条范围外不新增公司、1条成立年待核、0条推广活动。完整来源覆盖标记:未完成。主营或产品任务的初分类不计入主公司表数量,只有已关联的公司记录进入对应公司明细。候选与缺项随研究版本保存在文档站同一SQLite的研究元数据中。
|
||||
|
||||
| 发现条目 | 主营或产品任务初分 | 核对状态 | 关联公司 | 核对证据 | 限制 |
|
||||
| --- | --- | --- | --- | --- | --- |
|
||||
| [PrismShadow / PenguinHarness](https://www.jiqizhixin.com/articles/2026-08-03-9) | [Agent 开发与运行设施](/docs/other-research/ai-company-research/overview?category=C03) | 已关联公司 | [PrismShadow(PenguinHarness)](/docs/other-research/ai-company-research/overview?company=AI075#research-company-detail) | [JQ-PRISM](https://www.jiqizhixin.com/articles/2026-08-03-9)、[PS-PROFILE](https://sg.linkedin.com/company/prismshadow)、[PS-CODE](https://github.com/Prism-Shadow/penguin-harness) | 直达仅登录外壳;2025成立由公司公开主页补证,代码材料可读;成本和性能宣传未独立验证。 |
|
||||
| [Stargate](https://www.jiqizhixin.com/articles/2026-04-11-2) | [算力与模型基础设施](/docs/other-research/ai-company-research/overview?category=C02) | 已关联公司 | [Stargate(基础设施合资项目)](/docs/other-research/ai-company-research/overview?company=AI076#research-company-detail) | [JQ-STARGATE](https://www.jiqizhixin.com/articles/2026-04-11-2)、[SG-START](https://openai.com/index/announcing-the-stargate-project/)、[SG-JAN](https://openai.com/index/stargate-community/)、[SG-APR](https://openai.com/index/building-the-compute-infrastructure-for-the-intelligence-age/) | 媒体直达读取失败;发起方2025公告称新公司,官方后续进度另列。合资与项目边界待核,投资及容量不当ARR。 |
|
||||
| [Safe Superintelligence(SSI)](https://www.jiqizhixin.com/articles/2026-08-25-12) | [基础模型](/docs/other-research/ai-company-research/overview?category=C01) | 成立年范围外,不新增公司 | — | [JQ-SSI](https://www.jiqizhixin.com/articles/2026-08-25-12)、[SSI-HISTORY](https://ssi.inc/updates) | 媒体直达仅登录外壳;官方2024已有融资更新,按2025前已存在业务排除,精确注册日未核;融资不当收入。 |
|
||||
| [Utopai](https://www.jiqizhixin.com/articles/2026-10-06-4) | [内容与创意](/docs/other-research/ai-company-research/overview?category=C08) | 成立年待核 | — | [JQ-UTOPAI](https://www.jiqizhixin.com/articles/2026-10-06-4) | 搜索摘录有公司与成立线索,但直达仅登录外壳,原始成立、主体和业务材料未补齐,不把估值、片单或模型排名作为公司收入或独立技术验证。 |
|
||||
|
||||
发现条目和可读正文分开记录;登录外壳、读取失败或搜索摘录不充当已阅读全文。关联公司以列出的原始材料补证,仍保留技术、主体与收入未核事项。
|
||||
|
||||
|
||||
## S02 候选核对(TC-2026-targeted-1)
|
||||
|
||||
[发现页面](https://techcrunch.com/category/artificial-intelligence/),读取于2026-10-30。2026-10-30可读栏目首页中选取的3条公司线索;报道正文可读并追溯官方及当事方资料。Wabi由名录年份补证关联公司,DreamHQ与Thrive Holdings成立年仍待核;发布时点与注册年分开。非首页全部报道、全部分页或2025—2026完整档案。公开分类接口与RSS普通请求返回403,保留档案获取缺项。
|
||||
|
||||
本批3条:1条关联公司、0条关联范围外对照、0条范围外不新增公司、2条成立年待核、0条推广活动。完整来源覆盖标记:未完成。主营或产品任务的初分类不计入主公司表数量,只有已关联的公司记录进入对应公司明细。候选与缺项随研究版本保存在文档站同一SQLite的研究元数据中。
|
||||
|
||||
| 发现条目 | 主营或产品任务初分 | 核对状态 | 关联公司 | 核对证据 | 限制 |
|
||||
| --- | --- | --- | --- | --- | --- |
|
||||
| [Dream(dreamhq.com建筑设计业务)](https://techcrunch.com/2026/10/29/ex-palantir-execs-launch-dream-with-17m-from-a16z-to-build-ai-world-models-for-construction/) | [行业专业应用](/docs/other-research/ai-company-research/overview?category=C07) | 成立年待核 | — | [TC-DREAM](https://techcrunch.com/2026/10/29/ex-palantir-execs-launch-dream-with-17m-from-a16z-to-build-ai-world-models-for-construction/)、[DH-HOME](https://www.dreamhq.com/)、[DH-COMPANY](https://www.dreamhq.com/company)、[YC-E-31258](https://www.ycombinator.com/companies/dream) | 建筑设计及工程交付初分C07;媒体给成立线索,但官方本次未明确年份,保持待核。DreamHQ创始人与域名不同于公司表YC31258的摄像头业务,禁止按Dream名称去重或转移数据。 |
|
||||
| [Wabi](https://techcrunch.com/2026/10/29/wabi-the-ai-agent-that-builds-mini-apps-now-valued-at-1-25b-after-latest-round/) | [消费者个人应用](/docs/other-research/ai-company-research/overview?category=C09) | 已关联公司 | [Wabi](/docs/other-research/ai-company-research/overview?company=AI077#research-company-detail) | [TC-WABI](https://techcrunch.com/2026/10/29/wabi-the-ai-agent-that-builds-mini-apps-now-valued-at-1-25b-after-latest-round/)、[WABI-HOME](https://wabi.ai/)、[WABI-INVESTOR](https://a16z.com/announcement/investing-in-wabi/)、[WABI-PROFILE](https://www.linkedin.com/company/joinwabi/)、[WABI-DEALROOM](https://dealroom.co/companies/wabi/)、[WABI-BUILTIN](https://builtin.com/company/wabi-inc)、[WABI-TERMS](https://wabi.ai/terms) | 两个第三方公开名录均列2025成立并关联同一官方业务,按归因年份入表,精确注册日未核。官方条款当前免费,收入未知;订阅模板、融资及Replika历史业绩不当收入,团队口径差异保留。 |
|
||||
| [Thrive Holdings](https://techcrunch.com/2026/10/29/openai-backed-thrive-holdings-acquires-adt/) | [行业专业应用](/docs/other-research/ai-company-research/overview?category=C07) | 成立年待核 | — | [TC-THRIVE](https://techcrunch.com/2026/10/29/openai-backed-thrive-holdings-acquires-adt/)、[TH-ABOUT](https://www.thriveholdings.com/about)、[TH-OPENAI](https://openai.com/index/thrive-holdings/)、[TH-ADT](https://investor.adt.com/News--Events/news/news-details/2026/ADT-to-be-Acquired-by-Thrive-Holdings-in-15-3-Billion-Transaction/default.aspx)、[TH-LAUNCH](https://www.thriveholdings.com/thrive-holdings-launch) | 官方2025-04-29公告证明平台公开发布,不能单独填精确成立年,继续待核。按专业服务收购运营初分C07,控股模式单列;ADT预计2027一季度交割,不记已完成,不将目标历史收入当有机AI收入。 |
|
||||
|
||||
发现条目和可读正文分开记录;登录外壳、读取失败或搜索摘录不充当已阅读全文。关联公司以列出的原始材料补证,仍保留技术、主体与收入未核事项。
|
||||
|
||||
| 其他官网、评测及公开资料 | 72 | 68 | 按每条来源限制理解,不能统一当作独立证据 |
|
||||
|
||||
## 尚未满足的研究条件
|
||||
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@@ -1,295 +0,0 @@
|
||||
{
|
||||
"version": "2026-10-30-10",
|
||||
"scopeConfirmedAt": "2026-10-30",
|
||||
"acceptance": "以确认的公开来源清单为边界,逐条核对并标明缺项。",
|
||||
"provenance": "S01—S12恢复自已提交用户的《AI公司研究_来源与分类模板》来源清单;S13—S16单列后续已使用的补充证据渠道,不将使用次数当作全量覆盖。",
|
||||
"sources": [
|
||||
{
|
||||
"id": "S01",
|
||||
"name": "Y Combinator",
|
||||
"url": "https://www.ycombinator.com/companies",
|
||||
"role": "discovery",
|
||||
"status": "candidate-audit",
|
||||
"hosts": [
|
||||
"www.ycombinator.com"
|
||||
],
|
||||
"initialAccess": "官网目录可访问",
|
||||
"boundary": "已读取八个2025—2026批次镜像候选池1428条,再核YC官方页面;不声称覆盖全部YC历年或未公开公司。",
|
||||
"nextCheck": "继续复核规则初分和缺项;候选明细见逐条台账。",
|
||||
"limitation": "批次不等于成立年;不代表全部公司"
|
||||
},
|
||||
{
|
||||
"id": "S02",
|
||||
"name": "TechCrunch AI",
|
||||
"url": "https://techcrunch.com/category/artificial-intelligence/",
|
||||
"role": "reporting",
|
||||
"status": "targeted",
|
||||
"hosts": [
|
||||
"techcrunch.com"
|
||||
],
|
||||
"initialAccess": "AI栏目可读取",
|
||||
"boundary": "栏目首页选择的3条公司线索已追溯原始资料:Wabi据公开名录2025年份关联公司;DreamHQ与Thrive Holdings成立年待核,后者2025发布公告另存。不是首页全部条目或两年档案;公开分类接口与RSS普通HTTP请求返回403。",
|
||||
"nextCheck": "补可公开取得的2025、2026档案及剩余分页;核DreamHQ、Thrive Holdings成立依据及Wabi精确注册、团队和付费口径。",
|
||||
"limitation": "需追溯原始披露,部分文章受访问限制",
|
||||
"accessRecheckedAt": "2026-10-30"
|
||||
},
|
||||
{
|
||||
"id": "S03",
|
||||
"name": "Dealroom",
|
||||
"url": "https://dealroom.co/",
|
||||
"role": "discovery",
|
||||
"status": "targeted",
|
||||
"hosts": [
|
||||
"dealroom.co",
|
||||
"app.dealroom.co"
|
||||
],
|
||||
"initialAccess": "官网可读取",
|
||||
"boundary": "已读Tana与Wabi公开公司档案:前者财务字段不一致留缺,后者2025成立字段与官方业务关联入表;尚未取得两年成立筛选结果集,两个个案不等于目录全量。",
|
||||
"nextCheck": "确认公开可取得的两年成立筛选清单;逐项追溯财务原始凭证及字段口径,受权限限制保留缺项。",
|
||||
"limitation": "完整档案需权限;概览及财务表不能未经勾稽直接导入ARR",
|
||||
"accessRecheckedAt": "2026-10-30"
|
||||
},
|
||||
{
|
||||
"id": "S04",
|
||||
"name": "Product Hunt",
|
||||
"url": "https://www.producthunt.com/",
|
||||
"role": "discovery",
|
||||
"status": "targeted",
|
||||
"hosts": [
|
||||
"www.producthunt.com",
|
||||
"producthunt.com"
|
||||
],
|
||||
"initialAccess": "官网可读取",
|
||||
"boundary": "2026与2025年度档案各登记首个公开响应19条,共38条候选/推广;2025另有一个仅图片位置未解析。已逐条保留关联、范围外与年份待核状态,未穷尽两年档案。",
|
||||
"nextCheck": "继续补两年其余分页/日期、仅图片位置及18条年份待核候选;保留Pazi日期冲突,核清品牌与主体,避免转移历史业绩。",
|
||||
"limitation": "上线时间不等于成立时间",
|
||||
"accessRecheckedAt": "2026-10-30"
|
||||
},
|
||||
{
|
||||
"id": "S05",
|
||||
"name": "Sacra",
|
||||
"url": "https://sacra.com/",
|
||||
"role": "estimation",
|
||||
"status": "targeted",
|
||||
"hosts": [
|
||||
"sacra.com"
|
||||
],
|
||||
"initialAccess": "官网可读取",
|
||||
"boundary": "已用于定向估算及日期口径交叉核查;无全站公司名录读取台账。",
|
||||
"nextCheck": "保留估算与公司披露差异,核实历史截至日。",
|
||||
"limitation": "部分付费;不能把估算当审计数"
|
||||
},
|
||||
{
|
||||
"id": "S06",
|
||||
"name": "Bessemer",
|
||||
"url": "https://www.bvp.com/atlas/the-state-of-ai-2025",
|
||||
"role": "context",
|
||||
"status": "context",
|
||||
"hosts": [
|
||||
"www.bvp.com",
|
||||
"bvp.com"
|
||||
],
|
||||
"initialAccess": "报告页面可读取",
|
||||
"boundary": "主动选取20家高增长AI企业,含组合内外公司;非随机普查;已核方法与增长/毛利基准段;未取得20家逐公司底表。仅背景基准,不构成两年新公司名录。",
|
||||
"nextCheck": "高增长选样和投资机构利益关系;不能把头部样本均值当各领域平均或新成立公司总体;需要公开可核底表时另补,不把缺项当已完成。",
|
||||
"limitation": "投资机构选样偏差",
|
||||
"accessRecheckedAt": "2026-10-30",
|
||||
"methodology": {
|
||||
"sample": "主动选取20家高增长AI企业,含组合内外公司;非随机普查",
|
||||
"unit": "企业增长与毛利基准,按商业化后的第几年比较",
|
||||
"period": "2025-08-13报告;商业化年数不等法律成立年",
|
||||
"access": "已核方法与增长/毛利基准段;未取得20家逐公司底表",
|
||||
"use": "用于提出留存、毛利、资本效率假设及分类线索",
|
||||
"limit": "高增长选样和投资机构利益关系;不能把头部样本均值当各领域平均或新成立公司总体",
|
||||
"evidenceIds": [
|
||||
"CTX-BVP"
|
||||
],
|
||||
"checkedAt": "2026-10-30"
|
||||
}
|
||||
},
|
||||
{
|
||||
"id": "S07",
|
||||
"name": "Menlo Ventures",
|
||||
"url": "https://menlovc.com/perspective/2025-the-state-of-generative-ai-in-the-enterprise/",
|
||||
"role": "context",
|
||||
"status": "context",
|
||||
"hosts": [
|
||||
"menlovc.com",
|
||||
"www.menlovc.com"
|
||||
],
|
||||
"initialAccess": "报告页面可读取",
|
||||
"boundary": "495名美国企业AI采购/开发决策者,企业已主动使用AI;已核公开方法、范围及限制;受访个体与公司估算底表未取得。仅背景基准,不构成两年新公司名录。",
|
||||
"nextCheck": "仅美国企业;排除芯片、推理/模型服务及既有软件内嵌AI功能,不能与包含这些项目的总量直接比较或分摊为单家公司ARR;需要公开可核底表时另补,不把缺项当已完成。",
|
||||
"limitation": "口径与样本需查看方法说明",
|
||||
"accessRecheckedAt": "2026-10-30",
|
||||
"methodology": {
|
||||
"sample": "495名美国企业AI采购/开发决策者,企业已主动使用AI",
|
||||
"unit": "采购调查与自下而上的市场支出估算,非公司逐项ARR",
|
||||
"period": "2025-11-07至11-25调查,市场判断截至2025-12",
|
||||
"access": "已核公开方法、范围及限制;受访个体与公司估算底表未取得",
|
||||
"use": "用于买家、采购方式和任务方向假设",
|
||||
"limit": "仅美国企业;排除芯片、推理/模型服务及既有软件内嵌AI功能,不能与包含这些项目的总量直接比较或分摊为单家公司ARR",
|
||||
"evidenceIds": [
|
||||
"CTX-MENLO"
|
||||
],
|
||||
"checkedAt": "2026-10-30"
|
||||
}
|
||||
},
|
||||
{
|
||||
"id": "S08",
|
||||
"name": "Stripe",
|
||||
"url": "https://stripe.com/annual-updates/2025",
|
||||
"role": "context",
|
||||
"status": "context",
|
||||
"hosts": [
|
||||
"stripe.com",
|
||||
"www.stripe.com",
|
||||
"assets.stripeassets.com"
|
||||
],
|
||||
"initialAccess": "年度信可读取",
|
||||
"boundary": "2025年开始使用Stripe的商户分组,另有Atlas注册企业分组;已读并视觉核对PDF第1、3页;未取得商户明细与完整分组计算底表。仅背景基准,不构成两年新公司名录。",
|
||||
"nextCheck": "开始使用平台不等成立年,也非AI公司专属样本;交易量不等Stripe收入,门槛数量翻倍不等ARR均值翻倍;不与TrustMRR公开者样本混算;需要公开可核底表时另补,不把缺项当已完成。",
|
||||
"limitation": "平台样本不能代表全部AI公司",
|
||||
"accessRecheckedAt": "2026-10-30",
|
||||
"methodology": {
|
||||
"sample": "2025年开始使用Stripe的商户分组,另有Atlas注册企业分组",
|
||||
"unit": "平台交易量、商户增长及达到收入门槛的数量;分母不同",
|
||||
"period": "2025年度;2026-02-24年度信",
|
||||
"access": "已读并视觉核对PDF第1、3页;未取得商户明细与完整分组计算底表",
|
||||
"use": "用于支付、全球市场及首次收费速度假设",
|
||||
"limit": "开始使用平台不等成立年,也非AI公司专属样本;交易量不等Stripe收入,门槛数量翻倍不等ARR均值翻倍;不与TrustMRR公开者样本混算",
|
||||
"evidenceIds": [
|
||||
"CTX-STRIPE"
|
||||
],
|
||||
"checkedAt": "2026-10-30"
|
||||
}
|
||||
},
|
||||
{
|
||||
"id": "S09",
|
||||
"name": "SaaS Capital",
|
||||
"url": "https://www.saas-capital.com/research/",
|
||||
"role": "context",
|
||||
"status": "context",
|
||||
"hosts": [
|
||||
"www.saas-capital.com",
|
||||
"saas-capital.com"
|
||||
],
|
||||
"initialAccess": "研究页可读取",
|
||||
"boundary": "第15次年度调查,超过1000家私营B2B SaaS公司;仅读公开摘要;完整下载需填写表单,未提交表单或取得完整底表。仅背景基准,不构成两年新公司名录。",
|
||||
"nextCheck": "样本不是两年新AI公司;增长率中位数不能当ARR中位数;完整抽样与指标细节仍缺,不外推至硬件、项目服务或所有AI模式;需要公开可核底表时另补,不把缺项当已完成。",
|
||||
"limitation": "不直接套用硬件与项目制业务",
|
||||
"accessRecheckedAt": "2026-10-30",
|
||||
"methodology": {
|
||||
"sample": "第15次年度调查,超过1000家私营B2B SaaS公司",
|
||||
"unit": "2025年度增长率与留存等公开摘要;非ARR金额分布",
|
||||
"period": "2026报告回顾2025增长;不把报告年当公司成立年",
|
||||
"access": "仅读公开摘要;完整下载需填写表单,未提交表单或取得完整底表",
|
||||
"use": "用于B2B订阅软件的规模、融资和留存分层假设",
|
||||
"limit": "样本不是两年新AI公司;增长率中位数不能当ARR中位数;完整抽样与指标细节仍缺,不外推至硬件、项目服务或所有AI模式",
|
||||
"evidenceIds": [
|
||||
"CTX-SAASCAP"
|
||||
],
|
||||
"checkedAt": "2026-10-30"
|
||||
}
|
||||
},
|
||||
{
|
||||
"id": "S10",
|
||||
"name": "机器之心",
|
||||
"url": "https://www.jiqizhixin.com/",
|
||||
"role": "reporting",
|
||||
"status": "targeted",
|
||||
"hosts": [
|
||||
"www.jiqizhixin.com",
|
||||
"jiqizhixin.com",
|
||||
"pro.jiqizhixin.com"
|
||||
],
|
||||
"initialAccess": "首页可读取",
|
||||
"boundary": "已登记4篇定向检索线索;三篇直达仅登录外壳,一篇读取失败。2项经公开原始资料补证关联公司,1项范围外,1项仍待核;未阅读全文或穷尽两年档案。",
|
||||
"nextCheck": "补公开可读文章、2025档案及Utopai原始成立材料;受限正文留缺,不以搜索摘录代全文。",
|
||||
"limitation": "全文访问受限;仅作发现时明确标识,技术和财务另追原始资料",
|
||||
"accessRecheckedAt": "2026-10-30"
|
||||
},
|
||||
{
|
||||
"id": "S11",
|
||||
"name": "36氪",
|
||||
"url": "https://www.36kr.com/",
|
||||
"role": "reporting",
|
||||
"status": "access-limited",
|
||||
"hosts": [
|
||||
"www.36kr.com",
|
||||
"36kr.com"
|
||||
],
|
||||
"initialAccess": "安全检测,内容未核验",
|
||||
"boundary": "2026-10-30仍返回安全检测页面,未把首页作为已读文章。",
|
||||
"nextCheck": "使用可公开读取的具体文章或其他原始来源;不绕过访问保护。",
|
||||
"limitation": "暂不作为已读取内容证据",
|
||||
"accessRecheckedAt": "2026-10-30"
|
||||
},
|
||||
{
|
||||
"id": "S12",
|
||||
"name": "公司官网与官方博客",
|
||||
"url": null,
|
||||
"role": "primary",
|
||||
"status": "per-company",
|
||||
"hosts": [],
|
||||
"initialAccess": "按公司逐一核验",
|
||||
"boundary": "公司官网和官方材料逐条绑定证据;不是可预先列尽的全站候选池。",
|
||||
"nextCheck": "核定价、主体、交付与收入定义,自述与独立验证分开。",
|
||||
"limitation": "自述不等于独立审计"
|
||||
},
|
||||
{
|
||||
"id": "S13",
|
||||
"name": "TrustMRR",
|
||||
"url": "https://trustmrr.com/",
|
||||
"role": "platform",
|
||||
"status": "targeted",
|
||||
"hosts": [
|
||||
"trustmrr.com"
|
||||
],
|
||||
"initialAccess": "见具体证据访问记录",
|
||||
"boundary": "已采集产品与支付快照;公开者自选,不是全部商户或独立财务审计。",
|
||||
"nextCheck": "核同步日、连接失效、支付平台公式及产品/法人归属。",
|
||||
"limitation": "来源可读不等于声明已独立验证。"
|
||||
},
|
||||
{
|
||||
"id": "S14",
|
||||
"name": "a16z Speedrun",
|
||||
"url": "https://speedrun.a16z.com/",
|
||||
"role": "investor",
|
||||
"status": "targeted",
|
||||
"hosts": [
|
||||
"speedrun.a16z.com"
|
||||
],
|
||||
"initialAccess": "见具体证据访问记录",
|
||||
"boundary": "投资机构公司介绍定向样本,收入数字仍多来自公司。",
|
||||
"nextCheck": "核币种、相对时间及管线/履历;未读取的页面保持缺项。",
|
||||
"limitation": "来源可读不等于声明已独立验证。"
|
||||
},
|
||||
{
|
||||
"id": "S15",
|
||||
"name": "Artificial Analysis",
|
||||
"url": "https://artificialanalysis.ai/",
|
||||
"role": "technical",
|
||||
"status": "targeted",
|
||||
"hosts": [
|
||||
"artificialanalysis.ai"
|
||||
],
|
||||
"initialAccess": "见具体证据访问记录",
|
||||
"boundary": "第三方已发表技术评测,仅覆盖所列模型版本和任务。",
|
||||
"nextCheck": "核榜单版本、测评方法及置信区间,不将排名变成企业整体能力。",
|
||||
"limitation": "来源可读不等于声明已独立验证。"
|
||||
},
|
||||
{
|
||||
"id": "S16",
|
||||
"name": "其他公开补充资料",
|
||||
"url": null,
|
||||
"role": "supplement",
|
||||
"status": "targeted",
|
||||
"hosts": [],
|
||||
"initialAccess": "见具体证据访问记录",
|
||||
"boundary": "未归入上述来源的公开材料按原始证据链接逐条保留;不视为新增已批准的完整候选池。",
|
||||
"nextCheck": "逐项核来源归属、可靠性及可读正文,不能将搜索摘要当全文。",
|
||||
"limitation": "来源可读不等于声明已独立验证。"
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -1,5 +1,5 @@
|
||||
{
|
||||
"sourceVersion": "2026-10-30-context-1",
|
||||
"sourceVersion": "2026-10-30-depth-4",
|
||||
"asOf": "2026-10-30",
|
||||
"metric": "platform-mrr-usd",
|
||||
"sampleUnit": "product-or-business",
|
||||
|
||||
@@ -9,140 +9,10 @@ from urllib.parse import urlsplit
|
||||
ROOT = Path(__file__).resolve().parents[1]
|
||||
DATA = json.loads((ROOT / 'content/research/ai-companies.seed.json').read_text())
|
||||
AUDIT = json.loads((ROOT / 'content/research/ai-companies.coverage.json').read_text())
|
||||
SOURCES = json.loads((ROOT / 'content/research/ai-companies.sources.json').read_text())
|
||||
TARGET = ROOT / 'content/docs/ai-company-research/02-coverage-and-gaps.md'
|
||||
BASE = '/docs/other-research/ai-company-research/overview'
|
||||
|
||||
|
||||
|
||||
def source_register():
|
||||
sources = SOURCES['sources']
|
||||
ids = {s['id'] for s in sources}
|
||||
assert len(ids) == len(sources) and ids == {f'S{i:02}' for i in range(1, 17)}
|
||||
assert SOURCES['scopeConfirmedAt'] <= DATA['asOf']
|
||||
host_map = {}
|
||||
for source in sources:
|
||||
assert source['status'] in {'candidate-audit', 'targeted', 'pending', 'context', 'access-limited', 'per-company'}
|
||||
assert source['boundary'] and source['nextCheck']
|
||||
if source['url']:
|
||||
assert urlsplit(source['url']).scheme in {'http', 'https'} and urlsplit(source['url']).netloc
|
||||
for host in source['hosts']:
|
||||
assert host not in host_map, f'Duplicate source host: {host}'
|
||||
host_map[host] = source['id']
|
||||
assigned = {key: [] for key in ids}
|
||||
for evidence in DATA['evidence']:
|
||||
owner = host_map.get(urlsplit(evidence['url']).netloc)
|
||||
if owner is None:
|
||||
owner = 'S12' if any(word in evidence['kind'] for word in ('官方', '公司自述', '公司披露')) else 'S16'
|
||||
assigned[owner].append(evidence)
|
||||
assert sum(len(v) for v in assigned.values()) == len(DATA['evidence'])
|
||||
statuses = {'candidate-audit': '候选池逐条已读', 'targeted': '定向使用,未穷尽', 'pending': '候选台账待建',
|
||||
'context': '背景研究', 'access-limited': '访问受限', 'per-company': '随公司逐条核对'}
|
||||
lines = ['', '## 来源清单与验收边界', '', SOURCES['provenance'], '',
|
||||
'每条证据在下表只计入一个渠道:先按所列域名归属,再将类型明确标为官方/公司自述/公司披露的剩余项计入S12,其余计入S16。公司可跨渠道出现,所以公司数不可跨行相加。零条证据表示尚未进入研究表,不表示该来源没有相关公司。背景报告不承担公司发现全集的角色。', '',
|
||||
'| 来源 | 当前状态 | 证据 / 公司 / 观测数 | 已核对范围 | 剩余核查 |', '| --- | --- | --- | --- | --- |']
|
||||
for source in sources:
|
||||
evidence = assigned[source['id']]
|
||||
evidence_ids = {e['id'] for e in evidence}
|
||||
company_ids = {e['companyId'] for e in evidence if e['companyId']}
|
||||
observations = sum(o['evidence'] in evidence_ids for o in DATA['observations'])
|
||||
name = f"[{source['name']}]({source['url']})" if source['url'] else source['name']
|
||||
lines.append(f"| {source['id']} {name} | {statuses[source['status']]} | {len(evidence)} / {len(company_ids)} / {observations} | {source['boundary']} | {source['nextCheck']} |")
|
||||
lines += ['', 'Dealroom、Product Hunt、机器之心与36氪入口于2026-10-30重新访问。官网首页可读不证明已取得完整筛选结果;安全检测页面不作为文章内容。候选池之外的来源边界尚需建立可回查条目,完成前不宣布来源清单已全部覆盖。', '']
|
||||
return lines
|
||||
|
||||
|
||||
|
||||
def context_methods():
|
||||
evidence = {e['id']: e for e in DATA['evidence']}
|
||||
rows = [s for s in SOURCES['sources'] if s.get('methodology')]
|
||||
assert {s['id'] for s in rows} == {'S06', 'S07', 'S08', 'S09'}
|
||||
lines = ['', '## 背景基准适用性与缺项', '',
|
||||
'以下核对背景资料的方法及适用范围,不是公司名录的完整覆盖。原始方法记录与全局核查随研究版本进入同一数据库;没有把行业汇总值新增为任何公司的收入观测。', '',
|
||||
'| 来源与证据 | 样本与统计单位 | 时间 | 本次读取范围 | 可用于什么 | 主要限制 |',
|
||||
'| --- | --- | --- | --- | --- | --- |']
|
||||
for source in rows:
|
||||
m = source['methodology']
|
||||
assert m['checkedAt'] <= DATA['asOf']
|
||||
assert all(m.get(key) for key in ('sample', 'unit', 'period', 'access', 'use', 'limit', 'evidenceIds'))
|
||||
assert all(eid in evidence and evidence[eid]['companyId'] is None for eid in m['evidenceIds'])
|
||||
assert not any(o['evidence'] in m['evidenceIds'] for o in DATA['observations'])
|
||||
proof = '、'.join(f"[{eid}]({evidence[eid]['url']})" for eid in m['evidenceIds'])
|
||||
lines.append(f"| {source['id']} {source['name']}:{proof} | {m['sample']};{m['unit']} | {m['period']} | {m['access']} | {m['use']} | {m['limit']} |")
|
||||
lines += ['', '本表的应用解释属于研究判断。选样、分母、时间或指标不同会造成表观差异;这些差异不单独证明财务造假,也不能作为给未知公司填补收入的依据。', '']
|
||||
return lines
|
||||
|
||||
|
||||
def candidate_register():
|
||||
batches = DATA.get('candidateBatches', [])
|
||||
companies = {c['id']: c for c in DATA['companies']}
|
||||
categories = {c['id']: c['name'] for c in DATA['categories']}
|
||||
known_sources = {s['id'] for s in SOURCES['sources']}
|
||||
evidence = {e['id']: e for e in DATA['evidence']}
|
||||
assert len({b['id'] for b in batches}) == len(batches)
|
||||
all_ids = [r['id'] for b in batches for r in b['records']]
|
||||
assert len(set(all_ids)) == len(all_ids)
|
||||
lines = []
|
||||
statuses = {'pending-year': '成立年待核', 'linked': '已关联公司',
|
||||
'existing-outside-cohort': '已有关联,年份范围外',
|
||||
'outside-cohort': '成立年范围外,不新增公司', 'promotion': '推广活动,非公司新增'}
|
||||
for batch in batches:
|
||||
assert batch['sourceId'] in known_sources
|
||||
assert batch['accessedAt'] <= DATA['asOf']
|
||||
assert any(e['url'] == batch['url'] for e in DATA['evidence'])
|
||||
rows = batch['records']
|
||||
counts = Counter(r['status'] for r in rows)
|
||||
assert sum(counts.values()) == len(rows)
|
||||
lines += ['', f"## {batch['sourceId']} 候选核对({batch['id']})", '',
|
||||
f"[发现页面]({batch['url']}),读取于{batch['accessedAt']}。{batch['scope']}", '',
|
||||
f"本批{len(rows)}条:{counts['linked']}条关联公司、{counts['existing-outside-cohort']}条关联范围外对照、{counts['outside-cohort']}条范围外不新增公司、{counts['pending-year']}条成立年待核、{counts['promotion']}条推广活动。完整来源覆盖标记:{'已完成' if batch['complete'] else '未完成'}。主营或产品任务的初分类不计入主公司表数量,只有已关联的公司记录进入对应公司明细。候选与缺项随研究版本保存在文档站同一SQLite的研究元数据中。", '',
|
||||
'| 发现条目 | 主营或产品任务初分 | 核对状态 | 关联公司 | 核对证据 | 限制 |', '| --- | --- | --- | --- | --- | --- |']
|
||||
for row in rows:
|
||||
assert row['categoryId'] in categories
|
||||
assert row['status'] in statuses
|
||||
assert all(eid in evidence for eid in row.get('evidenceIds', []))
|
||||
if row['status'] == 'outside-cohort':
|
||||
assert row.get('evidenceIds') and not row.get('companyId')
|
||||
name = f"[{row['name']}]({row['url']})" if row['url'] else row['name']
|
||||
company = '—'
|
||||
if row.get('companyId'):
|
||||
assert row['companyId'] in companies
|
||||
c = companies[row['companyId']]
|
||||
company = f"[{c['name']}]({BASE}?company={c['id']}#research-company-detail)"
|
||||
proof = '、'.join(f"[{eid}]({evidence[eid]['url']})" for eid in row.get('evidenceIds', [])) or '成立证据待补,产品页读取状态见候选记录'
|
||||
category = f"[{categories[row['categoryId']]}]({BASE}?category={row['categoryId']})"
|
||||
lines.append(f"| {name} | {category} | {statuses[row['status']]} | {company} | {proof} | {row['note']} |")
|
||||
if batch['sourceId'] == 'S04':
|
||||
lines += ['', '产品页可读只表示有可访问的资料;本批未将所有产品页完成公司、技术或财务深查。既有直接HTTP采集返回403,当前采用可读的公开页面响应,不声称取得底层全量列表;后续公开档案与未读页面继续保留缺项。', '']
|
||||
else:
|
||||
lines += ['', '发现条目和可读正文分开记录;登录外壳、读取失败或搜索摘录不充当已阅读全文。关联公司以列出的原始材料补证,仍保留技术、主体与收入未核事项。', '']
|
||||
return lines
|
||||
|
||||
|
||||
def directory_rechecks():
|
||||
rows = DATA.get('directoryRechecks', [])
|
||||
if not rows:
|
||||
return []
|
||||
original = {row['ycId']: row for row in AUDIT['records']}
|
||||
companies = {c['id']: c for c in DATA['companies']}
|
||||
evidence = {e['id']: e for e in DATA['evidence']}
|
||||
assert len({row['ycId'] for row in rows}) == len(rows)
|
||||
lines = ['', '## 原候选池的后续复核', '',
|
||||
'原始1,428条读取快照与初筛计数保持不变;下表记录当时未入表、后续补足证据后进入公司表的项目。初筛未通过不是永久排除。后续入表不回写为当时已匹配,也不重复计入928条原始新增目录项。', '',
|
||||
'| 原候选 | 原始状态 | 后续公司记录 | 复核证据 | 处理与限制 |', '| --- | --- | --- | --- | --- |']
|
||||
for row in rows:
|
||||
baseline = original[row['ycId']]
|
||||
assert baseline['status'] == row['originalStatus']
|
||||
assert row['reviewedAt'] <= DATA['asOf'] and row['reason']
|
||||
assert row['originalStatus'] in {'ai-unclear', 'year-outside-or-missing', 'date-conflict'}
|
||||
company = companies[row['companyId']]
|
||||
assert row['evidenceIds'] and all(eid in evidence for eid in row['evidenceIds'])
|
||||
proof = '、'.join(f"[{eid}]({evidence[eid]['url']})" for eid in row['evidenceIds'])
|
||||
lines.append(f"| [{baseline['name']} · YC{row['ycId']}]({baseline['source']}) | {row['originalStatus']} | [{company['name']}]({BASE}?company={company['id']}#research-company-detail) | {proof} | {row['reviewedAt']}:{row['reason']} |")
|
||||
lines += ['', f"已记录{len(rows)}条后续复核入表;其余未入表候选仍按原状态保留缺项,不能把这一批复核视为完成全部模糊项。", '']
|
||||
return lines
|
||||
|
||||
|
||||
def render():
|
||||
cov = DATA['coverage']
|
||||
companies = DATA['companies']
|
||||
@@ -215,10 +85,6 @@ def render():
|
||||
lines.append(f"| {name} | {len(entries)} | {len({e['url'] for e in entries})} | {note} |")
|
||||
others = [e for e in DATA['evidence'] if urlsplit(e['url']).netloc not in included]
|
||||
lines.append(f"| 其他官网、评测及公开资料 | {len(others)} | {len({e['url'] for e in others})} | 按每条来源限制理解,不能统一当作独立证据 |")
|
||||
lines += directory_rechecks()
|
||||
lines += source_register()
|
||||
lines += context_methods()
|
||||
lines += candidate_register()
|
||||
lines += ['', '## 尚未满足的研究条件', '',
|
||||
'行业ARR比较仍缺统一业务截止日、币种、经常性定义和业务边界。现有平台MRR可描述已采集产品,不足以代表全部新公司。技术评测只覆盖所列版本与任务,不宜跨领域汇总为统一强弱分数。', '',
|
||||
'下一轮优先补收入线索的日期及合同定义、非YC和非英文来源、规则初分的人工复核,以及停止服务或被收购案例。这样能减少“只见赢家”和“只见融资公司”的偏差。公开来源池之外的未披露公司仍无法证明已被穷尽。', '',
|
||||
|
||||
Reference in New Issue
Block a user