AnyBot/README.md

7.4 KiB
Raw Blame History

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 秒裝好

打開終端機,貼一行。

# 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
# 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 它自己處理):

curl -fsSL https://code.30cm.net/daniel.w/AnyBot/raw/branch/main/install.sh | sh -s -- server

無頭手腳(給 Bot 操控的電腦,沒螢幕也行)。網址和配對碼在 AnyBot 按「加一台電腦」就會看到:

curl -fsSL https://code.30cm.net/daniel.w/AnyBot/raw/branch/main/install.sh \
  | sh -s -- hands https://你的網址 482913
# 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。


它會先問你,再動手

你說「在我的電腦上做」,它不會默默執行。畫面上出現要做的事,你按允許才繼續。付款、寄出、刪除這類動作,每次都會再問一次,即使你關掉了別的詢問。

Bot 要在你的電腦上執行指令前,先跳出允許一次、一律允許或拒絕

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

手機瀏覽器打開你的網址,先登入

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


一台想,幾台被用

一台負責想和記(大腦),其他電腦負責被操作(手腳),手機只是一個視窗。它們都連到你自己的帳號伺服器,所以家裡的電腦不用開連接埠、也不用固定 IP。

  你在手機上說話          你在筆電上說話         沒螢幕的電腦也行
        \                      |                      /
         └──────── 帳號伺服器(只負責把大家接起來)────────┘
                               |
                    大腦:Bot、聊天、記憶、例行任務在這裡
                               |
              手腳:大腦叫它看畫面、點擊、讀檔、開瀏覽器
角色 你要做的
大腦 架一次伺服器,或先用一台常開的 Mac
螢幕 裝桌面 App,登入同一個帳號
手腳 按「加一台電腦」,把那一行貼過去
手機 瀏覽器打開你的網址,加入主畫面

沒有伺服器也可以先拿一台 Mac 當大腦,見 docs/multi-device.md 的做法 B。


一句話進去之後

flowchart TD
  you[你:桌面 App 或手機]
  relay[帳號伺服器<br/>只轉送,不保存聊天]
  brain[大腦上的 AnyBot]
  model[你選的模型]
  ask[要動電腦?先問你]
  box[Bot 自己的電腦<br/>Docker 裡的小桌面]
  hands[某一台手腳<br/>你的 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/multi-device.md
某個平台裝失敗、要自己編譯 docs/install.md
程式怎麼分層 docs/architecture.md
帳號伺服器的介面 docs/protocol.md
信任邊界、金鑰放哪 SECURITY.md
功能一條條清單 FEATURES.md
打包、自動建置 docs/release.md
改這份 README(不跑版的寫法) docs/readme-style.md

英文摘要在 docs/en/。

一起改

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。