MCPcopy Index your code
hub / github.com/Arvincreator/project-golem

github.com/Arvincreator/project-golem @v9.6.14

Chat with this repo
repository ↗ · DeepWiki ↗ · release v9.6.14 ↗ · + Follow
2,287 symbols 6,685 edges 357 files 262 documented · 11% updated 16d agov9.6.14 · 2026-05-18★ 6305 open issues
What it actually does AI analysis from the code graph — generated when you open this
loading…
README

Project Golem Logo

Project Golem v9.6

可長期陪跑的自主 AI 代理系統:Web Gemini、Ollama、LM Studio、多代理、技能、記憶與 Web Dashboard。

<img src="https://img.shields.io/badge/Version-9.6.14-blue?style=for-the-badge" alt="Version">
<img src="https://img.shields.io/badge/Node.js-20--22-green?style=for-the-badge&logo=nodedotjs" alt="Node.js">
<img src="https://img.shields.io/badge/Backend-Gemini%20Web%20%7C%20Ollama%20%7C%20LM%20Studio-orange?style=for-the-badge" alt="Backends">
<img src="https://img.shields.io/badge/Dashboard-Next.js%2016-black?style=for-the-badge&logo=nextdotjs" alt="Dashboard">
<img src="https://img.shields.io/badge/License-Source--Available%20NC-red?style=for-the-badge" alt="License">







<a href="#這是什麼">這是什麼</a> ·
<a href="#核心能力">核心能力</a> ·
<a href="#快速開始">快速開始</a> ·
<a href="#設定重點">設定重點</a> ·
<a href="#文件地圖">文件地圖</a>

繁體中文 | English | 貢獻指南


這是什麼

Project Golem 是一套以 Node.js 驅動的自主 AI 代理系統。它可以透過 Playwright 操控 Web Gemini,也可以切換到 Ollama 或 LM Studio 走本機/私有模型路線;前端則提供 Web Dashboard,用來管理對話、技能、人格、記憶、MCP 工具、多代理會議與系統設定。

這個專案目前比較像「個人 AI 作業系統」而不是單純 chatbot:它有長期記憶、任務隊列、指令安全防護、Telegram/Discord bridge、瀏覽器操作、排程自省、技能熱載入,以及一個能直接操作 Golem 的網頁控制台。

核心能力

能力 說明
多後端大腦 gemini 使用 Browser-in-the-Loop 操控 Web Gemini;ollamalmstudio 支援本機/私有部署模型。
Web Dashboard 預設掛在 http://localhost:3000/dashboard,提供終端對話、技能管理、人格市場、記憶搜尋、MCP 管理、系統設定與更新入口。
長期記憶 支援 lancedb-pro 向量記憶與原生記憶模式,並保留金字塔式摘要、日記 rotate、備份與還原流程。
技能系統 src/skills/ 內建核心技能,可透過 Dashboard 開關、匯入、匯出與重新注入。
多代理討論 InteractiveMultiAgent 可召集多個角色進行圓桌討論,並產出共識摘要。
外部通道 支援 Telegram 與 Discord;Telegram 預設走 grammY bridge,並有 circuit breaker 保護輪詢。
MCP 工具 Dashboard 可新增、測試與檢視 stdio MCP server,供 Golem 擴充外部工具能力。
安全控管 支援遠端登入、SYSTEM_OP_TOKEN、API rate limit、指令白名單與危險命令防護。

介面預覽

Dashboard 首頁 Web Terminal Skill Manager Memory Core

快速開始

環境需求

  • Node.js >=20 <23
  • npm
  • Chromium 或 Google Chrome
  • 第一次使用 Web Gemini 時,需要可互動的瀏覽器畫面完成 Google 登入與授權
  • Telegram/Discord token 為選填;只用 Web Dashboard 可以先不設定

一鍵模式

macOS / Linux 可直接使用啟動腳本:

chmod +x setup.sh
./setup.sh --magic
./setup.sh --start

也可以雙擊根目錄的 Start-Golem.command。Windows 使用者可用 Start-Golem.batsetup.bat,或在 Git Bash 裡執行 ./setup.sh --magic

手動模式

npm install
npx playwright install chromium
cp .env.example .env
npm run dashboard

啟動後開啟:

http://localhost:3000/dashboard

如果只想跑主 runtime,也可以使用:

npm start

設定重點

.env.example 已收錄主要設定。第一次啟動時若根目錄沒有 .env,系統會自動從 .env.example 複製一份。

Web Gemini 預設模式

GOLEM_BACKEND=gemini
GOLEM_MEMORY_MODE=lancedb-pro
PLAYWRIGHT_STEALTH_ENABLED=true
ALLOW_REMOTE_ACCESS=false

第一次登入請不要開 headless:

PLAYWRIGHT_HEADLESS=

等 Google session 寫入 golem_memory/ 後,再視需求改成背景模式:

PLAYWRIGHT_HEADLESS=true

Ollama 本機模型

GOLEM_BACKEND=ollama
GOLEM_OLLAMA_BASE_URL=http://127.0.0.1:11434
GOLEM_OLLAMA_BRAIN_MODEL=llama3.1:8b
GOLEM_EMBEDDING_PROVIDER=ollama
GOLEM_OLLAMA_EMBEDDING_MODEL=nomic-embed-text

LM Studio

GOLEM_BACKEND=lmstudio
GOLEM_LMSTUDIO_BASE_URL=http://127.0.0.1:1234/v1
GOLEM_LMSTUDIO_BRAIN_MODEL=local-model
GOLEM_LMSTUDIO_API_KEY=

Dashboard 與遠端存取

ENABLE_WEB_DASHBOARD=true
DASHBOARD_PORT=3000
ALLOW_REMOTE_ACCESS=false
REMOTE_ACCESS_PASSWORD=
SYSTEM_OP_TOKEN=

若把 ALLOW_REMOTE_ACCESS 設為 true,請務必設定強密碼,並搭配防火牆、VPN 或反向代理權限控管。

Telegram / Discord

TELEGRAM_TOKEN=
TG_AUTH_MODE=ADMIN
ADMIN_ID=
TG_CHAT_ID=

DISCORD_TOKEN=
DISCORD_ADMIN_ID=

Token 取得方式請看 如何獲取 TG 或 DC 的 Token 及開啟權限

常用指令

npm scripts

指令 說明
npm run dashboard 啟動 Golem runtime 與 Web Dashboard。
npm start 啟動核心 runtime。
npm run dev 使用 nodemon 啟動 Dashboard 模式。
npm run doctor 檢查 Node、npm、.env、依賴、Playwright Chromium 與 Dashboard port。
npm test 執行 Jest 測試。
npm run test:coverage 執行測試並輸出 coverage。
npm run test:security 執行安全相關測試。
npm run arch:check 檢查架構分層邊界。
npm run build 建置 web-dashboard

對話指令

指令 說明
/help 查看可用指令。
/new 重開 Gemini 對話視窗並載入相關記憶。
/new_memory 清空底層記憶資料並重新開始。
/sos 清除 DOM 快取,讓 DOM Doctor 重新掃描頁面。
/model 操作 Web Gemini UI 切換模型。
/skills 列出已安裝技能。
/learn <功能> 讓 Golem 嘗試產生或學習新技能。
/install skill <path> 從本機資料夾安裝技能套件(需含 manifest.json)。
/install skill-gh <url> 從 GitHub repo/tree URL 安裝技能。
/install mcp-file <path> 從本機 JSON 檔安裝或更新 MCP 伺服器設定。
/install mcp-json <json> 直接貼單行 JSON 安裝或更新 MCP 伺服器設定。
/install mcp-url <url> 從 HTTPS JSON URL 安裝或更新 MCP 伺服器設定。

更多指令請看 Golem 指令說明一覽表

遠端安裝採開放來源模式(技能限 github.com、MCP 限 https URL);安裝風險由使用者自行承擔。

Docker / VPS

本專案提供 Docker Compose 與 noVNC/headless 相關設定。常用入口:

docker compose up -d --build

或使用 setup 腳本:

./setup.sh --deploy-docker
./setup.sh --deploy-linux
./setup.sh --headless-stop

詳細部署方式請看 Docker 本機部署指南VPS Headless + VNC 指南

專案結構

project-golem-plus/
├── apps/
│   ├── runtime/              # 實際核心啟動入口
│   └── dashboard/            # Dashboard app/plugin layer
├── src/
│   ├── core/                 # GolemBrain、ConversationManager、ActionQueue 等核心流程
│   ├── managers/             # 記憶、技能、設定、日誌、自主行動等管理器
│   ├── bridges/              # Telegram / Discord bridge
│   ├── services/             # Ollama、LM Studio、DOM Doctor、Optic Nerve 等服務
│   ├── mcp/                  # MCP client/manager
│   └── skills/               # 核心技能與技能文件
├── web-dashboard/            # Next.js Dashboard
├── packages/                 # memory / protocol / security facade
├── infra/                    # 架構治理與部署相關資料
├── docs/                     # 使用、部署、架構與開發文件
├── assets/                   # README 與 Dashboard 截圖素材
├── index.js                  # 相容入口,轉交 apps/runtime
└── dashboard.js              # 相容入口,啟動 Dashboard server

新開發請優先參考 apps/src/packages/ 的分層;提交前建議跑:

npm run arch:check
npm test

文件地圖

文件 用途
AI 編碼代理指南 給開發者與 coding agent 的架構維護守則。
Web Dashboard 使用說明 Dashboard 頁面、API、設定與操作說明。
MCP 使用與開發指南 新增與除錯 MCP server。
記憶系統架構說明 長期記憶、摘要與資料路徑。
大型產品架構藍圖 apps + packages + infra 分層與遷移策略。
架構治理規範 架構邊界規則與檢查工具。
開發者實作指南 Skill 與 Golem Protocol 開發方式。
Docker 本機部署指南 Docker Compose 本機部署。
VPS Headless + VNC 指南 無桌面 Linux / noVNC 部署。
貢獻指南 貢獻流程與注意事項。

安全與隱私

  • golem_memory/ 可能包含 Google session、對話記憶與私人資料,請不要提交或公開。
  • .env 可能包含 token、密碼與操作金鑰,請只提交 .env.example
  • 不建議以 root/admin 身份長期運行 Golem。
  • 開放遠端 Dashboard 前,請先設定 REMOTE_ACCESS_PASSWORDSYSTEM_OP_TOKEN,並使用可信網路邊界。
  • Golem 可執行本地指令與自動化流程,請謹慎啟用 GOLEM_AUTO_APPROVE_ALL

授權

Project Golem 採用 Source-Available Non-Commercial License

  • 個人使用、學習、研究、評估與非商業社群貢獻:允許。
  • 商業使用、公司/團隊生產環境、SaaS、代部署、顧問交付、商業整合、改版販售或盈利性服務:必須先取得 Arvincreator 的書面授權。
  • 商業授權與合作請參考 COMMERCIAL-LICENSE.md

注意:本專案過去已用 MIT 發佈的舊版本或舊副本,仍依取得當時的授權條款處理;本次授權變更後的新版本與新增內容適用目前的非商業授權。

社群與支持

如果 Project Golem 對你有幫助,歡迎 star 這個 repo,或請作者喝杯咖啡。

Buy Me A Coffee


Developed by Arvincreator and contributors.

Extension points exported contracts — how you extend this code

SkeletonProps (Interface)
* Skeleton loading states for dashboard components. * Shows animated placeholder blocks while data loads.
web-dashboard/src/components/LoadingSkeleton.tsx
GolemInfo (Interface)
(no doc)
web-dashboard/src/components/GolemContext.tsx
GolemContextType (Interface)
(no doc)
web-dashboard/src/components/GolemContext.tsx
MemoryItem (Interface)
(no doc)
web-dashboard/src/components/MemoryTable.tsx
ThemeContextType (Interface)
(no doc)
web-dashboard/src/components/ThemeProvider.tsx

Core symbols most depended-on inside this repo

log
called by 516
src/views/TerminalView.js
t
called by 362
src/i18n/index.js
filter
called by 357
src/managers/ToolUsePolicy.js
status
called by 235
src/utils/ProcessManager.js
parse
called by 177
src/utils/ResponseParser.js
cn
called by 164
web-dashboard/src/lib/utils.ts
resolve
called by 130
src/managers/ExampleResolver.js
reply
called by 112
src/core/NodeRouter.js

Shape

Function 1,309
Method 753
Class 184
Interface 41

Languages

TypeScript95%
Python5%

Modules by API surface

web-dashboard/routes/api.diary.js103 symbols
src/services/CalendarCollabService.js54 symbols
src/mcp/MCPManager.js48 symbols
src/core/GolemBrain.js48 symbols
src/services/StockDashboardSnapshot.js47 symbols
src/core/InteractiveMultiAgent.js45 symbols
src/bridges/GatewayManager.js42 symbols
web-dashboard/routes/api.prompt-pool.js41 symbols
tools/notebooklm-studio/dashboard/app.js40 symbols
src/services/ReferenceFileService.js38 symbols
src/core/PageInteractor.js38 symbols
web-dashboard/src/app/dashboard/skills/page.tsx33 symbols

For agents

$ claude mcp add project-golem \
  -- python -m otcore.mcp_server <graph>

⬇ download graph artifact

Ask about this repo answers extend the page