AnyBot

AnyBot

跑在你自己電腦上的 AI 助理。
會聊天,也會做事:整理檔案、跑指令、看網頁、操作螢幕、到點自己排。

中文 · English

Apache-2.0 macOS, Linux, Windows Rust 1.95 self-hosted

左邊是不同的 Bot,右邊是跟其中一個聊天

模型用你自己的金鑰:xAI、OpenAI、Claude、Gemini、OpenRouter、OpenCode Go、家裡的 Ollama,或任何講 OpenAI 那套介面的服務。聊天記錄、檔案、密碼留在你的機器上,不會先存進別人的帳號伺服器。左邊每一行都是一個 Bot:研究、寫作、管電腦,可以各用各的模型。 --- ## 30 秒裝好 打開終端機,貼一行。 ```sh # macOS、Linux(不限 Ubuntu:apt、dnf、yum、pacman、zypper、apk、xbps 都認得) curl -fsSL https://code.30cm.net/daniel.w/AnyBot/raw/branch/main/install.sh | sh ``` ```powershell # Windows 10/11(x64、arm64) irm https://code.30cm.net/daniel.w/AnyBot/raw/branch/main/install.ps1 | iex ``` 它會自己裝好需要的東西、問你要裝哪一種,然後做第一次設定。第一次編譯 5–15 分鐘,之後更新 1–2 分鐘;裝在你的使用者資料夾,不需要系統管理員。 裝好打開 AnyBot(Mac 第一次要對圖示按右鍵 › 打開),「設定 › 模型」貼上 API 金鑰,建一個 Bot 就能開始聊。沒有金鑰可以選 Ollama,在你自己的電腦上跑。 **帳號伺服器 + 大腦**(任何有 Docker 的 Linux,2 GB 以上;只問網址、帳號、密碼,HTTPS 它自己處理): ```sh curl -fsSL https://code.30cm.net/daniel.w/AnyBot/raw/branch/main/install.sh | sh -s -- server ``` **無頭手腳**(給 Bot 操控的電腦,沒螢幕也行)。網址和配對碼在 AnyBot 按「加一台電腦」就會看到: ```sh curl -fsSL https://code.30cm.net/daniel.w/AnyBot/raw/branch/main/install.sh \ | sh -s -- hands https://你的網址 482913 ``` ```powershell # Windows 手腳 $env:ANYBOT_MODE='hands' $env:ANYBOT_PAIR_URL='https://你的網址' $env:ANYBOT_PAIR_CODE='482913' irm https://code.30cm.net/daniel.w/AnyBot/raw/branch/main/install.ps1 | iex ``` 給代理程式跑、不要出現問句:`sh install.sh --print` 先問這台適合什麼,再用環境變數,見 [install/AGENT.md](install/AGENT.md)。 --- ## 它會先問你,再動手 你說「在我的電腦上做」,它不會默默執行。畫面上出現要做的事,你按允許才繼續。付款、寄出、刪除這類動作,每次都會再問一次,即使你關掉了別的詢問。

左:Bot 要在你的電腦上執行指令前,先跳出允許一次、一律允許或拒絕。右:手機瀏覽器打開你的網址,先登入

- **整理檔案、跑指令** — 做之前先問。也可以只讓它用「它自己的電腦」,一個跟你隔開的小桌面。 - **看網頁、填表** — 用它自己的瀏覽器。密碼和卡號由程式直接填,不會先念給模型聽。 - **操作你正在用的畫面** — 看截圖上的按鈕再點。點不到,或是要你登入時,把畫面交給你。 - **到點自己做** — 「每個工作日早上 9 點整理三則新聞」變成例行任務。 - **手機隨時插手** — 瀏覽器打開你的網址、登入,就是同一個聊天,在外面也能看它做到哪。

跟 Bot 說每個工作日早上九點整理新聞,它就排好例行任務

--- ## 一台想,幾台被用 一台負責想和記(**大腦**),其他電腦負責被操作(**手腳**),手機只是一個視窗。它們都連到你自己的**帳號伺服器**,所以家裡的電腦不用開連接埠、也不用固定 IP。 ``` 你在手機上說話 你在筆電上說話 沒螢幕的電腦也行 \ | / └──────── 帳號伺服器(只負責把大家接起來)────────┘ | 大腦:Bot、聊天、記憶、例行任務在這裡 | 手腳:大腦叫它看畫面、點擊、讀檔、開瀏覽器 ``` | 角色 | 你要做的 | |---|---| | 大腦 | 架一次伺服器,或先用一台常開的 Mac | | 螢幕 | 裝桌面 App,登入同一個帳號 | | 手腳 | 按「加一台電腦」,把那一行貼過去 | | 手機 | 瀏覽器打開你的網址,加入主畫面 | 沒有伺服器也可以先拿一台 Mac 當大腦,見 [docs/multi-device.md](docs/multi-device.md) 的做法 B。 --- ## 一句話進去之後 ```mermaid flowchart TD you[你:桌面 App 或手機] relay[帳號伺服器
只轉送,不保存聊天] brain[大腦上的 AnyBot] model[你選的模型] ask[要動電腦?先問你] box[Bot 自己的電腦
Docker 裡的小桌面] hands[某一台手腳
你的 Mac、Linux 或 Windows] you --> relay --> brain brain --> model brain --> ask ask --> box ask --> hands ``` 1. 你在桌面或手機送出訊息。手機不自己想,它看的是大腦上的同一份聊天。 2. 大腦把這句話、這個 Bot 的指示、它能用的工具,交給你選的模型。 3. 模型只要回答就直接寫回來;要讀檔、開網頁、點畫面,就提出一個動作。 4. 這個動作先過 AnyBot 自己的規則,不讓模型決定能不能做。 5. 你允許之後,動作在**你指定的那台電腦**上做:隔離桌面、你正在用的這台,或一台配對過的手腳。 6. 結果回到聊天。手機、筆電看到同一份,因為都在看大腦。 三支程式就夠了,沒有資料庫伺服器:`anybot`(桌面、背景 `anybot --serve`、終端機設定 `anybot setup` 都這一支)、`anybot-relay`(帳號伺服器,電腦主動連過去)、手機網頁(一個檔案,做在程式裡)。實作細節在 [docs/architecture.md](docs/architecture.md)。 --- ## 文件 | 你想… | 看 | |---|---| | 手機、大腦、手腳、連不上 | [docs/multi-device.md](docs/multi-device.md) | | 某個平台裝失敗、要自己編譯 | [docs/install.md](docs/install.md) | | 程式怎麼分層 | [docs/architecture.md](docs/architecture.md) | | 帳號伺服器的介面 | [docs/protocol.md](docs/protocol.md) | | 信任邊界、金鑰放哪 | [SECURITY.md](SECURITY.md) | | 功能一條條清單 | [FEATURES.md](FEATURES.md) | | 打包、自動建置 | [docs/release.md](docs/release.md) | 英文摘要在 `docs/en/`。 ## 一起改 ```sh git clone https://code.30cm.net/daniel.w/AnyBot.git cd AnyBot make deps && make && make install ``` `make run` 直接打開,`make test` 跑測試,`make help` 看全部。 ## 授權 Apache-2.0,見 [LICENSE](LICENSE)。