Khám phá Learn Stream About Jokes
INSIDER Tony's Friends — Insider — ~2 playbook/tuần, Discord riêng, tài nguyên dựng sẵn Tham gia →
Stream
Liên kết

AI agent xử lý nhiều user cùng lúc cho Discord, Slack, Telegram

· github

TL;DR

Spacebot là AI agent viết bằng Rust, cho phép nhiều người tương tác đồng thời mà không chờ nhau. Khác với các framework chạy một luồng duy nhất, Spacebot chia tách thành 5 loại process chuyên biệt — channel tiếp chuyện, branch suy nghĩ, worker làm việc, compactor dọn dẹp context, và cortex quản lý memory. Memory không phải file markdown mà là graph có cấu trúc với 8 loại type.

Nói đơn giản: AI agent chạy trên nhiều nền tảng chat cùng lúc, nhớ được ai là ai, làm được việc thật (code, file, browse web) mà không bị đứng máy.

Bài này dành cho ai?

1. Người muốn AI làm việc thay mình

Vấn đề: Các agent hiện tại cứ phải đợi nhau — khi nó đang suy nghĩ thì không trả lời được, khi đang compact context thì tắt đen, khi search memory thì context bị phình lên noise.

Khi nào cần: Community Discord 50+ members, team Slack nhiều người hỏi việc cùng lúc, hoặc cần AI vừa trả lời chat vừa chạy code background.

Được gì: Agent phản hồi ngay, không bị block bởi tác vụ nặng. Worker chạy code trong khi channel vẫn nói chuyện bình thường.

2. Người muốn build sản phẩm AI agent

Vấn đề: Muốn build agent cho multi-user nhưng architecture một luồng không đủ. Không biết làm sao quản lý memory cho nhiều user, context window có hạn mà user cứ chat dài.

Khi nào cần: Build community bot, team assistant, hoặc bất kỳ sản phẩm nào nhiều người dùng đồng thời.

Được gì: Architecture đã được thiết kế sẵn — cứ việc config, deploy, không cần tự xây từ đầu.

3. Dev muốn self-host AI agent

Vấn đề: Các framework hiện tại phụ thuộc cloud, hoặc cần Docker, microservices phức tạp. Không muốn bị lock vào provider nào.

Khi nào cần: Cần kiểm soát data, chạy local, hoặc dùng model riêng (Ollama, GLM).

Được gì: Single Rust binary, không cần server dependencies. Clone, build, run. Có cả hosted option nếu không muốn tự host.


Các điểm chính

  1. Một luồng = bottleneck, chia process = concurrent Các agent truyền thống chạy mọi thứ trong một session — khi nó đang làm việc thì không trả lời được, khi đang compact context thì tắt đen. Spacebot chia thành 5 process chuyên biệt chạy song song. → Làm gì: Xây dựng agent theo mô hình delegation — channel giao việc, worker làm, không bao giờ block.

  2. Memory là graph có type, không phải markdown hay vector đơn thuần 8 loại memory: Fact, Preference, Decision, Identity, Event, Observation, Goal, Todo. Mỗi memory có graph edges nối với memory liên quan. Agent biết được sự khác biệt giữa “một sự thật”, “một quyết định”, và “một mục tiêu” — chứ không phải cứ “nhớ” lung tung. → Làm gì: Khi thiết kế memory cho agent, định nghĩa rõ type từ đầu, đừng lưu tất cả dạng text.

  3. Message coalescing — đọc cả room thay vì spam reply Khi messages bay nhanh, Spacebot batch lại thành một turn cho LLM, có cả timing context. Agent tự quyết định reply cái gì thú vị nhất, hoặc im lặng nếu không có gì đáng reply. → Làm gì: Không cần reply mọi tin nhắn — để LLM tự đánh giá priority.

  4. 4-level model routing — chọn model đúng cho tác vụ Process-type routing (channel dùng model tốt, worker dùng model rẻ), task-type override (coding worker upgrade lên model mạnh), prompt complexity scoring (tự động downgrade tác vụ đơn giản sang model cheap), và fallback chains (model lỗi tự động nhảy sang model khác). → Làm gì: Config routing để tối ưu cost — channel dùng Sonnet, worker dùng Haiku, simple query dùng free tier.

  5. Security: kernel-enforced sandbox, không phải string filtering Shell và exec tools chạy trong bubblewrap (Linux) hoặc sandbox-exec (macOS). Toàn bộ filesystem read-only trừ workspace. Không LLM nào có thể write ra ngoài sandbox được — đây là kernel-enforced, không phải filter string đơn thuần. → Làm gì: Khi cho agent chạy shell command, KHÔNG BAO GIỜ tắt sandbox mode.

  6. Branches — think without blocking Channel branch ra một fork để suy nghĩ, có đầy đủ context như channel. Trong khi branch suy nghĩ, channel vẫn trả lời được câu hỏi khác. Branch xong thì channel nhận kết quả và respond. → Làm gì: Dùng branch cho tác vụ cần suy nghĩ (research, memory recall) trong khi vẫn giữ channel responsive.

  7. MCP integration — kết nối external tools dễ dàng Khai báo MCP server trong config, Spacebot tự discover tools, tự retry khi lỗi, hot-reload được. Không cần viết Rust implementation cho mỗi external service. → Làm gì: Cần tool gì thì khai báo MCP server, không cần code thêm.


Quick Start

1. Build và chạy thử:

git clone https://github.com/spacedriveapp/spacebot
cd spacebot
cargo build --release

2. Tạo config.toml cơ bản:

[llm]
openrouter_key = "env:OPENROUTER_API_KEY"

[defaults.routing]
channel = "anthropic/claude-sonnet-4"
worker = "anthropic/claude-sonnet-4"

[[agents]]
id = "my-agent"

[messaging.discord]
token = "env:DISCORD_BOT_TOKEN"

[[bindings]]
agent_id = "my-agent"
channel = "discord"
guild_id = "your-discord-guild-id"

3. Chạy:

spacebot  # start daemon
spacebot status  # kiểm tra

Binary tự tạo database và directories khi chạy lần đầu.


#rust #ai-agent #concurrency #discord #slack #memory-graph #mcp #automation #dev-tools
0:00

Chia sẻ ảnh

Bắt đầu gõ để tìm kiếm...