侦探社 · 查得到,信得过
先查证,再下结论。贴一条 AI 圈的消息,侦探社用腾讯元宝搜索去官网、官方仓库和媒体多轮取证,给出能点开的来源和「属实 / 不实 / 未证实」;查不到就说查不到。关掉元宝搜索,它就不下任何结论。
- 在线试用: https://zt.wan7426.top (网页,不用登录)
- 接进你的 Agent: MCP 服务(5 个工具)加 Skill,Claude Code、Codex、Cursor 都能用
- 1024 超能 Coding 周末 · 侦探赛道作品
能做什么
- AI 快讯查证: 查一条 AI 产品消息(发布日期、是否开源、哪家发布、是否发布)。
- 按官网、厂商在 Hugging Face 或 GitHub 的官方仓库、独立媒体的顺序取证,判属实、不实或未证实。
- 标出山寨「官网」,生成每句都带出处的公众号查证稿和一页可打印的调查报告。
- 只言片语: 凭一句台词、歌词或剧情找剧和歌。两个独立来源对上才结案,附正版链接(腾讯视频、QQ 音乐);对不上就给假说并追问一句。
- 持续盯梢: 每天定时扫 8 家 AI 厂商最近 7 天的消息,查证被提到最多的产品,标出新出现的和结论变了的,可以推送到飞书群。
- 截图查证: 上传一张截图,先认出文字,再查里面的说法。
不认人脸、不查个人信息、不碰时政。
快速开始
只需要一个元宝搜索 key。
拿到 key: 在腾讯云元宝搜索控制台开通服务,按服务 API KEY 方式创建一个 key。元宝搜索按调用次数后付费;侦探社每条消息最多搜 4 次,同一查询 24 小时内复用结果,每天、每月都有上限,到上限就停。
装 uv。
装 Skill,并拿到接入命令:
uvx --from git+https://github.com/harveyzhang/zhiyan-detective zhiyan-detective-install它把 Skill 拷进
~/.claude/skills/和~/.codex/skills/(本机装了哪个就拷哪个),再打印下面这些命令。把 MCP 服务接进 Agent(
<你的 key>换成自己的):Agent 命令或配置 Claude Code claude mcp add --scope user zhiyan-detective -e TENCENTCLOUD_WSA_APIKEY=<你的 key> -- uvx --from git+https://github.com/harveyzhang/zhiyan-detective zhiyan-detective-mcpCodex codex mcp add zhiyan-detective --env TENCENTCLOUD_WSA_APIKEY=<你的 key> -- uvx --from git+https://github.com/harveyzhang/zhiyan-detective zhiyan-detective-mcpCursor 写进 ~/.cursor/mcp.json,见下面其他 Agent 用 stdio 方式启动 uvx --from git+https://github.com/harveyzhang/zhiyan-detective zhiyan-detective-mcp,环境变量里给TENCENTCLOUD_WSA_APIKEY{ "mcpServers": { "zhiyan-detective": { "command": "uvx", "args": ["--from", "git+https://github.com/harveyzhang/zhiyan-detective", "zhiyan-detective-mcp"], "env": {"TENCENTCLOUD_WSA_APIKEY": "<你的 key>"} } } }试一下: 对 Agent 说「用侦探社查一下:DeepSeek V3.2 正式版于 2025 年 6 月发布」。正确结果是「不实」:官网显示 2025 年 12 月 1 日发布,回答里附官网链接。
Claude Code 插件: 先在环境变量里设好 TENCENTCLOUD_WSA_APIKEY,再在 Claude Code 里运行下面两行,Skill 和 MCP 服务会一起装上:
/plugin marketplace add harveyzhang/zhiyan-detective
/plugin install zhiyan-detective@zhiyan-detective
还没有 key: 可以先连线上的远程 MCP 试用,用的是侦探社服务器的额度,有上限:
claude mcp add --transport http zhiyan-detective https://zt.wan7426.top/mcp # Claude Code
codex mcp add zhiyan-detective --url https://zt.wan7426.top/mcp # Codex
从源码运行(离线安装)
clone 下来、uv sync 之后,代码全在本机,不依赖我们的服务器(元宝搜索本身仍要联网):
git clone https://github.com/harveyzhang/zhiyan-detective
cd zhiyan-detective
uv sync
export TENCENTCLOUD_WSA_APIKEY=<你的 key>
uv run zhiyan-detective # 网页:http://127.0.0.1:8024
uv run zhiyan-detective-mcp # MCP 服务(stdio),给 Agent 用
uv run zhiyan-detective-install # 装 Skill,打印指向这份源码的接入命令
DETECTIVE_SEARCH_DISABLED=1 uv run zhiyan-detective # 只看页面,不调用搜索
在源码目录里运行 zhiyan-detective-install,打印出来的是 uv run --directory <源码路径> zhiyan-detective-mcp,Agent 直接用本机这份代码。在 macOS 和 Linux 上测过;Windows 没有实测(截图识别需要另装 Tesseract)。
| 变量 | 作用 |
|---|---|
TENCENTCLOUD_WSA_APIKEY |
元宝搜索 API key。也可以用 DETECTIVE_WSA_KEY_FILE 指向含 TENCENTCLOUD_WSA_APIKEY= 一行的私有文件 |
DETECTIVE_HOME |
账本和缓存的默认目录,默认 ~/.zhiyan-detective |
DETECTIVE_LEDGER |
调用账本(JSON),每次真实调用前先记账,超过上限就不发请求;几个入口要共用一本账时,指向同一个文件 |
DETECTIVE_CACHE_DIR |
同一查询 24 小时内复用结果,不花额度;默认 $DETECTIVE_HOME/cache |
DETECTIVE_MONTH_CAP / DETECTIVE_DAY_CAP |
每月、每天的搜索上限,只能调低(默认 5000 / 1200) |
DETECTIVE_CASES_DIR |
可选;结案的案卷存成 JSON(最多 500 份),服务重启后报告链接照样能打开;截图里认出的文字不存 |
DETECTIVE_HOST / DETECTIVE_PORT |
网页地址,默认 127.0.0.1:8024 |
不要把 key、账本或缓存放进仓库。
MCP 工具
| 工具 | 作用 |
|---|---|
verify_claim |
查证一条 AI 消息:结论、证据、山寨站提醒、查证稿 |
verify_digest |
一次最多 5 条,返回统一编号出处的快讯合集 |
find_work / answer_follow_up |
找剧找歌,以及回答追问 |
usage |
本月和今天的额度用量,不含 key |
MCP 服务和网页用同一个引擎,账本按入口记账(mcp、web、agent、watch)。每个进程每天最多 60 案(DETECTIVE_MCP_DAILY_CASES 只能调低)。线上的远程 MCP 地址是 https://zt.wan7426.top/mcp(Streamable HTTP)。
Skill 在 skills/zhiyan-detective/SKILL.md,包里带着同样的一份(测试保证两份一致)。它规定 Agent 只转述工具结论,并把公众号写作改成「选题 → 去重 → 查证 → 带编号写作 → 自查」。
Agent 对话(网页)
网页的「Agent 对话」页让大模型自己决定调用哪个侦探社工具,页面逐条显示思考、调用参数、工具返回和最终回答;工具结果里的案卷可以点开看完整证据。
| 变量 | 作用 |
|---|---|
DETECTIVE_LLM_BASE_URL |
OpenAI 兼容接口地址,比如 https://api.minimax.cn/v1 |
DETECTIVE_LLM_MODEL |
模型名,比如 MiniMax-M3.1-Flash |
DETECTIVE_LLM_KEY_FILE |
含 LLM_API_KEY= 或 MINIMAX_API_KEY= 一行的私有文件 |
- 限额: 每天最多 30 次对话(
DETECTIVE_AGENT_DAILY_RUNS),每天最多 30 案(DETECTIVE_AGENT_DAILY_CASES),都只能调低;每次对话最多调用 4 次工具、5 轮模型请求;账本里记为agent。 - 没配模型时: 页面播放一段真实录制的 Claude Code 会话(
static/agent-replay.json,通过远程 MCP 调用)。
飞书机器人
走飞书的长连接:程序跑在本机,只向外连接飞书,不开公网端口,元宝 key 不离开本机。
- 群里 @机器人发一条 AI 消息,它回一张查证卡片,包含结论、证据链接、山寨站提醒和查证稿。
- 发一句台词、歌词或剧情,它回找剧找歌的结果;需要追问时,回复「补充 + 线索」。
- 发「额度」可以看用量,账本里记为
feishu。
启动前把凭据文件路径放进 DETECTIVE_FEISHU_ENV,文件里写 FEISHU_APP_ID=… 和 FEISHU_APP_SECRET=…,然后运行 uv run zhiyan-detective-feishu。
飞书开放平台上要做的设置:
- 建企业自建应用并开启机器人能力。
- 开通三个权限:以应用身份发消息、读取用户发给机器人的单聊消息、接收群聊中 @ 机器人的消息事件。
- 等程序连上后,在事件订阅里选「使用长连接接收事件」,并添加「接收消息」事件。
- 发布一个版本。
部署
[LLM_KEY_FILE=<模型 key 文件>] deploy/deploy.sh <ssh 主机别名> <本机 key 文件> [月上限] [日上限] 会做这几件事:
- 把已提交的代码打包传到服务器的
/opt/zhiyan-detective。 - 构建 Docker 镜像,用主机网络启动容器,只监听
127.0.0.1:8024。 - key 只在第一次部署时复制到服务器的
secrets/(权限 600),以只读方式挂进容器;账本、缓存和确认记录放在data/。 - 给了
LLM_KEY_FILE时,只把其中的 key 那一行复制成secrets/llm.env,打开网页的 Agent 对话;模型和地址默认是MiniMax-M3.1-Flash和https://api.minimax.cn/v1,可用LLM_MODEL、LLM_BASE_URL覆盖。
对外访问交给服务器上已有的反向代理,比如在 1Panel 里新建一个反向代理网站,指向 http://127.0.0.1:8024,再申请 HTTPS 证书。
- 限额:
DETECTIVE_MONTH_CAP和DETECTIVE_DAY_CAP只能调低。服务器和本机的上限加起来,要低于每月 6000 次免费额度。 - 代理识别: 程序只信任
DETECTIVE_TRUSTED_PROXY(默认 127.0.0.1)转发来的访客地址,所以「每个访客每小时 20 案」在代理后面也按真实访客计算。
接口
POST /api/check,JSON 或表单:{"text": "…", "desk": "ai", "no_search": false},返回{"id", "status": "processing"}。desk为ai时走 AI 快讯查证,省略时找剧找歌GET /api/check/{id}:进度,或完整结论(overall、hypotheses、question、searches、search_stats…)POST /api/check/{id}/answer:{"answer": "若曦"},每案只能追问一次POST /api/check/{id}/confirm:用户确认「就是它」,写入本机DETECTIVE_USAGE_LOG(JSON Lines),作为真实使用记录GET /api/agent/status:Agent 对话是否接上模型、模型名、今天还剩几次;POST /api/agent:{"message": "…"},返回{"id"};GET /api/agent/{id}:已发生的步骤(user、load、thinking、call、result、assistant)GET /skill:下载 SKILL.md;/mcp:远程 MCP(Streamable HTTP)- 网页路由:
#/ai、#/works、#/watch、#/agent、#/connect、#/archive;带#case=<id>时直接打开这个案件(包括 Agent 对话里查过的案件) GET /r/{id}:可打印的结案报告;GET /:手机网页
字段沿用队内《接口约定》v0;hypotheses[].images 是新增的作品海报和剧照。
判定规则
- 候选: 只从搜索结果里的书名号作品名产生。繁简体统一;同一发布方的镜像站和子域名只算一个来源。
- 结案: 至少两个独立发布方几乎逐字出现这句线索(字二元组重合 ≥ 0.8),且没有接近的对手。
- 对手的定义:来源数和页面数都超过领先者的一半。
- 同一篇文章被几个网站转载,不算对手。
- 假说: 剧情转述只算一条线索,给出假说并追问一句。
- 追问后重新搜索(最多 4 次)。
- 只有一部作品被两个发布方同时和新线索关联,才结案。
- 新出现的作品还要能对上原线索。
- 未破案: 没有作品被两个来源支持。
- 证据: 先列引用原句的页面,每个发布方先出一条。
- 只有 404、410 和域名不存在算失效。
- 403 和超时标「未自动验证」。
- 正版链接: 在 v.qq.com 或 y.qq.com 站内搜索作品页,排除合集、颁奖片段和其他作品;找不到时给平台站内搜索链接。
- 图片: 只取搜索说明里点名这部作品、并且看得出是歌(专辑、封面、MV……)或剧(海报、剧照、动画……)的图,每部最多 2 张;直接引用原图并注明出处,不转存。
额度保护
- 调用上限: 每案最多 8 次搜索,追问再加 4 次。
- 频率上限: 每个来源每小时 20 案。
- 总量上限: 账本按月 5000 次、按日 1200 次硬上限。
- 故障处理: 欠费或限流错误码直接停下,返回「今天查案的人太多了,明天再来。」上游错误文本不展示,因为可能带出 key。
测试
uv run python -m unittest discover -s tests -t .
AI 快讯判定规则
- 发布日期: 以官网发布页的日期为准;没有官网时,两家独立来源日期一致(允许差 1 天)才成立。「-Exp」这类后缀算另一个产品。
- 是否开源: 要看到厂商自己账号下的 Hugging Face 或 GitHub 仓库,第三方转存不算;没有仓库时,需要两家来源说法一致。
- 发布方: 以厂商官网的发布页为准,其次看两家以上来源的多数说法。云平台上架别家模型的文档不算发布方证据。
- 山寨站: 域名里带厂商名、但不在官方域名清单里的网站(如 kimi-k2.org、suno.hk),单独列出,不作为证据。
已知限制
- 内容农场网站也会被计为独立来源。
- 对比类文章会让追问后仍停在几个假说。
- AI 快讯目前只查四类说法;评测数字、价格还不支持。官方域名清单需要人工维护。
- 还不支持截图和视频输入,也没有给 SPS 语音用的
/v1/chat/completions。
来源与致谢
- 方向和探案流程来自队友的《PRD_只言片语侦探社》。网页界面基于队友的《只言片语侦探社》互动原型(配色、布局、探案流程),接入真实接口时把拼接 HTML 改成了逐个创建节点,并只放行 http(s) 链接。
- 公众号写作流程参考了老金公众号写作助手的流程,只保留了扫描、日期核验和去重这几个查证相关步骤;AI 厂商清单参考了 wechatwriter 的
hotspot_brands.json。 - 依赖:FastAPI、Uvicorn、httpx、MCP Python SDK、zhconv、lark-oapi;截图识别用 macOS Vision 或 Tesseract。