← 返回列表
未验证
端到端内容智能采集与调研工作流:多源嗅探 → 四维评分门控 → 深度抓取 → 跨源矛盾检测 → 结构化报告 + 长期归档
尚未跑自动兼容性验证,可查看页面内的依赖与入口分析。 · 最近上游提交 2026/9/17 · 已提供中文文档
综合分
30
GitHub 分
30
用户评分
—
★ Stars
0
周下载量
—
安装插件(需先安装 dsh CLI 引擎:npm install -g @deepseek-ai/dsh)
dsh plugin --profile web add GYINT/infoseek该插件未发布到 npm,走 GitHub 源安装(pnpm 若拦截 prepare 脚本,按其提示在 pnpm-workspace.yaml 的 allowBuilds 中放行后重跑)
数据截至 2026/9/17(元数据每日更新 · 实装验证按队列轮转,单条结论的验证时间见上方)
用户评分
还没有人投票,来当第一个
订阅周报,不错过优质插件更新
每周一封 · 高评分插件 + 新用户活动
README
Infoseek
端到端内容智能采集与调研工作流。v1.5.0 发布版。
Status
Version
Tests
MCP
5 秒看懂
from infoseek_core_v2 import streaming_research
流式研究:lite 模式 7 步 yield,秒级完成
async for partial in streaming_research("AI", sources, lite=True):
print(partial["step"], "...") # 7 步 yield
MCP server(15 规范工具:2 研究核心 + 11 异步 + 2 Key 管理)
python scripts/infoseek_mcp_server.py
🎉 v1.5.0 发布亮点
| 能力 | 说明 |
|------|------|
| 🧭 搜索引擎全生命周期 | 健康状态机 / 配额追踪 / 认证粘滞 + 新鲜度自愈(配额重置、冷却恢复、API 漂移检测)+ CLI engine-status/reconcile/probe |
| 🎯 搜索召回增强 | query 别名扩展 / 跨引擎多样性轮询(防单源垄断)/ 自适应相关性门槛 / 动态层权重 |
| 🕸️ 4 级抓取 | L1 静态 → L2 浏览器渲染 → L3 凭证辅助(KeyManager 注入,仅内存)→ L4 多媒体 chunk(whisper 可选降级) |
| 🔑 Key 管理 | 归一化 Key 管理(多后端 / 熔断 / 多 key 池 / 配额 / keyring / CLI 16 子命令) |
| ⚡ perf 10k 基准 | 10k 源近线性扩展(评分 139s / 冲突 89s / research 97s) |
| ✅ 回归测试 | 25 套件全绿 + 质量基线 26/26 all_ok |
快速上手
1. 安装 / 升级
pip install -r requirements.txt # 核心 + 文本分析 + 可选 LLM
pip install -r requirements-extra.txt # playwright(L2/L3 浏览器抓取,可选)
完整依赖说明见 references/external-deps.md
2. Python SDK
from infoseek_core_v2 import (
research, # 同步(兼容入口)
async_research, # 异步(推荐)
streaming_research, # 流式(推荐目标)
)
res = research("AI", sources, lite=True)
async for partial in streaming_research("AI", sources, lite=True):
pass # partial['step'] ∈ {score_complete, wikidata_complete, ...}
3. MCP 集成
项目提供 .mcp.json(双服务器配置,可直接被 Claude/Codex 等客户端加载):
{
"mcpServers": {
"infoseek-search": {
"command": "${INFOSEEK_ROOT}/scripts/infoseek_mcp_server.py",
"args": ["--transport", "stdio"],
"env": {
"INFOSEEK_ROOT": "${INFOSEEK_ROOT}",
"INFOSEEK_DB": "${HOME}/.infoseek/infoseek_db.json",
"INFOSEEK_ARCHIVE": "${HOME}/infoseek-archives"
}
}
}
}
💡 Windows 环境请将 command 改为 python3 + args: ["脚本路径", "--transport", "stdio"]。
工具列表(15 规范 + 12 兼容并存):
- 研究核心 2 个:research_v3 / research_stream
- 异步工具 11 个:search_anchors_async / fetch_content_async / save_archive_async / check_dedup_async / dedup_stats_async / fuse_analysis_async / cross_subject_analysis_async / summarize_content_async / conflict_detection_async / score_source_async / score_contradiction_async
- Key 管理 2 个:manage_keys(list/stat/rotate/revoke,脱敏)/ key_usage(用量成本报表)
- 兼容并存期 12 个:11 个同步工具 + research(附 deprecated 标记)
预留接口(可选扩展 · 默认关闭)
原则:默认零风险、扩展按需开启。以下能力默认不启用;接口与开关语义已定义,
供你按需选择。如需启用,按表中说明配置,或提出需求由我们按你的策略实现
(启用不改变其他默认行为)。
1. 搜索层引擎请求缓存(预留 · 默认关闭)
默认行为(现状):不缓存。每次搜索都实时请求搜索引擎端点
(DuckDuckGo / Bing-RSS / Jina / Wikipedia / 智谱 / CN-Web …),保证结果时效性。
注:目标网页内容抓取(tool_fetch_content 链路)已接入 http_cache.py
(LRU + TTL + 容量上限,默认存 ~/.infoseek/http_cache/),与本节无关。
| 项 | 值 |
|---|---|
| 预留开关 | INFOSEEK_SEARCH_HTTP_CACHE(0 = 关闭·默认 / 1 = 开启)|
| 预留 TTL | INFOSEEK_SEARCH_HTTP_CACHE_TTL(秒,建议 60–300)|
| 生效范围 | 搜索层 infoseek_pipeline._http_get() 的引擎端点请求 |
取舍(请选择):缓存引擎请求可省流量、抗限流、加速降级,但会直接返回陈旧搜索结果。
各引擎时效特性不同(DuckDuckGo / Bing 变化快,Wikipedia 较稳定),建议启用时按引擎分级 TTL,
或仅在「失败重试 / 降级」场景缓存。
2. 知识库(KB)接线(预留 · 默认未接线)
默认行为(现状):infoseek 为闭环采集器 —— 调研产物落本地(archive / dedup),
不从外部知识库取信源,也不回写知识库。
注:trusted_kb.py(可信资源库)与 core/entity_profile.py(实体画像)为 skill
内部可信库,与知识库平台无关。
| 预留方向(请选择其一) | 含义 | 规划接口 |
|---|---|---|
| A. KB → infoseek | 知识库作为信源召回,与 web 结果混排 | INFOSEEK_KB_ID + 检索 API |
| B. infoseek → KB | 调研报告自动归档进知识库 | INFOSEEK_KB_ID + 新建 / 写入文档 API |
| C. 双向 | A + B | 同上 |
启用前需确定:知识库 ID(kb_id)、写入格式(Markdown / 文件)、去重与更新策略。
如何选择:提供 kb_id 与方向(A / B / C),我们按契约接线;未选择时保持默认
(不接线、零行为变化)。
搜索层并发与聚合窗口(G5 · 默认开启)
搜索层默认全引擎并发 + 聚合窗口:并发上限 12、窗口 8s(仅对超慢引擎生效)。
| 参数 | 默认 | 说明 |
|---|---|---|
| INFOSEEK_SEARCH_MAX_WORKERS | 12 | 进程级常驻池并发上限(懒创建,不浪费线程)|
| INFOSEEK_SEARCH_WINDOW_MS | 8000 | 聚合窗口;到期即聚合返回,未达引擎结果丢弃;0 = 关闭(回退原语义)|
| INFOSEEK_SEARCH_EARLY_FACTOR | 1.5 | 提前收敛倍数:已完成引擎去重结果 ≥ max_results×factor 即提前返回;0 = 关闭 |
| INFOSEEK_SEARCH_SHARED_BUDGET | 1 | 层间共享总预算(AI 层与默认层共享一个窗口,总延迟有上界);0 = 各层各耗窗口 |
| INFOSEEK_SEARCH_TOTAL_BUDGET_MS | = WINDOW_MS | 层间共享总预算时长(覆盖默认窗口值)|
| INFOSEEK_SEARCH_OVERRUN_LIMIT | 2 | 连续超窗次数阈值;达阈值 → 引擎临时降权(暂停拉起);0 = 关闭降级 |
| INFOSEEK_SEARCH_OVERRUN_MUTE_S | 60 | 降权冷却秒;到期自动复活(计数清零重新积累);0 = 静默到进程结束 |
行为:
- 常驻池:线程池进程级复用,单次搜索退出不再 shutdown(wait=True) 阻塞 → 层耗时不再等于最慢引擎。
- 聚合窗口:wait(timeout=window) 到期即返回;正常场景(引擎均 ℹ️ 冷启动说明:运行时状态(claims.json、entity_aliases.json、pending_entities.json、anchor_db.json、engine_state.json 等)首跑为空占位,运行后随调研逐步积累。这些文件不写入技能源码目录*,落在运行时数据目录(默认 ~/.infoseek/,可用 INFOSEEK_DATA_DIR 覆盖),技能更新不丢数据。详见 core/state_dir.py。
版本路线
| 版本 | 状态 | 备注 |
|------|------|------|
| v1.5.0 | 🟢 当前发布版 | 身份归因能力链 P0:发现→验证闭环 + MCP 工具 + 主链集成(合规双闸) |
| v1.4.1 | ✅ 历史 | 能力里程碑:引擎生命周期 / 召回增强 / 4 级抓取 / Key 管理 / perf 10k |
| v1.0.1 | ✅ 历史 | 审计 G1–G13 + ABC 能力增强 + 引擎生命周期 P0–P3 |
| v1.0.0 | ✅ 历史 | 工具面收敛 + 搜索引擎降级链重写 |
| 后续 | 🟡 待办 | 见 references/ROADMAP.md |
测试矩阵
⚠️ 用例数为各套件自报(PASS 计数)。运行入口:python tests/run_tests.py(脚本风格,勿用 pytest)。
| 套件 | 用例 | 类别 |
|------|------|------|
| test_infoseek_v231.py | 10 | 回归 |
| test_infoseek_v240.py | 15 | 回归 |
| test_boundary_v240.py | 12 | 能力边界 |
| test_compat_v240.py | 5 | 兼容性 |
| test_correctness_v240.py | 18 | 正确性 |
| test_reliability_v240.py | 11 | 可靠性 |
| test_security_v240.py | 5 | 安全 |
| test_stability_v240.py | 9 | 稳定性 |
| test_e2e_scenarios_v240.py | 12 | E2E 实战 |
| test_streaming_v300.py | 6 | 流式 |
| test_search_engines.py | 16 | 搜索链 |
| test_tools_surface.py | 11 | 工具面 |
| test_async_tools.py | 11 | async 包装 |
| test_domain_orchestrator_v200.py | 13 | 领域编排 |
| test_v174_jaccard.py | 3 | Jaccard 兼容 |
| test_qcm_bridge_v101.py | 10 | QCM 协同 |
| test_key_manager_v101.py | 29 | Key 管理 |
| test_engine_lifecycle_v101.py | 40 | 引擎生命周期 |
| test_freshness_cron_v101.py | 23 | 新鲜度 cron |
| test_recall_enhance_v101.py | 16 | 召回增强 |
| test_fetch_levels_v101.py | 26 | 4 级抓取 |
| test_deep_v101.py | 22 | 深度(单独运行) |
环境差异说明:test_stability_v240.py 在 POSIX 环境含内存维度(ru_maxrss);Windows 下自动跳过内存判定,不误报 FAIL。
项目结构
infoseek/
├── SKILL.md # Skill 定义(yfm + 文档)
├── manifest.yaml # 平台 manifest
├── RELEASE_NOTES.md # 版本发布说明
├── README.md # 本文件
├── core/ # 核心库(22 功能模块;运行时状态经 state_dir 落 ~/.infoseek)
│ ├── conflict_v3.py / contradiction_scorer.py
│ ├── entity_.py # graph/heat/profile/trajectory/tracker/aliases
│ ├── wikidata_sync.py / freshness_cron.py / claim_store.py
│ ├── key_manager.py / llm_router.py / ner.py / trust_sources.py
│ └── state_dir.py
├── scripts/ # 适配层 + MCP server
│ ├── infoseek_core_v2.py # 核心 API(research/async/streaming)
│ ├── infoseek_mcp_server.py # MCP server 门面(15 规范工具)
│ ├── mcp_tools_.py # 工具模块(search/archive/analysis/keys/async/common/qcm)
│ ├── infoseek_pipeline.py # 搜索降级链 + 召回增强
│ ├── engine_lifecycle.py # 搜索引擎全生命周期
│ ├── infoseek_keys_cli.py # keys CLI(16 子命令)
│ └── ...
├── references/ # 契约 + 配置 + 依赖/Key/路线图
├── domains/ # 领域配置(tech/market/finance/policy/competitor)
│ ├── .yaml # 领域 profile
│ └── templates.yaml # 报告模板(块标量合并)
├── tests/ # 测试套件(25 标准 + deep)
└── dist/ # 质量基线 + perf 基准 + 生态构建产物
贡献与反馈
- Bug 报告:附 infoseek --version + 最小复现
- 性能问题:附 dist/quality_baseline.json 对比
- 功能请求:附用例 + 期望输出
- 路线图:见 references/ROADMAP.md
v1.5.0 | 身份归因能力链 P0(发现→验证→MCP→主链)| 多生态(ima/Claude/Codex/Dify/Coze)| MIT License扫码进群