AON について
AONは、個人のハードウェア上でローカルモデルを動かし、チャット、ツール、長期記憶、文書検索を提供するセルフホスト可能なAIエージェントです。ローカルでエージェントを運用したい個人やチーム向けで、Web、Android、Telegram、MCPから利用できます。
主な機能
- 01ローカルモデルとエージェントツールの実行
- 02チャットをまたぐ長期記憶の検索
- 03引用付きの文書インデックスと検索
- 04エージェントスキルのインポートと作成
- 05MCPサーバーへの接続とサーバーとしての動作
- 06Web、Android、Telegramからの利用
活用シーン
- 01ローカルモデルを使ったエージェントへの質問
- 02会話をまたいで保存した情報の呼び出し
- 03文書コレクションからの情報検索
- 04MCPクライアントからAONのタスクと記憶を利用
MCP 対応
`aon mcp`はAONをMCPサーバーとして動かし、Claude Desktop、Claude Code、Cursorなどのクライアントに対応します。タスク、記憶、文書のツールを公開し、MCP経由のシェルコマンドとファイル書き込みは拒否します。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
ツール
ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。
詳細
🛰️ AON:自己完結型の制限解除 AI
自分だけの無検閲 AI エージェント。GPU 1 台。クラウド不要。フィルターなし。
⚡ クイックスタート · 💡 AON の特長 · 🔌 MCP サーバー · 📱 Android · 🔑 ライブインスタンス · 🎬 デモ
| 💬 チャット | 🗺️ マップ |
|---|---|
![]() | ![]() |
AON は、ローカルモデルを使って自分のハードウェア上で動作する、セルフホスト可能な AI エージェントです。質問に答え、ツール(ファイル、シェル、ウェブ検索、マップ)を実行し、チャットをまたいでユーザーを記憶し、ドキュメントを読み込み、新しいモデル、スキル、MCP サーバーで機能を拡張します。ウェブ、Android アプリ、Telegram から利用できるほか、MCP サーバーを介して Claude Desktop、Claude Code、Cursor からも利用できます。
重要
🔒 データが外部に送信されることはありません。 チャットは自分の GPU 上の vLLM または Ollama で実行され、埋め込みには Ollama を使用します。クラウド LLM も 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)1 台で動作する、検閲のない(「obliterated」)27B モデルです。チャット、メモリ、ドキュメントがデバイスの外に出ることはありません。
- 🧬 自ら機能を拡張します。 リンクを貼り付けると、AON が内容を判別します。取得可能な GGUF モデル(まず VRAM の予算とツールのサポート状況を確認します)、接続できる MCP サーバー、インポートできるスキルリポジトリ、または学習できるドキュメントのいずれかを見分けます。任意のウェブページから新しいスキルの草案を作成し、テストすることもできます。
- 🔌 普段使っている AI アプリと連携します。
aon mcpを使うと、AON が Claude Desktop、Claude Code、Cursor 向けの MCP サーバーになり、これらのアプリからタスクを任せたり、AON のメモリやドキュメントを検索したりできます。 - 👥 1 台の GPU でチーム全員が使える、プライベートな AI です。 vLLM が複数のユーザーに同時に応答します。Cloudflare Access のメール PIN で保護され、すべてのユーザーは手動で承認されます。
- 🛡️ 誠実さを設計に組み込んでいます。 シェルコマンドの実行とファイルへの書き込みには、必ず承認が必要です。ツールを実行せずに「完了した」と主張する応答は信用されません。秘密情報がメモリに保存されることはありません。
- 🗺️ 推測ではなく、確かな情報に基づきます。 場所とルートは、3D 地球儀上で OpenStreetMap のルーティングを使って表示します。距離と所要時間はモデルが生成するのではなく、実際に計算されます。
| 🛰️ AON | ☁️ 一般的なクラウド AI チャット | |
|---|---|---|
| 自分のハードウェアで動作する | ✅ | ❌ |
| チャットとファイルを自分の手元に保持できる | ✅ | ❌ |
| プロバイダーによるコンテンツフィルタリング | ❌ なし | ✅ |
| 費用 | GPU の電気代 | サブスクリプションまたはトークンごとの料金 |
| 長期メモリと自分のドキュメント(RAG) | ✅ | ✅ |
| 自分のサーバーでコマンドを実行する(承認が必要) | ✅ | ❌ |
| リンクから新しいモデル、MCP サーバー、スキルをインストールする | ✅ | ❌ |
| Claude Desktop / Cursor からツール(MCP)として利用できる | ✅ | ❌ |
| 1 台の GPU でチーム全員に対応する | ✅ | ❌ |
🔌 MCP サーバー
Claude Desktop、Claude Code、Cursor、その他の MCP クライアントから AON を使えます。
aon mcp は AON を Model Context Protocol サーバーとして起動します。これは aon-agent パッケージに含まれており(ソース)、MCP クライアントが起動します。
| ツール | 機能 | アクセス |
|---|---|---|
ask_aon | AON にタスクや質問を渡します。AON 自身のモデル、メモリ、ドキュメント、ツールを使って回答します。会話を続けるには chat を渡します。 | ✍️ 書き込み |
search_memory | AON があなたについて記憶している長期メモリを検索します | 👀 読み取り |
remember | AON のメモリに情報を保存します | ✍️ 書き込み |
search_documents | 意味と完全一致する単語でドキュメントライブラリを検索します | 👀 読み取り |
list_documents | ライブラリの一覧を表示します | 👀 読み取り |
add_document | テキストドキュメントをライブラリに追加します | ✍️ 書き込み |
メモ
MCP 経由では、シェルコマンドの実行とファイルへの書き込みは常に拒否されます。別のアプリ内で承認できるユーザーがいないためです。
Claude Desktop と Cursor
- Claude Desktop:Settings →
Developer → Edit Config(
claude_desktop_config.json)を開き、再起動します。 - Cursor:
~/.cursor/mcp.json、またはプロジェクト内の.cursor/mcp.json。
{
"mcpServers": {
"aon": { "command": "aon", "args": ["mcp"] }
}
}
別のホームフォルダーを使うには、args に "--home", "/path/to/home" を追加します。クライアントが aon を見つけられない場合は、which aon で確認したフルパスを使ってください。
🎬 デモ
✨ 特長
| 🛠️ ツールを備えたエージェント | ファイルの読み取り、書き込み、編集、シェルコマンドの実行、ウェブの検索と取得、地図の表示ができます。コマンドの実行とファイルへの書き込みには承認が必要です。 |
| 🧠 長期記憶 | あなたに関する事実を意味で検索し、変更時には統合します。このチャットや他のチャットの過去のやり取りを、意味や正確な文字列で呼び出せます。また、要約と、あなたが尋ねたすべての内容の番号付きアウトラインを随時作成します。 |
| 📚 ドキュメントライブラリ(RAG) | Documents パネルまたはチャットへの添付から、テキスト、コード、Markdown、HTML、Word、PDF を扱えます。ハイブリッド検索(SQLite FTS5 + vectors)に対応し、回答にはドキュメントの引用が含まれます。 |
| 📏 コンテキスト予算 | サーバーの正確なトークン数に基づいて、リクエストをモデルのウィンドウに収まるよう調整するため、長いチャットでも上限を超えません。 |
| 🧩 スキル | Agent Skills(SKILL.md):zip、GitHub URL、貼り付けたテキストからインポートできます。ウェブページからスキルの草案を作成したり、評価を実行したりできます。 |
| 🔌 双方向の MCP | stdio と HTTP の MCP サーバーに接続できます(Hub で Glama ディレクトリを閲覧できます)。また、それ自体が MCP サーバーでもあります。 |
| 📎 添付ファイル | チャットでファイルや写真を扱えます。画像はビジョンモデルに送信されます。 |
| 🗺️ 地図 | MapLibre の 3D 地球儀で、OpenStreetMap(Nominatim、OSRM)による場所やルートを表示します。 |
| 👥 マルチユーザー | vLLM 上でチャットを動かし、複数ユーザーに同時にサービスを提供できます。サインインには Cloudflare Access を使用します。 |
| 📱 どこでも利用可能 | ウェブ 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
📱 Android アプリ
260 KB、Android 7.0 以降。
- スマートフォンでリンクを開き、APK をダウンロードします。
- Android から求められたら、ブラウザーからのインストールを許可して(不明なアプリのインストール)、インストールをタップします。
- 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 へのアクセスは承認制です。
- 📝 アクセスをリクエストします。 issue を作成し、 タイトルを Access request にして、あなたが誰で、AON を何に使用したいかを記載してください。issue にメールアドレスを 投稿しないでください。メンテナーが返信し、メールアドレスの送信方法を案内します。
- ⏳ 承認を待ちます。 リクエストは手作業で審査されます。承認されると、メールアドレスが許可リストに 追加され、メモを添えて issue がクローズされます。
- ✅ サインインします。 https://aon.vulkron.uk を開き、承認されたメールアドレスを入力して、メールで届く ワンタイム PIN を入力します。PIN によるサインインは Cloudflare Access で処理されます。
警告
アクセスはいつでも取り消される場合があります。このインスタンスは容量に限りのあるプライベートハードウェアで 稼働しています。違法な用途、自動化されたトラフィックや大量のトラフィック、他人の個人データの処理には 使用しないでください。また、複数の人が利用している場合は、しばらくお待ちいただくことがあります。
📦 インストール
要件
- Linux(Ubuntu で動作)、Python 3.11 以降。
- 埋め込みモデル(
ollama pull nomic-embed-text)と、ツールに対応したチャットモデル(例:ollama pull qwen3:14b)を備えた Ollama。チャットを 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_url | Ollama の OpenAI 互換エンドポイント(埋め込み用、および chat_base_url が設定されていない場合はチャット用) | "http://localhost:11434/v1" |
default_model | UI でモデルが選択されていない場合に使用するモデル | "qwen3:14b" |
workdir | エージェントのワークスペース。チャットとドキュメントはここに保存されます | "~/.aon/workspace" |
bind | Web UI のアドレスとポート。AON にはログイン機能がありません。接続可能なすべてのデバイスを信頼できる場合を除き、127.0.0.1 に設定してください | "127.0.0.1:8700" |
max_steps | リクエストごとに許可されるツール呼び出し回数 | 40 |
command_timeout | シェルコマンドを停止するまでの秒数 | 120 |
always_ask | 常に承認が必要な追加ツール | [] |
embed_model | Ollama の埋め込みモデル | "nomic-embed-text" |
context_window | チャットモデルのコンテキスト長(トークン数) | 16384 |
reply_reserve | 思考と回答用に確保するトークン数 | 6144 |
history_tokens | そのまま送信する直近のチャットターンのトークン数 | 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)を環境に合わせて変更してください。
一部のモデルでは、Ollama は一度に 1 件のリクエストにしか応答できません。複数のユーザーに対応するには、チャットモデルを vLLM で実行し、AON の接続先を vLLM に設定します。
chat_base_url = "http://<gpu-box>:8001/v1"
chat_model = "aon"
default_model = "aon"
context_window = 16384
vllm/ には、systemd ユニット、チャットテンプレート、使用したパッケージの正確なバージョンが含まれています。RTX 4090(24 GB)1 台で 27B の 4 ビットモデルを使用して測定したところ、16K コンテキストでは最大長のリクエストを同時に 2~3 件処理でき、残りはキューに入ります。8K では 4 件処理できます。
🌐 リモートアクセス
AON には独自のログイン機能はありません。bind は LAN 内に設定し、外部からアクセスする場合は、認証プロキシの背後に配置してください。たとえば、Cloudflare Access(メール PIN)を使う Cloudflare Tunnel などがあります。マップの位置情報機能には HTTPS が必要です。
🧪 開発
pip install -e ".[test]"
pytest -q
プロジェクト構成
| パス | 内容 |
|---|---|
src/aon/cli.py | aon コマンド:init、serve、mcp |
src/aon/main.py | config.toml から AON を構築します(serve と mcp で共有) |
src/aon/mcp_server.py | MCP サーバーとしての AON |
src/aon/web.py | FastAPI アプリ:REST API とチャット用 WebSocket |
src/aon/engine.py | エージェントのループ(ツール呼び出し、承認、ループガード) |
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.py | MCP サーバーと Glama ハブ |
src/aon/tools/ | 組み込みツール(ファイル、シェル、ウェブ、マップ) |
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 の追跡対象外です。
🤝 貢献
Issue とプルリクエストを歓迎します。修正より大きな変更については、まずIssue を作成して相談してください。プルリクエストを送る前に pytest -q を実行してください。
📄 ライセンス
AON はMIT ライセンスの下で公開されています。© 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 が役に立ったら、⭐を付けてください。他の人が見つけやすくなります。
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。


