关于 search
Aimnis 是面向编码 Agent 的开源、缓存优先型网页搜索网关。它从共享的实时网页池返回简洁且带引用的答案;语义缓存未命中时执行搜索,并在结果通过质量检查后纳入共享池。
主要功能
- 01基于共享搜索池的语义缓存
- 02缓存未命中时搜索实时网页
- 03简洁且带来源引用的答案
- 04答案入池前进行质量检查
- 05密钥和电子邮件脱敏
- 06答案来源与新鲜度信息
适用场景
- 01查询最新 API 和库版本
- 02复用此前搜索的引用答案
- 03搜索时避免存储含密钥的查询
- 04自托管共享搜索网关
MCP 相关
通过托管远程 MCP 服务或本地 stdio 服务提供 search 和 stats 工具。
配置
远程服务无需本地安装。选择你使用的客户端,复制配置或使用一键安装。
https://aimnis.com/mcpclaude mcp add --transport http aimnis-search https://aimnis.com/mcp{"mcpServers":{"aimnis-search":{"type":"http","url":"https://aimnis.com/mcp"}}}在 Cursor 中打开{"servers":{"aimnis-search":{"type":"http","url":"https://aimnis.com/mcp"}}}在 VS Code 中打开{"mcpServers":{"aimnis-search":{"type":"http","url":"https://aimnis.com/mcp"}}}{"mcpServers":{"aimnis-search":{"serverUrl":"https://aimnis.com/mcp"}}}命令在终端中运行;JSON 粘贴到对应客户端的 MCP 配置后重启。需要授权的服务会在首次连接时提示登录。
https://aimnis.com/mcp需要授权工具
详细介绍
Aimnis
面向 Agent 的协作式搜索
搜索一次,人人受益。 一个开源、缓存优先的 Web 搜索网关,专为编码 Agent 打造:提出问题,即可从共享且持续更新的知识池中即时获得经过提炼、附有来源引用的答案——每次搜索都会让知识池变得更智能,让所有人的搜索成本更低。就像 RAG,但使用的是共享的实时 Web 知识池,而不是过时的个人文档。
状态:公开预览。 托管服务已上线——在 aimnis.com 获取免费评估密钥,并在一分钟内将 Agent 接入服务 (按 Agent 配置)。我们正在公开验证一件事——随着知识池不断扩大,缓存命中率会不断提升(飞轮效应,实时仪表板)。欢迎关注。
为什么
每个模型都有训练数据截止日期。模型一经发布,世界就会继续变化——新的库版本、新的 API、新的错误——如果不针对每个问题搜索实时 Web,模型就无法跟上。这种方式既慢又昂贵,而且因服务提供商而异。
Aimnis 是位于前端的共享、持续更新层:Agent 检查的第一站。提出问题;如果这个问题(或语义相似的问题)以前有人问过,你就能以近乎零成本即时获得经过提炼、附有来源引用的答案。如果没人问过,Aimnis 就会实时获取答案、提炼内容并将其加入知识池——这样下一个提出相同问题的 Agent 就能免费获得答案。这个语料库记录了每个模型训练数据截止日期之后发生的事情,而静态训练集无法做到这一点。
工作原理
query
└─ scrub secrets/PII (redacted before embed, search, distill, or storage)
└─ local embed + normalize
└─ semantic cache lookup (exact hash → vector nearest-neighbour)
├─ HIT → return the pooled, cited answer instantly (no upstream cost)
└─ MISS → live search → distill into a cited answer → quality-gate → pool it
- 缓存优先。 知识池本身就是语义缓存(pgvector)。改写后的问题也能命中同一条记录,因此知识池的增长速度比精确匹配更快。
- 有依据且带引用的答案。 未命中时,会将实时网络搜索结果提炼成简短答案,并附上指向来源的
[n]引用,而不是原始链接。答案由模型提炼来源生成,属于 AI 生成内容,并会在工具输出中标明,让 Agent 始终知道自己读取的是机器撰写的摘要。 - 默认提供来源信息和时效性。 每个答案都附带模型、来源和缓存时间戳(答案生成或最近一次重新提炼的时间,而非最近一次提供的时间),以及相对时长,让 Agent(以及我们自己的排序系统)能够评估内容是否过时,并决定何时升级为实时搜索。
- 可为带引用的链接配置路由,以获取相关性信号(自愿启用,仅收集汇总数据)。 启用后,引用来源链接会指向带签名的
/r/…重定向地址,记录是哪条池中答案促成了后续访问,然后转发到来源——点击率由此用于改进排序。来源的实际主机名会内联显示,因此 Agent 仍能看到链接的去向;日志仅记录条目 + 来源 + 主机名 + 时间——绝不记录 IP、user-agent 或任何用户/会话 ID。这是针对知识池的遥测,而非针对你的追踪。除非配置了签名密钥,否则该功能默认关闭;令牌使用 HMAC 签名(因此/r无法被滥用为开放重定向器);自托管时,重定向会指向你自己的网关,因此点击记录留在你的设备上。 - 注重隐私的输入处理。 常见的机密格式(API 密钥、令牌、私钥、连接字符串)和电子邮件地址会在查询嵌入、发送给搜索/LLM 提供商或加入知识池之前进行脱敏;包含大量机密信息的查询仅进行实时处理,绝不存储。这是基于格式的高精度清理,并辅以熵检测——它能识别已知格式,但无法涵盖所有可能的机密信息或个人身份信息,因此应将其视为纵深防御,而非保证。处理流程开源,正是为了让你能够审查并扩展它。**运行位置:**自托管时,清理会在本地进行,因此原始文本永远不会离开你的设备。使用托管网关时,查询会通过 TLS 发送,并在入口处进行清理(在内存中、任何提供商调用或持久化之前)——如果你需要在查询离开设备前完成脱敏,请选择自托管,或以本地模式运行本地 MCP 服务。
- 质量门控的知识池。 提炼后的答案必须通过质量门槛,才能进入知识池;质量不佳的答案会降级为原始片段,而不会污染共享知识池。
飞轮效应
决定这套方案是否有效的唯一指标是:缓存命中率与语料库规模的关系。 如果知识池增长时命中率也随之上升,那么这一设想就成立。从第一天起,这项指标就会公开——让信任变得可衡量。
# run the live dashboard locally (see Quickstart)
aimnis-dashboard # → http://127.0.0.1:8080 (hit-rate curve, corpus size, storage)
与编码 Agent 搭配使用
Aimnis 使用 MCP,因此任何支持 MCP 的 Agent 都可以将其用作网络搜索工具。托管端点意味着无需安装任何东西:
- 在 aimnis.com/register 获取免费的评估密钥 (通过电子邮件发送;按使用量计费,可撤销,参见条款)。
- 将远程 MCP 服务添加到你的 Agent:
URL: https://aimnis.com/mcp (MCP, streamable HTTP)
Header: Authorization: Bearer aim_YOUR_KEY
Claude Code
claude mcp add --transport http aimnis https://aimnis.com/mcp \
--header "Authorization: Bearer aim_YOUR_KEY"
然后,要让模型优先使用 Aimnis,而非内置工具,请在
.claude/settings.json 中禁用 WebSearch:
{ "permissions": { "deny": ["WebSearch"] } }
OpenCode、OpenClaw、Hermes、Pi、REST — 在
aimnis.com/setup 和 docs/mcp.md 中复制并粘贴配置片段,
并参阅 search / stats 工具参考。注册时使用你自己的 OpenRouter/搜索密钥,这样缓存未命中时就会使用你的配额——可获得高得多的限额。
想改为自托管?同一个 MCP 服务可以通过 stdio 在本地运行,并使用你自己的知识池——请参阅快速入门和 docs/mcp.md。
快速开始(开发)
cd server
docker compose up -d # Postgres+pgvector (:5432)
# want the keyless search path too? add SearXNG (:8888):
# docker compose --profile keyless up -d
uv venv .venv && . .venv/bin/activate
uv pip install -e ".[dev]" # editable install (required — see docs)
python -m aimnis.migrate # apply migrations/*.sql
cp .env.example .env # then fill in keys if you have them
pytest # full suite against the compose DB
没有 OpenRouter 密钥?没关系——Aimnis 可无密钥运行(通过 SearXNG),并返回带引用的原始片段,不消耗任何上游配额。添加 AIMNIS_OPENROUTER_API_KEY 即可启用提炼。实时搜索采用有序回退链——Brave → Tavily → Exa → SearXNG——因此设置 AIMNIS_BRAVE_API_KEY / AIMNIS_TAVILY_API_KEY / AIMNIS_EXA_API_KEY 中的任意一个,都能获得更可靠的结果;某个免费层额度用尽后,会自动切换到下一个。组件概览请参阅 server/README.md。
许可
代码是开源的。语料库是经过策划整理的汇编,按汇编作品授权。
| 部分 | 许可 |
|---|---|
服务端核心(server/) | AGPLv3 — 网络 copyleft;运行修改后的服务时,需分享你的更改 |
SDK 和 MCP 客户端(clients/) | Apache-2.0 — 可嵌入任何产品,包括商业产品 |
| 公开知识池页面 | CC-BY-NC 4.0 适用于我们的汇编作品(策划、结构、呈现) |
**坦诚说明知识池内容:**知识池中的答案由第三方模型根据第三方网页结果提炼而成。我们不主张拥有底层事实或上游模型输出的所有权——CC-BY-NC 适用于我们的汇编作品,任何再利用也仍须遵守原始来源和模型提供商的条款。凡提供商条款要求排除的输出,均不会用于再分发或未来的训练数据供稿;提供商要求的署名也会一并保留。训练数据供稿在飞轮得到验证之前不在范围内(见路线图)——本仓库不提供训练数据许可。
反滥用阈值(清理 / 去重 / 质量调优)随安全的示例默认值一同发布;生产环境中的值由部署时注入,不属于此代码库——因此,公开规则集不会让投毒者有机可乘。
状态与路线图
路线图分阶段设门槛,从 Gate 0 到 Gate 4。Gate 0 已完成(服务条款审计、细分领域、命名和许可均已敲定)。Gate 1 进行中——网关、语义缓存和公开飞轮仪表板均已构建并经过内部试用;通过 / 终止测试的标准是命中率曲线是否开始上扬。在飞轮得到验证之前,广告、计费、社区计算和训练数据供稿均明确不在范围内。
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。