mcpField
O
osint

osint

github.com/smixs生产力15044 次安装33 周前更新
代码仓库

关于 osint

osint 是用于系统化收集个人公开及内部情报的研究技能,面向需要整理人物资料的 Agent。它按阶段组织搜索、来源核验、社交平台提取与交叉分析,并可并行分配子任务。

主要功能

  1. 01分阶段执行人物研究
  2. 02并行调用多种搜索与研究工具
  3. 03提取社交平台资料
  4. 04交叉核验并整理档案
  5. 05按可用凭据检查工具

适用场景

  1. 01从姓名或账号开始收集线索
  2. 02补充现有档案中的社交资料
  3. 03核验来源并评估档案完整度

MCP 相关

文档列出 Bright Data MCP endpoint 及 mcporter 配置变量,并将 Bright Data 用于抓取和搜索任务。

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/smixs/osint-skill --skill osint

安装后在 Claude Code 中输入/osint确认已加载。

包含的文件

除 SKILL.md 外,安装时一起下载的参考资料和脚本。

assets/
dossier-template.md
references/
content-extraction.md
platforms.md
psychoprofile.md
tools.md
scripts/
apify.sh
brightdata.sh
diagnose.sh
exa.sh
first-volley.sh
jina.sh
mcp-client.py
merge-volley.sh
package.json
parallel.sh
perplexity.sh
run_actor.js
run-actor.sh
tavily.sh

详细介绍

OSINT 技能 v3.2

对个人进行系统化情报收集。从姓名或账号名开始,最终形成带有心理画像、职业脉络和切入点的评分档案。

阶段路由

根据上下文确定入口:

  • 新的姓名/账号名/URL、“пробей”、“find out about” → 阶段 0(完整流程)
  • 在现有档案中“添加 LinkedIn/Instagram 数据” → 阶段 2(提取)
  • 根据现有数据“建立心理画像” → 阶段 4
  • 为现有档案“评估完整度” → 阶段 5
  • “重新格式化”或“呈现”调查结果 → 阶段 6

默认(完整调查请求):阶段 0 → 1 → 1.5 → 2 → 3 → 4 → 5 → 6。

环境

所有 API 密钥均通过环境变量提供。切勿将令牌硬编码。

  • PERPLEXITY_API_KEY — Perplexity Sonar(快速回答 + 深度研究)
  • EXA_API_KEY — Exa AI(语义搜索、公司/人员研究、深度研究)
  • TAVILY_API_KEY — Tavily(针对 Agent 优化的搜索 + 提取,基础版 $0.005/次请求)
  • APIFY_API_TOKEN — Apify 抓取(LinkedIn、Instagram、Facebook)
  • JINA_API_KEY — Jina 阅读器/搜索/深度搜索
  • PARALLEL_API_KEY — Parallel AI 搜索
  • BRIGHTDATA_MCP_URL — Bright Data MCP 端点(包含令牌的完整 URL)
  • MCPORTER_CONFIG — mcporter 配置路径

脚本

在技能目录中运行:bash scripts/<name>.sh。 每个脚本都会验证环境变量;若出错,会退出并提供说明性错误信息和获取密钥的 URL。

搜索与研究:

  • diagnose.sh — 首先运行。生成所有工具的能力图谱。
  • perplexity.sh — search <query> | sonar <query>(AI 回答)| deep <query>(深度研究)
  • tavily.sh — search <query>(基础版 $0.005)| deep <query>(高级版)| extract <url>
  • exa.sh — search <query> | company <name> | people <name> | crawl <url> | deep <prompt>
  • first-volley.sh "Name" "context" — 并行搜索,同时调用所有引擎。
  • merge-volley.sh <outdir> — 去重并合并 first-volley 结果。

抓取:

  • apify.sh — linkedin <url> | instagram <handle> | run | results | store-search
  • run-actor.sh — 通用 Apify 运行器(55+ 个 Actor)。 内嵌自 apify/agent-skills。 快速回答:bash scripts/run-actor.sh "actor/id" '{"input":"json"}' 导出:bash scripts/run-actor.sh "actor/id" '{"input":"json"}' --output /tmp/out.csv
  • jina.sh — read <url> | search <query> | deepsearch <query>
  • parallel.sh — search <query> | extract <url>
  • brightdata.sh — scrape <url> | scrape-batch | search | search-geo <cc> | search-yandex

研究升级流程

原则:从低成本到高成本,从快速到深入。

级别 1:快速回答(数秒,约 $0.00)

始终从这里开始。先获取快速背景信息,再深入调查。 同时运行所有工具:

# Perplexity Sonar — AI ответ с цитатами
bash skills/osint/scripts/perplexity.sh sonar "Who is <Name>, <context>"
# Brave Search — классический поиск
web_search "<Name> <company> <role>"
# Tavily — agent-optimized search с AI answer
bash skills/osint/scripts/tavily.sh search "<Name> <context>"
# Exa — семантический поиск + company/people research
bash skills/osint/scripts/exa.sh search "<Name> <context>"
bash skills/osint/scripts/exa.sh people "<Name>"

→ 获取:快速事实、链接、背景信息。 → 决策:够了吗?→ 阶段 6。需要更多?→ 级别 2。

级别 2:来源核验(数秒至数分钟,约 $0.01)

通过 fetch 核验级别 1 中的来源:

# Читай найденные URL
web_fetch "<url_from_perplexity>"
bash skills/osint/scripts/jina.sh read "<url>"
bash skills/osint/scripts/parallel.sh extract "<url>"

→ 获取:已确认的事实、交叉引用。 → 是否吻合?→ 补充档案。需要深入?→ 级别 3。

级别 3:社交媒体深度调查(约 $0.01–0.10)

接入抓取工具以调查社交媒体:

# LinkedIn
bash skills/osint/scripts/apify.sh linkedin "<url>"
# Instagram
bash skills/osint/scripts/apify.sh instagram "<handle>"
# Facebook, заблокированные сайты
bash skills/osint/scripts/brightdata.sh scrape "<url>"

→ 获取:结构化档案、照片、关系。

级别 4:深度研究(约 $0.05–0.50)

如果需要进一步深入调查,请编写详尽的提示词并提交深度研究。 同时运行所有工具(每个耗时 30–60 秒):

# Perplexity Deep Research
bash skills/osint/scripts/perplexity.sh deep "<detailed research prompt about Name>"
# Exa Deep Research
bash skills/osint/scripts/exa.sh deep "<detailed prompt>"
# Parallel AI Deep Search
bash skills/osint/scripts/parallel.sh search "<detailed query>"
# Jina DeepSearch
bash skills/osint/scripts/jina.sh deepsearch "<query>"

规则: 级别 4 的提示词必须详尽——纳入级别 1–3 中已掌握的所有信息,让深度研究跳过基础事实,继续深入调查。

蜂群模式(默认)

OSINT 研究以 Sonnet 上的并行子 Agent 蜂群方式运行。 主 Agent 负责协调——它不会亲自执行抓取。

工作原理:
  1. 主 Agent 运行 Phase 0(工具检查)和 Phase 1(种子信息收集),获取初始上下文
  2. 主 Agent 通过 sessions_spawn 启动 3-5 个子 Agent,使用 model: sonnet、mode: run
  3. 每个子 Agent 获得一项聚焦任务和 Phase 1 中已知的所有数据
  4. 子 Agent 返回结果 → 主 Agent 将其整合到档案中
任务拆分模式:
  • Agent 1:YouTube/内容 — 通过 Apify 提取文字稿(不要用 yt-dlp,也不要用 BrightData — YouTube 会屏蔽它们)。收集 3-5 个视频、语言风格和主题。频道数据使用 streamers/youtube-channel-scraper
  • Agent 2:Facebook 深度调查 — 使用 BrightData 抓取:个人资料、帖子、简介、照片、好友(使用 m.facebook.com 获取更多数据)。对于公共主页:使用 apify/facebook-pages-scraper + apify/facebook-page-contact-information
  • Agent 3:社交平台 — Instagram(Apify + 标签/评论抓取工具)、DOU、公司网站、LinkedIn(BrightData)。补充联系人信息:对找到的网站使用 vdrmota/contact-info-scraper
  • Agent 4:TikTok + 区域信息 — TikTok 个人资料/视频(clockworks/tiktok-profile-scraper)、本地登记信息、新闻报道、大学记录、Yandex 搜索、Google Maps(如果是企业所有者,使用 compass/crawler-google-places)
  • Agent 5:深度研究 — Perplexity deep、Exa deep、Parallel deep(如有需要)
规则:
  • 始终向每个子 Agent 传递所有已知数据(姓名、URL、邮箱、电话号码、上下文)
  • 每个子 Agent 将结果保存到 /tmp/osint-<subject>-<task>.md
  • 主 Agent 等待所有结果返回,然后运行 Phase 3-6(交叉核查、心理画像、档案整理)
  • 预算:每个子 Agent ≤$0.15,整个 Agent 集群 ≤$0.50
  • YouTube 文字稿:使用 Apify Actor,不要使用 BrightData 或 yt-dlp(两者都会被 YouTube 屏蔽)
为什么要使用 Agent 集群:
  • 5 个 Agent × 5 分钟 = 总计 10 分钟(而顺序执行需要 30 分钟以上)
  • Sonnet 的成本是 Opus 的 1/5
  • 并行抓取可避免单个 IP 触发速率限制

Phase 0:工具自检

  1. 执行 bash skills/osint/scripts/diagnose.sh。
  2. 记录可用和缺失的工具。
  3. 检查内部工具:tg.py(Telegram 历史记录)、himalaya(电子邮件)、Vault 联系人。
  4. 如果 Bright Data 不可用 → Facebook 和 LinkedIn 深度抓取将受限。告知用户。
  5. 如果 Apify 不可用 → Instagram 和 LinkedIn 结构化数据将受限。
  6. 使用现有工具继续操作。

Phase 1:种子信息收集

始终先从 Level 1(快速解答)开始,再进行大规模抓取。

  1. 解析用户输入。提取标识信息:姓名、账号名、URL、公司、地点。
  2. Perplexity 快速检索:
    bash skills/osint/scripts/perplexity.sh search "Who is <Name>, <context>"
    
  3. 并行使用 Brave + Parallel:
    web_search "<Name> <company>"
    bash skills/osint/scripts/first-volley.sh "Full Name" "context"
    
  4. 检查 Perplexity 引用 — 获取并核实重要来源:
    web_fetch "<citation_url_1>"
    web_fetch "<citation_url_2>"
    
  5. 解析并合并:bash skills/osint/scripts/merge-volley.sh /tmp/osint-<timestamp>。
  6. 将所有标识信息收集到种子列表中。去重。
  7. 标记姓名冲突(常见姓名 → 通过公司/地点交叉核查)。
  8. **决策点:**上下文是否充足?→ 跳至 Phase 4。需要社交媒体信息?→ 进入 Phase 2。需要深入调查?→ Level 4(深度研究)。

**速率限制:**Brave 查询间隔 1 秒,Jina 调用间隔 2 秒。 不要在短时间内密集调用 API — 错开并行任务的启动时间。

Phase 1.5:内部情报

**对外搜索前,先检查我们已掌握的信息。**此阶段会挖掘可能包含宝贵信息的本地来源 — 以往对话、电子邮件、Vault 联系人。

Telegram 历史记录

如果 tg.py 可用(请在 Phase 0 中检查):

# Search by name/handle in Telegram
python3 skills/telegram/scripts/tg.py search "Name" 20
# If we have their username/id — read conversation history
python3 skills/telegram/scripts/tg.py history <username_or_id> 50

从 Telegram 历史记录中提取的内容:

  • 沟通风格(正式或非正式、语言、表情符号使用习惯)
  • 讨论的话题——他们关心什么、会提出什么需求
  • 回复模式——回复速度、活跃时段 → 时区
  • 分享的链接/文件——他们参与的项目
  • 他们如何称呼用户——双方的关系动态
  • 提及的同事、合作伙伴、竞争对手 → 社交关系图谱线索
  • 定价讨论、交易条款(如果是业务联系人)

⚠️ Telegram 历史记录属于 A 级情报——未经筛选、实时且真实。 其权重应高于经过筛选的 LinkedIn/Instagram 个人资料。 ⚠️ **隐私:**内部情报应保留在档案中。绝不要在公开内容中引用私信。

电子邮件历史记录

如果 himalaya 可用:

# Search emails by name or domain
~/.local/bin/himalaya search "from:[email protected] OR to:[email protected]" -f INBOX
# Or by name
~/.local/bin/himalaya search "Name Surname" -f INBOX
~/.local/bin/himalaya search "Name Surname" -f Sent

从电子邮件中提取的内容:

  • 与 Telegram 风格相比,正式的沟通风格如何(对比之处就是洞察)
  • 商业提案、发票 → 财务关系
  • 被抄送的人 → 组织关系图
  • 签名栏 → 职称、电话、公司、社交链接(通常比 LinkedIn 上的信息更丰富)
知识库 / CRM 检查
# Check if we already have a card
grep -rl "Name" vault/crm/ vault/contacts/ 2>/dev/null
# Check MOC indexes (adjust paths to your vault structure)
grep -i "name" vault/MOC/*.md 2>/dev/null

**如果存在知识库卡片:**读取卡片,记录 last_accessed、现有标签和以往互动。 不要重复创建——研究完成后,丰富现有卡片。

节点摄像头/位置(如果已配对设备)

如果要当面会面且节点可用,nodes camera_snap 可用于采集现场信息。 仅在获得用户明确许可后使用。

内部情报摘要

完成 Phase 1.5 后,你应了解:

  • 之前是否存在关系?(陌生/熟悉/关系密切的联系人)
  • 他们偏好哪种语言?
  • 他们的沟通风格是什么?
  • 是否存在现有业务背景?
  • 对话中有哪些社交关系图谱线索?

这些背景信息会影响 Phase 2 的优先事项——如果我们已从邮件中了解他们的职业经历, 则应将外部研究重点放在心理画像和社交媒体上。

Phase 2:平台信息提取

仅在需要 URL 模式或提取线索时,才读取 references/platforms.md。

工具优先级(主要工具 → 后备工具)。如果主要工具失败,立即切换。不要重试同一工具。

  • LinkedIn:apify.sh linkedin → brightdata.sh scrape → jina.sh read
  • Instagram:apify.sh instagram → brightdata.sh scrape
  • Instagram 深度分析:run-actor.sh "apify/instagram-tagged-scraper"(谁标记了他们)、apify/instagram-comment-scraper(情绪倾向)
  • Facebook 个人主页:brightdata.sh scrape → 无(只有 Bright Data 可用)
  • Facebook 公共主页/群组:run-actor.sh "apify/facebook-pages-scraper" → brightdata.sh scrape
  • TikTok:run-actor.sh "clockworks/tiktok-profile-scraper" → clockworks/tiktok-scraper(全面抓取)
  • TikTok 发现:run-actor.sh "clockworks/tiktok-user-search-scraper"(按关键词查找)
  • YouTube:run-actor.sh "streamers/youtube-channel-scraper" → jina.sh read → brightdata.sh scrape
  • Telegram 频道:web_fetch t.me/s/{channel} → jina.sh read
  • Twitter/X:python3 scripts/twitter.py tweet <url> → jina.sh read
  • Google 地图(商家):run-actor.sh "compass/crawler-google-places"
  • 联系人信息补充:run-actor.sh "vdrmota/contact-info-scraper"(从任意 URL 提取电子邮件/电话号码)
  • 任意网站:jina.sh read → brightdata.sh scrape

run-actor.sh = 通用 Apify 执行器(内置 55+ 个 Actor)。完整 Actor 目录请参阅 references/tools.md。

仅在排查工具故障时,才读取 references/tools.md。

⚠️ 内容平台规则(关键)

如果找到 YouTube、播客、博客或会议演讲内容,请立即阅读 references/content-extraction.md,并当场提取 3–5 项内容。

不要只记录 URL。现在就提取字幕/文本。 一段 20 分钟的 YouTube 视频所揭示的一个人的信息,比他们整个 LinkedIn 个人资料还多。 内容平台是心理画像的首要信息来源——跳过这些内容 = 档案内容浅薄。

了解 OpSec 的目标对象

如果初步搜索发现某人的线上足迹异常少,而按理说其应该留有足迹:

  1. Wayback Machine: web_fetch "https://web.archive.org/web/2024*/target-url" — 已删除的个人资料、旧简介
  2. Google Cache: web_search "cache:domain.com/path" — 最近移除的页面
  3. Yandex Cache: brightdata.sh search-yandex "Name" — Yandex 对独联体地区的索引更深入,缓存时间也更长
  4. 用户名变体: 尝试不同的转写方式(Иванов → ivanov、ivanoff)、在末尾添加出生年份、使用公司缩写
  5. 反向图片搜索: 如果找到照片,检查其他个人资料是否使用了同一头像
  6. 会议档案: 个人资料删除后,演讲者简介通常仍会保留

第 3 阶段:交叉比对与置信度评分

步骤 1:事实表

将每条说法列为一行:事实 | 来源 1 | 来源 2 | 等级。

步骤 2:交叉核实关键事实

对于每项关键事实(雇主、职位、地点、教育经历):

  • 比较 LinkedIn 头衔、Telegram 签名、电子邮件签名与公司网站
  • 如果 2 个或更多来源相符 → A 级
  • 如果只有 1 个来源 → B 级
  • 如果是推断得出(根据消息推测时区、地理标记)→ C 级
  • 如果是单条未经核实的提及 → D 级
步骤 3:解决矛盾

如果 LinkedIn 上写着“CEO”,但公司网站写着“联合创始人”——明确标出。附上两个说法及其来源。不要悄悄择一采用。

步骤 4:检查重名情况

如果姓名常见,至少核实 2 项事实(公司 + 城市,或照片 + 公司)以确认指向同一人。如果无法确定,应拆分为不同实体。

置信度等级:
  • A(已确认):2 个或更多独立来源,或官方/已验证的个人资料,或直接的 Telegram/电子邮件对话
  • B(较可能):1 个可信来源(LinkedIn、官方媒体、公司网站)
  • C(推断):间接证据(照片地理标记、根据消息模式推测时区、社交关系)
  • D(未核实):单条提及,可能有误

内部情报(第 1.5 阶段)计为独立来源。

第 4 阶段:心理画像

仅在此阶段阅读 references/psychoprofile.md。

  1. 收集文本样本:帖子、简介、访谈、频道内容、Telegram 消息(信号最强)。
  2. 根据有引用的行为证据评估各个维度的 MBTI,并给出置信度(高/中/低)。
  3. 量化写作风格:句子长度、表情符号密度、自我指涉率。
  4. 比较正式场合(LinkedIn/电子邮件)与非正式场合(Telegram/Instagram)的表达方式——二者的差异能揭示真实的个性。
  5. 根据行为而非自我陈述推断价值观。
  6. 仅当出生日期已确认(A 级或 B 级)时,才判断星座。

第 5 阶段:完整性评估(递归)

维度 1:数据覆盖度(逐项检查通过/不通过)

9 项必查内容。如果任何一项未通过,应标记为关键缺口:

  1. 是否正确识别了目标对象?(而非同名者)
  2. 是否确认了当前职位/公司?
  3. 是否找到至少 2 个社交平台?
  4. 是否找到至少 1 种联系方式(电子邮件/电话/即时通信工具)?
  5. 职业经历中是否有 2 个或更多可核实的职位?
  6. 是否确认了当前位置?
  7. 是否找到至少 1 张照片?
  8. 各来源之间是否没有尚未解决的矛盾?
  9. 是否检查了内部情报?(Telegram/电子邮件/保管库——即使其中没有内容)
维度 2:深度评分(8 项加权标准)
维度权重评分内容(1-10)
身份0.15全名、出生日期、地点、教育经历、照片
职业0.20工作经历的完整度、当前职位的明确程度
数字足迹0.15找到的平台数量、账号活跃程度
心理画像0.15MBTI 置信度、量化后的写作风格、推断出的价值观
内部情报0.10Telegram/电子邮件历史的深度、保管库数据
个人生活0.05家庭、爱好、生活方式、宠物
交叉比对0.10A 级事实的数量、矛盾数量
可操作性0.10已识别的切入点、明确的接触策略

加权总分(1-10)= 深度评分。

维度 3:来源多样性

统计使用的独特来源类型(最多 12 种): LinkedIn、Instagram、Facebook、Telegram 私信、Telegram 频道、VK、Twitter/X、 公司网站、新闻/媒体文章、会议简介、政府/商业登记册、 电子邮件往来。

  • 8 种以上来源 = 优秀
  • 5-7 种 = 良好
  • 2-4 种 = 浅显
  • 1 种 = 不足
差距分析
深度评分覆盖情况诊断操作
8+全部通过档案扎实进入第 6 阶段
8+部分未通过深入但存在盲点针对未通过的检查,再进行 1 轮
<7全部通过覆盖广但不够深入通过访谈/文章/深度搜索进一步挖掘
<7部分未通过需要重新开始更换搜索角度,尝试新的工具组合
停止标准

(a) 深度评分 ≥ 8.0 且所有覆盖检查均通过 → 进入第 6 阶段 (b) 已完成 3 轮 → 提交当前最佳结果,并如实说明评估 (c) 连续两轮的增量 < 0.5 → 已达平台期,附注说明后提交

校准基准
  • 9-10:完整的职业生涯时间线、5 个以上平台、已确认出生日期、高置信度的心理画像、已知家庭/爱好、多个切入点、已分析 Telegram 历史记录。相当于专业 PI 报告。
  • 7-8:职业生涯概况、3 个以上平台、大多数事实达到 B 级或更高、具有中等置信度的心理画像。尽职调查扎实。
  • 5-6:基本简介、1-2 个平台、存在一些缺口。快速背景调查水平。
  • <5:找到的信息极少。最多只能确认姓名和当前职位。标记为信息不足。

第 6 阶段:档案输出

渲染前阅读 assets/dossier-template.md。严格遵循模板结构。 输出中不要使用 Markdown 表格(Telegram 无法渲染)。仅使用项目符号列表。 报告深度评分、来源数量、来源类型和 API 总支出。

如果使用了内部情报,请添加单独的 “内部通信内容” 部分 (标记为内部/机密,不得对外分享)。

预算

  • 每个目标 ≤$0.50:无需询问即可支出。
  • $0.50:继续前先询问用户。

  • 跟踪每个研究会话的累计支出。

故障排除

  • 所有工具都返回空结果:目标的数字化痕迹很少。尝试 Bright Data Yandex 搜索(在 CIS 地区效果更好),改用公司名称 + 职位搜索,而不是姓名。
  • 反复出现错误的人物:在所有查询中加入公司名称、城市或职位。用引号括起全名。
  • LinkedIn 被屏蔽:优先使用 brightdata.sh scrape,而不是 Apify。
  • Apify actor 已失效/变更:通过 apify.sh store-search "linkedin scraper" 查找替代项。Apify 上的 actor 变化频繁 — 务必准备 Bright Data 备用方案。
  • 深度评分停留在 6-7:很可能缺少新闻/媒体文章或内部情报。搜索行业刊物(俄罗斯市场可查 AdIndex、Sostav、Forbes、Kommersant)。尝试 jina.sh deepsearch。检查 Telegram 历史记录。
  • 找不到社交媒体:此人可能使用化名。按电子邮件、电话号码或公司员工页面搜索。在 Apify 商店搜索:bash scripts/apify.sh store-search "people search"。如果已安装 mcpc:APIFY_TOKEN=$APIFY_API_TOKEN mcpc --json mcp.apify.com --header "Authorization: Bearer $APIFY_TOKEN" tools-call search-actors keywords:="people search" limit:=10。按电话号码检查 Telegram 联系人。
  • TikTok 抓取工具失败:尝试使用 clockworks/free-tiktok-scraper(免费套餐)作为备用方案。TikTok 用户名通常与其他平台不同 — 通过 clockworks/tiktok-user-search-scraper 按真实姓名搜索。
  • 需要从网站获取电子邮件:使用 vdrmota/contact-info-scraper — 它会抓取网站并提取所有联系信息。
  • 受到速率限制(429):先等待 5 秒,再等待 15 秒。切换到备用工具。切勿立即重试。

反模式

  1. 切勿只从一个工具开始。并行启动所有可用工具。
  2. 失败的工具最多重试一次。改用备用方案。
  3. 切勿猜测出生日期、家庭情况或星座。
  4. 未与同名者交叉核对前,切勿将数据归于某人。
  5. 切勿包含未经来源证实的事实。
  6. 切勿在公开消息中透露 OSINT 方法。
  7. 递归循环切勿超过 3 次。收益会递减。
  8. 没有充分理由,切勿将深度评分评为 9 分或以上。
  9. 切勿跳过心理画像分析。没有它,档案就只是维基百科词条。
  10. 切勿跳过第 1.5 阶段(内部情报)。Telegram 历史记录往往是最丰富的信息来源。
  11. 切勿在可分享的输出中逐字引用私信。应概述并注明出处。
  12. 切勿在没有速率限制的情况下频繁调用 API。应错开请求。

评论

支持 Markdown