尚未收集仓库信息。
尚未检测到更新。GitHub 发布版本后会显示在这里。
Concept project for multi-agent chatrooms
翻译准备中
正在加载完整 README。
查看完整 README ↗A conversation-first workspace for one human and 2–6 AI participants. Each bot has its own model, name, and perspective. Built with TypeScript, Next.js, pnpm, Vercel AI Gateway, and Supabase.
Requirements: Node.js 22+, pnpm 10, and a running Docker runtime: Docker Engine on Linux, or Docker Desktop/OrbStack on macOS.
pnpm install
pnpm db:start
pnpm env:setup
pnpm dev
On Linux, install Docker Engine using your distribution's instructions and start it with sudo systemctl start docker on systemd systems. Configure your user's Docker socket access or use rootless Docker; docker ps must succeed without sudo in the same terminal used for pnpm. If group membership changed, log out and back in first. Do not run pnpm with sudo. See Docker's Linux post-install instructions for access setup and its security implications.
On macOS with OrbStack, start OrbStack and run docker context use orbstack before pnpm db:start. On either OS, check docker context show and DOCKER_HOST if Docker is unreachable. pnpm db:setup requires an already running local stack; pnpm db:start starts it and also performs that setup automatically.
Supabase applies the committed migrations when creating its local database. For an existing local database, apply pending migrations with pnpm exec supabase db push (CLI v3 defaults to local).
pnpm db:start checks all configured service ports and automatically replaces occupied ports, including those used by other Docker projects. It saves the selected ports in Git-ignored supabase/.env, keeps the committed config.toml unchanged, and refreshes the Supabase URL and keys in .env.local after a successful start. Subsequent starts reuse the ports; an already running BotsBots stack keeps its ports. db:stop, db:status, and direct Supabase CLI commands read the same local overrides. Run pnpm db:status for the current URLs; the default ports below may change when another project uses them.
pnpm env:setup creates or updates .env.local in an interactive terminal. It prompts for the Gateway key, Supabase connection, standard/premium weekly budgets, and optional site URL. Key input is hidden and existing secrets are never displayed. Press Enter to keep an existing value; Ctrl+C cancels without saving. The file has owner-only permissions (0600) and is ignored by Git. Values are stored as plaintext for Next.js to read; hidden prompts and file permissions do not encrypt them. NEXT_PUBLIC_ values are public in the browser; the Gateway and Supabase secret keys stay server-only.
db:setup fills the local Supabase URL and keys while preserving your Gateway key. For hosted Supabase, run pnpm env:setup and enter the hosted values instead. Restart the dev server after changing configuration. Create an account at the local app; local email confirmation is disabled. Supabase Studio runs at localhost:54323.
public.account_preferences) and apply to rooms you create afterwards; existing rooms keep their own settings. Restore BotsBots defaults removes them. If a saved bot uses a model that later leaves the catalog, new rooms fall back to the built-in lineup.All message attempts count toward limits, including human messages and failed bot calls. A room can pause before the displayed budget is exhausted because the next response needs a conservative reservation. The reply length setting controls the requested answer length. Gemini 3.8 Flash and Gemini 4 Hydrogen receive an additional 4,096 tokens of output headroom because their required thinking shares the output limit with the answer. Replies and summaries reserve and account for this full allowance before generation; actual usage, including thinking, counts toward room and account budgets. This headroom is a combined output allowance, not a separate hard limit on thinking tokens. Replies use the lowest supported reasoning setting, request concise answers, and show a notice if the model reaches its output limit. Increasing the reply length applies to future replies; existing truncated text cannot be recovered automatically. Bot messages show local timestamps with the full date on hover.
Click Summarize, choose a model from the catalog, then click Generate summary. Opening the panel, selecting a model, polling, and resuming a room never generate summaries automatically. Each result separates the bots' contributions using their existing room colors, names, and models, followed by a neutral combined synthesis.
以上为 README 的开头部分。其余内容请阅读原文。 查看完整 README ↗