mcpField
A
AON

AON

本地服务
leo007-htun.github.ioAI 与智能体12 周前更新

关于 AON

AON 是可自托管的 AI Agent,在个人硬件上运行本地模型,支持对话、工具、长期记忆和文档搜索。它面向希望本地运行 Agent 的个人或团队,可通过 Web、Android、Telegram 和 MCP 使用。

主要功能

  1. 01运行本地模型和 Agent 工具
  2. 02搜索跨对话的长期记忆
  3. 03索引并搜索带引用的文档
  4. 04导入和创建 Agent 技能
  5. 05连接 MCP 服务或作为 MCP 服务运行
  6. 06通过 Web、Android 或 Telegram 使用

适用场景

  1. 01使用本地模型让 Agent 回答问题
  2. 02找回在对话中保存的信息
  3. 03在文档集合中查找内容
  4. 04通过 MCP 客户端调用 AON 任务和记忆

MCP 相关

`aon mcp` 可将 AON 作为 MCP 服务,供 Claude Desktop、Claude Code 和 Cursor 等客户端使用。它提供任务、记忆和文档工具;通过 MCP 不允许执行 shell 命令或写入文件。

配置

本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。

mcp.json · 通用配置
{
"mcpServers": {
"leo007-htun-aon": {
"command": "uvx",
"args": [
"aon-agent"
]
}
}
}
启动命令uvx aon-agent

本地服务需要在你的电脑上安装运行环境(如 Node.js 18+)。各客户端的配置文件位置不同,请参考客户端文档。

安装包
pypiaon-agent1.0.2

工具

还没有获取到工具列表

本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。

详细介绍

AON

🛰️ AON:自包含的无约束 AI

你自己的无审查 AI Agent。一块 GPU。无需云端。没有过滤。

Website Live YouTube demo PyPI MCP server Android APK

License: MIT Python

⚡ 快速开始 · 💡 为什么选择 AON · 🔌 MCP 服务 · 📱 Android · 🔑 在线实例 · 🎬 演示

💬 聊天🗺️ 地图
AON 聊天界面AON 在 3D 地球地图上的路线

AON 是一个可自托管的 AI Agent,使用本地模型运行在你自己的硬件上。它可以回答问题、运行工具(文件、Shell、网页搜索、地图)、在多次聊天之间记住你、读取你的文档,还能通过新模型、技能和 MCP 服务扩展自身。你可以通过 Web、Android 应用、Telegram 使用它,也可以通过其 MCP 服务连接 Claude Desktop、Claude Code 和 Cursor。

重要

🔒 所有数据都留在你的设备上。 聊天运行在你自己 GPU 上的 vLLM 或 Ollama 上,嵌入模型运行在 Ollama 上。无需云端大模型,无 API 费用, 也没有服务提供商过滤或记录日志。


⚡ 快速开始

pipx install aon-agent        # 1. install
aon init                      # 2. create ~/.aon with a starter config
aon serve                     # 3. open http://127.0.0.1:8700

提示

你需要安装 Ollama,并准备好 nomic-embed-text 和一个支持 工具调用的聊天模型:ollama pull nomic-embed-text && ollama pull qwen3:14b。然后运行 aon mcp, 将 AON 接入 Claude Desktop(操作方法)。

💡 为什么选择 AON

记忆和 RAG 如今已是基本配置。AON 更进一步:

  • 🔓 完全解除限制,完全属于你。 在一张消费级 GPU(RTX 4090)上运行的无审查(“解除限制”)27B 模型。你的聊天、记忆和文档永远不会离开这台设备。
  • 🧬 它会自我扩展。 粘贴一个链接,AON 就会判断链接的内容:它可以拉取的 GGUF 模型(会先检查显存预算和工具支持情况)、可连接的 MCP 服务、可导入的技能仓库,或可供学习的文档。它还能根据任意网页起草新技能并进行测试。
  • 🔌 接入你已在使用的 AI 应用。 aon mcp 可将 AON 变成 MCP 服务,供 Claude Desktop、Claude Code 和 Cursor 使用,让它们可以交付任务,并搜索 AON 的记忆和你的文档。
  • 👥 一张 GPU,为整个团队提供私有 AI。 vLLM 可同时为多位用户提供服务,通过 Cloudflare Access 电子邮件 PIN 保护,并由管理员逐一批准每位用户。
  • 🛡️ 设计上值得信赖。 Shell 命令和文件写入操作都要等你批准。未经工具执行却声称“已完成”的回复不可信。机密信息绝不会保存到记忆中。
  • 🗺️ 有据可依,而非凭空猜测。 地点和路线来自基于 3D 地球仪的 OpenStreetMap 路线规划;距离和时间均通过计算得出,而非由模型编写。
🛰️ AON☁️ 常见云端 AI 聊天
在你自己的硬件上运行✅❌
聊天和文件由你掌控✅❌
服务商的内容过滤❌ 无✅
费用你的 GPU 电费订阅费或按 Token 计费
长期记忆 + 你的文档(RAG)✅✅
在你的服务上运行命令(需你批准)✅❌
通过链接安装新模型、MCP 服务和技能✅❌
可从 Claude Desktop / Cursor 作为工具使用(MCP)✅❌
一张 GPU 为整个团队提供服务✅❌

🔌 MCP 服务

在 Claude Desktop、Claude Code、Cursor 和其他任何 MCP 客户端中使用 AON。

Claude Desktop Claude Code Cursor stdio

aon mcp 会将 AON 作为 Model Context Protocol 服务运行。它随 aon-agent 软件包一同发布(源代码);你的 MCP 客户端会负责启动它。

工具功能权限
ask_aon向 AON 交付任务或提问;它会使用自己的模型、记忆、文档和工具作答。传入 chat 可继续对话。✍️ 写入
search_memory搜索 AON 关于你的长期记忆👀 读取
remember将事实保存到 AON 的记忆中✍️ 写入
search_documents按含义和精确词语搜索你的文档库👀 读取
list_documents列出文档库内容👀 读取
add_document向文档库添加文本文件✍️ 写入

说明

通过 MCP 调用时,Shell 命令和文件写入操作始终会被拒绝:在其他应用中没有人可以批准这些操作。

Claude Desktop 和 Cursor
  • Claude Desktop:进入设置 → 开发者 → 编辑配置(claude_desktop_config.json),然后重启应用。
  • Cursor:编辑 ~/.cursor/mcp.json,或项目中的 .cursor/mcp.json。
{
  "mcpServers": {
    "aon": { "command": "aon", "args": ["mcp"] }
  }
}
Claude Code

Claude Code:

claude mcp add aon -- aon mcp

如需使用其他主目录,请将 "--home", "/path/to/home" 添加到 args 中。如果客户端找不到 aon,请使用 which aon 获取完整路径。

🎬 演示

在 YouTube 上观看 AON 演示

▶️ 点击在 YouTube 上观看

✨ 功能

🛠️ 带工具的 Agent读取、写入和编辑文件,运行 shell 命令,搜索和获取网页内容,显示地图。执行命令和写入文件前会请求批准。
🧠 长期记忆记录关于你的事实,可按含义搜索,并在事实变化时合并;可按含义和精确字符串回忆本次及其他聊天中的较早对话;还会滚动更新摘要,并为你提出的所有问题编制编号大纲。
📚 文档库(RAG)支持文本、代码、Markdown、HTML、Word 和 PDF,可从“文档”面板导入,也可通过聊天附件添加。混合搜索(SQLite FTS5 + 向量);回答会注明引用的文档。
📏 上下文预算每次请求都会根据服务端的精确 token 数量适配模型的上下文窗口,因此长对话也不会超出限制。
🧩 技能Agent Skills(SKILL.md):可从 zip、GitHub URL 或粘贴的文本导入;可根据网页起草技能;还可运行评测。
🔌 双向 MCP可连接 stdio 和 HTTP MCP 服务(在 Hub 中浏览 Glama 目录),自身也可作为 MCP 服务。
📎 附件可在聊天中发送文件和照片;图像会交给视觉模型处理。
🗺️ 地图在 MapLibre 3D 地球仪上显示来自 OpenStreetMap(Nominatim、OSRM)的地点和路线。
👥 多用户在 vLLM 上聊天,可同时为多位用户提供服务;通过 Cloudflare Access 登录。
📱 随处使用Web UI、Android 应用和可选的 Telegram 机器人。

🏗️ 架构

flowchart TB
    subgraph clients["Clients"]
        direction LR
        W["🌐 Web UI"] ~~~ A["📱 Android"] ~~~ T["💬 Telegram"] ~~~ M["🤖 Claude / Cursor"]
    end
    S["🛰️ AON server · FastAPI + agent loop"]
    subgraph backends["Behind AON"]
        direction LR
        TL["🛠️ Tools"] ~~~ DB[("🧠 Memory + docs")] ~~~ V["⚡ vLLM"] ~~~ O["🦙 Ollama"] ~~~ X["🔌 MCP servers"]
    end
    clients -- "HTTPS via Cloudflare Access, or MCP over stdio" --> S
    S --> backends
技术栈

Python FastAPI Uvicorn httpx WebSockets MCP pypdf SQLite vLLM Ollama nomic-embed-text MapLibre Cloudflare pytest

📱 Android 应用

下载 AON.apk

260 KB,Android 7.0 或更高版本。

  1. 在手机上打开链接并下载 APK。
  2. Android 询问时,允许通过浏览器安装应用(安装未知应用),然后点按安装。
  3. 打开 AON,使用已获批准的电子邮件地址登录(参见试用在线实例)。

应用默认打开 https://aon.vulkron.uk。若要使用自己的服务,请在应用中按返回, 然后选择更改服务,例如在家庭网络中输入 http://192.168.1.50:8700。 此 APK 已签名(APK Signature Scheme v2,证书 CN=AON, O=Vulkron, C=GB);其 SHA-256 值见发布页面。

🔑 试用在线实例

访问 https://aon.vulkron.uk 需经批准:

  1. 📝 申请访问权限。 创建一个议题, 标题为 Access request,说明你是谁,以及你想用 AON 做什么。请 不要在议题中发布你的电子邮件地址;维护者会回复并告知你如何发送。
  2. ⏳ 等待批准。 申请由人工审核。申请获批后,你的电子邮件地址 将被加入允许列表,议题也会附上说明后关闭。
  3. ✅ 登录。 打开 https://aon.vulkron.uk,输入获批的电子邮件地址,然后输入 通过电子邮件发送给你的一次性 PIN。PIN 登录由 Cloudflare Access 处理。

警告

访问权限可能随时被撤销。此实例运行在容量有限的私有硬件上: 请勿将其用于任何非法用途、自动化或批量流量,或处理他人的个人数据;多人同时使用时, 请预期需要短暂等待。

📦 安装

要求

  • Linux(在 Ubuntu 上运行)、Python 3.11 或更新版本。
  • Ollama,以及一个嵌入模型(ollama pull nomic-embed-text)和一个支持工具调用的聊天 模型(例如 ollama pull qwen3:14b),除非聊天运行在 vLLM 上。
  • 可选:运行 vLLM 的 GPU 服务(vllm/)。
  • 可选:用于基于 npx 的 MCP 服务的 Node.js 20。

安装

pipx install aon-agent            # or: pip install aon-agent
aon init                          # --ollama URL --model NAME --bind HOST:PORT --home DIR

AON 保存的所有内容(配置、聊天记录、记忆、文档、技能)都位于其主目录中: --home DIR,否则使用 $AON_HOME,再否则使用 ~/.aon。

从源代码安装(用于开发)
git clone https://github.com/leo007-htun/AON.git && cd AON
python3 -m venv venv && venv/bin/pip install -e ".[test]"
venv/bin/aon init
⚙️ 配置

aon init 会在主目录中写入 config.toml;可根据需要编辑。请将 context_window 设置为与 vLLM 的 --max-model-len(或 Ollama 模型的上下文长度)相同。

所有 config.toml 配置项
配置项含义示例
ollama_base_urlOllama 的 OpenAI 兼容端点(用于嵌入;若未设置 chat_base_url,也用于聊天)"http://localhost:11434/v1"
default_modelUI 未选择模型时使用的模型"qwen3:14b"
workdirAgent 的工作区;聊天记录和文档存储于此"~/.aon/workspace"
bindWeb UI 的地址和端口。AON 没有登录功能:除非所有可访问它的设备都可信,否则请将其绑定到 127.0.0.1"127.0.0.1:8700"
max_steps每个请求允许的工具调用次数40
command_timeoutshell 命令停止前的秒数120
always_ask始终需要审批的额外工具[]
embed_modelOllama 上的嵌入模型"nomic-embed-text"
context_window聊天模型的上下文长度,单位为 token16384
reply_reserve为思考和回答预留的 token 数6144
history_tokens逐字发送的近期聊天轮次所占 token 数5000
cross_chat_recall也从你的其他聊天中检索相关轮次true
chat_base_url可选的独立聊天后端(vLLM)"http://gpu-box:8001/v1"
chat_model此处提供的模型名称;只有此模型会发送到 chat_base_url"aon"
chat_temperature、chat_top_p、chat_repetition_penalty聊天后端的采样参数0.2、未设置、1.15
chat_vision聊天后端模型是否接受图像true
telegram_bot_token、telegram_allowed_chat_ids可选的 Telegram 机器人""、[]
🚀 运行
aon serve                         # web UI on the bind address from config.toml
aon serve --port 9000             # or override host/port
aon --help
在后台运行
setsid nohup aon serve >> ~/.aon/aon.log 2>&1 < /dev/null &
pgrep -af '[a]on serve'           # is it running?
tail -f ~/.aon/aon.log            # its log
pkill -f '[a]on serve'            # stop it
作为 systemd 服务运行(开机启动,故障时重启)
sudo tee /etc/systemd/system/aon.service >/dev/null <<'EOF'
[Unit]
Description=AON agent
After=network-online.target
Wants=network-online.target

[Service]
User=ubuntu
Environment=AON_HOME=/home/ubuntu/.aon
ExecStart=/home/ubuntu/.local/bin/aon serve
Restart=always
RestartSec=5

[Install]
WantedBy=multi-user.target
EOF
sudo systemctl daemon-reload && sudo systemctl enable --now aon
journalctl -u aon -f

请根据你的设置修改 User、AON_HOME 和 aon 路径(which aon)。

### ⚡ 使用 vLLM 支持多用户

对于某些模型,Ollama 一次只处理一个请求。要同时服务多个用户,可在 vLLM 上运行聊天模型,并将 AON 指向它:

chat_base_url = "http://<gpu-box>:8001/v1"
chat_model = "aon"
default_model = "aon"
context_window = 16384

vllm/ 包含 systemd 单元、聊天模板和所用的准确软件包版本。在一台 RTX 4090(24 GB)上使用 27B 4-bit 模型进行测量:16K 上下文可同时处理 2–3 个完整长度的请求,其余请求排队;8K 可处理 4 个。

🌐 远程访问

AON 没有自带登录功能。请将 bind 保持在局域网内;如需从外部访问,请将其置于带身份验证的代理之后,例如使用 Cloudflare Access(电子邮件 PIN)的 Cloudflare Tunnel。地图中的地理位置功能需要 HTTPS。

🧪 开发

pip install -e ".[test]"
pytest -q
项目结构
路径内容
src/aon/cli.pyaon 命令:init、serve、mcp
src/aon/main.py根据 config.toml 构建 AON(由 serve 和 mcp 共用)
src/aon/mcp_server.py将 AON 用作 MCP 服务
src/aon/web.pyFastAPI 应用:REST API 和聊天 WebSocket
src/aon/engine.pyAgent 循环(工具调用、审批、循环防护)
src/aon/router.py规划器:直接回答、提问或规划工具步骤
src/aon/llm_client.py、backends.py模型调用;每个模型使用 Ollama 或 vLLM
src/aon/context.py将请求适配到上下文窗口
src/aon/recall.py、summary.py聊天回忆、滚动摘要、提纲
src/aon/memory*.py情景记忆、提取、整合
src/aon/docs.py文档库(RAG)
src/aon/skills.py、skill_*.py技能:存储、导入、编写、评估
src/aon/mcp_client.py、mcp_tools.py、hub.pyMCP 服务和 Glama 中心
src/aon/tools/内置工具(文件、shell、网页、地图)
src/aon/static/网页 UI(index.html)、图标、字体、地图库
src/aon/default_skills/由 aon init 复制到新主目录的技能
tests/测试套件
specs/设计说明
vllm/vLLM 服务设置

💾 数据

AON 将数据保存在其主目录中:workspace/app.db(聊天)、workspace/docs.db(文档库)、memory/episodes.db(记忆)和 workspace/uploads/(附件)。此仓库包含这些数据截至 2026-10-14 的快照。全新安装会创建空文件;如要从干净状态开始,请在首次运行前将其删除。Glama API 密钥保存在 .glama_key 中,该文件已加入 git 忽略列表。

🤝 贡献

欢迎提交问题和拉取请求。对于修复以外的较大改动,请先提出问题,以便讨论。提交拉取请求前,请运行 pytest -q。

📄 许可证

AON 依据 MIT License 发布。© 2026 Sithu Htun (@leo007-htun)。

捆绑的第三方文件保留各自的许可证,许可证文件均与其放在一起: CybercoreCSS(MIT)、 MapLibre GL JS(BSD-3-Clause)、 highlight.js(BSD-3-Clause),以及 Exo 2、JetBrains Mono、Orbitron 和 Rajdhani 字体 (SIL Open Font License)。


如果 AON 对你有用,请给它一个 ⭐。这能帮助其他人找到它。

⬆ 返回顶部

评论

支持 Markdown

第一次接触 MCP?

从协议是什么,到在客户端里装上第一个服务,这几条回答覆盖了大多数入门问题。

一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。