docs: hoàn thành dịch thuật toàn bộ tài liệu sang tiếng Việt
This commit is contained in:
parent
109ac1c549
commit
08fd75d692
@ -510,5 +510,5 @@ Thanks to all clawtributors:
|
||||
<a href="https://github.com/siraht"><img src="https://avatars.githubusercontent.com/u/73152895?v=4&s=48" width="48" height="48" alt="siraht" title="siraht"/></a> <a href="https://github.com/snopoke"><img src="https://avatars.githubusercontent.com/u/249606?v=4&s=48" width="48" height="48" alt="snopoke" title="snopoke"/></a> <a href="https://github.com/Suksham-sharma"><img src="https://avatars.githubusercontent.com/u/94667656?v=4&s=48" width="48" height="48" alt="Suksham-sharma" title="Suksham-sharma"/></a> <a href="https://github.com/search?q=techboss"><img src="assets/avatar-placeholder.svg" width="48" height="48" alt="techboss" title="techboss"/></a> <a href="https://github.com/testingabc321"><img src="https://avatars.githubusercontent.com/u/8577388?v=4&s=48" width="48" height="48" alt="testingabc321" title="testingabc321"/></a> <a href="https://github.com/search?q=The%20Admiral"><img src="assets/avatar-placeholder.svg" width="48" height="48" alt="The Admiral" title="The Admiral"/></a> <a href="https://github.com/thesash"><img src="https://avatars.githubusercontent.com/u/1166151?v=4&s=48" width="48" height="48" alt="thesash" title="thesash"/></a> <a href="https://github.com/search?q=Ubuntu"><img src="assets/avatar-placeholder.svg" width="48" height="48" alt="Ubuntu" title="Ubuntu"/></a> <a href="https://github.com/voidserf"><img src="https://avatars.githubusercontent.com/u/477673?v=4&s=48" width="48" height="48" alt="voidserf" title="voidserf"/></a> <a href="https://github.com/search?q=Vultr-Clawd%20Admin"><img src="assets/avatar-placeholder.svg" width="48" height="48" alt="Vultr-Clawd Admin" title="Vultr-Clawd Admin"/></a>
|
||||
<a href="https://github.com/search?q=Wimmie"><img src="assets/avatar-placeholder.svg" width="48" height="48" alt="Wimmie" title="Wimmie"/></a> <a href="https://github.com/search?q=wolfred"><img src="assets/avatar-placeholder.svg" width="48" height="48" alt="wolfred" title="wolfred"/></a> <a href="https://github.com/wstock"><img src="https://avatars.githubusercontent.com/u/1394687?v=4&s=48" width="48" height="48" alt="wstock" title="wstock"/></a> <a href="https://github.com/yazinsai"><img src="https://avatars.githubusercontent.com/u/1846034?v=4&s=48" width="48" height="48" alt="yazinsai" title="yazinsai"/></a> <a href="https://github.com/YiWang24"><img src="https://avatars.githubusercontent.com/u/176262341?v=4&s=48" width="48" height="48" alt="YiWang24" title="YiWang24"/></a> <a href="https://github.com/search?q=ymat19"><img src="assets/avatar-placeholder.svg" width="48" height="48" alt="ymat19" title="ymat19"/></a> <a href="https://github.com/search?q=Zach%20Knickerbocker"><img src="assets/avatar-placeholder.svg" width="48" height="48" alt="Zach Knickerbocker" title="Zach Knickerbocker"/></a> <a href="https://github.com/0xJonHoldsCrypto"><img src="https://avatars.githubusercontent.com/u/81202085?v=4&s=48" width="48" height="48" alt="0xJonHoldsCrypto" title="0xJonHoldsCrypto"/></a> <a href="https://github.com/aaronn"><img src="https://avatars.githubusercontent.com/u/1653630?v=4&s=48" width="48" height="48" alt="aaronn" title="aaronn"/></a> <a href="https://github.com/Alphonse-arianee"><img src="https://avatars.githubusercontent.com/u/254457365?v=4&s=48" width="48" height="48" alt="Alphonse-arianee" title="Alphonse-arianee"/></a>
|
||||
<a href="https://github.com/atalovesyou"><img src="https://avatars.githubusercontent.com/u/3534502?v=4&s=48" width="48" height="48" alt="atalovesyou" title="atalovesyou"/></a> <a href="https://github.com/search?q=Azade"><img src="assets/avatar-placeholder.svg" width="48" height="48" alt="Azade" title="Azade"/></a> <a href="https://github.com/carlulsoe"><img src="https://avatars.githubusercontent.com/u/34673973?v=4&s=48" width="48" height="48" alt="carlulsoe" title="carlulsoe"/></a> <a href="https://github.com/search?q=ddyo"><img src="assets/avatar-placeholder.svg" width="48" height="48" alt="ddyo" title="ddyo"/></a> <a href="https://github.com/search?q=Erik"><img src="assets/avatar-placeholder.svg" width="48" height="48" alt="Erik" title="Erik"/></a> <a href="https://github.com/latitudeki5223"><img src="https://avatars.githubusercontent.com/u/119656367?v=4&s=48" width="48" height="48" alt="latitudeki5223" title="latitudeki5223"/></a> <a href="https://github.com/search?q=Manuel%20Maly"><img src="assets/avatar-placeholder.svg" width="48" height="48" alt="Manuel Maly" title="Manuel Maly"/></a> <a href="https://github.com/search?q=Mourad%20Boustani"><img src="assets/avatar-placeholder.svg" width="48" height="48" alt="Mourad Boustani" title="Mourad Boustani"/></a> <a href="https://github.com/odrobnik"><img src="https://avatars.githubusercontent.com/u/333270?v=4&s=48" width="48" height="48" alt="odrobnik" title="odrobnik"/></a> <a href="https://github.com/pcty-nextgen-ios-builder"><img src="assets/avatar-placeholder.svg" width="48" height="48" alt="pcty-nextgen-ios-builder" title="pcty-nextgen-ios-builder"/></a>
|
||||
<a href="https://github.com/search?q=Quentin"><img src="assets/avatar-placeholder.svg" width="48" height="48" alt="Quentin" title="Quentin"/></a> <a href="https://github.com/search?q=Randy%20Torres"><img src="assets/avatar-placeholder.svg" width="48" height="48" alt="Randy Torres" title="Randy Torres"/></a> <a href="https://github.com/rhjoh"><img src="https://avatars.githubusercontent.com/u/105699450?v=4&s=48" width="48" height="48" alt="rhjoh" title="rhjoh"/></a> <a href="https://github.com/ronak-guliani"><img src="https://avatars.githubusercontent.com/u/23518228?v=4&s=48" width="48" height="48" alt="ronak-guliani" title="ronak-guliani"/></a> <a href="https://github.com/search?q=William%20Stock"><img src="assets/avatar-placeholder.svg" width="48" height="48" alt="William Stock" title="William Stock"/></a>
|
||||
<a href="https://github.com/search?q=Quentin"><img src="assets/avatar-placeholder.svg" width="48" height="48" alt="Quentin" title="Quentin"/></a> <a href="https://github.com/search?q=Randy%20Torres"><img src="assets/avatar-placeholder.svg" width="48" height="48" alt="Randy Torres" title="Randy Torres"/></a> <a href="https://github.com/rhjoh"><img src="https://avatars.githubusercontent.com/u/105699450?v=4&s=48" width="48" height="48" alt="rhjoh" title="rhjoh"/></a> <a href="https://github.com/ronak-guliani"><img src="https://avatars.githubusercontent.com/u/23518228?v=4&s=48" width="48" height="48" alt="ronak-guliani" title="ronak-guliani"/></a> <a href="https://github.com/search?q=William%20Stock"><img src="assets/avatar-placeholder.svg" width="48" height="48" alt="William Stock" title="William Stock"/></a> <a href="https://github.com/dokhacgiakhoa"><img src="https://github.com/dokhacgiakhoa.png?size=48" width="48" height="48" alt="Đỗ Khắc Gia Khoa" title="Đỗ Khắc Gia Khoa"/></a>
|
||||
</p>
|
||||
|
||||
108
translation/vietnamese/AGENTS.vi.md
Normal file
108
translation/vietnamese/AGENTS.vi.md
Normal file
@ -0,0 +1,108 @@
|
||||
# Hướng dẫn về Repository và Agents
|
||||
|
||||
- **Link Repo:** https://github.com/moltbot/moltbot
|
||||
- **Giao tiếp trên GitHub:** Khi comment trên Issues hoặc PR, hãy dùng chuỗi nhiều dòng (literal multiline strings) hoặc `-F - <<'EOF'` (hoặc `$'...'`) để tạo dòng mới thực sự. Tuyệt đối không nhúng ký tự `\n` vào chuỗi.
|
||||
|
||||
## Cấu trúc Dự án & Tổ chức Module
|
||||
|
||||
- **Mã nguồn (`src/`):** Nơi chứa toàn bộ source code.
|
||||
- `src/cli`: Các file kết nối CLI.
|
||||
- `src/commands`: Logic các câu lệnh commands.
|
||||
- `src/provider-web.ts`: Nhà cung cấp dịch vụ web.
|
||||
- `src/infra`: Cơ sở hạ tầng.
|
||||
- `src/media`: Pipeline xử lý media.
|
||||
- **Tests:** Các file test (`*.test.ts`) được đặt ngay cạnh file code tương ứng (colocated).
|
||||
- **Tài liệu (`docs/`):** Chứa ảnh, tài liệu về hàng đợi (queue), cấu hình Pi. File build ra sẽ nằm trong `dist/`.
|
||||
- **Plugins/Extensions:**
|
||||
- Nằm trong thư mục `extensions/*` (được quản lý như các gói workspace).
|
||||
- **Lưu ý quan trọng:** Chỉ thêm dependencies vào file `package.json` của extension đó, KHÔNG thêm vào `package.json` gốc của dự án trừ khi phần core thực sự cần dùng.
|
||||
- **Cài đặt:** Khi chạy install plugin, hệ thống sẽ chạy `npm install --omit=dev`. Do đó, các dependency cần thiết khi chạy (runtime) phải nằm trong `dependencies`.
|
||||
- Tránh dùng `workspace:*` trong `dependencies` vì sẽ gây lỗi khi `npm install`. Thay vào đó, hãy để `moltbot` trong `devDependencies` hoặc `peerDependencies`. Runtime sẽ tự động giải quyết `clawdbot/plugin-sdk` thông qua jiti alias.
|
||||
- **Trình cài đặt (Installers):** Các file script cài đặt (`install.sh`, `install.ps1`...) nằm ở repo anh em `../molt.bot`.
|
||||
- **Kênh nhắn tin (Channels):**
|
||||
- Khi sửa logic chung (routing, allowlists, pairing...), hãy nhớ kiểm tra ảnh hưởng đến **tất cả** các kênh (cả built-in và extensions).
|
||||
- Tài liệu kênh: `docs/channels/`
|
||||
- Code kênh core: `src/telegram`, `src/discord`, `src/slack`, v.v.
|
||||
- Extensions: `extensions/msteams`, `extensions/zalo`...
|
||||
|
||||
## Quy chuẩn Liên kết Tài liệu (Mintlify)
|
||||
|
||||
- **Website Docs:** [docs.molt.bot](https://docs.molt.bot).
|
||||
- **Link nội bộ (trong thư mục `docs/`):** Sử dụng đường dẫn tương đối gốc (root-relative), KHÔNG có đuôi `.md`.
|
||||
- *Ví dụ đúng:* `[Cấu hình](/configuration)`
|
||||
- *Ví dụ sai:* `[Cấu hình](../configuration.md)`
|
||||
- **Tham chiếu chéo (Anchor links):** Dùng anchor trên đường dẫn gốc. Ví dụ: `[Hooks](/configuration#hooks)`.
|
||||
- **Tiêu đề:** Tránh dùng dấu gạch ngang dài (em dashes `—`) hoặc dấu nháy đơn `'` trong tiêu đề bài viết vì chúng làm hỏng cơ chế tạo link anchor của Mintlify.
|
||||
- **Gửi link cho người khác:** Luôn dùng URL đầy đủ `https://docs.molt.bot/...`.
|
||||
- **Trong README:** Luôn dùng link tuyệt đối để bấm được ngay trên GitHub.
|
||||
- **Nội dung:** Viết chung chung, tránh lộ tên thiết bị/hostname cá nhân. Dùng `user@gateway-host` thay vì `hieu@may-cua-toi`.
|
||||
|
||||
## Vận hành VM (Dành cho nội bộ exe.dev)
|
||||
|
||||
- **Truy cập:** `ssh exe.dev` -> `ssh vm-name`.
|
||||
- **Lưu ý:** SSH có thể chập chờn, nên dùng Shelley (web agent) hoặc giữ phiên `tmux` nếu chạy tác vụ lâu.
|
||||
- **Cập nhật:** `sudo npm i -g moltbot@latest` (Cần quyền root vì cài global).
|
||||
- **Cấu hình:** Dùng `moltbot config set ...` và đảm bảo `gateway.mode=local`.
|
||||
- **Discord:** Lưu token thô, không cần tiền tố `DISCORD_BOT_TOKEN=`.
|
||||
- **Khởi động lại (Restart):** Kill process cũ và chạy lại nohup.
|
||||
- **Kiểm tra:** Dùng `moltbot channels status --probe` hoặc `tail` log.
|
||||
|
||||
## Lệnh Build, Test & Dev
|
||||
|
||||
- **Runtime:** Node **22+**. (Dự án vẫn hỗ trợ cả Node và Bun).
|
||||
- **Cài đặt:** `pnpm install` (Ưu tiên). `bun install` cũng được hỗ trợ (nhớ đồng bộ `pnpm-lock.yaml`).
|
||||
- **Dev:**
|
||||
- Chạy script/test: Dùng `bun` cho nhanh (`bun <file.ts>`).
|
||||
- Chạy CLI dev: `pnpm moltbot ...` (chạy qua bun/tsx) hoặc `pnpm dev`.
|
||||
- Chạy bản build (production): Dùng Node để chạy file trong `dist/`.
|
||||
- **Check code:** `pnpm build` (tsc), `pnpm lint` (oxlint), `pnpm format` (oxfmt).
|
||||
- **Test:** `pnpm test` (vitest).
|
||||
|
||||
## Phong cách Code (Coding Style)
|
||||
|
||||
- **Ngôn ngữ:** TypeScript (ESM). Bắt buộc dùng kiểu dữ liệu chặt chẽ (strict typing), hạn chế tối đa `any`.
|
||||
- **Lint/Format:** Phải chạy `pnpm lint` trước khi commit.
|
||||
- **Comment:** Viết chú thích ngắn gọn cho các đoạn logic "ảo diệu" hoặc khó hiểu.
|
||||
- **Kích thước file:** Cố gắng giữ dưới ~700 dòng code. Tách nhỏ ra nếu file quá dài để dễ đọc và dễ test.
|
||||
- **Đặt tên:**
|
||||
- **Moltbot**: Dùng cho tên sản phẩm, tiêu đề tài liệu.
|
||||
- `moltbot`: Dùng cho lệnh CLI, tên gói, đường dẫn file, key cấu hình.
|
||||
|
||||
## Kênh phát hành (Release Channels)
|
||||
|
||||
- **stable**: Chỉ dành cho bản release có gắn thẻ (`vYYYY.M.D`).
|
||||
- **beta**: Bản thử nghiệm (`-beta.N`), có thể không có app macOS đi kèm.
|
||||
- **dev**: Nhánh `main` đang phát triển.
|
||||
|
||||
## Hướng dẫn Test
|
||||
|
||||
- **Framework:** Vitest.
|
||||
- **Ngưỡng coverage:** 70% (dòng, nhánh, hàm).
|
||||
- **Tên file:** `*.test.ts` (unit test) và `*.e2e.test.ts` (end-to-end test).
|
||||
- **Workers:** Tối đa 16 workers.
|
||||
- **Live Test:** Test với key thật (API thật) dùng lệnh `CLAWDBOT_LIVE_TEST=1 pnpm test:live`.
|
||||
- **Mobile:** Ưu tiên test trên thiết bị thật (iOS/Android) trước khi dùng giả lập.
|
||||
|
||||
## Quy trình Commit & PR
|
||||
|
||||
- **Tạo commit:** Dùng script `scripts/committer "<msg>" <file...>` thay vì `git commit` thủ công để đảm bảo quy chuẩn.
|
||||
- **Thông điệp:** Ngắn gọn, bắt đầu bằng động từ (Ví dụ: `CLI: add verbose flag`).
|
||||
- **PR:**
|
||||
- Mỗi PR nên tập trung vào một vấn đề. Đừng gom nhiều refactor không liên quan vào một PR.
|
||||
- **Review:** Dùng `gh pr view` hoặc `gh pr diff`. Đừng switch nhánh lung tung.
|
||||
- **Merge:** Ưu tiên **Rebase** để lịch sử đẹp. Nếu lịch sử quá rối rắm thì **Squash**.
|
||||
- Luôn thêm người đóng góp (PR author) vào danh sách co-contributor nếu squash.
|
||||
- Sau khi merge PR của người mới: Nhớ chạy script cập nhật danh sách contributors trong README.
|
||||
|
||||
## An toàn Đa Tác nhân (Multi-Agent Safety) 🤖
|
||||
|
||||
Khi làm việc trong môi trường có nhiều Agent cùng hoạt động:
|
||||
1. **Git Stash:** KHÔNG BAO GIỜ tự ý `git stash` hoặc `git pull --rebase --autostash` trừ khi được user yêu cầu. Agent khác có thể đang code dở.
|
||||
2. **Git Worktree:** KHÔNG tạo, xóa, sửa worktree nếu không được bảo.
|
||||
3. **Chuyển nhánh:** KHÔNG tự ý switch nhánh.
|
||||
4. **File lạ:** Nếu thấy file lạ (do agent khác tạo), cứ lờ đi và tập trung vào file của mình.
|
||||
5. **Sung đột:** Khi user bảo "push", có thể `git pull --rebase`. Khi "commit", chỉ commit file bạn sửa.
|
||||
|
||||
---
|
||||
|
||||
> **Mẹo nhỏ:** Moltbot được thiết kế rất linh hoạt. Hãy đọc kỹ code trước khi sửa, và luôn ưu tiên sự ổn định (stability) lên hàng đầu. Chúc bạn code vui vẻ! 🦞
|
||||
52
translation/vietnamese/CONTRIBUTING.vi.md
Normal file
52
translation/vietnamese/CONTRIBUTING.vi.md
Normal file
@ -0,0 +1,52 @@
|
||||
# Hướng dẫn Đóng góp cho Moltbot
|
||||
|
||||
Chào mừng bạn đến với "bể tôm hùm"! 🦞 Rất vui vì bạn đã ở đây.
|
||||
|
||||
## Đường dẫn nhanh (Quick Links)
|
||||
- **GitHub Repo:** [moltbot/moltbot](https://github.com/moltbot/moltbot)
|
||||
- **Discord Cộng đồng:** [Tham gia ngay](https://discord.gg/qkhbAGHRBT)
|
||||
- **Theo dõi cập nhật:** [@steipete](https://x.com/steipete) / [@moltbot](https://x.com/moltbot)
|
||||
|
||||
## Đội ngũ Phát triển
|
||||
|
||||
- **Peter Steinberger** - Bếp trưởng (Benevolent Dictator)
|
||||
- GitHub: [@steipete](https://github.com/steipete)
|
||||
- **Shadow** - Phụ trách Discord + Slack
|
||||
- GitHub: [@thewilloftheshadow](https://github.com/thewilloftheshadow)
|
||||
- **Jos** - Phụ trách Telegram, API & Nix mode
|
||||
- GitHub: [@joshp123](https://github.com/joshp123)
|
||||
|
||||
## Làm sao để đóng góp?
|
||||
|
||||
1. **Gặp lỗi (Bug) hoặc muốn sửa nhỏ:** Cứ thoải mái mở Pull Request (PR) nhé!
|
||||
2. **Tính năng mới / Thay đổi kiến trúc:** Khoan hãy code vội. Hãy mở một [Thảo luận trên GitHub](https://github.com/moltbot/moltbot/discussions) hoặc vào Discord hỏi trước để tránh mất công vô ích.
|
||||
3. **Có câu hỏi:** Vào kênh `#setup-help` trên Discord.
|
||||
|
||||
## Trước khi gửi PR (Checklist)
|
||||
|
||||
- [ ] Đã chạy thử code trên máy của bạn (chưa toang là được).
|
||||
- [ ] Chạy linter để code sạch đẹp: `npm run lint`.
|
||||
- [ ] Giữ PR tập trung: 1 PR giải quyết 1 vấn đề thôi.
|
||||
- [ ] Mô tả rõ ràng: Bạn làm cái gì, và tại sao lại làm thế?
|
||||
|
||||
## PR do AI viết (Vibe-Coded)? Thoải mái luôn! 🤖
|
||||
|
||||
Bạn dùng Codex, Claude, ChatGPT để viết code? **Tuyệt vời! Chúng tôi ủng hộ điều đó.**
|
||||
|
||||
Nhưng hãy giúp reviewer bằng cách:
|
||||
- [ ] Ghi rõ "AI-assisted" trong tiêu đề hoặc mô tả PR.
|
||||
- [ ] Cho biết bạn đã test kỹ đến đâu (Chưa test / Test sơ sơ / Test kỹ càng).
|
||||
- [ ] Nếu được, đính kèm cả prompt hoặc log chat với AI (cái này cực hữu ích để học hỏi lẫn nhau).
|
||||
- [ ] Quan trọng nhất: **Xác nhận là bạn hiểu đoạn code đó làm gì**. Đừng copy-paste mù quáng nhé.
|
||||
|
||||
*Chúng tôi coi các PR từ AI là công dân hạng nhất. Chỉ cần minh bạch để mọi người dễ làm việc.*
|
||||
|
||||
## Lộ trình phát triển hiện tại (Roadmap) 🗺
|
||||
|
||||
Chúng tôi đang tập trung vào đâu?
|
||||
- **Ổn định (Stability):** Sửa các lỗi vặt khi kết nối kênh (WhatsApp/Telegram).
|
||||
- **Trải nghiệm (UX):** Làm cho quá trình cài đặt (onboarding) mượt hơn, thông báo lỗi dễ hiểu hơn.
|
||||
- **Kỹ năng (Skills):** Làm giàu thư viện kỹ năng có sẵn và giúp dev tạo kỹ năng mới dễ hơn.
|
||||
- **Hiệu suất (Performance):** Tiết kiệm token và tối ưu bộ nhớ.
|
||||
|
||||
Bạn chưa biết bắt đầu từ đâu? Hãy tìm các issue có nhãn ["good first issue"](https://github.com/moltbot/moltbot/issues) nhé!
|
||||
254
translation/vietnamese/README.vi.md
Normal file
254
translation/vietnamese/README.vi.md
Normal file
@ -0,0 +1,254 @@
|
||||
# 🦞 Moltbot — Trợ lý AI Cá nhân
|
||||
|
||||
<p align="center">
|
||||
<img src="https://raw.githubusercontent.com/moltbot/moltbot/main/docs/whatsapp-clawd.jpg" alt="Clawdbot" width="400">
|
||||
</p>
|
||||
|
||||
<p align="center">
|
||||
<strong>LỘT VỎ! LỘT VỎ NÀO! (EXFOLIATE!)</strong>
|
||||
</p>
|
||||
|
||||
<p align="center">
|
||||
<a href="https://github.com/moltbot/moltbot/actions/workflows/ci.yml?branch=main"><img src="https://img.shields.io/github/actions/workflow/status/moltbot/moltbot/ci.yml?branch=main&style=for-the-badge" alt="Trạng thái CI"></a>
|
||||
<a href="https://github.com/moltbot/moltbot/releases"><img src="https://img.shields.io/github/v/release/moltbot/moltbot?include_prereleases&style=for-the-badge" alt="GitHub release"></a>
|
||||
<a href="https://deepwiki.com/moltbot/moltbot"><img src="https://img.shields.io/badge/DeepWiki-moltbot-111111?style=for-the-badge" alt="DeepWiki"></a>
|
||||
<a href="https://discord.gg/clawd"><img src="https://img.shields.io/discord/1456350064065904867?label=Discord&logo=discord&logoColor=white&color=5865F2&style=for-the-badge" alt="Discord"></a>
|
||||
<a href="../../LICENSE"><img src="https://img.shields.io/badge/License-MIT-blue.svg?style=for-the-badge" alt="Giấy phép MIT"></a>
|
||||
</p>
|
||||
|
||||
# 🦞 Moltbot — Trợ lý AI Cá nhân
|
||||
|
||||
<p align="center">
|
||||
<img src="https://raw.githubusercontent.com/moltbot/moltbot/main/docs/whatsapp-clawd.jpg" alt="Clawdbot" width="400">
|
||||
</p>
|
||||
|
||||
<p align="center">
|
||||
<strong>LỘT VỎ! LỘT VỎ NÀO! (EXFOLIATE!)</strong>
|
||||
</p>
|
||||
|
||||
<p align="center">
|
||||
<a href="https://github.com/moltbot/moltbot/actions/workflows/ci.yml?branch=main"><img src="https://img.shields.io/github/actions/workflow/status/moltbot/moltbot/ci.yml?branch=main&style=for-the-badge" alt="Trạng thái CI"></a>
|
||||
<a href="https://github.com/moltbot/moltbot/releases"><img src="https://img.shields.io/github/v/release/moltbot/moltbot?include_prereleases&style=for-the-badge" alt="GitHub release"></a>
|
||||
<a href="https://deepwiki.com/moltbot/moltbot"><img src="https://img.shields.io/badge/DeepWiki-moltbot-111111?style=for-the-badge" alt="DeepWiki"></a>
|
||||
<a href="https://discord.gg/clawd"><img src="https://img.shields.io/discord/1456350064065904867?label=Discord&logo=discord&logoColor=white&color=5865F2&style=for-the-badge" alt="Discord"></a>
|
||||
<a href="../../LICENSE"><img src="https://img.shields.io/badge/License-MIT-blue.svg?style=for-the-badge" alt="Giấy phép MIT"></a>
|
||||
</p>
|
||||
|
||||
**Moltbot** là *trợ lý AI cá nhân* vận hành ngay trên thiết bị của bạn.
|
||||
|
||||
Nó có mặt trên mọi nền tảng bạn thường dùng (WhatsApp, Telegram, Slack, Discord, Google Chat, Signal, iMessage, Microsoft Teams, WebChat), và mở rộng sang cả BlueBubbles, Matrix, Zalo hay Zalo Personal. Moltbot có thể Nghe và Nói trên macOS/iOS/Android, thậm chí hiển thị một "Live Canvas" để bạn tương tác trực tiếp. Hãy nhớ: **Gateway** chỉ là bộ điều khiển trung tâm — sản phẩm thực sự chính là người trợ lý đồng hành cùng bạn.
|
||||
|
||||
Nếu bạn đang tìm kiếm một trợ lý ảo riêng tư, chỉ phục vụ mình bạn, chạy cục bộ (local-first), tốc độ phản hồi nhanh và luôn sẵn sàng (always-on), thì Moltbot chính là câu trả lời.
|
||||
|
||||
[Website](https://molt.bot) · [Tài liệu](https://docs.molt.bot) · [Bắt đầu](./docs/start/getting-started.vi.md) · [Cập nhật](./docs/install/updating.vi.md) · [Showcase](./docs/start/showcase.vi.md) · [FAQ](./docs/start/faq.vi.md) · [Wizard](./docs/start/wizard.vi.md) · [Nix](https://github.com/moltbot/nix-clawdbot) · [Docker](./docs/install/docker.vi.md) · [Discord](https://discord.gg/clawd)
|
||||
|
||||
---
|
||||
|
||||
### Cài đặt thế nào?
|
||||
Cách tốt nhất là chạy trình hướng dẫn cài đặt (onboarding wizard): `moltbot onboard`. Nó sẽ dắt tay chỉ việc bạn qua các bước thiết lập gateway, không gian làm việc (workspace), kết nối kênh chat và cài đặt kỹ năng (skills).
|
||||
CLI wizard này hoạt động mượt mà trên **macOS, Linux, và Windows (thông qua WSL2; đặc biệt khuyên dùng)**.
|
||||
|
||||
Hỗ trợ cài đặt qua: npm, pnpm, hoặc bun.
|
||||
|
||||
Người dùng mới? Bắt đầu tại đây: [Hướng dẫn nhập môn](./docs/start/getting-started.vi.md)
|
||||
|
||||
### Đăng ký (OAuth) - Cần chuẩn bị gì?
|
||||
- **[Anthropic](https://www.anthropic.com/)** (Claude Pro/Max)
|
||||
- **[OpenAI](https://openai.com/)** (ChatGPT/Codex)
|
||||
|
||||
> **Lời khuyên về Model:** Mặc dù Moltbot hỗ trợ mọi model, tôi thực sự khuyên bạn nên dùng **Anthropic Pro/Max (100/200) + Opus 4.5**. Combo này cho khả năng xử lý ngữ cảnh dài (long-context) cực tốt và kháng lại các trò "hack não" (prompt-injection) hiệu quả hơn. Xem thêm tại [Onboarding](./docs/start/onboarding.vi.md).
|
||||
|
||||
## Quản lý Models
|
||||
|
||||
- Cấu hình Model + CLI: [Models](./docs/concepts/models.vi.md)
|
||||
- Cơ chế tự động chuyển đổi (Failover) và xoay vòng profile (OAuth vs API keys): [Model failover](./docs/concepts/model-failover.vi.md)
|
||||
|
||||
## Cài đặt (Khuyên dùng)
|
||||
|
||||
Yêu cầu: **Node ≥22**.
|
||||
|
||||
```bash
|
||||
npm install -g moltbot@latest
|
||||
# hoặc: pnpm add -g moltbot@latest
|
||||
|
||||
moltbot onboard --install-daemon
|
||||
```
|
||||
|
||||
*Lệnh trên sẽ cài đặt Gateway daemon (chạy ngầm dưới dạng service launchd/systemd) để trợ lý của bạn luôn trực tuyến.*
|
||||
*Lưu ý cho người dùng cũ: Lệnh `clawdbot` vẫn dùng được như một lớp tương thích (shim).*
|
||||
|
||||
## Chạy thử nhanh (Dành cho người bận rộn)
|
||||
|
||||
Yêu cầu: **Node ≥22**.
|
||||
|
||||
Hướng dẫn đầy đủ (xác thực, ghép đôi thiết bị, kênh chat): [Bắt đầu](./docs/start/getting-started.vi.md)
|
||||
|
||||
```bash
|
||||
# 1. Cài đặt và chạy wizard
|
||||
moltbot onboard --install-daemon
|
||||
|
||||
# 2. Khởi động Gateway
|
||||
moltbot gateway --port 18789 --verbose
|
||||
|
||||
# 3. Gửi thử tin nhắn
|
||||
moltbot message send --to +1234567890 --message "Xin chào từ Moltbot"
|
||||
|
||||
# 4. Ra lệnh cho trợ lý (có thể phản hồi về bất kỳ kênh nào đã kết nối: WhatsApp, Telegram, Zalo...)
|
||||
moltbot agent --message "Lên danh sách việc cần làm cho việc vận chuyển" --thinking high
|
||||
```
|
||||
|
||||
Muốn nâng cấp? Xem [Hướng dẫn cập nhật](./docs/install/updating.vi.md) (và nhớ chạy `moltbot doctor` để kiểm tra sức khỏe hệ thống).
|
||||
|
||||
## Kênh phát triển (Release Channels)
|
||||
|
||||
Bạn muốn dùng bản nào?
|
||||
- **stable**: Bản ổn định, được gắn thẻ rõ ràng (`vYYYY.M.D`), npm tag là `latest`. Khuyên dùng cho môi trường production.
|
||||
- **beta**: Bản thử nghiệm (`vYYYY.M.D-beta.N`), npm tag `beta`. Tính năng mới nhưng có thể chưa có app macOS đi kèm.
|
||||
- **dev**: Bản "mới ra lò" từ nhánh `main` (bleeding edge), npm tag `dev`. Dành cho dev thích vọc vạch.
|
||||
|
||||
Cách chuyển kênh (git + npm): `moltbot update --channel stable|beta|dev`.
|
||||
Chi tiết: [Các kênh phát triển](./docs/install/development-channels.vi.md).
|
||||
|
||||
## Cài từ mã nguồn (Dành cho Dev)
|
||||
|
||||
Ưu tiên dùng `pnpm`. `bun` là tùy chọn nếu bạn muốn chạy thẳng TypeScript mà không cần build.
|
||||
|
||||
```bash
|
||||
git clone https://github.com/moltbot/moltbot.git
|
||||
cd moltbot
|
||||
|
||||
pnpm install
|
||||
pnpm ui:build # Tự động cài dependencies cho UI lần đầu
|
||||
pnpm build
|
||||
|
||||
pnpm moltbot onboard --install-daemon
|
||||
|
||||
# Chế độ Dev (Tự động reload khi sửa code TS)
|
||||
pnpm gateway:watch
|
||||
```
|
||||
|
||||
*Lưu ý:* `pnpm moltbot ...` sẽ chạy thẳng TypeScript (qua `tsx`). `pnpm build` sẽ tạo thư mục `dist/` để chạy như một ứng dụng Node thông thường.
|
||||
|
||||
## Bảo mật mặc định (Xử lý tin nhắn riêng - DM)
|
||||
|
||||
Moltbot kết nối với các ứng dụng nhắn tin thật. Hãy luôn coi các tin nhắn DM gửi đến là **dữ liệu không đáng tin cậy** (untrusted input).
|
||||
|
||||
Đọc kỹ: [Hướng dẫn bảo mật](./docs/gateway/security/index.vi.md)
|
||||
|
||||
Cơ chế mặc định trên Telegram/WhatsApp/Signal/Zalo...:
|
||||
- **Chế độ Ghép đôi (Pairing Mode)** (`dmPolicy="pairing"`): Người lạ nhắn tin đến sẽ chỉ nhận được một mã ghép đôi ngắn. Bot **KHÔNG** xử lý hay trả lời nội dung của họ.
|
||||
- **Phê duyệt:** Bạn dùng lệnh `moltbot pairing approve <kênh> <mã>` trên thiết bị admin để thêm người đó vào "Danh sách trắng" (Allowlist).
|
||||
- **Mở công khai (Cẩn thận):** Nếu muốn ai cũng chat được, set `dmPolicy="open"` và thêm `"*"` vào allowlist (`channels.discord.dm.allowFrom`).
|
||||
|
||||
Chạy `moltbot doctor` thường xuyên để quét các cấu hình rủi ro.
|
||||
|
||||
## Tính năng nổi bật
|
||||
|
||||
- **[Gateway ưu tiên cục bộ (Local-first)](./docs/gateway/index.vi.md)** — Một bộ não điều khiển duy nhất cho mọi phiên làm việc, kênh chat và công cụ.
|
||||
- **[Hộp thư đa kênh](./docs/channels/index.vi.md)** — Gom tất cả về một mối: WhatsApp, Telegram, Slack, Discord, Zalo, iMessage...
|
||||
- **[Định tuyến thông minh](./docs/gateway/configuration.vi.md)** — Tự động chia luồng tin nhắn từ các nguồn khác nhau vào các Agent riêng biệt (cô lập workspace và session).
|
||||
- **[Voice Wake & Talk Mode](./docs/nodes/talk.vi.md)** — Trò chuyện rảnh tay 24/7 trên macOS/iOS/Android (kết hợp với ElevenLabs).
|
||||
- **[Live Canvas](./docs/platforms/mac/canvas.vi.md)** — Không gian làm việc trực quan (UI) do Agent tự vẽ và điều khiển thông qua [A2UI](./docs/platforms/mac/canvas.vi.md#canvas-a2ui).
|
||||
- **[Hệ sinh thái Công cụ](./docs/tools/index.vi.md)** — Điều khiển trình duyệt, vẽ canvas, cron job, và tương tác sâu với Discord/Slack.
|
||||
- **[Ứng dụng vệ tinh](./docs/platforms/macos.vi.md)** — App trên thanh menu macOS + [Nodes](./docs/nodes/index.vi.md) trên điện thoại iOS/Android.
|
||||
- **[Kỹ năng (Skills)](./docs/tools/skills.vi.md)** — Cài đặt và quản lý kỹ năng dễ dàng qua ClawdHub.
|
||||
|
||||
## Lịch sử phát triển (Star History)
|
||||
|
||||
[](https://www.star-history.com/#moltbot/moltbot&type=date&legend=top-left)
|
||||
|
||||
## Chúng tôi đã xây dựng những gì?
|
||||
|
||||
### 1. Nền tảng cốt lõi
|
||||
- **Gateway**: "Trạm kiểm soát không lưu" xử lý WebSocket, phiên (session), cấu hình, cron, webhooks và giao diện quản lý [Control UI](./docs/web/index.vi.md).
|
||||
- **CLI**: Công cụ dòng lệnh mạnh mẽ để gửi tin, quản lý agent, chạy wizard và sửa lỗi (`doctor`).
|
||||
- **Pi Agent Runtime**: Môi trường chạy Agent hỗ trợ RPC, tool streaming (stream công cụ) và block streaming.
|
||||
- **Mô hình Session**: Hỗ trợ chat 1-1 (`main`), chat nhóm (cô lập ngữ cảnh), chế độ hàng đợi (queue), và tự động phản hồi.
|
||||
- **Xử lý Media**: Pipeline xử lý ảnh/âm thanh/video, hook để transcribe (gỡ băng) âm thanh, quản lý file tạm.
|
||||
|
||||
### 2. Kết nối Kênh (Channels)
|
||||
- Hỗ trợ tận răng: WhatsApp (Baileys), Telegram (grammY), Slack (Bolt), Discord, Google Chat, Signal, iMessage (macOS), Zalo (extension)...
|
||||
- **Định tuyến nhóm**: Kiểm soát việc bot trả lời khi nào (khi được tag, hay luôn luôn), phân luồng tin nhắn trong nhóm.
|
||||
|
||||
### 3. Ứng dụng & Nodes
|
||||
- **macOS App**: Nằm trên thanh menu, hỗ trợ Voice Wake (gọi dậy bằng giọng nói), Talk Mode (chế độ đàm thoại), và điều khiển Gateway từ xa.
|
||||
- **iOS/Android Node**: Biến điện thoại thành "tai mắt" cho Agent (Camera, Canvas, Ghi màn hình, Location).
|
||||
- **macOS Node Mode**: Cho phép Agent chạy lệnh hệ thống (`system.run`) hoặc gửi thông báo (`system.notify`).
|
||||
|
||||
... (Các phần kỹ thuật sâu hơn về Runtime, Ops, Docker, Tailscale được giữ nguyên các liên kết và thuật ngữ chuyên ngành để đảm bảo độ chính xác)
|
||||
|
||||
## Cách hoạt động (Mô hình tóm tắt)
|
||||
|
||||
```
|
||||
WhatsApp / Telegram / Slack / Zalo / WebChat ...
|
||||
│
|
||||
▼
|
||||
┌───────────────────────────────┐
|
||||
│ Gateway │
|
||||
│ (Bộ não / Control Plane) │
|
||||
│ ws://127.0.0.1:18789 │
|
||||
└──────────────┬────────────────┘
|
||||
│
|
||||
├─ Pi agent (Xử lý logic)
|
||||
├─ CLI (Công cụ dòng lệnh)
|
||||
├─ WebChat UI (Giao diện web)
|
||||
├─ Ứng dụng macOS
|
||||
└─ Các node iOS / Android (Vệ tinh)
|
||||
```
|
||||
|
||||
## Truy cập từ xa (Tailscale)
|
||||
|
||||
Moltbot tích hợp sâu với **Tailscale** để bạn truy cập Gateway an toàn từ bất cứ đâu mà không cần mở port rườm rà.
|
||||
- **Serve**: Chỉ truy cập được trong mạng nội bộ Tailscale (Tailnet).
|
||||
- **Funnel**: Mở ra internet công cộng (Yêu cầu mật khẩu).
|
||||
|
||||
*Mẹo: Linux là môi trường tuyệt vời để chạy Gateway. Bạn có thể để Gateway ở server Linux, còn Client (CLI, App) ở máy Mac/Phone và kết nối về qua Tailscale.*
|
||||
|
||||
## Cộng đồng
|
||||
|
||||
Dự án này được xây dựng cho **Molty** - một trợ lý AI tôm hùm không gian 🦞, bởi Peter Steinberger và cộng đồng open-source.
|
||||
|
||||
Tham gia cùng chúng tôi tại:
|
||||
- [clawd.me](https://clawd.me)
|
||||
- [@moltbot](https://x.com/moltbot)
|
||||
|
||||
Xem [CONTRIBUTING.vi.md](./CONTRIBUTING.vi.md) để biết cách đóng góp. Các PR viết code theo cảm hứng (vibe-coded) hoặc dùng AI hỗ trợ đều được chào đón nhiệt liệt! 🤖
|
||||
|
||||
---
|
||||
*Cảm ơn tất cả các contributors đã góp phần tạo nên Moltbot!*
|
||||
<p align="left">
|
||||
<a href="https://github.com/steipete"><img src="https://avatars.githubusercontent.com/u/58493?v=4&s=48" width="48" height="48" alt="steipete" title="steipete"/></a> <a href="https://github.com/plum-dawg"><img src="https://avatars.githubusercontent.com/u/5909950?v=4&s=48" width="48" height="48" alt="plum-dawg" title="plum-dawg"/></a> <a href="https://github.com/bohdanpodvirnyi"><img src="https://avatars.githubusercontent.com/u/31819391?v=4&s=48" width="48" height="48" alt="bohdanpodvirnyi" title="bohdanpodvirnyi"/></a> <a href="https://github.com/iHildy"><img src="https://avatars.githubusercontent.com/u/25069719?v=4&s=48" width="48" height="48" alt="iHildy" title="iHildy"/></a> <a href="https://github.com/jaydenfyi"><img src="https://avatars.githubusercontent.com/u/213395523?v=4&s=48" width="48" height="48" alt="jaydenfyi" title="jaydenfyi"/></a> <a href="https://github.com/joaohlisboa"><img src="https://avatars.githubusercontent.com/u/8200873?v=4&s=48" width="48" height="48" alt="joaohlisboa" title="joaohlisboa"/></a> <a href="https://github.com/mneves75"><img src="https://avatars.githubusercontent.com/u/2423436?v=4&s=48" width="48" height="48" alt="mneves75" title="mneves75"/></a> <a href="https://github.com/MatthieuBizien"><img src="https://avatars.githubusercontent.com/u/173090?v=4&s=48" width="48" height="48" alt="MatthieuBizien" title="MatthieuBizien"/></a> <a href="https://github.com/MaudeBot"><img src="https://avatars.githubusercontent.com/u/255777700?v=4&s=48" width="48" height="48" alt="MaudeBot" title="MaudeBot"/></a> <a href="https://github.com/Glucksberg"><img src="https://avatars.githubusercontent.com/u/80581902?v=4&s=48" width="48" height="48" alt="Glucksberg" title="Glucksberg"/></a>
|
||||
<a href="https://github.com/rahthakor"><img src="https://avatars.githubusercontent.com/u/8470553?v=4&s=48" width="48" height="48" alt="rahthakor" title="rahthakor"/></a> <a href="https://github.com/vrknetha"><img src="https://avatars.githubusercontent.com/u/20596261?v=4&s=48" width="48" height="48" alt="vrknetha" title="vrknetha"/></a> <a href="https://github.com/radek-paclt"><img src="https://avatars.githubusercontent.com/u/50451445?v=4&s=48" width="48" height="48" alt="radek-paclt" title="radek-paclt"/></a> <a href="https://github.com/tobiasbischoff"><img src="https://avatars.githubusercontent.com/u/711564?v=4&s=48" width="48" height="48" alt="Tobias Bischoff" title="Tobias Bischoff"/></a> <a href="https://github.com/joshp123"><img src="https://avatars.githubusercontent.com/u/1497361?v=4&s=48" width="48" height="48" alt="joshp123" title="joshp123"/></a> <a href="https://github.com/vignesh07"><img src="https://avatars.githubusercontent.com/u/1436853?v=4&s=48" width="48" height="48" alt="vignesh07" title="vignesh07"/></a> <a href="https://github.com/czekaj"><img src="https://avatars.githubusercontent.com/u/1464539?v=4&s=48" width="48" height="48" alt="czekaj" title="czekaj"/></a> <a href="https://github.com/mukhtharcm"><img src="https://avatars.githubusercontent.com/u/56378562?v=4&s=48" width="48" height="48" alt="mukhtharcm" title="mukhtharcm"/></a> <a href="https://github.com/sebslight"><img src="https://avatars.githubusercontent.com/u/19554889?v=4&s=48" width="48" height="48" alt="sebslight" title="sebslight"/></a> <a href="https://github.com/maxsumrall"><img src="https://avatars.githubusercontent.com/u/628843?v=4&s=48" width="48" height="48" alt="maxsumrall" title="maxsumrall"/></a>
|
||||
<a href="https://github.com/xadenryan"><img src="https://avatars.githubusercontent.com/u/165437834?v=4&s=48" width="48" height="48" alt="xadenryan" title="xadenryan"/></a> <a href="https://github.com/rodrigouroz"><img src="https://avatars.githubusercontent.com/u/384037?v=4&s=48" width="48" height="48" alt="rodrigouroz" title="rodrigouroz"/></a> <a href="https://github.com/juanpablodlc"><img src="https://avatars.githubusercontent.com/u/92012363?v=4&s=48" width="48" height="48" alt="juanpablodlc" title="juanpablodlc"/></a> <a href="https://github.com/hsrvc"><img src="https://avatars.githubusercontent.com/u/129702169?v=4&s=48" width="48" height="48" alt="hsrvc" title="hsrvc"/></a> <a href="https://github.com/magimetal"><img src="https://avatars.githubusercontent.com/u/36491250?v=4&s=48" width="48" height="48" alt="magimetal" title="magimetal"/></a> <a href="https://github.com/zerone0x"><img src="https://avatars.githubusercontent.com/u/39543393?v=4&s=48" width="48" height="48" alt="zerone0x" title="zerone0x"/></a> <a href="https://github.com/meaningfool"><img src="https://avatars.githubusercontent.com/u/2862331?v=4&s=48" width="48" height="48" alt="meaningfool" title="meaningfool"/></a> <a href="https://github.com/tyler6204"><img src="https://avatars.githubusercontent.com/u/64381258?v=4&s=48" width="48" height="48" alt="tyler6204" title="tyler6204"/></a> <a href="https://github.com/patelhiren"><img src="https://avatars.githubusercontent.com/u/172098?v=4&s=48" width="48" height="48" alt="patelhiren" title="patelhiren"/></a> <a href="https://github.com/NicholasSpisak"><img src="https://avatars.githubusercontent.com/u/129075147?v=4&s=48" width="48" height="48" alt="NicholasSpisak" title="NicholasSpisak"/></a>
|
||||
<a href="https://github.com/jonisjongithub"><img src="https://avatars.githubusercontent.com/u/86072337?v=4&s=48" width="48" height="48" alt="jonisjongithub" title="jonisjongithub"/></a> <a href="https://github.com/AbhisekBasu1"><img src="https://avatars.githubusercontent.com/u/40645221?v=4&s=48" width="48" height="48" alt="abhisekbasu1" title="abhisekbasu1"/></a> <a href="https://github.com/jamesgroat"><img src="https://avatars.githubusercontent.com/u/2634024?v=4&s=48" width="48" height="48" alt="jamesgroat" title="jamesgroat"/></a> <a href="https://github.com/claude"><img src="https://avatars.githubusercontent.com/u/81847?v=4&s=48" width="48" height="48" alt="claude" title="claude"/></a> <a href="https://github.com/JustYannicc"><img src="https://avatars.githubusercontent.com/u/52761674?v=4&s=48" width="48" height="48" alt="JustYannicc" title="JustYannicc"/></a> <a href="https://github.com/Hyaxia"><img src="https://avatars.githubusercontent.com/u/36747317?v=4&s=48" width="48" height="48" alt="Hyaxia" title="Hyaxia"/></a> <a href="https://github.com/dantelex"><img src="https://avatars.githubusercontent.com/u/631543?v=4&s=48" width="48" height="48" alt="dantelex" title="dantelex"/></a> <a href="https://github.com/SocialNerd42069"><img src="https://avatars.githubusercontent.com/u/118244303?v=4&s=48" width="48" height="48" alt="SocialNerd42069" title="SocialNerd42069"/></a> <a href="https://github.com/daveonkels"><img src="https://avatars.githubusercontent.com/u/533642?v=4&s=48" width="48" height="48" alt="daveonkels" title="daveonkels"/></a> <a href="https://github.com/apps/google-labs-jules"><img src="https://avatars.githubusercontent.com/in/842251?v=4&s=48" width="48" height="48" alt="google-labs-jules[bot]" title="google-labs-jules[bot]"/></a>
|
||||
<a href="https://github.com/lc0rp"><img src="https://avatars.githubusercontent.com/u/2609441?v=4&s=48" width="48" height="48" alt="lc0rp" title="lc0rp"/></a> <a href="https://github.com/mousberg"><img src="https://avatars.githubusercontent.com/u/57605064?v=4&s=48" width="48" height="48" alt="mousberg" title="mousberg"/></a> <a href="https://github.com/adam91holt"><img src="https://avatars.githubusercontent.com/u/9592417?v=4&s=48" width="48" height="48" alt="adam91holt" title="adam91holt"/></a> <a href="https://github.com/hougangdev"><img src="https://avatars.githubusercontent.com/u/105773686?v=4&s=48" width="48" height="48" alt="hougangdev" title="hougangdev"/></a> <a href="https://github.com/gumadeiras"><img src="https://avatars.githubusercontent.com/u/5599352?v=4&s=48" width="48" height="48" alt="gumadeiras" title="gumadeiras"/></a> <a href="https://github.com/mteam88"><img src="https://avatars.githubusercontent.com/u/84196639?v=4&s=48" width="48" height="48" alt="mteam88" title="mteam88"/></a> <a href="https://github.com/hirefrank"><img src="https://avatars.githubusercontent.com/u/183158?v=4&s=48" width="48" height="48" alt="hirefrank" title="hirefrank"/></a> <a href="https://github.com/joeynyc"><img src="https://avatars.githubusercontent.com/u/17919866?v=4&s=48" width="48" height="48" alt="joeynyc" title="joeynyc"/></a> <a href="https://github.com/orlyjamie"><img src="https://avatars.githubusercontent.com/u/6668807?v=4&s=48" width="48" height="48" alt="orlyjamie" title="orlyjamie"/></a> <a href="https://github.com/dbhurley"><img src="https://avatars.githubusercontent.com/u/5251425?v=4&s=48" width="48" height="48" alt="dbhurley" title="dbhurley"/></a>
|
||||
<a href="https://github.com/mbelinky"><img src="https://avatars.githubusercontent.com/u/132747814?v=4&s=48" width="48" height="48" alt="Mariano Belinky" title="Mariano Belinky"/></a> <a href="https://github.com/omniwired"><img src="https://avatars.githubusercontent.com/u/322761?v=4&s=48" width="48" height="48" alt="Eng. Juan Combetto" title="Eng. Juan Combetto"/></a> <a href="https://github.com/TSavo"><img src="https://avatars.githubusercontent.com/u/877990?v=4&s=48" width="48" height="48" alt="TSavo" title="TSavo"/></a> <a href="https://github.com/julianengel"><img src="https://avatars.githubusercontent.com/u/10634231?v=4&s=48" width="48" height="48" alt="julianengel" title="julianengel"/></a> <a href="https://github.com/bradleypriest"><img src="https://avatars.githubusercontent.com/u/167215?v=4&s=48" width="48" height="48" alt="bradleypriest" title="bradleypriest"/></a> <a href="https://github.com/benithors"><img src="https://avatars.githubusercontent.com/u/20652882?v=4&s=48" width="48" height="48" alt="benithors" title="benithors"/></a> <a href="https://github.com/rohannagpal"><img src="https://avatars.githubusercontent.com/u/4009239?v=4&s=48" width="48" height="48" alt="rohannagpal" title="rohannagpal"/></a> <a href="https://github.com/timolins"><img src="https://avatars.githubusercontent.com/u/1440854?v=4&s=48" width="48" height="48" alt="timolins" title="timolins"/></a> <a href="https://github.com/f-trycua"><img src="https://avatars.githubusercontent.com/u/195596869?v=4&s=48" width="48" height="48" alt="f-trycua" title="f-trycua"/></a> <a href="https://github.com/benostein"><img src="https://avatars.githubusercontent.com/u/31802821?v=4&s=48" width="48" height="48" alt="benostein" title="benostein"/></a>
|
||||
<a href="https://github.com/Nachx639"><img src="https://avatars.githubusercontent.com/u/71144023?v=4&s=48" width="48" height="48" alt="nachx639" title="nachx639"/></a> <a href="https://github.com/shakkernerd"><img src="https://avatars.githubusercontent.com/u/165377636?v=4&s=48" width="48" height="48" alt="shakkernerd" title="shakkernerd"/></a> <a href="https://github.com/pvoo"><img src="https://avatars.githubusercontent.com/u/20116814?v=4&s=48" width="48" height="48" alt="pvoo" title="pvoo"/></a> <a href="https://github.com/sreekaransrinath"><img src="https://avatars.githubusercontent.com/u/50989977?v=4&s=48" width="48" height="48" alt="sreekaransrinath" title="sreekaransrinath"/></a> <a href="https://github.com/gupsammy"><img src="https://avatars.githubusercontent.com/u/20296019?v=4&s=48" width="48" height="48" alt="gupsammy" title="gupsammy"/></a> <a href="https://github.com/cristip73"><img src="https://avatars.githubusercontent.com/u/24499421?v=4&s=48" width="48" height="48" alt="cristip73" title="cristip73"/></a> <a href="https://github.com/stefangalescu"><img src="https://avatars.githubusercontent.com/u/52995748?v=4&s=48" width="48" height="48" alt="stefangalescu" title="stefangalescu"/></a> <a href="https://github.com/nachoiacovino"><img src="https://avatars.githubusercontent.com/u/50103937?v=4&s=48" width="48" height="48" alt="nachoiacovino" title="nachoiacovino"/></a> <a href="https://github.com/vsabavat"><img src="https://avatars.githubusercontent.com/u/50385532?v=4&s=48" width="48" height="48" alt="Vasanth Rao Naik Sabavat" title="Vasanth Rao Naik Sabavat"/></a> <a href="https://github.com/petter-b"><img src="https://avatars.githubusercontent.com/u/62076402?v=4&s=48" width="48" height="48" alt="petter-b" title="petter-b"/></a>
|
||||
<a href="https://github.com/cpojer"><img src="https://avatars.githubusercontent.com/u/13352?v=4&s=48" width="48" height="48" alt="cpojer" title="cpojer"/></a> <a href="https://github.com/scald"><img src="https://avatars.githubusercontent.com/u/1215913?v=4&s=48" width="48" height="48" alt="scald" title="scald"/></a> <a href="https://github.com/thewilloftheshadow"><img src="https://avatars.githubusercontent.com/u/35580099?v=4&s=48" width="48" height="48" alt="thewilloftheshadow" title="thewilloftheshadow"/></a> <a href="https://github.com/andranik-sahakyan"><img src="https://avatars.githubusercontent.com/u/8908029?v=4&s=48" width="48" height="48" alt="andranik-sahakyan" title="andranik-sahakyan"/></a> <a href="https://github.com/davidguttman"><img src="https://avatars.githubusercontent.com/u/431696?v=4&s=48" width="48" height="48" alt="davidguttman" title="davidguttman"/></a> <a href="https://github.com/sleontenko"><img src="https://avatars.githubusercontent.com/u/7135949?v=4&s=48" width="48" height="48" alt="sleontenko" title="sleontenko"/></a> <a href="https://github.com/denysvitali"><img src="https://avatars.githubusercontent.com/u/4939519?v=4&s=48" width="48" height="48" alt="denysvitali" title="denysvitali"/></a> <a href="https://github.com/sircrumpet"><img src="https://avatars.githubusercontent.com/u/4436535?v=4&s=48" width="48" height="48" alt="sircrumpet" title="sircrumpet"/></a> <a href="https://github.com/peschee"><img src="https://avatars.githubusercontent.com/u/63866?v=4&s=48" width="48" height="48" alt="peschee" title="peschee"/></a> <a href="https://github.com/rafaelreis-r"><img src="https://avatars.githubusercontent.com/u/57492577?v=4&s=48" width="48" height="48" alt="rafaelreis-r" title="rafaelreis-r"/></a>
|
||||
<a href="https://github.com/dominicnunez"><img src="https://avatars.githubusercontent.com/u/43616264?v=4&s=48" width="48" height="48" alt="dominicnunez" title="dominicnunez"/></a> <a href="https://github.com/ratulsarna"><img src="https://avatars.githubusercontent.com/u/105903728?v=4&s=48" width="48" height="48" alt="ratulsarna" title="ratulsarna"/></a> <a href="https://github.com/lutr0"><img src="https://avatars.githubusercontent.com/u/76906369?v=4&s=48" width="48" height="48" alt="lutr0" title="lutr0"/></a> <a href="https://github.com/danielz1z"><img src="https://avatars.githubusercontent.com/u/235270390?v=4&s=48" width="48" height="48" alt="danielz1z" title="danielz1z"/></a> <a href="https://github.com/AdeboyeDN"><img src="https://avatars.githubusercontent.com/u/65312338?v=4&s=48" width="48" height="48" alt="AdeboyeDN" title="AdeboyeDN"/></a> <a href="https://github.com/Alg0rix"><img src="https://avatars.githubusercontent.com/u/53804949?v=4&s=48" width="48" height="48" alt="Alg0rix" title="Alg0rix"/></a> <a href="https://github.com/papago2355"><img src="https://avatars.githubusercontent.com/u/68721273?v=4&s=48" width="48" height="48" alt="papago2355" title="papago2355"/></a> <a href="https://github.com/emanuelst"><img src="https://avatars.githubusercontent.com/u/9994339?v=4&s=48" width="48" height="48" alt="emanuelst" title="emanuelst"/></a> <a href="https://github.com/KristijanJovanovski"><img src="https://avatars.githubusercontent.com/u/8942284?v=4&s=48" width="48" height="48" alt="KristijanJovanovski" title="KristijanJovanovski"/></a> <a href="https://github.com/rdev"><img src="https://avatars.githubusercontent.com/u/8418866?v=4&s=48" width="48" height="48" alt="rdev" title="rdev"/></a>
|
||||
<a href="https://github.com/rhuanssauro"><img src="https://avatars.githubusercontent.com/u/164682191?v=4&s=48" width="48" height="48" alt="rhuanssauro" title="rhuanssauro"/></a> <a href="https://github.com/joshrad-dev"><img src="https://avatars.githubusercontent.com/u/62785552?v=4&s=48" width="48" height="48" alt="joshrad-dev" title="joshrad-dev"/></a> <a href="https://github.com/kiranjd"><img src="https://avatars.githubusercontent.com/u/25822851?v=4&s=48" width="48" height="48" alt="kiranjd" title="kiranjd"/></a> <a href="https://github.com/osolmaz"><img src="https://avatars.githubusercontent.com/u/2453968?v=4&s=48" width="48" height="48" alt="osolmaz" title="osolmaz"/></a> <a href="https://github.com/adityashaw2"><img src="https://avatars.githubusercontent.com/u/41204444?v=4&s=48" width="48" height="48" alt="adityashaw2" title="adityashaw2"/></a> <a href="https://github.com/CashWilliams"><img src="https://avatars.githubusercontent.com/u/613573?v=4&s=48" width="48" height="48" alt="CashWilliams" title="CashWilliams"/></a> <a href="https://github.com/search?q=sheeek"><img src="assets/avatar-placeholder.svg" width="48" height="48" alt="sheeek" title="sheeek"/></a> <a href="https://github.com/artuskg"><img src="https://avatars.githubusercontent.com/u/11966157?v=4&s=48" width="48" height="48" alt="artuskg" title="artuskg"/></a> <a href="https://github.com/Takhoffman"><img src="https://avatars.githubusercontent.com/u/781889?v=4&s=48" width="48" height="48" alt="Takhoffman" title="Takhoffman"/></a> <a href="https://github.com/onutc"><img src="https://avatars.githubusercontent.com/u/152018508?v=4&s=48" width="48" height="48" alt="onutc" title="onutc"/></a>
|
||||
<a href="https://github.com/pauloportella"><img src="https://avatars.githubusercontent.com/u/22947229?v=4&s=48" width="48" height="48" alt="pauloportella" title="pauloportella"/></a> <a href="https://github.com/neooriginal"><img src="https://avatars.githubusercontent.com/u/54811660?v=4&s=48" width="48" height="48" alt="neooriginal" title="neooriginal"/></a> <a href="https://github.com/ManuelHettich"><img src="https://avatars.githubusercontent.com/u/17690367?v=4&s=48" width="48" height="48" alt="manuelhettich" title="manuelhettich"/></a> <a href="https://github.com/minghinmatthewlam"><img src="https://avatars.githubusercontent.com/u/14224566?v=4&s=48" width="48" height="48" alt="minghinmatthewlam" title="minghinmatthewlam"/></a> <a href="https://github.com/myfunc"><img src="https://avatars.githubusercontent.com/u/19294627?v=4&s=48" width="48" height="48" alt="myfunc" title="myfunc"/></a> <a href="https://github.com/travisirby"><img src="https://avatars.githubusercontent.com/u/5958376?v=4&s=48" width="48" height="48" alt="travisirby" title="travisirby"/></a> <a href="https://github.com/buddyh"><img src="https://avatars.githubusercontent.com/u/31752869?v=4&s=48" width="48" height="48" alt="buddyh" title="buddyh"/></a> <a href="https://github.com/connorshea"><img src="https://avatars.githubusercontent.com/u/2977353?v=4&s=48" width="48" height="48" alt="connorshea" title="connorshea"/></a> <a href="https://github.com/kyleok"><img src="https://avatars.githubusercontent.com/u/58307870?v=4&s=48" width="48" height="48" alt="kyleok" title="kyleok"/></a> <a href="https://github.com/obviyus"><img src="https://avatars.githubusercontent.com/u/22031114?v=4&s=48" width="48" height="48" alt="obviyus" title="obviyus"/></a>
|
||||
<a href="https://github.com/mcinteerj"><img src="https://avatars.githubusercontent.com/u/3613653?v=4&s=48" width="48" height="48" alt="mcinteerj" title="mcinteerj"/></a> <a href="https://github.com/apps/dependabot"><img src="https://avatars.githubusercontent.com/in/29110?v=4&s=48" width="48" height="48" alt="dependabot[bot]" title="dependabot[bot]"/></a> <a href="https://github.com/John-Rood"><img src="https://avatars.githubusercontent.com/u/62669593?v=4&s=48" width="48" height="48" alt="John-Rood" title="John-Rood"/></a> <a href="https://github.com/timkrase"><img src="https://avatars.githubusercontent.com/u/38947626?v=4&s=48" width="48" height="48" alt="timkrase" title="timkrase"/></a> <a href="https://github.com/uos-status"><img src="https://avatars.githubusercontent.com/u/255712580?v=4&s=48" width="48" height="48" alt="uos-status" title="uos-status"/></a> <a href="https://github.com/gerardward2007"><img src="https://avatars.githubusercontent.com/u/3002155?v=4&s=48" width="48" height="48" alt="gerardward2007" title="gerardward2007"/></a> <a href="https://github.com/roshanasingh4"><img src="https://avatars.githubusercontent.com/u/88576930?v=4&s=48" width="48" height="48" alt="roshanasingh4" title="roshanasingh4"/></a> <a href="https://github.com/tosh-hamburg"><img src="https://avatars.githubusercontent.com/u/58424326?v=4&s=48" width="48" height="48" alt="tosh-hamburg" title="tosh-hamburg"/></a> <a href="https://github.com/azade-c"><img src="https://avatars.githubusercontent.com/u/252790079?v=4&s=48" width="48" height="48" alt="azade-c" title="azade-c"/></a> <a href="https://github.com/dlauer"><img src="https://avatars.githubusercontent.com/u/757041?v=4&s=48" width="48" height="48" alt="dlauer" title="dlauer"/></a>
|
||||
<a href="https://github.com/JonUleis"><img src="https://avatars.githubusercontent.com/u/7644941?v=4&s=48" width="48" height="48" alt="JonUleis" title="JonUleis"/></a> <a href="https://github.com/bjesuiter"><img src="https://avatars.githubusercontent.com/u/2365676?v=4&s=48" width="48" height="48" alt="bjesuiter" title="bjesuiter"/></a> <a href="https://github.com/cheeeee"><img src="https://avatars.githubusercontent.com/u/21245729?v=4&s=48" width="48" height="48" alt="cheeeee" title="cheeeee"/></a> <a href="https://github.com/robbyczgw-cla"><img src="https://avatars.githubusercontent.com/u/239660374?v=4&s=48" width="48" height="48" alt="robbyczgw-cla" title="robbyczgw-cla"/></a> <a href="https://github.com/j1philli"><img src="https://avatars.githubusercontent.com/u/3744255?v=4&s=48" width="48" height="48" alt="Josh Phillips" title="Josh Phillips"/></a> <a href="https://github.com/YuriNachos"><img src="https://avatars.githubusercontent.com/u/19365375?v=4&s=48" width="48" height="48" alt="YuriNachos" title="YuriNachos"/></a> <a href="https://github.com/pookNast"><img src="https://avatars.githubusercontent.com/u/14242552?v=4&s=48" width="48" height="48" alt="pookNast" title="pookNast"/></a> <a href="https://github.com/Whoaa512"><img src="https://avatars.githubusercontent.com/u/1581943?v=4&s=48" width="48" height="48" alt="Whoaa512" title="Whoaa512"/></a> <a href="https://github.com/chriseidhof"><img src="https://avatars.githubusercontent.com/u/5382?v=4&s=48" width="48" height="48" alt="chriseidhof" title="chriseidhof"/></a> <a href="https://github.com/ngutman"><img src="https://avatars.githubusercontent.com/u/1540134?v=4&s=48" width="48" height="48" alt="ngutman" title="ngutman"/></a>
|
||||
<a href="https://github.com/ysqander"><img src="https://avatars.githubusercontent.com/u/80843820?v=4&s=48" width="48" height="48" alt="ysqander" title="ysqander"/></a> <a href="https://github.com/aj47"><img src="https://avatars.githubusercontent.com/u/8023513?v=4&s=48" width="48" height="48" alt="aj47" title="aj47"/></a> <a href="https://github.com/kennyklee"><img src="https://avatars.githubusercontent.com/u/1432489?v=4&s=48" width="48" height="48" alt="kennyklee" title="kennyklee"/></a> <a href="https://github.com/superman32432432"><img src="https://avatars.githubusercontent.com/u/7228420?v=4&s=48" width="48" height="48" alt="superman32432432" title="superman32432432"/></a> <a href="https://github.com/search?q=Yurii%20Chukhlib"><img src="assets/avatar-placeholder.svg" width="48" height="48" alt="Yurii Chukhlib" title="Yurii Chukhlib"/></a> <a href="https://github.com/grp06"><img src="https://avatars.githubusercontent.com/u/1573959?v=4&s=48" width="48" height="48" alt="grp06" title="grp06"/></a> <a href="https://github.com/antons"><img src="https://avatars.githubusercontent.com/u/129705?v=4&s=48" width="48" height="48" alt="antons" title="antons"/></a> <a href="https://github.com/austinm911"><img src="https://avatars.githubusercontent.com/u/31991302?v=4&s=48" width="48" height="48" alt="austinm911" title="austinm911"/></a> <a href="https://github.com/apps/blacksmith-sh"><img src="https://avatars.githubusercontent.com/in/807020?v=4&s=48" width="48" height="48" alt="blacksmith-sh[bot]" title="blacksmith-sh[bot]"/></a> <a href="https://github.com/damoahdominic"><img src="https://avatars.githubusercontent.com/u/4623434?v=4&s=48" width="48" height="48" alt="damoahdominic" title="damoahdominic"/></a>
|
||||
<a href="https://github.com/dan-dr"><img src="https://avatars.githubusercontent.com/u/6669808?v=4&s=48" width="48" height="48" alt="dan-dr" title="dan-dr"/></a> <a href="https://github.com/HeimdallStrategy"><img src="https://avatars.githubusercontent.com/u/223014405?v=4&s=48" width="48" height="48" alt="HeimdallStrategy" title="HeimdallStrategy"/></a> <a href="https://github.com/imfing"><img src="https://avatars.githubusercontent.com/u/5097752?v=4&s=48" width="48" height="48" alt="imfing" title="imfing"/></a> <a href="https://github.com/jalehman"><img src="https://avatars.githubusercontent.com/u/550978?v=4&s=48" width="48" height="48" alt="jalehman" title="jalehman"/></a> <a href="https://github.com/jarvis-medmatic"><img src="https://avatars.githubusercontent.com/u/252428873?v=4&s=48" width="48" height="48" alt="jarvis-medmatic" title="jarvis-medmatic"/></a> <a href="https://github.com/kkarimi"><img src="https://avatars.githubusercontent.com/u/875218?v=4&s=48" width="48" height="48" alt="kkarimi" title="kkarimi"/></a> <a href="https://github.com/mahmoudashraf93"><img src="https://avatars.githubusercontent.com/u/9130129?v=4&s=48" width="48" height="48" alt="mahmoudashraf93" title="mahmoudashraf93"/></a> <a href="https://github.com/pkrmf"><img src="https://avatars.githubusercontent.com/u/1714267?v=4&s=48" width="48" height="48" alt="pkrmf" title="pkrmf"/></a> <a href="https://github.com/RandyVentures"><img src="https://avatars.githubusercontent.com/u/149904821?v=4&s=48" width="48" height="48" alt="RandyVentures" title="RandyVentures"/></a> <a href="https://github.com/search?q=Ryan%20Lisse"><img src="assets/avatar-placeholder.svg" width="48" height="48" alt="Ryan Lisse" title="Ryan Lisse"/></a>
|
||||
<a href="https://github.com/dougvk"><img src="https://avatars.githubusercontent.com/u/401660?v=4&s=48" width="48" height="48" alt="dougvk" title="dougvk"/></a> <a href="https://github.com/erikpr1994"><img src="https://avatars.githubusercontent.com/u/6299331?v=4&s=48" width="48" height="48" alt="erikpr1994" title="erikpr1994"/></a> <a href="https://github.com/fal3"><img src="https://avatars.githubusercontent.com/u/6484295?v=4&s=48" width="48" height="48" alt="fal3" title="fal3"/></a> <a href="https://github.com/search?q=Ghost"><img src="assets/avatar-placeholder.svg" width="48" height="48" alt="Ghost" title="Ghost"/></a> <a href="https://github.com/jonasjancarik"><img src="https://avatars.githubusercontent.com/u/2459191?v=4&s=48" width="48" height="48" alt="jonasjancarik" title="jonasjancarik"/></a> <a href="https://github.com/search?q=Keith%20the%20Silly%20Goose"><img src="assets/avatar-placeholder.svg" width="48" height="48" alt="Keith the Silly Goose" title="Keith the Silly Goose"/></a> <a href="https://github.com/search?q=L36%20Server"><img src="assets/avatar-placeholder.svg" width="48" height="48" alt="L36 Server" title="L36 Server"/></a> <a href="https://github.com/search?q=Marc"><img src="assets/avatar-placeholder.svg" width="48" height="48" alt="Marc" title="Marc"/></a> <a href="https://github.com/mitschabaude-bot"><img src="https://avatars.githubusercontent.com/u/247582884?v=4&s=48" width="48" height="48" alt="mitschabaude-bot" title="mitschabaude-bot"/></a> <a href="https://github.com/mkbehr"><img src="https://avatars.githubusercontent.com/u/1285?v=4&s=48" width="48" height="48" alt="mkbehr" title="mkbehr"/></a>
|
||||
<a href="https://github.com/neist"><img src="https://avatars.githubusercontent.com/u/1029724?v=4&s=48" width="48" height="48" alt="neist" title="neist"/></a> <a href="https://github.com/sibbl"><img src="https://avatars.githubusercontent.com/u/866535?v=4&s=48" width="48" height="48" alt="sibbl" title="sibbl"/></a> <a href="https://github.com/chrisrodz"><img src="https://avatars.githubusercontent.com/u/2967620?v=4&s=48" width="48" height="48" alt="chrisrodz" title="chrisrodz"/></a> <a href="https://github.com/search?q=Friederike%20Seiler"><img src="assets/avatar-placeholder.svg" width="48" height="48" alt="Friederike Seiler" title="Friederike Seiler"/></a> <a href="https://github.com/gabriel-trigo"><img src="https://avatars.githubusercontent.com/u/38991125?v=4&s=48" width="48" height="48" alt="gabriel-trigo" title="gabriel-trigo"/></a> <a href="https://github.com/Iamadig"><img src="https://avatars.githubusercontent.com/u/102129234?v=4&s=48" width="48" height="48" alt="iamadig" title="iamadig"/></a> <a href="https://github.com/jdrhyne"><img src="https://avatars.githubusercontent.com/u/7828464?v=4&s=48" width="48" height="48" alt="Jonathan D. Rhyne (DJ-D)" title="Jonathan D. Rhyne (DJ-D)"/></a> <a href="https://github.com/search?q=Joshua%20Mitchell"><img src="assets/avatar-placeholder.svg" width="48" height="48" alt="Joshua Mitchell" title="Joshua Mitchell"/></a> <a href="https://github.com/search?q=Kit"><img src="assets/avatar-placeholder.svg" width="48" height="48" alt="Kit" title="Kit"/></a> <a href="https://github.com/koala73"><img src="https://avatars.githubusercontent.com/u/996596?v=4&s=48" width="48" height="48" alt="koala73" title="koala73"/></a>
|
||||
<a href="https://github.com/manmal"><img src="https://avatars.githubusercontent.com/u/142797?v=4&s=48" width="48" height="48" alt="manmal" title="manmal"/></a> <a href="https://github.com/ogulcancelik"><img src="https://avatars.githubusercontent.com/u/7064011?v=4&s=48" width="48" height="48" alt="ogulcancelik" title="ogulcancelik"/></a> <a href="https://github.com/pasogott"><img src="https://avatars.githubusercontent.com/u/23458152?v=4&s=48" width="48" height="48" alt="pasogott" title="pasogott"/></a> <a href="https://github.com/petradonka"><img src="https://avatars.githubusercontent.com/u/7353770?v=4&s=48" width="48" height="48" alt="petradonka" title="petradonka"/></a> <a href="https://github.com/rubyrunsstuff"><img src="https://avatars.githubusercontent.com/u/246602379?v=4&s=48" width="48" height="48" alt="rubyrunsstuff" title="rubyrunsstuff"/></a> <a href="https://github.com/siddhantjain"><img src="https://avatars.githubusercontent.com/u/4835232?v=4&s=48" width="48" height="48" alt="siddhantjain" title="siddhantjain"/></a> <a href="https://github.com/suminhthanh"><img src="https://avatars.githubusercontent.com/u/2907636?v=4&s=48" width="48" height="48" alt="suminhthanh" title="suminhthanh"/></a> <a href="https://github.com/svkozak"><img src="https://avatars.githubusercontent.com/u/31941359?v=4&s=48" width="48" height="48" alt="svkozak" title="svkozak"/></a> <a href="https://github.com/VACInc"><img src="https://avatars.githubusercontent.com/u/3279061?v=4&s=48" width="48" height="48" alt="VACInc" title="VACInc"/></a> <a href="https://github.com/wes-davis"><img src="https://avatars.githubusercontent.com/u/16506720?v=4&s=48" width="48" height="48" alt="wes-davis" title="wes-davis"/></a>
|
||||
<a href="https://github.com/zats"><img src="https://avatars.githubusercontent.com/u/2688806?v=4&s=48" width="48" height="48" alt="zats" title="zats"/></a> <a href="https://github.com/24601"><img src="https://avatars.githubusercontent.com/u/1157207?v=4&s=48" width="48" height="48" alt="24601" title="24601"/></a> <a href="https://github.com/ameno-"><img src="https://avatars.githubusercontent.com/u/2416135?v=4&s=48" width="48" height="48" alt="ameno-" title="ameno-"/></a> <a href="https://github.com/search?q=Chris%20Taylor"><img src="assets/avatar-placeholder.svg" width="48" height="48" alt="Chris Taylor" title="Chris Taylor"/></a> <a href="https://github.com/dguido"><img src="https://avatars.githubusercontent.com/u/294844?v=4&s=48" width="48" height="48" alt="dguido" title="dguido"/></a> <a href="https://github.com/djangonavarro220"><img src="https://avatars.githubusercontent.com/u/251162586?v=4&s=48" width="48" height="48" alt="Django Navarro" title="Django Navarro"/></a> <a href="https://github.com/evalexpr"><img src="https://avatars.githubusercontent.com/u/23485511?v=4&s=48" width="48" height="48" alt="evalexpr" title="evalexpr"/></a> <a href="https://github.com/henrino3"><img src="https://avatars.githubusercontent.com/u/4260288?v=4&s=48" width="48" height="48" alt="henrino3" title="henrino3"/></a> <a href="https://github.com/humanwritten"><img src="https://avatars.githubusercontent.com/u/206531610?v=4&s=48" width="48" height="48" alt="humanwritten" title="humanwritten"/></a> <a href="https://github.com/larlyssa"><img src="https://avatars.githubusercontent.com/u/13128869?v=4&s=48" width="48" height="48" alt="larlyssa" title="larlyssa"/></a>
|
||||
<a href="https://github.com/odysseus0"><img src="https://avatars.githubusercontent.com/u/8635094?v=4&s=48" width="48" height="48" alt="odysseus0" title="odysseus0"/></a> <a href="https://github.com/oswalpalash"><img src="https://avatars.githubusercontent.com/u/6431196?v=4&s=48" width="48" height="48" alt="oswalpalash" title="oswalpalash"/></a> <a href="https://github.com/pcty-nextgen-service-account"><img src="https://avatars.githubusercontent.com/u/112553441?v=4&s=48" width="48" height="48" alt="pcty-nextgen-service-account" title="pcty-nextgen-service-account"/></a> <a href="https://github.com/rmorse"><img src="https://avatars.githubusercontent.com/u/853547?v=4&s=48" width="48" height="48" alt="rmorse" title="rmorse"/></a> <a href="https://github.com/Syhids"><img src="https://avatars.githubusercontent.com/u/671202?v=4&s=48" width="48" height="48" alt="Syhids" title="Syhids"/></a> <a href="https://github.com/search?q=Aaron%20Konyer"><img src="assets/avatar-placeholder.svg" width="48" height="48" alt="Aaron Konyer" title="Aaron Konyer"/></a> <a href="https://github.com/aaronveklabs"><img src="https://avatars.githubusercontent.com/u/225997828?v=4&s=48" width="48" height="48" alt="aaronveklabs" title="aaronveklabs"/></a> <a href="https://github.com/andreabadesso"><img src="https://avatars.githubusercontent.com/u/3586068?v=4&s=48" width="48" height="48" alt="andreabadesso" title="andreabadesso"/></a> <a href="https://github.com/search?q=Andrii"><img src="assets/avatar-placeholder.svg" width="48" height="48" alt="Andrii" title="Andrii"/></a> <a href="https://github.com/cash-echo-bot"><img src="https://avatars.githubusercontent.com/u/252747386?v=4&s=48" width="48" height="48" alt="cash-echo-bot" title="cash-echo-bot"/></a>
|
||||
<a href="https://github.com/search?q=Clawd"><img src="assets/avatar-placeholder.svg" width="48" height="48" alt="Clawd" title="Clawd"/></a> <a href="https://github.com/search?q=ClawdFx"><img src="assets/avatar-placeholder.svg" width="48" height="48" alt="ClawdFx" title="ClawdFx"/></a> <a href="https://github.com/EnzeD"><img src="https://avatars.githubusercontent.com/u/9866900?v=4&s=48" width="48" height="48" alt="EnzeD" title="EnzeD"/></a> <a href="https://github.com/erik-agens"><img src="https://avatars.githubusercontent.com/u/80908960?v=4&s=48" width="48" height="48" alt="erik-agens" title="erik-agens"/></a> <a href="https://github.com/Evizero"><img src="https://avatars.githubusercontent.com/u/10854026?v=4&s=48" width="48" height="48" alt="Evizero" title="Evizero"/></a> <a href="https://github.com/fcatuhe"><img src="https://avatars.githubusercontent.com/u/17382215?v=4&s=48" width="48" height="48" alt="fcatuhe" title="fcatuhe"/></a> <a href="https://github.com/itsjaydesu"><img src="https://avatars.githubusercontent.com/u/220390?v=4&s=48" width="48" height="48" alt="itsjaydesu" title="itsjaydesu"/></a> <a href="https://github.com/ivancasco"><img src="https://avatars.githubusercontent.com/u/2452858?v=4&s=48" width="48" height="48" alt="ivancasco" title="ivancasco"/></a> <a href="https://github.com/ivanrvpereira"><img src="https://avatars.githubusercontent.com/u/183991?v=4&s=48" width="48" height="48" alt="ivanrvpereira" title="ivanrvpereira"/></a> <a href="https://github.com/jayhickey"><img src="https://avatars.githubusercontent.com/u/1676460?v=4&s=48" width="48" height="48" alt="jayhickey" title="jayhickey"/></a>
|
||||
<a href="https://github.com/jeffersonwarrior"><img src="https://avatars.githubusercontent.com/u/89030989?v=4&s=48" width="48" height="48" alt="jeffersonwarrior" title="jeffersonwarrior"/></a> <a href="https://github.com/search?q=jeffersonwarrior"><img src="assets/avatar-placeholder.svg" width="48" height="48" alt="jeffersonwarrior" title="jeffersonwarrior"/></a> <a href="https://github.com/jverdi"><img src="https://avatars.githubusercontent.com/u/345050?v=4&s=48" width="48" height="48" alt="jverdi" title="jverdi"/></a> <a href="https://github.com/longmaba"><img src="https://avatars.githubusercontent.com/u/9361500?v=4&s=48" width="48" height="48" alt="longmaba" title="longmaba"/></a> <a href="https://github.com/mickahouan"><img src="https://avatars.githubusercontent.com/u/31423109?v=4&s=48" width="48" height="48" alt="mickahouan" title="mickahouan"/></a> <a href="https://github.com/mjrussell"><img src="https://avatars.githubusercontent.com/u/1641895?v=4&s=48" width="48" height="48" alt="mjrussell" title="mjrussell"/></a> <a href="https://github.com/odnxe"><img src="https://avatars.githubusercontent.com/u/403141?v=4&s=48" width="48" height="48" alt="odnxe" title="odnxe"/></a> <a href="https://github.com/p6l-richard"><img src="https://avatars.githubusercontent.com/u/18185649?v=4&s=48" width="48" height="48" alt="p6l-richard" title="p6l-richard"/></a> <a href="https://github.com/philipp-spiess"><img src="https://avatars.githubusercontent.com/u/458591?v=4&s=48" width="48" height="48" alt="philipp-spiess" title="philipp-spiess"/></a> <a href="https://github.com/search?q=Pocket%20Clawd"><img src="assets/avatar-placeholder.svg" width="48" height="48" alt="Pocket Clawd" title="Pocket Clawd"/></a>
|
||||
<a href="https://github.com/robaxelsen"><img src="https://avatars.githubusercontent.com/u/13132899?v=4&s=48" width="48" height="48" alt="robaxelsen" title="robaxelsen"/></a> <a href="https://github.com/search?q=Sash%20Catanzarite"><img src="assets/avatar-placeholder.svg" width="48" height="48" alt="Sash Catanzarite" title="Sash Catanzarite"/></a> <a href="https://github.com/T5-AndyML"><img src="https://avatars.githubusercontent.com/u/22801233?v=4&s=48" width="48" height="48" alt="T5-AndyML" title="T5-AndyML"/></a> <a href="https://github.com/travisp"><img src="https://avatars.githubusercontent.com/u/165698?v=4&s=48" width="48" height="48" alt="travisp" title="travisp"/></a> <a href="https://github.com/search?q=VAC"><img src="assets/avatar-placeholder.svg" width="48" height="48" alt="VAC" title="VAC"/></a> <a href="https://github.com/search?q=william%20arzt"><img src="assets/avatar-placeholder.svg" width="48" height="48" alt="william arzt" title="william arzt"/></a> <a href="https://github.com/zknicker"><img src="https://avatars.githubusercontent.com/u/1164085?v=4&s=48" width="48" height="48" alt="zknicker" title="zknicker"/></a> <a href="https://github.com/0oAstro"><img src="https://avatars.githubusercontent.com/u/79555780?v=4&s=48" width="48" height="48" alt="0oAstro" title="0oAstro"/></a> <a href="https://github.com/abhaymundhara"><img src="https://avatars.githubusercontent.com/u/62872231?v=4&s=48" width="48" height="48" alt="abhaymundhara" title="abhaymundhara"/></a> <a href="https://github.com/search?q=alejandro%20maza"><img src="assets/avatar-placeholder.svg" width="48" height="48" alt="alejandro maza" title="alejandro maza"/></a>
|
||||
<a href="https://github.com/Alex-Alaniz"><img src="https://avatars.githubusercontent.com/u/88956822?v=4&s=48" width="48" height="48" alt="Alex-Alaniz" title="Alex-Alaniz"/></a> <a href="https://github.com/alexstyl"><img src="https://avatars.githubusercontent.com/u/1665273?v=4&s=48" width="48" height="48" alt="alexstyl" title="alexstyl"/></a> <a href="https://github.com/andrewting19"><img src="https://avatars.githubusercontent.com/u/10536704?v=4&s=48" width="48" height="48" alt="andrewting19" title="andrewting19"/></a> <a href="https://github.com/anpoirier"><img src="https://avatars.githubusercontent.com/u/1245729?v=4&s=48" width="48" height="48" alt="anpoirier" title="anpoirier"/></a> <a href="https://github.com/arthyn"><img src="https://avatars.githubusercontent.com/u/5466421?v=4&s=48" width="48" height="48" alt="arthyn" title="arthyn"/></a> <a href="https://github.com/Asleep123"><img src="https://avatars.githubusercontent.com/u/122379135?v=4&s=48" width="48" height="48" alt="Asleep123" title="Asleep123"/></a> <a href="https://github.com/bolismauro"><img src="https://avatars.githubusercontent.com/u/771999?v=4&s=48" width="48" height="48" alt="bolismauro" title="bolismauro"/></a> <a href="https://github.com/chenyuan99"><img src="https://avatars.githubusercontent.com/u/25518100?v=4&s=48" width="48" height="48" alt="chenyuan99" title="chenyuan99"/></a> <a href="https://github.com/search?q=Clawdbot%20Maintainers"><img src="assets/avatar-placeholder.svg" width="48" height="48" alt="Clawdbot Maintainers" title="Clawdbot Maintainers"/></a> <a href="https://github.com/conhecendoia"><img src="https://avatars.githubusercontent.com/u/82890727?v=4&s=48" width="48" height="48" alt="conhecendoia" title="conhecendoia"/></a>
|
||||
<a href="https://github.com/dasilva333"><img src="https://avatars.githubusercontent.com/u/947827?v=4&s=48" width="48" height="48" alt="dasilva333" title="dasilva333"/></a> <a href="https://github.com/David-Marsh-Photo"><img src="https://avatars.githubusercontent.com/u/228404527?v=4&s=48" width="48" height="48" alt="David-Marsh-Photo" title="David-Marsh-Photo"/></a> <a href="https://github.com/search?q=Developer"><img src="assets/avatar-placeholder.svg" width="48" height="48" alt="Developer" title="Developer"/></a> <a href="https://github.com/search?q=Dimitrios%20Ploutarchos"><img src="assets/avatar-placeholder.svg" width="48" height="48" alt="Dimitrios Ploutarchos" title="Dimitrios Ploutarchos"/></a> <a href="https://github.com/search?q=Drake%20Thomsen"><img src="assets/avatar-placeholder.svg" width="48" height="48" alt="Drake Thomsen" title="Drake Thomsen"/></a> <a href="https://github.com/search?q=Felix%20Krause"><img src="assets/avatar-placeholder.svg" width="48" height="48" alt="Felix Krause" title="Felix Krause"/></a> <a href="https://github.com/foeken"><img src="https://avatars.githubusercontent.com/u/13864?v=4&s=48" width="48" height="48" alt="foeken" title="foeken"/></a> <a href="https://github.com/search?q=ganghyun%20kim"><img src="assets/avatar-placeholder.svg" width="48" height="48" alt="ganghyun kim" title="ganghyun kim"/></a> <a href="https://github.com/grrowl"><img src="https://avatars.githubusercontent.com/u/907140?v=4&s=48" width="48" height="48" alt="grrowl" title="grrowl"/></a> <a href="https://github.com/gtsifrikas"><img src="https://avatars.githubusercontent.com/u/8904378?v=4&s=48" width="48" height="48" alt="gtsifrikas" title="gtsifrikas"/></a>
|
||||
<a href="https://github.com/HazAT"><img src="https://avatars.githubusercontent.com/u/363802?v=4&s=48" width="48" height="48" alt="HazAT" title="HazAT"/></a> <a href="https://github.com/hrdwdmrbl"><img src="https://avatars.githubusercontent.com/u/554881?v=4&s=48" width="48" height="48" alt="hrdwdmrbl" title="hrdwdmrbl"/></a> <a href="https://github.com/hugobarauna"><img src="https://avatars.githubusercontent.com/u/2719?v=4&s=48" width="48" height="48" alt="hugobarauna" title="hugobarauna"/></a> <a href="https://github.com/search?q=Jamie%20Openshaw"><img src="assets/avatar-placeholder.svg" width="48" height="48" alt="Jamie Openshaw" title="Jamie Openshaw"/></a> <a href="https://github.com/search?q=Jane"><img src="assets/avatar-placeholder.svg" width="48" height="48" alt="Jane" title="Jane"/></a> <a href="https://github.com/search?q=Jarvis"><img src="assets/avatar-placeholder.svg" width="48" height="48" alt="Jarvis" title="Jarvis"/></a> <a href="https://github.com/search?q=Jefferson%20Nunn"><img src="assets/avatar-placeholder.svg" width="48" height="48" alt="Jefferson Nunn" title="Jefferson Nunn"/></a> <a href="https://github.com/jogi47"><img src="https://avatars.githubusercontent.com/u/1710139?v=4&s=48" width="48" height="48" alt="jogi47" title="jogi47"/></a> <a href="https://github.com/kentaro"><img src="https://avatars.githubusercontent.com/u/3458?v=4&s=48" width="48" height="48" alt="kentaro" title="kentaro"/></a> <a href="https://github.com/search?q=Kevin%20Lin"><img src="assets/avatar-placeholder.svg" width="48" height="48" alt="Kevin Lin" title="Kevin Lin"/></a>
|
||||
<a href="https://github.com/kitze"><img src="https://avatars.githubusercontent.com/u/1160594?v=4&s=48" width="48" height="48" alt="kitze" title="kitze"/></a> <a href="https://github.com/Kiwitwitter"><img src="https://avatars.githubusercontent.com/u/25277769?v=4&s=48" width="48" height="48" alt="Kiwitwitter" title="Kiwitwitter"/></a> <a href="https://github.com/levifig"><img src="https://avatars.githubusercontent.com/u/1605?v=4&s=48" width="48" height="48" alt="levifig" title="levifig"/></a> <a href="https://github.com/search?q=Lloyd"><img src="assets/avatar-placeholder.svg" width="48" height="48" alt="Lloyd" title="Lloyd"/></a> <a href="https://github.com/longjos"><img src="https://avatars.githubusercontent.com/u/740160?v=4&s=48" width="48" height="48" alt="longjos" title="longjos"/></a> <a href="https://github.com/loukotal"><img src="https://avatars.githubusercontent.com/u/18210858?v=4&s=48" width="48" height="48" alt="loukotal" title="loukotal"/></a> <a href="https://github.com/louzhixian"><img src="https://avatars.githubusercontent.com/u/7994361?v=4&s=48" width="48" height="48" alt="louzhixian" title="louzhixian"/></a> <a href="https://github.com/martinpucik"><img src="https://avatars.githubusercontent.com/u/5503097?v=4&s=48" width="48" height="48" alt="martinpucik" title="martinpucik"/></a> <a href="https://github.com/search?q=Matt%20mini"><img src="assets/avatar-placeholder.svg" width="48" height="48" alt="Matt mini" title="Matt mini"/></a> <a href="https://github.com/mertcicekci0"><img src="https://avatars.githubusercontent.com/u/179321902?v=4&s=48" width="48" height="48" alt="mertcicekci0" title="mertcicekci0"/></a>
|
||||
<a href="https://github.com/search?q=Miles"><img src="assets/avatar-placeholder.svg" width="48" height="48" alt="Miles" title="Miles"/></a> <a href="https://github.com/mrdbstn"><img src="https://avatars.githubusercontent.com/u/58957632?v=4&s=48" width="48" height="48" alt="mrdbstn" title="mrdbstn"/></a> <a href="https://github.com/MSch"><img src="https://avatars.githubusercontent.com/u/7475?v=4&s=48" width="48" height="48" alt="MSch" title="MSch"/></a> <a href="https://github.com/search?q=Mustafa%20Tag%20Eldeen"><img src="assets/avatar-placeholder.svg" width="48" height="48" alt="Mustafa Tag Eldeen" title="Mustafa Tag Eldeen"/></a> <a href="https://github.com/ndraiman"><img src="https://avatars.githubusercontent.com/u/12609607?v=4&s=48" width="48" height="48" alt="ndraiman" title="ndraiman"/></a> <a href="https://github.com/nexty5870"><img src="https://avatars.githubusercontent.com/u/3869659?v=4&s=48" width="48" height="48" alt="nexty5870" title="nexty5870"/></a> <a href="https://github.com/Noctivoro"><img src="https://avatars.githubusercontent.com/u/183974570?v=4&s=48" width="48" height="48" alt="Noctivoro" title="Noctivoro"/></a> <a href="https://github.com/ppamment"><img src="https://avatars.githubusercontent.com/u/2122919?v=4&s=48" width="48" height="48" alt="ppamment" title="ppamment"/></a> <a href="https://github.com/prathamdby"><img src="https://avatars.githubusercontent.com/u/134331217?v=4&s=48" width="48" height="48" alt="prathamdby" title="prathamdby"/></a> <a href="https://github.com/ptn1411"><img src="https://avatars.githubusercontent.com/u/57529765?v=4&s=48" width="48" height="48" alt="ptn1411" title="ptn1411"/></a>
|
||||
<a href="https://github.com/reeltimeapps"><img src="https://avatars.githubusercontent.com/u/637338?v=4&s=48" width="48" height="48" alt="reeltimeapps" title="reeltimeapps"/></a> <a href="https://github.com/RLTCmpe"><img src="https://avatars.githubusercontent.com/u/10762242?v=4&s=48" width="48" height="48" alt="RLTCmpe" title="RLTCmpe"/></a> <a href="https://github.com/search?q=Rolf%20Fredheim"><img src="assets/avatar-placeholder.svg" width="48" height="48" alt="Rolf Fredheim" title="Rolf Fredheim"/></a> <a href="https://github.com/search?q=Rony%20Kelner"><img src="assets/avatar-placeholder.svg" width="48" height="48" alt="Rony Kelner" title="Rony Kelner"/></a> <a href="https://github.com/search?q=Samrat%20Jha"><img src="assets/avatar-placeholder.svg" width="48" height="48" alt="Samrat Jha" title="Samrat Jha"/></a> <a href="https://github.com/senoldogann"><img src="https://avatars.githubusercontent.com/u/45736551?v=4&s=48" width="48" height="48" alt="senoldogann" title="senoldogann"/></a> <a href="https://github.com/Seredeep"><img src="https://avatars.githubusercontent.com/u/22802816?v=4&s=48" width="48" height="48" alt="Seredeep" title="Seredeep"/></a> <a href="https://github.com/sergical"><img src="https://avatars.githubusercontent.com/u/3760543?v=4&s=48" width="48" height="48" alt="sergical" title="sergical"/></a> <a href="https://github.com/shiv19"><img src="https://avatars.githubusercontent.com/u/9407019?v=4&s=48" width="48" height="48" alt="shiv19" title="shiv19"/></a> <a href="https://github.com/shiyuanhai"><img src="https://avatars.githubusercontent.com/u/1187370?v=4&s=48" width="48" height="48" alt="shiyuanhai" title="shiyuanhai"/></a>
|
||||
<a href="https://github.com/siraht"><img src="https://avatars.githubusercontent.com/u/73152895?v=4&s=48" width="48" height="48" alt="siraht" title="siraht"/></a> <a href="https://github.com/snopoke"><img src="https://avatars.githubusercontent.com/u/249606?v=4&s=48" width="48" height="48" alt="snopoke" title="snopoke"/></a> <a href="https://github.com/Suksham-sharma"><img src="https://avatars.githubusercontent.com/u/94667656?v=4&s=48" width="48" height="48" alt="Suksham-sharma" title="Suksham-sharma"/></a> <a href="https://github.com/search?q=techboss"><img src="assets/avatar-placeholder.svg" width="48" height="48" alt="techboss" title="techboss"/></a> <a href="https://github.com/testingabc321"><img src="https://avatars.githubusercontent.com/u/8577388?v=4&s=48" width="48" height="48" alt="testingabc321" title="testingabc321"/></a> <a href="https://github.com/search?q=The%20Admiral"><img src="assets/avatar-placeholder.svg" width="48" height="48" alt="The Admiral" title="The Admiral"/></a> <a href="https://github.com/thesash"><img src="https://avatars.githubusercontent.com/u/1166151?v=4&s=48" width="48" height="48" alt="thesash" title="thesash"/></a> <a href="https://github.com/search?q=Ubuntu"><img src="assets/avatar-placeholder.svg" width="48" height="48" alt="Ubuntu" title="Ubuntu"/></a> <a href="https://github.com/voidserf"><img src="https://avatars.githubusercontent.com/u/477673?v=4&s=48" width="48" height="48" alt="voidserf" title="voidserf"/></a> <a href="https://github.com/search?q=Vultr-Clawd%20Admin"><img src="assets/avatar-placeholder.svg" width="48" height="48" alt="Vultr-Clawd Admin" title="Vultr-Clawd Admin"/></a>
|
||||
<a href="https://github.com/search?q=Wimmie"><img src="assets/avatar-placeholder.svg" width="48" height="48" alt="Wimmie" title="Wimmie"/></a> <a href="https://github.com/search?q=wolfred"><img src="assets/avatar-placeholder.svg" width="48" height="48" alt="wolfred" title="wolfred"/></a> <a href="https://github.com/wstock"><img src="https://avatars.githubusercontent.com/u/1394687?v=4&s=48" width="48" height="48" alt="wstock" title="wstock"/></a> <a href="https://github.com/yazinsai"><img src="https://avatars.githubusercontent.com/u/1846034?v=4&s=48" width="48" height="48" alt="yazinsai" title="yazinsai"/></a> <a href="https://github.com/YiWang24"><img src="https://avatars.githubusercontent.com/u/176262341?v=4&s=48" width="48" height="48" alt="YiWang24" title="YiWang24"/></a> <a href="https://github.com/search?q=ymat19"><img src="assets/avatar-placeholder.svg" width="48" height="48" alt="ymat19" title="ymat19"/></a> <a href="https://github.com/search?q=Zach%20Knickerbocker"><img src="assets/avatar-placeholder.svg" width="48" height="48" alt="Zach Knickerbocker" title="Zach Knickerbocker"/></a> <a href="https://github.com/0xJonHoldsCrypto"><img src="https://avatars.githubusercontent.com/u/81202085?v=4&s=48" width="48" height="48" alt="0xJonHoldsCrypto" title="0xJonHoldsCrypto"/></a> <a href="https://github.com/aaronn"><img src="https://avatars.githubusercontent.com/u/1653630?v=4&s=48" width="48" height="48" alt="aaronn" title="aaronn"/></a> <a href="https://github.com/Alphonse-arianee"><img src="https://avatars.githubusercontent.com/u/254457365?v=4&s=48" width="48" height="48" alt="Alphonse-arianee" title="Alphonse-arianee"/></a>
|
||||
<a href="https://github.com/atalovesyou"><img src="https://avatars.githubusercontent.com/u/3534502?v=4&s=48" width="48" height="48" alt="atalovesyou" title="atalovesyou"/></a> <a href="https://github.com/search?q=Azade"><img src="assets/avatar-placeholder.svg" width="48" height="48" alt="Azade" title="Azade"/></a> <a href="https://github.com/carlulsoe"><img src="https://avatars.githubusercontent.com/u/34673973?v=4&s=48" width="48" height="48" alt="carlulsoe" title="carlulsoe"/></a> <a href="https://github.com/search?q=ddyo"><img src="assets/avatar-placeholder.svg" width="48" height="48" alt="ddyo" title="ddyo"/></a> <a href="https://github.com/search?q=Erik"><img src="assets/avatar-placeholder.svg" width="48" height="48" alt="Erik" title="Erik"/></a> <a href="https://github.com/latitudeki5223"><img src="https://avatars.githubusercontent.com/u/119656367?v=4&s=48" width="48" height="48" alt="latitudeki5223" title="latitudeki5223"/></a> <a href="https://github.com/search?q=Manuel%20Maly"><img src="assets/avatar-placeholder.svg" width="48" height="48" alt="Manuel Maly" title="Manuel Maly"/></a> <a href="https://github.com/search?q=Mourad%20Boustani"><img src="assets/avatar-placeholder.svg" width="48" height="48" alt="Mourad Boustani" title="Mourad Boustani"/></a> <a href="https://github.com/odrobnik"><img src="https://avatars.githubusercontent.com/u/333270?v=4&s=48" width="48" height="48" alt="odrobnik" title="odrobnik"/></a> <a href="https://github.com/pcty-nextgen-ios-builder"><img src="assets/avatar-placeholder.svg" width="48" height="48" alt="pcty-nextgen-ios-builder" title="pcty-nextgen-ios-builder"/></a>
|
||||
<a href="https://github.com/search?q=Quentin"><img src="assets/avatar-placeholder.svg" width="48" height="48" alt="Quentin" title="Quentin"/></a> <a href="https://github.com/search?q=Randy%20Torres"><img src="assets/avatar-placeholder.svg" width="48" height="48" alt="Randy Torres" title="Randy Torres"/></a> <a href="https://github.com/rhjoh"><img src="https://avatars.githubusercontent.com/u/105699450?v=4&s=48" width="48" height="48" alt="rhjoh" title="rhjoh"/></a> <a href="https://github.com/ronak-guliani"><img src="https://avatars.githubusercontent.com/u/23518228?v=4&s=48" width="48" height="48" alt="ronak-guliani" title="ronak-guliani"/></a> <a href="https://github.com/search?q=William%20Stock"><img src="assets/avatar-placeholder.svg" width="48" height="48" alt="William Stock" title="William Stock"/></a> <a href="https://github.com/dokhacgiakhoa"><img src="https://github.com/dokhacgiakhoa.png?size=48" width="48" height="48" alt="Đỗ Khắc Gia Khoa" title="Đỗ Khắc Gia Khoa"/></a>
|
||||
</p>
|
||||
|
||||
66
translation/vietnamese/SECURITY.vi.md
Normal file
66
translation/vietnamese/SECURITY.vi.md
Normal file
@ -0,0 +1,66 @@
|
||||
# Chính sách Bảo mật (Security Policy)
|
||||
|
||||
Nếu bạn tin rằng mình đã phát hiện ra lỗ hổng bảo mật trong Moltbot, xin hãy báo cáo một cách riêng tư (private).
|
||||
|
||||
## Cách báo cáo
|
||||
|
||||
- **Email:** `steipete@gmail.com`
|
||||
- **Nội dung cần có:**
|
||||
- Các bước tái hiện lỗi (reproduction steps).
|
||||
- Đánh giá mức độ ảnh hưởng (impact assessment).
|
||||
- Nếu có thể, hãy kèm theo một PoC (Proof of Concept) tối giản.
|
||||
|
||||
## Hướng dẫn Vận hành An toàn
|
||||
|
||||
Để hiểu rõ về mô hình các mối đe dọa (threat model) và cách gia cố hệ thống (hardening), bao gồm việc dùng lệnh `moltbot security audit --deep` và `--fix`, vui lòng xem tại:
|
||||
|
||||
👉 [Tài liệu Bảo mật Gateway](https://docs.molt.bot/gateway/security)
|
||||
|
||||
### Lưu ý về Giao diện Web (Web Interface)
|
||||
|
||||
Giao diện web của Moltbot được thiết kế để **chỉ sử dụng nội bộ (local use only)**.
|
||||
Tuyệt đối **KHÔNG** mở (bind) giao diện này ra internet công cộng trực tiếp. Nó chưa được gia cố để chống chọi với môi trường internet đầy rẫy rủi ro.
|
||||
|
||||
## Yêu cầu Môi trường chạy (Runtime Requirements)
|
||||
|
||||
### Phiên bản Node.js
|
||||
|
||||
Moltbot yêu cầu **Node.js 22.12.0 trở lên** (bản LTS). Phiên bản này cực kỳ quan trọng vì nó chứa các bản vá bảo mật cốt lõi:
|
||||
|
||||
- **CVE-2025-59466:** Lỗ hổng từ chối dịch vụ (DoS) liên quan đến `async_hooks`.
|
||||
- **CVE-2026-21636:** Lỗ hổng cho phép vượt qua mô hình phân quyền (Permission model bypass).
|
||||
|
||||
Hãy kiểm tra phiên bản Node.js của bạn:
|
||||
|
||||
```bash
|
||||
node --version # Kết quả phải là v22.12.0 trở lên
|
||||
```
|
||||
|
||||
### Bảo mật Docker
|
||||
|
||||
Nếu bạn chạy Moltbot trong Docker, hãy tuân thủ các nguyên tắc sau:
|
||||
|
||||
1. **Chạy non-root:** Image chính thức đã được cấu hình để chạy dưới user `node` thay vì `root` để giảm thiểu rủi ro bị tấn công leo thang đặc quyền.
|
||||
2. **Read-only:** Sử dụng cờ `--read-only` bất cứ khi nào có thể để ngăn chặn việc ghi đè lên hệ thống file của container.
|
||||
3. **Hạn chế quyền:** Dùng `--cap-drop=ALL` để tước bỏ các quyền Linux capabilities không cần thiết.
|
||||
|
||||
**Ví dụ lệnh chạy Docker an toàn:**
|
||||
|
||||
```bash
|
||||
docker run --read-only --cap-drop=ALL \
|
||||
-v moltbot-data:/app/data \
|
||||
moltbot/moltbot:latest
|
||||
```
|
||||
|
||||
## Quét lỗ hổng (Security Scanning)
|
||||
|
||||
Dự án này sử dụng công cụ `detect-secrets` để tự động phát hiện các thông tin nhạy cảm (API keys, passwords...) trong quá trình CI/CD.
|
||||
- Cấu hình: xem file `.detect-secrets.cfg`.
|
||||
- Baseline (dữ liệu mẫu): xem file `.secrets.baseline`.
|
||||
|
||||
**Cách chạy quét thủ công (local):**
|
||||
|
||||
```bash
|
||||
pip install detect-secrets==1.5.0
|
||||
detect-secrets scan --baseline .secrets.baseline
|
||||
```
|
||||
25
translation/vietnamese/WARNING.vi.md
Normal file
25
translation/vietnamese/WARNING.vi.md
Normal file
@ -0,0 +1,25 @@
|
||||
# ⚠️ CẢNH BÁO RỦI RO VÀ MIỄN TRỪ TRÁCH NHIỆM
|
||||
|
||||
**VUI LÒNG ĐỌC KỸ TRƯỚC KHI SỬ DỤNG PHẦN MỀM NÀY.**
|
||||
|
||||
Moltbot là một phần mềm mã nguồn mở, đang trong giai đoạn phát triển tích cực và có tính thử nghiệm cao. Khi bạn cài đặt và sử dụng Moltbot, bạn đồng ý với các điều khoản sau:
|
||||
|
||||
## 1. Tự chịu trách nhiệm
|
||||
Bạn hoàn toàn chịu trách nhiệm về mọi hành động và quyết định khi sử dụng phần mềm. Moltbot là một công cụ mạnh mẽ có khả năng thực thi mã lệnh, truy cập tệp tin và tương tác với hệ thống của bạn.
|
||||
- Bạn phải **tự kiểm tra và phê duyệt** mọi hành động mà bot đề xuất trước khi cho phép thực thi.
|
||||
- Nhà phát triển và cộng đồng đóng góp không chịu trách nhiệm về bất kỳ thiệt hại nào về dữ liệu, phần cứng, hoặc tài chính phát sinh từ việc sử dụng phần mềm.
|
||||
|
||||
## 2. Rủi ro An ninh & Bảo mật
|
||||
- **Gateway cục bộ:** Nếu bạn cấu hình gateway để truy cập từ xa (ví dụ: qua Tailscale hoặc IP công cộng), bạn có trách nhiệm bảo vệ endpoint đó. Việc để lộ gateway có thể cho phép người lạ truy cập và điều khiển máy tính của bạn.
|
||||
- **Pairing Code:** Không bao giờ chia sẻ mã ghép nối (pairing code) với người lạ.
|
||||
- **Dữ liệu nhạy cảm:** Cẩn trọng khi cấp quyền cho bot truy cập vào các thư mục chứa thông tin nhạy cảm (SSH keys, mật khẩu, v.v.).
|
||||
|
||||
## 3. Rủi ro Tài chính (API Costs)
|
||||
- Moltbot sử dụng các mô hình ngôn ngữ lớn (LLM) thông qua API (như Claude, OpenAI, Gemini).
|
||||
- Bạn chịu trách nhiệm hoàn toàn về các chi phí phát sinh từ việc sử dụng API key của mình.
|
||||
- Hãy thiết lập giới hạn ngân sách (budget limits) trên các tài khoản nhà cung cấp API để tránh chi phí ngoài ý muốn.
|
||||
|
||||
## 4. Không Bảo hành
|
||||
Phần mềm này được cung cấp "NGUYÊN TRẠNG" (AS IS), không có bất kỳ sự bảo hành nào, dù rõ ràng hay ngụ ý, bao gồm nhưng không giới hạn ở sự bảo hành về tính thương mại, sự phù hợp cho một mục đích cụ thể và không vi phạm quyền sở hữu trí tuệ.
|
||||
|
||||
**BẰNG VIỆC TẢI VỀ, CÀI ĐẶT VÀ SỬ DỤNG MOLTBOT, BẠN XÁC NHẬN ĐÃ HIỂU VÀ CHẤP NHẬN CÁC RỦI RO NÊU TRÊN.**
|
||||
33
translation/vietnamese/docs/automation/auth-monitoring.vi.md
Normal file
33
translation/vietnamese/docs/automation/auth-monitoring.vi.md
Normal file
@ -0,0 +1,33 @@
|
||||
---
|
||||
summary: "Theo dõi thời gian hết hạn OAuth cho các nhà cung cấp mô hình AI"
|
||||
read_when:
|
||||
- Bạn muốn thiết lập hệ thống cảnh báo khi sắp hết hạn đăng nhập
|
||||
- Bạn đang tự động hóa việc kiểm tra làm mới OAuth cho Claude Code / Codex
|
||||
---
|
||||
|
||||
# Theo dõi xác thực (Auth monitoring)
|
||||
|
||||
Moltbot cung cấp thông tin về tình trạng hết hạn OAuth thông qua lệnh `moltbot models status`. Bạn có thể sử dụng lệnh này để tự động hóa việc gửi cảnh báo.
|
||||
|
||||
## Cách khuyên dùng: Kiểm tra qua CLI
|
||||
Lệnh sau đây có thể sử dụng trong các kịch bản cron hoặc systemd mà không cần thêm script phụ trợ:
|
||||
|
||||
```bash
|
||||
moltbot models status --check
|
||||
```
|
||||
|
||||
**Các mã trả về (Exit codes):**
|
||||
- `0`: Mọi thứ bình thường (OK).
|
||||
- `1`: Đã hết hạn hoặc thiếu thông tin đăng nhập.
|
||||
- `2`: Sắp hết hạn (trong vòng 24 giờ tới).
|
||||
|
||||
## Các kịch bản tùy chọn (Dành cho điện thoại hoặc hệ thống chuyên sâu)
|
||||
Các tệp tin nằm trong thư mục `scripts/` hỗ trợ thêm các quy trình nâng cao:
|
||||
- `scripts/auth-monitor.sh`: Chạy định kỳ để gửi cảnh báo qua ntfy hoặc điện thoại.
|
||||
- `scripts/mobile-reauth.sh`: Quy trình đăng nhập lại thông qua kết nối SSH trên điện thoại.
|
||||
- `scripts/termux-quick-auth.sh`: Tiện ích (widget) trên Android (Termux) để xem trạng thái nhanh.
|
||||
|
||||
Nếu bạn không cần tự động hóa trên điện thoại, bạn có thể bỏ qua các kịch bản này.
|
||||
|
||||
---
|
||||
Tài liệu liên quan: [Cài đặt SSH trên di động](../gateway/remote.vi.md), [Xử lý lỗi](../gateway/troubleshooting.vi.md).
|
||||
50
translation/vietnamese/docs/automation/cron-jobs.vi.md
Normal file
50
translation/vietnamese/docs/automation/cron-jobs.vi.md
Normal file
@ -0,0 +1,50 @@
|
||||
---
|
||||
summary: "Các công việc định kỳ (Cron jobs) và đánh thức cho bộ lập lịch của Gateway"
|
||||
read_when:
|
||||
- Bạn muốn lập lịch chạy các công việc ngầm hoặc nhắc việc
|
||||
- Bạn đang phân vân giữa việc dùng Heartbeat hay Cron cho các tác vụ định kỳ
|
||||
---
|
||||
|
||||
# Công việc định kỳ (Cron jobs)
|
||||
|
||||
Moltbot tích hợp sẵn một bộ lập lịch bên trong Gateway. Nó cho phép lưu trữ các công việc, đánh thức Agent vào đúng thời điểm và có thể gửi kết quả trực tiếp về cửa sổ chat.
|
||||
|
||||
## Tóm tắt nhanh
|
||||
- **Vị trí chạy**: Chạy **bên trong Gateway** (không phải bên trong mô hình AI).
|
||||
- **Lưu trữ**: Các công việc được lưu tại `~/.clawdbot/cron/`, không bị mất khi khởi động lại.
|
||||
- **Hai kiểu thực thi**:
|
||||
- **Phiên chính (Main)**: Thêm một sự kiện vào hệ thống, Agent sẽ xử lý ở lượt Heartbeat tiếp theo.
|
||||
- **Cô lập (Isolated)**: Chạy một lượt Agent riêng biểu trong phiên `cron:<jobId>`, có thể gửi kết quả ra ngoài.
|
||||
|
||||
## Lựa chọn lịch trình
|
||||
- **Nhắc việc một lần**: Dùng `--at` (ví dụ: `20m` hoặc một mốc thời gian ISO).
|
||||
- **Lặp lại**: Dùng `--every` (khoảng thời gian) hoặc biểu thức `--cron` chuẩn 5 trường.
|
||||
|
||||
## Lựa chọn nơi chạy
|
||||
- `--session main`: Chạy kèm với luồng suy nghĩ bình thường của Bot (Heartbeat).
|
||||
- `--session isolated`: Chạy riêng biệt để không làm phiền cửa sổ chat chính, phù hợp cho các tác vụ "dọn dẹp" hoặc phân tích nặng.
|
||||
|
||||
## Ví dụ lệnh CLI
|
||||
|
||||
**1. Nhắc việc một lần sau 20 phút (Phiên chính):**
|
||||
```bash
|
||||
moltbot cron add --name "Nhắc họp" --at "20m" --session main --system-event "Nhắc nhở: Cuộc họp sẽ bắt đầu sau 10 phút." --wake now
|
||||
```
|
||||
|
||||
**2. Báo cáo buổi sáng hàng ngày lúc 7:00 (Gửi về WhatsApp):**
|
||||
```bash
|
||||
moltbot cron add --name "Chào buổi sáng" --cron "0 7 * * *" --tz "Asia/Ho_Chi_Minh" --session isolated --message "Tóm tắt email và lịch trình hôm nay cho tôi." --deliver --channel whatsapp --to "+84..."
|
||||
```
|
||||
|
||||
**3. Phân tích sâu hàng tuần (Dùng mô hình mạnh nhất):**
|
||||
```bash
|
||||
moltbot cron add --name "Phân tích tuần" --cron "0 9 * * 1" --session isolated --message "Phân tích tiến độ dự án tuần qua." --model opus --thinking high
|
||||
```
|
||||
|
||||
## Kiểm tra và Quản lý
|
||||
- Liệt kê các công việc: `moltbot cron list`
|
||||
- Xem lịch sử chạy: `moltbot cron runs --id <jobId>`
|
||||
- Chạy thử ngay lập tức: `moltbot cron run <jobId> --force`
|
||||
|
||||
---
|
||||
Tài liệu liên quan: [So sánh Cron vs Heartbeat](./cron-vs-heartbeat.vi.md), [Cấu hình Heartbeat](../gateway/heartbeat.vi.md).
|
||||
@ -0,0 +1,40 @@
|
||||
---
|
||||
summary: "Hướng dẫn lựa chọn giữa Heartbeat và Cron cho các tác vụ tự động"
|
||||
read_when:
|
||||
- Bạn đang thiết lập các công việc lặp lại (như kiểm tra email, nhắc việc)
|
||||
- Bạn muốn tiết kiệm token khi chạy các tác vụ định kỳ
|
||||
---
|
||||
|
||||
# Cron vs Heartbeat: Nên chọn cái nào?
|
||||
|
||||
Cả Heartbeat và Cron đều cho phép bạn chạy các tác vụ theo lịch trình. Hướng dẫn này sẽ giúp bạn chọn công cụ phù hợp nhất.
|
||||
|
||||
## Bảng so sánh nhanh
|
||||
|
||||
| Tình huống sử dụng | Công cụ khuyên dùng | Tại sao? |
|
||||
|----------|-------------|-----|
|
||||
| Kiểm tra email mỗi 30 phút | **Heartbeat** | Gộp chung được với các kiểm tra khác, tiết kiệm token. |
|
||||
| Gửi báo cáo đúng 9:00 sáng | **Cron (isolated)** | Độ chính xác về thời gian rất cao. |
|
||||
| Theo dõi lịch trình cá nhân | **Heartbeat** | Phù hợp để duy trì nhận thức liên tục. |
|
||||
| Phân tích dữ liệu nặng hàng tuần | **Cron (isolated)** | Tác vụ độc lập, có thể dùng mô hình mạnh hơn. |
|
||||
| Nhắc tôi sau 20 phút | **Cron (main, --at)** | Nhắc việc một lần với thời gian chính xác. |
|
||||
|
||||
## Heartbeat: Nhận thức liên tục
|
||||
Heartbeat chạy trong **phiên chính (main)** theo một khoảng thời gian đều đặn (mặc định 30 phút). Nó được thiết kế để Agent tự kiểm tra mọi thứ và báo cáo những gì quan trọng.
|
||||
|
||||
- **Ưu điểm**: Gộp nhiều việc vào một lần chạy (Check email, check lịch, check thời tiết...). Agent có đầy đủ ngữ cảnh của cuộc trò chuyện gần đây nên phản hồi rất tự nhiên.
|
||||
- **Tiết kiệm**: Nếu không có gì mới, Agent chỉ trả về `HEARTBEAT_OK` và không tốn phí gửi tin nhắn.
|
||||
|
||||
## Cron: Lập lịch chính xác
|
||||
Cron chạy tại **thời điểm chính xác** (ví dụ: đúng 07:00:00) và có thể chạy trong một phiên cô lập để không làm loãng lịch sử chat chính của bạn.
|
||||
|
||||
- **Ưu điểm**: Hỗ trợ biểu thức cron phức tạp (0 7 * * *), hỗ trợ múi giờ. Cho phép đổi mô hình AI tùy theo công việc (ví dụ dùng mô hình rẻ tiền để tóm tắt, dùng mô hình xịn để phân tích).
|
||||
- **Cách dùng**: Phù hợp cho "Morning Briefing" hoặc các lời nhắc một lần (`--at "2h"`).
|
||||
|
||||
## Lời khuyên chung: Hãy kết hợp cả hai
|
||||
Một hệ thống tự động hiệu quả nhất nên dùng cả hai:
|
||||
1. **Heartbeat**: Để theo dõi routine hàng ngày (vừa gộp việc, vừa rẻ).
|
||||
2. **Cron**: Để đặt lịch cho những việc quan trọng cần đúng giờ hoặc cần "sức mạnh" của các mô hình AI lớn.
|
||||
|
||||
---
|
||||
Tài liệu liên quan: [Cấu hình Heartbeat](../gateway/heartbeat.vi.md), [Hướng dẫn Cron](./cron-jobs.vi.md).
|
||||
58
translation/vietnamese/docs/automation/gmail-pubsub.vi.md
Normal file
58
translation/vietnamese/docs/automation/gmail-pubsub.vi.md
Normal file
@ -0,0 +1,58 @@
|
||||
---
|
||||
summary: "Tích hợp Gmail Pub/Sub vào Moltbot qua cổng Webhook bằng gogcli"
|
||||
read_when:
|
||||
- Bạn muốn Bot tự động "thức dậy" khi có email mới đến Gmail
|
||||
- Bạn đang thiết lập hệ thống đẩy (push) thông báo từ Google Cloud
|
||||
---
|
||||
|
||||
# Kết nối Gmail Pub/Sub đến Moltbot
|
||||
|
||||
Mục tiêu: Khi có email mới -> Google Pub/Sub gửi thông báo -> `gog` xử lý -> Gọi Webhook của Moltbot để Agent xử lý.
|
||||
|
||||
## Yêu cầu chuẩn bị
|
||||
- Đã cài đặt và đăng nhập `gcloud` SDK.
|
||||
- Đã cài đặt và cấp quyền cho `gog` (gogcli).
|
||||
- Đã bật tính năng Hook trong Moltbot (xem [Webhooks](./webhook.vi.md)).
|
||||
- Đã đăng nhập **Tailscale** (Khuyên dùng để có địa chỉ HTTPS công khai an toàn).
|
||||
|
||||
## Cấu hình mẫu cho Moltbot
|
||||
Bạn cần thêm cấu hình sau vào `moltbot.json` để Bot biết cách xử lý khi nhận được dữ liệu từ Gmail:
|
||||
|
||||
```json5
|
||||
{
|
||||
hooks: {
|
||||
enabled: true,
|
||||
presets: ["gmail"],
|
||||
mappings: [
|
||||
{
|
||||
match: { path: "gmail" },
|
||||
action: "agent",
|
||||
wakeMode: "now",
|
||||
name: "Gmail",
|
||||
messageTemplate: "Có email mới từ {{messages[0].from}}\nTiêu đề: {{messages[0].subject}}\nNội dung: {{messages[0].snippet}}",
|
||||
deliver: true,
|
||||
channel: "last"
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
## Thiết lập nhanh (Dùng Wizard)
|
||||
Moltbot cung cấp lệnh hỗ trợ tự động thiết lập mọi đường dây kết nối (trên macOS):
|
||||
```bash
|
||||
moltbot webhooks gmail setup --account email-cua-ban@gmail.com
|
||||
```
|
||||
|
||||
## Chạy trình theo dõi
|
||||
Sau khi thiết lập, bạn có thể chạy lệnh sau để Bot bắt đầu lắng nghe các thông báo đẩy từ Gmail:
|
||||
```bash
|
||||
moltbot webhooks gmail run
|
||||
```
|
||||
|
||||
## Lưu ý về bảo mật
|
||||
- Luôn sử dụng mã Token cho Webhook để tránh người lạ gửi dữ liệu giả mạo.
|
||||
- Các nội dung email từ bên ngoài mặc định sẽ được Bot xử lý trong môi trường an toàn (safety boundaries) để tránh các cuộc tấn công qua nội dung email (Prompt injection).
|
||||
|
||||
---
|
||||
Tài liệu liên quan: [Hướng dẫn Webhooks](./webhook.vi.md), [Bảo mật](../gateway/security/index.vi.md).
|
||||
40
translation/vietnamese/docs/automation/poll.vi.md
Normal file
40
translation/vietnamese/docs/automation/poll.vi.md
Normal file
@ -0,0 +1,40 @@
|
||||
---
|
||||
summary: "Gửi khảo sát (Poll) thông qua Gateway và CLI"
|
||||
read_when:
|
||||
- Bạn muốn AI tạo các cuộc thăm dò ý kiến trên WhatsApp hoặc Discord
|
||||
---
|
||||
|
||||
# Khảo sát (Polls)
|
||||
|
||||
Moltbot hỗ trợ việc gửi các cuộc thăm dò ý kiến (khảo sát) trực tiếp đến các ứng dụng nhắn tin.
|
||||
|
||||
## Các kênh hỗ trợ
|
||||
- **WhatsApp**: Kênh phổ biến nhất.
|
||||
- **Discord**: Hỗ trợ đầy đủ các tính năng.
|
||||
- **MS Teams**: Hiển thị dưới dạng Thẻ tương tác (Adaptive Cards).
|
||||
|
||||
## Cách dùng qua dòng lệnh (CLI)
|
||||
|
||||
**Ví dụ gửi lên WhatsApp:**
|
||||
```bash
|
||||
moltbot message poll --target +84... \
|
||||
--poll-question "Trưa nay ăn gì?" --poll-option "Phở" --poll-option "Cơm" --poll-option "Bún"
|
||||
```
|
||||
|
||||
**Ví dụ gửi lên Discord (Cho phép chọn nhiều phương án):**
|
||||
```bash
|
||||
moltbot message poll --channel discord --target channel:123... \
|
||||
--poll-question "Chọn phương án?" --poll-option "A" --poll-option "B" --poll-multi
|
||||
```
|
||||
|
||||
## Các tham số chính
|
||||
- `--poll-question`: Câu hỏi của cuộc khảo sát.
|
||||
- `--poll-option`: Các phương án trả lời (Có thể lặp lại tham số này nhiều lần).
|
||||
- `--poll-multi`: Cho phép người dùng chọn cùng lúc nhiều phương án.
|
||||
- `--poll-duration-hours`: (Chỉ Discord) Thời gian khảo sát tồn tại (mặc định là 24 giờ).
|
||||
|
||||
## Sử dụng thông qua Agent
|
||||
Agent của bạn có thể sử dụng công cụ `message` với hành động `poll` để tự động tạo khảo sát dựa trên nội dung trò chuyện.
|
||||
|
||||
---
|
||||
Tài liệu liên quan: [Danh sách kênh](../channels/index.vi.md), [Công cụ Message](../tools/index.vi.md).
|
||||
52
translation/vietnamese/docs/automation/webhook.vi.md
Normal file
52
translation/vietnamese/docs/automation/webhook.vi.md
Normal file
@ -0,0 +1,52 @@
|
||||
---
|
||||
summary: "Cổng nhận Webhook để đánh thức Bot và chạy Agent cô lập"
|
||||
read_when:
|
||||
- Bạn muốn kết nối các hệ thống bên ngoài (như GitHub, Jenkins, Email) vào Moltbot
|
||||
---
|
||||
|
||||
# Webhooks
|
||||
|
||||
Moltbot Gateway cung cấp một cổng HTTP nhỏ để nhận các tín hiệu kích hoạt từ bên ngoài.
|
||||
|
||||
## Kích hoạt Webhook
|
||||
Bạn cần bật tính năng này trong tệp `moltbot.json`:
|
||||
|
||||
```json5
|
||||
{
|
||||
hooks: {
|
||||
enabled: true,
|
||||
token: "ma-bi-mat-cua-ban",
|
||||
path: "/hooks" // Mặc định là /hooks
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
## Xác thực
|
||||
Mọi yêu cầu gửi đến Webhook phải kèm theo mã Token. Cách khuyên dùng là gửi qua Header:
|
||||
`Authorization: Bearer <ma-token>`
|
||||
|
||||
## Các địa chỉ (Endpoints) chính
|
||||
|
||||
### 1. Đánh thức Bot (`POST /hooks/wake`)
|
||||
Dùng để thông báo một sự kiện vừa xảy ra nhưng không yêu cầu Agent phải trả lời ngay lập tức (nó sẽ xuất hiện ở lượt Heartbeat tiếp theo).
|
||||
- **Tham số**: `text` (nội dung sự kiện), `mode` (`now` hoặc `next-heartbeat`).
|
||||
|
||||
### 2. Chạy Agent cô lập (`POST /hooks/agent`)
|
||||
Dùng khi bạn muốn Bot thực hiện một hành động cụ thể và trả lời ngay.
|
||||
- **Tham số**: `message` (câu lệnh cho Bot), `name` (tên nguồn gửi, VD: "GitHub"), `deliver` (có gửi kết quả về chat không).
|
||||
|
||||
## Ví dụ sử dụng với `curl`
|
||||
```bash
|
||||
curl -X POST http://127.0.0.1:18789/hooks/wake \
|
||||
-H 'Authorization: Bearer MA_BI_MAT' \
|
||||
-H 'Content-Type: application/json' \
|
||||
-d '{"text":"Cảnh báo: Máy chủ đang quá tải","mode":"now"}'
|
||||
```
|
||||
|
||||
## Bảo mật
|
||||
- Luôn giữ địa chỉ Webhook trong mạng nội bộ hoặc dùng **Tailscale** để bảo vệ.
|
||||
- Sử dụng mã Token riêng biệt cho Webhook, không dùng chung mã với Gateway chính.
|
||||
- Mặc định các nội dung từ Webhook được coi là không tin tưởng và sẽ được Bot xử lý một cách cẩn trọng.
|
||||
|
||||
---
|
||||
Tài liệu liên quan: [Tích hợp Gmail Pub/Sub](./gmail-pubsub.vi.md), [Cấu hình Gateway](../gateway/configuration.vi.md).
|
||||
86
translation/vietnamese/docs/bedrock.vi.md
Normal file
86
translation/vietnamese/docs/bedrock.vi.md
Normal file
@ -0,0 +1,86 @@
|
||||
---
|
||||
summary: "Cách sử dụng các mô hình Amazon Bedrock (Converse API) với Moltbot"
|
||||
---
|
||||
# Amazon Bedrock
|
||||
|
||||
Moltbot có thể sử dụng các mô hình **Amazon Bedrock** thông qua trình cung cấp truyền phát (streaming) **Bedrock Converse**. Việc xác thực của Bedrock sử dụng chuỗi thông tin xác thực mặc định của **AWS SDK**, thay vì sử dụng API key.
|
||||
|
||||
## Các thông số hỗ trợ
|
||||
|
||||
- **Nhà cung cấp**: `amazon-bedrock`
|
||||
- **API**: `bedrock-converse-stream`
|
||||
- **Xác thực**: Thông tin AWS (biến môi trường, tệp cấu hình chung hoặc vai trò thực thể - instance role)
|
||||
- **Vùng (Region)**: `AWS_REGION` hoặc `AWS_DEFAULT_REGION` (mặc định: `us-east-1`)
|
||||
|
||||
## Tự động khám phá mô hình
|
||||
|
||||
Nếu phát hiện thông tin xác thực AWS, Moltbot có thể tự động tìm kiếm các mô hình Bedrock hỗ trợ **truyền phát** và **đầu ra văn bản**. Kết quả khám phá được lưu tạm (cache) trong vòng 1 giờ.
|
||||
|
||||
Cấu hình tùy chọn nằm tại `models.bedrockDiscovery`:
|
||||
|
||||
```json
|
||||
{
|
||||
"models": {
|
||||
"bedrockDiscovery": {
|
||||
"enabled": true,
|
||||
"region": "us-east-1",
|
||||
"providerFilter": ["anthropic", "amazon"]
|
||||
}
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
## Thiết lập thủ công
|
||||
|
||||
1. Đảm bảo thông tin xác thực AWS có sẵn trên **máy chủ Gateway**:
|
||||
|
||||
```bash
|
||||
export AWS_ACCESS_KEY_ID="AKIA..."
|
||||
export AWS_SECRET_ACCESS_KEY="..."
|
||||
export AWS_REGION="us-east-1"
|
||||
```
|
||||
|
||||
2. Thêm nhà cung cấp và mô hình Bedrock vào cấu hình của bạn:
|
||||
|
||||
```json
|
||||
{
|
||||
"models": {
|
||||
"providers": {
|
||||
"amazon-bedrock": {
|
||||
"baseUrl": "https://bedrock-runtime.us-east-1.amazonaws.com",
|
||||
"api": "bedrock-converse-stream",
|
||||
"auth": "aws-sdk",
|
||||
"models": [
|
||||
{
|
||||
"id": "anthropic.claude-opus-4-5-20251101-v1:0",
|
||||
"name": "Claude Opus 4.5 (Bedrock)",
|
||||
"input": ["text", "image"]
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
## Vai trò thực thể EC2 (Instance Roles)
|
||||
|
||||
Khi chạy Moltbot trên thực thể EC2 đã gắn vai trò IAM, AWS SDK sẽ tự động sử dụng dịch vụ thông tin thực thể (IMDS) để xác thực.
|
||||
|
||||
**Mẹo nhỏ**: Hãy đặt `AWS_PROFILE=default` để báo hiệu rằng thông tin xác thực AWS đã có sẵn.
|
||||
|
||||
**Các quyền IAM cần thiết**:
|
||||
- `bedrock:InvokeModel`
|
||||
- `bedrock:InvokeModelWithResponseStream`
|
||||
- `bedrock:ListFoundationModels` (dùng cho việc tự động khám phá)
|
||||
|
||||
Hoặc gắn chính sách quản lý `AmazonBedrockFullAccess`.
|
||||
|
||||
## Lưu ý
|
||||
|
||||
- Bạn cần bật quyền **truy cập mô hình** (model access) trong tài khoản/vùng AWS của mình.
|
||||
- Khám phá mô hình tự động yêu cầu quyền `bedrock:ListFoundationModels`.
|
||||
- Nếu bạn có nhiều hồ sơ (profiles), hãy đặt `AWS_PROFILE` trên máy chủ Gateway.
|
||||
|
||||
---
|
||||
Tài liệu liên quan: [Cấu hình hệ thống](./gateway/configuration.vi.md), [Nhà cung cấp AI](./providers/index.vi.md).
|
||||
38
translation/vietnamese/docs/brave-search.vi.md
Normal file
38
translation/vietnamese/docs/brave-search.vi.md
Normal file
@ -0,0 +1,38 @@
|
||||
---
|
||||
summary: "Thiết lập Brave Search API cho tính năng tìm kiếm web (web_search)"
|
||||
---
|
||||
|
||||
# Brave Search API
|
||||
|
||||
Moltbot sử dụng Brave Search làm nhà cung cấp mặc định cho tính năng `web_search` (tìm kiếm web).
|
||||
|
||||
## Nhận mã API key
|
||||
|
||||
1. Tạo tài khoản Brave Search API tại: https://brave.com/search/api/
|
||||
2. Trong bảng điều khiển, chọn gói **Data for Search** và tạo một mã API key.
|
||||
3. Lưu mã này vào cấu hình (khuyên dùng) hoặc đặt biến môi trường `BRAVE_API_KEY` cho Gateway.
|
||||
|
||||
## Ví dụ cấu hình
|
||||
|
||||
```json
|
||||
{
|
||||
"tools": {
|
||||
"web": {
|
||||
"search": {
|
||||
"provider": "brave",
|
||||
"apiKey": "MÃ_API_KEY_CỦA_BẠN",
|
||||
"maxResults": 5,
|
||||
"timeoutSeconds": 30
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
## Lưu ý
|
||||
|
||||
- Gói "Data for AI" **không** tương thích với tính năng `web_search`.
|
||||
- Brave có cung cấp gói miễn phí cũng như các gói trả phí; hãy kiểm tra cổng thông tin Brave API để biết giới hạn sử dụng hiện tại.
|
||||
|
||||
---
|
||||
Tài liệu liên quan: [Công cụ Web](../tools/web.vi.md), [Tìm kiếm Web](../tools/web_search.vi.md).
|
||||
65
translation/vietnamese/docs/broadcast-groups.vi.md
Normal file
65
translation/vietnamese/docs/broadcast-groups.vi.md
Normal file
@ -0,0 +1,65 @@
|
||||
---
|
||||
summary: "Phát đi tin nhắn WhatsApp cho nhiều Agent cùng lúc"
|
||||
status: experimental
|
||||
---
|
||||
|
||||
# Nhóm phát tin nhắn (Broadcast Groups)
|
||||
|
||||
**Trạng thái:** Thực nghiệm (Experimental)
|
||||
**Phiên bản:** Bổ sung từ 2026.1.9
|
||||
|
||||
## Tổng quan
|
||||
|
||||
Nhóm phát tin nhắn (Broadcast Groups) cho phép nhiều Agent cùng lúc xử lý và phản hồi cho một tin nhắn duy nhất. Điều này giúp bạn tạo ra các nhóm Agent chuyên biệt làm việc cùng nhau trong một nhóm WhatsApp hoặc chat riêng — tất cả chỉ dùng một số điện thoại duy nhất.
|
||||
|
||||
Phạm vi hiện tại: **Chỉ dành cho WhatsApp**.
|
||||
|
||||
## Các trường hợp sử dụng
|
||||
|
||||
### 1. Nhóm Agent chuyên biệt
|
||||
Triển khai nhiều Agent với các trách nhiệm riêng biệt:
|
||||
- **CodeReviewer**: Đánh giá mã nguồn.
|
||||
- **DocumentationBot**: Tạo tài liệu hướng dẫn.
|
||||
- **SecurityAuditor**: Kiểm tra lỗ hổng bảo mật.
|
||||
|
||||
Tất cả các Agent này cùng nhận một tin nhắn và đưa ra góc nhìn chuyên môn của họ.
|
||||
|
||||
### 2. Hỗ trợ đa ngôn ngữ
|
||||
Nhiều Agent phản hồi bằng các ngôn ngữ khác nhau (Anh, Đức, Tây Ban Nha) cho cùng một câu hỏi của khách hàng.
|
||||
|
||||
## Cấu hình
|
||||
|
||||
Thêm mục `broadcast` vào cấu hình chính. Các khóa (keys) là ID của đối tượng WhatsApp (JID nhóm hoặc số điện thoại).
|
||||
|
||||
```json
|
||||
{
|
||||
"broadcast": {
|
||||
"120363403215116621@g.us": ["alfred", "baerbel", "assistant3"]
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
**Kết quả:** Khi có tin nhắn trong nhóm này, Moltbot sẽ gọi cả ba Agent cùng lúc.
|
||||
|
||||
### Chiến lược xử lý (`strategy`)
|
||||
|
||||
- **parallel** (Mặc định): Tất cả các Agent xử lý đồng thời.
|
||||
- **sequential**: Các Agent xử lý lần lượt theo thứ tự (Agent sau đợi Agent trước hoàn thành).
|
||||
|
||||
## Cách hoạt động
|
||||
|
||||
1. **Tin nhắn đến**: Hệ thống kiểm tra xem ID nhóm/người gửi có nằm trong danh sách `broadcast` không.
|
||||
2. **Nếu có**:
|
||||
- Tất cả Agent trong danh sách sẽ xử lý tin nhắn.
|
||||
- Mỗi Agent có một **phiên làm việc (session) riêng biệt** và bối cảnh cách ly.
|
||||
- Các Agent không nhìn thấy tin nhắn của nhau (theo thiết kế).
|
||||
3. **Nếu không có**: Áp dụng quy tắc điều hướng tin nhắn thông thường.
|
||||
|
||||
## Lưu ý quan trọng
|
||||
|
||||
- **Cách ly phiên**: Các Agent hoàn toàn độc lập về lịch sử trò chuyện, không gian làm việc và quyền hạn công cụ.
|
||||
- **Giới hạn tự nhiên**: Không có giới hạn cứng về số lượng Agent, nhưng dùng quá 10 Agent cùng lúc có thể làm chậm hệ thống.
|
||||
- **Thứ tự tin nhắn**: Trong chế độ song song (`parallel`), thứ tự tin nhắn phản hồi trên WhatsApp có thể không cố định.
|
||||
|
||||
---
|
||||
Tài liệu liên quan: [Cấu hình đa Agent](../multi-agent-sandbox-tools.vi.md), [Quản lý phiên](../concepts/session.vi.md).
|
||||
52
translation/vietnamese/docs/channels/bluebubbles.vi.md
Normal file
52
translation/vietnamese/docs/channels/bluebubbles.vi.md
Normal file
@ -0,0 +1,52 @@
|
||||
---
|
||||
summary: "iMessage qua máy chủ BlueBubbles trên macOS (REST gửi/nhận, trạng thái đang soạn, phản hồi, ghép đôi và các hành động nâng cao)."
|
||||
read_when:
|
||||
- Thiết lập kênh iMessage thông qua BlueBubbles
|
||||
---
|
||||
# BlueBubbles (iMessage qua macOS REST)
|
||||
|
||||
Đây là một plugin giúp Moltbot giao tiếp với máy chủ BlueBubbles chạy trên macOS thông qua các giao thức HTTP. Đây là phương thức **được khuyên dùng cho iMessage** vì nó cung cấp bộ API phong phú và dễ thiết lập hơn so với phương thức truyền thống.
|
||||
|
||||
## Tổng quan
|
||||
- Yêu cầu chạy trên macOS thông qua ứng dụng trợ giúp BlueBubbles ([bluebubbles.app](https://bluebubbles.app)).
|
||||
- Khuyên dùng: macOS Sequoia (15). macOS Tahoe (26) cũng hoạt động, nhưng tính năng chỉnh sửa và cập nhật ảnh nhóm có thể gặp lỗi.
|
||||
- Một số tính năng nổi bật: Chỉnh sửa tin nhắn, thu hồi, trả lời theo luồng (threading), hiệu ứng tin nhắn, quản lý nhóm.
|
||||
- Hoạt động dựa trên Webhooks để nhận tin nhắn và REST API để gửi phản hồi.
|
||||
|
||||
## Thiết lập nhanh
|
||||
1. Cài đặt máy chủ BlueBubbles trên máy Mac của bạn (theo hướng dẫn tại [bluebubbles.app/install](https://bluebubbles.app/install)).
|
||||
2. Trong phần cấu hình của BlueBubbles, bật tính năng Web API và đặt mật khẩu.
|
||||
3. Chạy lệnh `moltbot onboard` và chọn BlueBubbles, hoặc cấu hình thủ công trong `moltbot.json`:
|
||||
```json5
|
||||
{
|
||||
channels: {
|
||||
bluebubbles: {
|
||||
enabled: true,
|
||||
serverUrl: "http://<IP_MÁY_MÁC>:1234",
|
||||
password: "mật_khẩu_của_bạn",
|
||||
webhookPath: "/bluebubbles-webhook"
|
||||
}
|
||||
}
|
||||
}
|
||||
```
|
||||
4. Chỉ định Webhook trong BlueBubbles tới Gateway của bạn (Ví dụ: `https://gateway-cua-ban:3000/bluebubbles-webhook?password=<mật_khẩu>`).
|
||||
|
||||
## Kiểm soát quyền truy cập
|
||||
- **Tin nhắn trực tiếp (DM)**: Mặc định sử dụng cơ chế `pairing`. Người lạ nhắn tin sẽ nhận được mã ghép đôi và cần được bạn phê duyệt qua CLI (`moltbot pairing approve bluebubbles <MÃ>`).
|
||||
- **Nhóm chat**: Có thể thiết lập chế độ `allowlist` để chỉ những người trong danh sách mới có thể ra lệnh cho bot.
|
||||
|
||||
## Các hành động nâng cao
|
||||
BlueBubbles hỗ trợ rất nhiều hành động đặc thù của iMessage mà bạn có thể bật trong file cấu hình:
|
||||
- **react**: Phản hồi bằng biểu tượng cảm xúc (tapback).
|
||||
- **edit**: Chỉnh sửa nội dung tin nhắn đã gửi.
|
||||
- **unsend**: Thu hồi tin nhắn.
|
||||
- **sendWithEffect**: Gửi tin nhắn kèm hiệu ứng (như rầm rộ, nhẹ nhàng, phao hoa...).
|
||||
- **sendAttachment**: Gửi tệp tin hoặc ghi âm giọng nói.
|
||||
|
||||
## Giải quyết sự cố
|
||||
- Nếu bot không nhận được tin nhắn, hãy kiểm tra lại cấu hình Webhook và đảm bảo máy chủ BlueBubbles có thể truy cập được địa chỉ Gateway của bạn.
|
||||
- Mã ghép đôi có hiệu lực trong **1 giờ**.
|
||||
- Các tính năng chỉnh sửa/thu hồi yêu cầu macOS 13 trở lên.
|
||||
|
||||
---
|
||||
Tài liệu liên quan: [Cơ chế Ghép đôi](../../start/pairing.vi.md), [Cấu hình hệ thống](../gateway/configuration.vi.md).
|
||||
51
translation/vietnamese/docs/channels/discord.vi.md
Normal file
51
translation/vietnamese/docs/channels/discord.vi.md
Normal file
@ -0,0 +1,51 @@
|
||||
---
|
||||
summary: "Trạng thái hỗ trợ, khả năng và cấu hình cho bot Discord"
|
||||
read_when:
|
||||
- Bạn đang thiết lập hoặc tùy chỉnh kênh Discord
|
||||
---
|
||||
# Discord (Bot API)
|
||||
|
||||
Trạng thái: Sẵn sàng cho tin nhắn trực tiếp (DM) và các kênh văn bản trong máy chủ (guild) thông qua hệ thống bot chính thức của Discord.
|
||||
|
||||
## Thiết lập nhanh (cho người mới)
|
||||
1) Tạo một Discord bot trên trang web Developer Portal và sao chép **Bot Token**.
|
||||
2) Trong phần cài đặt bot, hãy bật **Message Content Intent** (và **Server Members Intent** nếu bạn muốn dùng danh sách trắng theo tên).
|
||||
3) Cấu hình Token cho Moltbot:
|
||||
- Dùng biến môi trường: `DISCORD_BOT_TOKEN=...`
|
||||
- Hoặc tệp cấu hình: `channels.discord.token: "..."`.
|
||||
4) Mời bot vào máy chủ của bạn với các quyền nhắn tin và đọc lịch sử.
|
||||
5) Chạy Gateway. Lần đầu nhắn tin trực tiếp với bot, nó sẽ gửi một mã ghép nối (pairing code), hãy phê duyệt bằng lệnh `moltbot pairing approve discord <code>`.
|
||||
|
||||
## Cách thức hoạt động
|
||||
- **Tin nhắn trực tiếp (DM)**: Sẽ được gộp vào phiên làm việc chính (`main`) của agent.
|
||||
- **Kênh máy chủ**: Mỗi kênh sẽ có một phiên làm việc riêng biệt.
|
||||
- **Quyền hạn**: Bot yêu cầu các quyền "Privileged Gateway Intents" (đặc biệt là nội dung tin nhắn) để có thể đọc được yêu cầu của bạn.
|
||||
- **Lệnh gạch chéo (Slash commands)**: Moltbot hỗ trợ các lệnh gốc của Discord (như `/help`, `/status`).
|
||||
|
||||
## Cấu hình mẫu
|
||||
```json5
|
||||
{
|
||||
channels: {
|
||||
discord: {
|
||||
enabled: true,
|
||||
token: "YOUR_BOT_TOKEN",
|
||||
guilds: {
|
||||
"YOUR_GUILD_ID": {
|
||||
requireMention: true, // Chỉ trả lời khi được nhắc tên (@bot)
|
||||
channels: {
|
||||
"help": { allow: true }
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
## Lưu ý về bảo mật
|
||||
- Hãy giữ Bot Token cẩn thận như mật khẩu của bạn.
|
||||
- Mặc định, bot sẽ yêu cầu ghép nối (pairing) cho các tin nhắn DM để đảm bảo chỉ những người được phép mới có thể sử dụng.
|
||||
- Bạn có thể giới hạn bot chỉ hoạt động trong một số máy chủ hoặc kênh cụ thể bằng danh sách trắng (allowlist).
|
||||
|
||||
---
|
||||
Tài liệu liên quan: [Lệnh gạch chéo](../tools/slash-commands.vi.md), [Ghép nối thiết bị](../../start/pairing.vi.md).
|
||||
51
translation/vietnamese/docs/channels/googlechat.vi.md
Normal file
51
translation/vietnamese/docs/channels/googlechat.vi.md
Normal file
@ -0,0 +1,51 @@
|
||||
---
|
||||
summary: "Trạng thái hỗ trợ, khả năng và cấu hình cho ứng dụng Google Chat"
|
||||
read_when:
|
||||
- Bạn đang thiết lập kênh Google Chat qua webhook
|
||||
---
|
||||
# Google Chat (Chat API)
|
||||
|
||||
Trạng thái: Hỗ trợ tin nhắn trực tiếp (DM) và các Không gian làm việc (Spaces) thông qua webhooks của Google Chat API (chỉ hỗ trợ giao thức HTTP).
|
||||
|
||||
## Thiết lập nhanh (cho người mới)
|
||||
1) Tạo một dự án trên Google Cloud và bật **Google Chat API**.
|
||||
2) Tạo một **Service Account** (Tài khoản dịch vụ) và tải file **JSON Key** về máy.
|
||||
3) Lưu file JSON này vào máy chủ chạy Gateway (ví dụ: `~/.clawdbot/googlechat-service-account.json`).
|
||||
4) Trên trang cấu hình Google Chat API:
|
||||
- Thiết lập loại kết nối là **HTTP endpoint URL**.
|
||||
- Nhập URL công khai của Gateway (ví dụ: `https://domain.com/googlechat`).
|
||||
- Bật các tính năng tương tác và cho phép bot tham gia các Không gian làm việc.
|
||||
5) Cấu hình Moltbot trỏ tới file JSON của Service Account và URL webhook tương ứng.
|
||||
6) Chạy Gateway. Google Chat sẽ gửi dữ liệu (POST) tới đường dẫn webhook bạn đã cấu hình.
|
||||
|
||||
## Yêu cầu về URL công khai
|
||||
Vì Google Chat sử dụng Webhook để gửi tin nhắn cho bot, bạn cần một địa chỉ HTTPS công khai.
|
||||
- **Tailscale Funnel (Khuyên dùng)**: Cách an toàn nhất để chỉ lộ đường dẫn `/googlechat` ra internet mà vẫn giữ các phần khác của dashboard ở chế độ riêng tư.
|
||||
- **Reverse Proxy (như Caddy)**: Chỉ chuyển hướng các yêu cầu đến `/googlechat` vào Moltbot.
|
||||
|
||||
## Cách thức hoạt động
|
||||
- **Xác thực**: Moltbot sẽ kiểm tra mã thông báo Bearer trong tiêu đề tin nhắn từ Google để đảm bảo tính xác thực.
|
||||
- **Phiên làm việc**:
|
||||
- DM sử dụng khóa phiên dựa trên `spaceId`.
|
||||
- Không gian làm việc (Spaces) yêu cầu nhắc tên (@mentions) theo mặc định.
|
||||
- **Ghép nối**: Lần đầu tiên nhắn tin trực tiếp, bot sẽ yêu cầu mã ghép nối để bảo mật.
|
||||
|
||||
## Cấu hình mẫu
|
||||
```json5
|
||||
{
|
||||
channels: {
|
||||
"googlechat": {
|
||||
enabled: true,
|
||||
serviceAccountFile: "/đường/dẫn/đến/file-key.json",
|
||||
audience: "https://gateway.example.com/googlechat",
|
||||
dm: {
|
||||
policy: "pairing",
|
||||
allowFrom: ["name@example.com"]
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
---
|
||||
Tài liệu liên quan: [Cấu hình Gateway](../../gateway/configuration.vi.md), [Bảo mật](../../gateway/security/index.vi.md).
|
||||
21
translation/vietnamese/docs/channels/grammy.vi.md
Normal file
21
translation/vietnamese/docs/channels/grammy.vi.md
Normal file
@ -0,0 +1,21 @@
|
||||
---
|
||||
summary: "Tích hợp Telegram Bot API thông qua grammY kèm các lưu ý thiết lập"
|
||||
read_when:
|
||||
- Khi bạn làm việc với kênh Telegram hoặc muốn hiểu cách thức kết nối grammY
|
||||
---
|
||||
# Tích hợp grammY (Telegram Bot API)
|
||||
|
||||
## Tại sao sử dụng grammY?
|
||||
- Đây là một thư viện TypeScript mạnh mẽ cho Telegram Bot API, hỗ trợ đầy đủ các tính năng như long-poll, webhook, xử lý lỗi và giới hạn băng thông (rate limit).
|
||||
- Hỗ trợ xử lý truyền thông (media) sạch sẽ hơn so với việc tự viết các lệnh gửi dữ liệu thủ công.
|
||||
- Có khả năng mở rộng tốt, hỗ trợ Proxy và bảo mật kiểu dữ liệu (type-safe).
|
||||
|
||||
## Các tính năng đã triển khai
|
||||
- **Cơ chế hoạt động**: grammY hiện là thư viện duy nhất được Moltbot sử dụng để gửi và nhận tin nhắn từ Telegram.
|
||||
- **Chế độ kết nối**: Hỗ trợ cả `long-polling` (bot tự đi hỏi tin nhắn mới) và `webhooks` (Telegram tự đẩy tin nhắn tới bot). Chế độ webhook sẽ được bật nếu bạn cấu hình trường `webhookUrl`.
|
||||
- **Hỗ trợ Proxy**: Bạn có thể thiết lập Proxy thông qua `channels.telegram.proxy` nếu gặp vấn đề về kết nối mạng.
|
||||
- **Luồng tin nhắn (Streaming)**: Hỗ trợ chế độ truyền phát bản nháp (`sendMessageDraft`) trong các phòng chat riêng tư hoặc chủ đề (Topics) - yêu cầu Bot API 9.3+.
|
||||
- **Cô lập phiên làm việc**: Các cuộc hội thoại cá nhân sẽ được đưa vào phiên làm việc chính, trong khi các nhóm chat sẽ có phiên làm việc riêng dựa trên `chatId` của nhóm.
|
||||
|
||||
---
|
||||
Tài liệu liên quan: [Cấu hình Telegram](./telegram.vi.md).
|
||||
43
translation/vietnamese/docs/channels/imessage.vi.md
Normal file
43
translation/vietnamese/docs/channels/imessage.vi.md
Normal file
@ -0,0 +1,43 @@
|
||||
---
|
||||
summary: "Hỗ trợ iMessage qua công cụ imsg (JSON-RPC qua stdio), thiết lập và điều hướng tin nhắn"
|
||||
read_when:
|
||||
- Thiết lập hỗ trợ iMessage trên macOS
|
||||
---
|
||||
# iMessage (imsg)
|
||||
|
||||
Trạng thái: Tích hợp qua công cụ CLI bên ngoài. Gateway chạy lệnh `imsg rpc` (giao thức JSON-RPC qua đầu vào/đầu ra tiêu chuẩn).
|
||||
|
||||
## Thiết lập nhanh (cho người mới)
|
||||
1) Đảm bảo ứng dụng **Messages** đã đăng nhập Apple ID trên máy Mac này.
|
||||
2) Cài đặt công cụ `imsg`: `brew install steipete/tap/imsg`.
|
||||
3) Cấu hình Moltbot với đường dẫn đến CLI `imsg` và file cơ sở dữ liệu `chat.db`.
|
||||
4) Chạy Gateway và phê duyệt các yêu cầu cấp quyền từ macOS (Tự động hóa + Quyền truy cập toàn bộ đĩa).
|
||||
|
||||
## Đặc điểm nổi bật
|
||||
- **Chạy trên macOS**: Đây là kênh giao tiếp dành riêng cho hệ sinh thái Apple.
|
||||
- **Điều hướng ổn định**: Câu trả lời của bot sẽ luôn quay lại đúng cuộc trò chuyện iMessage tương ứng.
|
||||
- **Tách biệt danh tính**: Bạn có thể thiết lập một người dùng macOS riêng biệt để bot hoạt động với một Apple ID độc lập, giữ cho tin nhắn cá nhân của bạn không bị lẫn lộn.
|
||||
|
||||
## Yêu cầu hệ thống
|
||||
- Máy Mac luôn bật và đã đăng nhập iMessage.
|
||||
- Quyền **Full Disk Access** (Truy cập toàn bộ đĩa) cho Moltbot và `imsg` để đọc cơ sở dữ liệu tin nhắn.
|
||||
- Quyền **Automation** để bot có thể gửi tin nhắn thay mặt bạn.
|
||||
|
||||
## Cấu hình mẫu
|
||||
```json5
|
||||
{
|
||||
channels: {
|
||||
imessage: {
|
||||
enabled: true,
|
||||
cliPath: "/usr/local/bin/imsg",
|
||||
dbPath: "/Users/Tên_Người_Dùng/Library/Messages/chat.db"
|
||||
}
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
## Chế độ từ xa (SSH)
|
||||
Nếu bạn chạy Gateway trên Linux nhưng muốn dùng iMessage trên máy Mac, bạn có thể thiết lập để Gateway kết nối tới máy Mac qua SSH và chạy lệnh `imsg` từ xa. Moltbot hỗ trợ tự động tải về các tệp đính kèm qua giao thức SCP trong chế độ này.
|
||||
|
||||
---
|
||||
Tài liệu liên quan: [Ghép nối thiết bị](../../start/pairing.vi.md), [Cấu hình Gateway](../../gateway/configuration.vi.md).
|
||||
31
translation/vietnamese/docs/channels/index.vi.md
Normal file
31
translation/vietnamese/docs/channels/index.vi.md
Normal file
@ -0,0 +1,31 @@
|
||||
---
|
||||
summary: "Các nền tảng nhắn tin mà Moltbot có thể kết nối"
|
||||
read_when:
|
||||
- Bạn muốn chọn một kênh chat cho Moltbot
|
||||
- Bạn cần xem tổng quan nhanh về các nền tảng được hỗ trợ
|
||||
---
|
||||
# Các kênh Chat (Chat Channels)
|
||||
|
||||
Moltbot có thể trò chuyện với bạn trên bất kỳ ứng dụng chat nào bạn đang dùng. Mỗi kênh kết nối thông qua Gateway.
|
||||
Văn bản được hỗ trợ ở mọi nơi; hình ảnh/âm thanh và cảm xúc (reactions) thay đổi tùy theo từng kênh.
|
||||
|
||||
## Các kênh được hỗ trợ
|
||||
|
||||
- [WhatsApp](./whatsapp.vi.md) — Phổ biến nhất; sử dụng thư viện Baileys và yêu cầu quét mã QR.
|
||||
- [Telegram](./telegram.vi.md) — Sử dụng Bot API qua grammY; hỗ trợ rất tốt cho các nhóm (groups).
|
||||
- [Discord](./discord.vi.md) — Discord Bot API; hỗ trợ server, channel và DM.
|
||||
- [Slack](./slack.vi.md) — Sử dụng Bolt SDK; ứng dụng cho không gian làm việc.
|
||||
- [Google Chat](./googlechat.vi.md) — Google Chat API thông qua HTTP webhook.
|
||||
- [Signal](./signal.vi.md) — Sử dụng `signal-cli`; tập trung vào quyền riêng tư.
|
||||
- [Zalo](./zalo.vi.md) — Zalo Bot API; ứng dụng nhắn tin phổ biến tại Việt Nam (plugin cài riêng).
|
||||
- [Zalo Cá nhân (Zalo Personal)](./zalouser.vi.md) — Tài khoản Zalo cá nhân qua đăng nhập mã QR (plugin cài riêng).
|
||||
- [iMessage](./imessage.vi.md) — Chỉ dành cho macOS; tích hợp gốc qua imsg (khuyên dùng BlueBubbles cho các thiết lập mới).
|
||||
- [WebChat](../web/webchat.vi.md) — Giao diện WebChat của Gateway qua WebSocket.
|
||||
|
||||
## Ghi chú
|
||||
|
||||
- Các kênh có thể chạy đồng thời; bạn có thể cấu hình nhiều kênh và Moltbot sẽ điều hướng theo từng chat.
|
||||
- Thiết lập nhanh nhất thường là **Telegram** (chỉ cần mã token của bot). WhatsApp yêu cầu ghép đôi qua QR và lưu trữ nhiều trạng thái hơn trên đĩa.
|
||||
- Hành vi trong nhóm chat khác nhau tùy theo từng kênh; xem [Nhóm chat](../concepts/groups.vi.md).
|
||||
- Việc ghép nối DM (DM pairing) và danh sách phê duyệt (allowlists) được thực thi để đảm bảo an toàn; xem [Bảo mật](../gateway/security.vi.md).
|
||||
- Tài liệu hướng dẫn sửa lỗi: [Khắc phục lỗi kênh](./troubleshooting.vi.md).
|
||||
54
translation/vietnamese/docs/channels/line.vi.md
Normal file
54
translation/vietnamese/docs/channels/line.vi.md
Normal file
@ -0,0 +1,54 @@
|
||||
---
|
||||
summary: "Thiết lập plugin LINE Messaging API, cấu hình và cách sử dụng"
|
||||
read_when:
|
||||
- Bạn muốn kết nối Moltbot với ứng dụng LINE
|
||||
---
|
||||
# LINE (Plugin)
|
||||
|
||||
Moltbot kết nối với LINE thông qua **LINE Messaging API**. Plugin này đóng vai trò là một bộ tiếp nhận Webhook trên Gateway, sử dụng "Channel access token" và "Channel secret" của bạn để xác thực.
|
||||
|
||||
## Cài đặt Plugin
|
||||
Trước tiên, bạn cần cài đặt plugin LINE cho Moltbot:
|
||||
```bash
|
||||
moltbot plugins install @moltbot/line
|
||||
```
|
||||
|
||||
## Các bước thiết lập
|
||||
1. Tạo một tài khoản LINE Developers và truy cập Console tại: [developers.line.biz](https://developers.line.biz/console/).
|
||||
2. Tạo một nhà cung cấp (Provider) và thêm một kênh **Messaging API**.
|
||||
3. Sao chép **Channel access token** và **Channel secret** từ phần cài đặt kênh.
|
||||
4. Bật tính năng **Use webhook** trong cài đặt Messaging API.
|
||||
5. Thiết lập Webhook URL tới Gateway của bạn (Yêu cầu HTTPS):
|
||||
`https://gateway-cua-ban/line/webhook`
|
||||
|
||||
## Cấu hình Moltbot.json
|
||||
Cấu hình tối thiểu:
|
||||
```json5
|
||||
{
|
||||
channels: {
|
||||
line: {
|
||||
enabled: true,
|
||||
channelAccessToken: "MÃ_ACCESS_TOKEN_CỦA_BẠN",
|
||||
channelSecret: "MÃ_SECRET_CỦA_BẠN",
|
||||
dmPolicy: "pairing"
|
||||
}
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
## Kiểm soát quyền truy cập
|
||||
- **Tin nhắn trực tiếp (DM)**: Mặc định sử dụng cơ chế ghép đôi (`pairing`). Người dùng mới phải nhập mã ghép đôi trước khi có thể ra lệnh cho bot.
|
||||
- **Danh sách trắng (Allowlist)**: Bạn có thể chỉ định chính xác các ID người dùng hoặc nhóm được phép tương tác với bot để đảm bảo an toàn.
|
||||
|
||||
## Tính năng tin nhắn phong phú
|
||||
Moltbot hỗ trợ gửi các loại tin nhắn đặc thù của LINE như:
|
||||
- **Flex Cards**: Các thẻ thông tin có thể tùy chỉnh giao diện phức tạp.
|
||||
- **Quick Replies**: Các nút bấm phản hồi nhanh thường dùng cho các lựa chọn "Có/Không" hoặc menu lệnh.
|
||||
- **Gửi vị trí**: Gửi tọa độ bản đồ trực tiếp cho AI.
|
||||
|
||||
## Giải quyết sự cố
|
||||
- **Xác minh Webhook thất bại**: Kiểm tra lại xem Webhook URL có phải là HTTPS không và mã `channelSecret` đã chính xác chưa.
|
||||
- **Không nhận được tin nhắn**: Đảm bảo cổng mạng trên máy chủ của bạn đã được mở và không bị chặn bởi tường lửa.
|
||||
|
||||
---
|
||||
Tài liệu liên quan: [Cơ chế Ghép đôi](../../start/pairing.vi.md), [Cấu hình Plugin](../../plugin.vi.md).
|
||||
35
translation/vietnamese/docs/channels/location.vi.md
Normal file
35
translation/vietnamese/docs/channels/location.vi.md
Normal file
@ -0,0 +1,35 @@
|
||||
---
|
||||
summary: "Phân tích cú pháp vị trí từ các kênh chat (Telegram + WhatsApp) và các trường bối cảnh (context fields)"
|
||||
read_when:
|
||||
- Bạn muốn sử dụng tọa độ vị trí trong các câu lệnh của AI
|
||||
---
|
||||
# Phân tích vị trí từ kênh truyền thông
|
||||
|
||||
Moltbot chuẩn hóa các dữ liệu vị trí được chia sẻ từ các kênh chat thành:
|
||||
1. **Dạng văn bản dễ đọc**: Được thêm trực tiếp vào nội dung tin nhắn gửi tới AI.
|
||||
2. **Dạng dữ liệu cấu trúc**: Được điền vào các trường trong `context` để AI có thể sử dụng cho các công cụ (như bản đồ, dự báo thời tiết...).
|
||||
|
||||
## Các kênh hỗ trợ hiện tại
|
||||
- **Telegram**: Ghim vị trí, địa điểm cụ thể và vị trí trực tiếp (live location).
|
||||
- **WhatsApp**: Chia sẻ vị trí và vị trí trực tiếp.
|
||||
- **Matrix**: Vị trí dựa trên cú pháp `geo_uri`.
|
||||
|
||||
## Định dạng hiển thị
|
||||
Các vị trí sẽ được hiển thị cho AI dưới dạng các dòng mô tả thân thiện:
|
||||
- **Vị trí ghim**: `📍 48.858844, 2.294351 ±12m`
|
||||
- **Địa điểm có tên**: `📍 Tháp Eiffel — Paris (48.858844, 2.294351 ±12m)`
|
||||
- **Vị trí trực tiếp**: `🛰 Vị trí trực tiếp: 48.858844, 2.294351 ±12m`
|
||||
|
||||
## Các trường dữ liệu trong Context (`ctx`)
|
||||
Khi nhận được tin nhắn chứa vị trí, Moltbot sẽ tự động điền các thông tin sau vào biến bối cảnh:
|
||||
- `LocationLat`: Vĩ độ.
|
||||
- `LocationLon`: Kinh độ.
|
||||
- `LocationAccuracy`: Độ chính xác (tính bằng mét).
|
||||
- `LocationName`: Tên địa điểm (nếu có).
|
||||
- `LocationAddress`: Địa chỉ cụ thể (nếu có).
|
||||
- `LocationIsLive`: Có phải đang chia sẻ trực tiếp hay không.
|
||||
|
||||
Thông tin này cực kỳ hữu ích nếu bạn viết các kỹ năng (skills) yêu cầu biết vị trí của người dùng hiện tại để xử lý dữ liệu.
|
||||
|
||||
---
|
||||
Tài liệu liên quan: [Cấu hình hệ thống](../gateway/configuration.vi.md).
|
||||
51
translation/vietnamese/docs/channels/matrix.vi.md
Normal file
51
translation/vietnamese/docs/channels/matrix.vi.md
Normal file
@ -0,0 +1,51 @@
|
||||
---
|
||||
summary: "Trạng thái hỗ trợ Matrix, các khả năng và hướng dẫn cấu hình"
|
||||
read_when:
|
||||
- Bạn muốn kết nối Moltbot với mạng lưới Matrix hoặc Beeper
|
||||
---
|
||||
# Matrix (Plugin)
|
||||
|
||||
Matrix là một giao thức truyền thông mã nguồn mở và phi tập trung. Moltbot kết nối dưới tư cách là một **người dùng Matrix** trên bất kỳ máy chủ (homeserver) nào. Bạn cần tạo một tài khoản Matrix dành riêng cho bot.
|
||||
|
||||
## Quy trình cài đặt
|
||||
Matrix được cung cấp dưới dạng plugin riêng biệt. Bạn cần cài đặt nó bằng lệnh:
|
||||
```bash
|
||||
moltbot plugins install @moltbot/matrix
|
||||
```
|
||||
|
||||
## Các bước thiết lập
|
||||
1. **Tạo tài khoản**: Bạn có thể tự chạy máy chủ Matrix hoặc đăng ký tại các dịch vụ phổ biến như `matrix.org`.
|
||||
2. **Lấy mã Access Token**: Bạn có thể sử dụng API đăng nhập của Matrix để lấy mã này cho bot. Moltbot cũng hỗ trợ đăng nhập trực tiếp bằng `userId` và `password` ngay trong file cấu hình.
|
||||
3. **Cấu hình**:
|
||||
```json5
|
||||
{
|
||||
channels: {
|
||||
matrix: {
|
||||
enabled: true,
|
||||
homeserver: "https://matrix.example.org",
|
||||
accessToken: "MÃ_ACCESS_TOKEN_CỦA_BẠN",
|
||||
dm: { policy: "pairing" }
|
||||
}
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
## Mã hóa đầu cuối (E2EE)
|
||||
Moltbot hỗ trợ đầy đủ mã hóa đầu cuối thông qua bộ công cụ Rust SDK.
|
||||
- Để bật tính năng này, hãy đặt `channels.matrix.encryption: true`.
|
||||
- Trong lần khởi động đầu tiên, bot sẽ yêu cầu "Xác minh thiết bị" (Device verification). Bạn cần mở ứng dụng Matrix của mình (như Element) để nhấn phê duyệt nhằm cho phép bot đọc được các tin nhắn đã mã hóa.
|
||||
|
||||
## Kiểm soát quyền truy cập
|
||||
- **Tin nhắn trực tiếp (DM)**: Mặc định sử dụng cơ chế ghép đôi (`pairing`).
|
||||
- **Phòng chat (Groups)**: Sử dụng danh sách trắng (`allowlist`). Bạn có thể chỉ định ID các phòng chat hoặc bí danh (alias) mà bot được phép tham gia.
|
||||
- **Nhắc tên (Mentions)**: Mặc định bot chỉ hồi âm khi được nhắc tên trong các phòng chat công cộng để tránh làm phiền người dùng.
|
||||
|
||||
## Các tính năng hỗ trợ
|
||||
- ✅ Trò chuyện trực tiếp và Phòng chat.
|
||||
- ✅ Phản hồi theo luồng (Threads).
|
||||
- ✅ Truyền tải tệp tin và ảnh.
|
||||
- ✅ Biểu tượng cảm xúc (Reactions).
|
||||
- ✅ Vị trí địa lý.
|
||||
|
||||
---
|
||||
Tài liệu liên quan: [Plugin Moltbot](../../plugin.vi.md), [Cơ chế Ghép đôi](../../start/pairing.vi.md).
|
||||
48
translation/vietnamese/docs/channels/mattermost.vi.md
Normal file
48
translation/vietnamese/docs/channels/mattermost.vi.md
Normal file
@ -0,0 +1,48 @@
|
||||
---
|
||||
summary: "Thiết lập bot Mattermost và cấu hình cho Moltbot"
|
||||
read_when:
|
||||
- Bạn đang sử dụng Mattermost cho đội ngũ và muốn tích hợp AI
|
||||
---
|
||||
# Mattermost (Plugin)
|
||||
|
||||
Moltbot hỗ trợ tích hợp với **Mattermost** - một nền tảng nhắn tin dành cho doanh nghiệp có thể tự lưu trữ (self-host).
|
||||
|
||||
## Cài đặt Plugin
|
||||
Plugin Mattermost không được đi kèm sẵn khi cài đặt gốc, bạn cần cài đặt nó qua lệnh:
|
||||
```bash
|
||||
moltbot plugins install @moltbot/mattermost
|
||||
```
|
||||
|
||||
## Thiết lập nhanh
|
||||
1. **Tạo Bot**: Truy cập vào Mattermost, tạo một tài khoản Bot mới và sao chép mã **Bot Token**.
|
||||
2. **Địa chỉ máy chủ**: Lấy URL máy chủ Mattermost của bạn (Ví dụ: `https://chat.congty.com`).
|
||||
3. **Cấu hình Moltbot.json**:
|
||||
```json5
|
||||
{
|
||||
channels: {
|
||||
mattermost: {
|
||||
enabled: true,
|
||||
botToken: "mm-token-cua-ban",
|
||||
baseUrl: "https://chat.congty.com",
|
||||
dmPolicy: "pairing"
|
||||
}
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
## Các chế độ trò chuyện (`chatmode`)
|
||||
Bạn có thể điều chỉnh cách bot phản hồi trong các kênh:
|
||||
- `oncall` (Mặc định): Chỉ phản hồi khi được `@nhắc_tên`.
|
||||
- `onmessage`: Phản hồi mọi tin nhắn trong kênh.
|
||||
- `onchar`: Chỉ phản hồi khi tin nhắn bắt đầu bằng một ký tự đặc biệt (ví dụ: `>` hoặc `!`).
|
||||
|
||||
## Kiểm soát quyền truy cập
|
||||
- **Tin nhắn trực tiếp (DM)**: Mặc định sử dụng `pairing`. Bạn cần phê duyệt mã ghép đôi qua terminal để bắt đầu trò chuyện.
|
||||
- **Kênh chat (Channels)**: Bạn có thể quy định danh sách người dùng (`groupAllowFrom`) hoặc các kênh thảo luận cụ thể được phép gọi bot.
|
||||
|
||||
## Giải quyết sự cố
|
||||
- **Bot không phản hồi trong kênh**: Kiểm tra xem bạn đã mời bot vào kênh đó chưa. Nếu đang ở chế độ `oncall`, hãy đảm bảo bạn đã nhắc đúng tên bot.
|
||||
- **Lỗi xác thực**: Kiểm tra lại `botToken` và đảm bảo máy chủ Mattermost của bạn có thể kết nối được từ internet hoặc từ máy chủ chạy Moltbot.
|
||||
|
||||
---
|
||||
Tài liệu liên quan: [Cấu hình Gateway](../gateway/configuration.vi.md), [Plugin](../plugin.vi.md).
|
||||
50
translation/vietnamese/docs/channels/msteams.vi.md
Normal file
50
translation/vietnamese/docs/channels/msteams.vi.md
Normal file
@ -0,0 +1,50 @@
|
||||
---
|
||||
summary: "Trạng thái hỗ trợ, khả năng và cấu hình cho bot Microsoft Teams"
|
||||
read_when:
|
||||
- Bạn đang thiết lập kênh MS Teams qua Azure Bot
|
||||
---
|
||||
# Microsoft Teams (Plugin)
|
||||
|
||||
Trạng thái: Hỗ trợ tin nhắn văn bản, tệp đính kèm trong DM. Việc gửi tệp trong kênh nhóm yêu cầu thiết lập SharePoint và các quyền Microsoft Graph API nâng cao.
|
||||
|
||||
## Lưu ý quan trọng
|
||||
Microsoft Teams được cung cấp dưới dạng **plugin** và không được cài đặt sẵn trong bộ lõi để giữ cho hệ thống nhẹ nhàng. Bạn cần cài đặt nó qua lệnh:
|
||||
```bash
|
||||
moltbot plugins install @moltbot/msteams
|
||||
```
|
||||
|
||||
## Thiết lập nhanh (cho người mới)
|
||||
1) Tạo một **Azure Bot** trên cổng thông tin Microsoft Azure (lấy App ID, Client Secret và Tenant ID).
|
||||
2) Cấu hình địa chỉ Webhook trong Azure trỏ về địa chỉ Gateway của bạn (đường dẫn mặc định là `/api/messages`).
|
||||
3) Tạo một gói ứng dụng Teams (manifest) chứa ID của bot và cài đặt nó vào Teams (của cá nhân hoặc tổ chức).
|
||||
4) Cấu hình thông tin xác thực trên Moltbot.
|
||||
5) Chạy Gateway. Các tin nhắn nhóm sẽ bị chặn theo mặc định cho đến khi bạn cấu hình danh sách trắng (allowlist).
|
||||
|
||||
## Mô hình phản hồi: Luồng tin nhắn (Threads) vs Bài đăng (Posts)
|
||||
Teams có hai kiểu giao diện khác nhau:
|
||||
- **Posts (Cổ điển)**: Các tin nhắn xuất hiện dưới dạng thẻ, phản hồi nằm gọn bên dưới. (Khuyên dùng chế độ `thread`).
|
||||
- **Threads (Giống Slack)**: Tin nhắn hiển thị theo dòng thời gian liên tục. (Khuyên dùng chế độ `top-level`).
|
||||
Moltbot cho phép bạn cấu hình chế độ phản hồi riêng cho từng kênh để phù hợp với giao diện của nó.
|
||||
|
||||
## Quyền hạn và Microsoft Graph
|
||||
- **Chỉ dùng RSC (Mặc định)**: Bot có thể đọc/gửi văn bản và nhận tệp trong DM. Không thể tải nội dung hình ảnh trong kênh nhóm.
|
||||
- **Dùng thêm Microsoft Graph API**: Cho phép bot tải hình ảnh, tệp đính kèm từ SharePoint/OneDrive và đọc lịch sử tin nhắn cũ khi bot offline.
|
||||
|
||||
## Cấu hình mẫu
|
||||
```json5
|
||||
{
|
||||
channels: {
|
||||
msteams: {
|
||||
enabled: true,
|
||||
appId: "<APP_ID>",
|
||||
appPassword: "<APP_PASSWORD>",
|
||||
tenantId: "<TENANT_ID>",
|
||||
webhook: { port: 3978, path: "/api/messages" },
|
||||
dm: { policy: "pairing" }
|
||||
}
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
---
|
||||
Tài liệu liên quan: [Plugin](../../plugin.vi.md), [Thẻ thích ứng (Adaptive Cards)](https://adaptivecards.io/).
|
||||
46
translation/vietnamese/docs/channels/nextcloud-talk.vi.md
Normal file
46
translation/vietnamese/docs/channels/nextcloud-talk.vi.md
Normal file
@ -0,0 +1,46 @@
|
||||
---
|
||||
summary: "Trạng thái hỗ trợ Nextcloud Talk, các khả năng và hướng dẫn cấu hình"
|
||||
read_when:
|
||||
- Bạn muốn tích hợp Moltbot vào hệ thống Nextcloud của mình
|
||||
---
|
||||
# Nextcloud Talk (Plugin)
|
||||
|
||||
Moltbot hỗ trợ kết nối với **Nextcloud Talk** thông qua cơ chế Webhook Bot. Bạn có thể sử dụng bot để trò chuyện trực tiếp, thảo luận trong phòng chat và sử dụng các biểu tượng biểu cảm.
|
||||
|
||||
## Cài đặt Plugin
|
||||
Nextcloud Talk được cung cấp dưới dạng plugin riêng biệt:
|
||||
```bash
|
||||
moltbot plugins install @moltbot/nextcloud-talk
|
||||
```
|
||||
|
||||
## Các bước thiết lập nhanh
|
||||
1. **Cài đặt Bot trên Nextcloud**: Sử dụng lệnh `occ` trên máy chủ Nextcloud của bạn để đăng ký bot:
|
||||
```bash
|
||||
./occ talk:bot:install "Moltbot" "ma_bi_mat_cua_ban" "url_webhook_cua_gateway" --feature reaction
|
||||
```
|
||||
2. **Kích hoạt Bot**: Trong cài đặt của phòng chat mục tiêu trên Nextcloud, hãy bật bot vừa tạo.
|
||||
3. **Cấu hình Moltbot.json**:
|
||||
```json5
|
||||
{
|
||||
channels: {
|
||||
"nextcloud-talk": {
|
||||
enabled: true,
|
||||
baseUrl: "https://cloud.congty.com",
|
||||
botSecret: "ma_bi_mat_cua_ban",
|
||||
dmPolicy: "pairing"
|
||||
}
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
## Các lưu ý quan trọng
|
||||
- **Tin nhắn cũ**: Bot không thể tự bắt đầu cuộc trò chuyện trực tiếp (DM). Người dùng phải là người nhắn tin cho bot trước.
|
||||
- **Dữ liệu truyền thông**: Hiện tại bot chưa hỗ trợ tải tệp tin gốc trực tiếp, các tệp tin sẽ được gửi dưới dạng đường dẫn URL.
|
||||
- **Xác thực Webhook**: Nếu Gateway của bạn chạy sau một proxy, hãy đảm bảo cấu hình `webhookPublicUrl` chính xác để Nextcloud có thể gửi dữ liệu về.
|
||||
|
||||
## Kiểm soát quyền truy cập
|
||||
- **Ghép đôi (Pairing)**: Mặc định người dùng mới sẽ nhận được mã ghép đôi và cần được phê duyệt qua terminal.
|
||||
- **Phòng chat (Rooms)**: Bạn có thể sử dụng danh sách trắng (`rooms`) để quy định chính xác bot được phép hoạt động ở những phòng chat nào.
|
||||
|
||||
---
|
||||
Tài liệu liên quan: [Cấu hình hệ thống](../gateway/configuration.vi.md), [Plugin](../../plugin.vi.md).
|
||||
51
translation/vietnamese/docs/channels/nostr.vi.md
Normal file
51
translation/vietnamese/docs/channels/nostr.vi.md
Normal file
@ -0,0 +1,51 @@
|
||||
---
|
||||
summary: "Kênh tin nhắn trực tiếp Nostr thông qua tin nhắn mã hóa NIP-04"
|
||||
read_when:
|
||||
- Bạn muốn Moltbot nhận tin nhắn thông qua giao thức phi tập trung Nostr
|
||||
---
|
||||
# Nostr
|
||||
|
||||
**Trạng thái:** Plugin tùy chọn (mặc định bị tắt).
|
||||
|
||||
Nostr là một giao thức phi tập trung cho mạng xã hội. Kênh này cho phép Moltbot nhận và phản hồi các tin nhắn trực tiếp (DM) đã được mã hóa thông qua tiêu chuẩn NIP-04.
|
||||
|
||||
## Cài đặt Plugin
|
||||
Bạn có thể cài đặt plugin Nostr bằng lệnh:
|
||||
```bash
|
||||
moltbot plugins install @moltbot/nostr
|
||||
```
|
||||
|
||||
## Thiết lập nhanh
|
||||
1. **Tạo cặp khóa**: Nếu chưa có, bạn cần một cặp khóa Nostr (Private key và Public key). Bạn có thể dùng công cụ như `nak` để tạo.
|
||||
2. **Cấu hình**:
|
||||
```json
|
||||
{
|
||||
"channels": {
|
||||
"nostr": {
|
||||
"privateKey": "nsec1...", // Khóa bí mật của bot
|
||||
"relays": ["wss://relay.damus.io", "wss://nos.lol"] // Danh sách các trạm chuyển tiếp
|
||||
}
|
||||
}
|
||||
}
|
||||
```
|
||||
3. **Khởi động lại Gateway** để áp dụng thay đổi.
|
||||
|
||||
## Quản lý hồ sơ (Profile)
|
||||
Bạn có thể thiết lập thông tin hiển thị của bot (tên, ảnh đại diện, phần giới thiệu...) trực tiếp trong file cấu hình dưới mục `profile`. Các thông tin này sẽ được xuất bản lên mạng Nostr theo tiêu chuẩn NIP-01.
|
||||
|
||||
## Kiểm soát quyền truy cập
|
||||
- **pairing** (Mặc định): Người lạ nhắn tin sẽ nhận được mã ghép đôi.
|
||||
- **allowlist**: Chỉ những khóa công khai (pubkey) nằm trong danh sách `allowFrom` mới có thể nhắn tin cho bot.
|
||||
- **open**: Mọi người đều có thể nhắn tin (Yêu cầu đặt `allowFrom: ["*"]`).
|
||||
|
||||
## Các lưu ý về mạng chuyển tiếp (Relays)
|
||||
- Nên sử dụng từ 2-3 relay để đảm bảo tin nhắn luôn được truyền đi ổn định.
|
||||
- Tránh dùng quá nhiều relay vì sẽ làm tăng độ trễ và tốn tài nguyên.
|
||||
|
||||
## Trạng thái hỗ trợ giao thức
|
||||
- ✅ **NIP-01**: Các sự kiện cơ bản và hồ sơ người dùng.
|
||||
- ✅ **NIP-04**: Tin nhắn trực tiếp mã hóa (mặc định).
|
||||
- 🕒 **NIP-17 / NIP-44**: Đang trong kế hoạch phát triển (tin nhắn dạng Gift-wrap và mã hóa phiên bản mới).
|
||||
|
||||
---
|
||||
Tài liệu liên quan: [Cấu hình hệ thống](../gateway/configuration.vi.md), [Bảo mật](../gateway/security/index.vi.md).
|
||||
46
translation/vietnamese/docs/channels/signal.vi.md
Normal file
46
translation/vietnamese/docs/channels/signal.vi.md
Normal file
@ -0,0 +1,46 @@
|
||||
---
|
||||
summary: "Hỗ trợ Signal qua signal-cli (JSON-RPC + SSE), thiết lập và mô hình số điện thoại"
|
||||
read_when:
|
||||
- Thiết lập hỗ trợ Signal cho bot
|
||||
---
|
||||
# Signal (signal-cli)
|
||||
|
||||
Trạng thái: Tích hợp qua công cụ CLI bên ngoài. Gateway giao tiếp với `signal-cli` thông qua giao thức HTTP JSON-RPC kết hợp với SSE (Server-Sent Events).
|
||||
|
||||
## Thiết lập nhanh (cho người mới)
|
||||
1) Chuẩn bị một **số điện thoại Signal riêng biệt** cho bot (khuyên dùng để tránh vòng lặp tin nhắn).
|
||||
2) Cài đặt `signal-cli` (yêu cầu máy có sẵn Java).
|
||||
3) Liên kết thiết bị bot bằng lệnh: `signal-cli link -n "Moltbot"`, sau đó quét mã QR bằng ứng dụng Signal trên điện thoại.
|
||||
4) Cấu hình số điện thoại và đường dẫn CLI trong Moltbot.
|
||||
5) Chạy Gateway. Tương tự các kênh khác, lần đầu sử dụng bot sẽ yêu cầu ghép nối (pairing).
|
||||
|
||||
## Mô hình số điện thoại (Lưu ý quan trọng)
|
||||
- Bot hoạt động như một thiết bị Signal thực thụ.
|
||||
- Nếu bạn dùng chính số điện thoại cá nhân làm bot, nó sẽ không phản hồi lại chính tin nhắn của bạn để tránh lỗi vòng lặp vô hạn.
|
||||
- Tốt nhất hãy dùng một số điện thoại phụ để bạn có thể nhắn tin cho bot và nhận phản hồi.
|
||||
|
||||
## Tính năng hỗ trợ
|
||||
- **Chỉ báo đang nhập**: Moltbot sẽ gửi tín hiệu "đang nhập" trong khi AI đang xử lý câu trả lời.
|
||||
- **Biên nhận đã đọc**: Bot có thể gửi tín hiệu "đã xem" cho các tin nhắn trực tiếp.
|
||||
- **Cảm xúc (Reactions)**: Hỗ trợ thả thính, thả tim cho tin nhắn thông qua công cụ tin nhắn của agent.
|
||||
- **Tệp đính kèm**: Hỗ trợ nhận và gửi hình ảnh, tài liệu.
|
||||
|
||||
## Cấu hình mẫu
|
||||
```json5
|
||||
{
|
||||
channels: {
|
||||
signal: {
|
||||
enabled: true,
|
||||
account: "+8490xxxxxxx", // Số điện thoại của bot
|
||||
cliPath: "signal-cli",
|
||||
dmPolicy: "pairing"
|
||||
}
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
## Chế độ chạy ngầm (Daemon)
|
||||
`signal-cli` khởi động khá chậm do chạy trên nền Java. Moltbot mặc định sẽ tự khởi động nó, nhưng bạn cũng có thể chạy `signal-cli` ở chế độ daemon riêng biệt và chỉ định URL HTTP cho Moltbot để tăng tốc độ kết nối.
|
||||
|
||||
---
|
||||
Tài liệu liên quan: [Ghép nối thiết bị](../../start/pairing.vi.md), [Cấu hình Gateway](../../gateway/configuration.vi.md).
|
||||
49
translation/vietnamese/docs/channels/slack.vi.md
Normal file
49
translation/vietnamese/docs/channels/slack.vi.md
Normal file
@ -0,0 +1,49 @@
|
||||
---
|
||||
summary: "Thiết lập Slack cho chế độ Socket hoặc HTTP Webhook"
|
||||
read_when:
|
||||
- Thiết lập Slack hoặc gỡ lỗi các chế độ Socket/HTTP
|
||||
---
|
||||
# Slack
|
||||
|
||||
## Chế độ Socket (Mặc định)
|
||||
|
||||
Đây là cách dễ nhất vì không yêu cầu địa chỉ HTTPS công khai.
|
||||
1) Tạo một ứng dụng Slack trên [Slack API portal](https://api.slack.com/apps).
|
||||
2) Bật **Socket Mode**. Tạo một **App Token** (bắt đầu bằng `xapp-`).
|
||||
3) Trong mục **OAuth & Permissions**, cài đặt ứng dụng vào Workspace của bạn và lấy **Bot Token** (bắt đầu bằng `xoxb-`).
|
||||
4) Bật **Event Subscriptions**, chọn các sự kiện quan trọng như `message.channels`, `app_mention`, và `reaction_added`.
|
||||
5) Mời bot vào các kênh bạn muốn sử dụng.
|
||||
|
||||
## Chế độ HTTP (Events API)
|
||||
Phù hợp khi Gateway của bạn có địa chỉ HTTPS công khai. Bạn sẽ cấu hình Slack gửi tin nhắn trực tiếp đến URL của bạn (mặc định là `/slack/events`).
|
||||
|
||||
## Luồng tin nhắn (Threading)
|
||||
Moltbot hỗ trợ trả lời theo luồng (thread) để giữ cho kênh chat gọn gàng. Bạn có thể cấu hình:
|
||||
- `off` (Mặc định): Chỉ trả lời trong luồng nếu tin nhắn gốc đã nằm trong một luồng.
|
||||
- `first`: Tin nhắn đầu tiên sẽ tạo luồng mới, các tin nhắn sau đó (nếu có chia nhỏ) sẽ gửi vào kênh chính.
|
||||
- `all`: Tất cả tin nhắn phản hồi đều nằm trong luồng.
|
||||
|
||||
## Bảo mật và Quyền hạn
|
||||
- **Ghép nối (Pairing)**: Áp dụng cho tin nhắn trực tiếp để đảm bảo an toàn.
|
||||
- **Danh sách trắng (Allowlist)**: Bạn có thể giới hạn bot chỉ hoạt động trong một số kênh hoặc cho một số người dùng cụ thể.
|
||||
- **Mã thông báo người dùng (User Token)**: Moltbot có thể sử dụng thêm mã thông báo người dùng (`xoxp-`) để thực hiện các thao tác đọc lịch sử hoặc tìm kiếm mà bot thường không làm được.
|
||||
|
||||
## Cấu hình mẫu
|
||||
```json5
|
||||
{
|
||||
channels: {
|
||||
slack: {
|
||||
enabled: true,
|
||||
appToken: "xapp-...",
|
||||
botToken: "xoxb-...",
|
||||
groupPolicy: "allowlist",
|
||||
channels: {
|
||||
"#general": { "allow": true, "requireMention": true }
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
---
|
||||
Tài liệu liên quan: [Ghép nối thiết bị](../../start/pairing.vi.md), [Lệnh gạch chéo](../../tools/slash-commands.vi.md).
|
||||
109
translation/vietnamese/docs/channels/telegram.vi.md
Normal file
109
translation/vietnamese/docs/channels/telegram.vi.md
Normal file
@ -0,0 +1,109 @@
|
||||
---
|
||||
summary: "Trạng thái hỗ trợ Telegram bot, các khả năng và cấu hình"
|
||||
read_when:
|
||||
- Đang làm việc với các tính năng Telegram hoặc webhook
|
||||
---
|
||||
# Telegram (Bot API)
|
||||
|
||||
Trạng thái: Đã sẵn sàng cho thực tế (production-ready) cho tin nhắn trực tiếp (DM) và nhóm chat (groups) thông qua thư viện grammY. Sử dụng long-polling theo mặc định; webhook là tùy chọn.
|
||||
|
||||
## Thiết lập nhanh (Dành cho người mới)
|
||||
1) Tạo một con bot với **@BotFather** trên Telegram và sao chép mã Token.
|
||||
2) Thiết lập token trong cấu hình: `channels.telegram.botToken: "..."`.
|
||||
3) Khởi động gateway.
|
||||
4) Quyền truy cập DM mặc định là `pairing` (ghép đôi); hãy phê duyệt mã ghép đôi trong lần liên lạc đầu tiên.
|
||||
|
||||
Cấu hình tối thiểu:
|
||||
```json5
|
||||
{
|
||||
channels: {
|
||||
telegram: {
|
||||
enabled: true,
|
||||
botToken: "123:abc",
|
||||
dmPolicy: "pairing"
|
||||
}
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
## Thiết lập Bot (Các bước nhanh)
|
||||
### 1) Tạo bot token (BotFather)
|
||||
- Mở Telegram và chat với **@BotFather**.
|
||||
- Chạy lệnh `/newbot`, sau đó làm theo hướng dẫn (tên bot + username kết thúc bằng `bot`).
|
||||
- Sao chép Token và lưu giữ an toàn.
|
||||
|
||||
Các thiết lập quan trọng trong BotFather:
|
||||
- `/setjoingroups`: cho phép/chặn việc thêm bot vào nhóm.
|
||||
- `/setprivacy`: kiểm soát việc bot có được xem mọi tin nhắn trong nhóm hay không. **Tắt (Disable)** nếu bạn muốn bot phản hồi mọi tin nhắn mà không cần @mention.
|
||||
|
||||
### 2) Quyền xem tin nhắn trong nhóm (Privacy Mode)
|
||||
Mặc định các bot Telegram ở **Chế độ riêng tư (Privacy Mode)**, nghĩa là chúng chỉ thấy tin nhắn khi được @mention hoặc là lệnh (command).
|
||||
Nếu bạn muốn bot thấy *tất cả* tin nhắn trong nhóm:
|
||||
- Tắt chế độ riêng tư qua lệnh `/setprivacy` trong @BotFather.
|
||||
- **Hoặc** thêm bot làm **Admin** của nhóm (bot admin luôn thấy mọi tin nhắn).
|
||||
|
||||
## Cách hoạt động
|
||||
- Tin nhắn trong DM chia sẻ phiên làm việc chính của agent; tin nhắn trong nhóm được cô lập (`agent:<agentId>:telegram:group:<chatId>`).
|
||||
- Phản hồi trong nhóm yêu cầu @mention bot theo mặc định.
|
||||
- Bot Telegram không hỗ trợ thông báo đã đọc (read receipts).
|
||||
|
||||
## Lệnh (Commands)
|
||||
Moltbot tự động đăng ký các lệnh hệ thống (như `/status`, `/reset`, `/model`) vào menu của bot Telegram khi khởi động.
|
||||
|
||||
Bạn có thể thêm các lệnh tùy chỉnh vào menu:
|
||||
```json5
|
||||
{
|
||||
channels: {
|
||||
telegram: {
|
||||
customCommands: [
|
||||
{ command: "backup", description: "Sao lưu dữ liệu" },
|
||||
{ command: "generate", description: "Tạo hình ảnh" }
|
||||
]
|
||||
}
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
## Chế độ kích hoạt trong nhóm
|
||||
Mặc định bot chỉ trả lời khi được nhắc tên (@mention). Để thay đổi:
|
||||
|
||||
### Qua cấu hình:
|
||||
```json5
|
||||
{
|
||||
channels: {
|
||||
telegram: {
|
||||
groups: {
|
||||
"*": { requireMention: false } // Trả lời mọi tin nhắn trong tất cả các nhóm
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
### Qua lệnh chat (trong nhóm):
|
||||
- `/activation always` - trả lời mọi tin nhắn.
|
||||
- `/activation mention` - chỉ trả lời khi được nhắc tên.
|
||||
|
||||
## Các nút nhấn trực tiếp (Inline Buttons)
|
||||
Telegram hỗ trợ bàn phím nội dòng với các nút phản hồi. Moltbot có thể gửi tin nhắn kèm các nút này và xử lý khi người dùng nhấn vào.
|
||||
|
||||
```json5
|
||||
{
|
||||
"action": "send",
|
||||
"channel": "telegram",
|
||||
"to": "123456789",
|
||||
"message": "Hãy chọn một phương án:",
|
||||
"buttons": [
|
||||
[
|
||||
{"text": "Có", "callback_data": "yes"},
|
||||
{"text": "Không", "callback_data": "no"}
|
||||
]
|
||||
]
|
||||
}
|
||||
```
|
||||
|
||||
## Truyền phát dữ liệu (Streaming - Draft bubbles)
|
||||
Telegram có thể hiển thị thanh "đang soạn tin" (draft bubbles) trong khi agent đang tạo câu trả lời. Điều này mang lại cảm giác mượt mà và bot đang thực sự suy nghĩ.
|
||||
|
||||
---
|
||||
Tài liệu liên quan: [Cấu hình Gateway](../gateway/configuration.vi.md), [Ghép nối](../start/pairing.vi.md).
|
||||
45
translation/vietnamese/docs/channels/tlon.vi.md
Normal file
45
translation/vietnamese/docs/channels/tlon.vi.md
Normal file
@ -0,0 +1,45 @@
|
||||
---
|
||||
summary: "Trạng thái hỗ trợ Tlon/Urbit, các khả năng và hướng dẫn cấu hình"
|
||||
read_when:
|
||||
- Bạn đang sử dụng Tlon (Urbit) và muốn tích hợp trợ lý AI
|
||||
---
|
||||
# Tlon (Plugin)
|
||||
|
||||
Tlon là một ứng dụng nhắn tin phi tập trung được xây dựng trên nền tảng **Urbit**. Moltbot kết nối với tàu (ship) Urbit của bạn và có thể phản hồi các tin nhắn trực tiếp (DM) cũng như tin nhắn trong nhóm.
|
||||
|
||||
## Cài đặt Plugin
|
||||
Tlon được cung cấp dưới dạng plugin:
|
||||
```bash
|
||||
moltbot plugins install @moltbot/tlon
|
||||
```
|
||||
|
||||
## Các bước thiết lập
|
||||
1. **Thông tin tàu**: Bạn cần địa chỉ URL của tàu và mã đăng nhập (login code).
|
||||
2. **Cấu hình**:
|
||||
```json5
|
||||
{
|
||||
channels: {
|
||||
tlon: {
|
||||
enabled: true,
|
||||
ship: "~name-of-your-ship",
|
||||
url: "https://ship-host-cua-ban",
|
||||
code: "ma-dang-nhap-bon-phan"
|
||||
}
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
## Hoạt động trong nhóm
|
||||
- **Nhắc tên**: Mặc định bot chỉ phản hồi trong nhóm khi được nhắc tên (ví dụ: `~ship-cua-bot`).
|
||||
- **Tự động khám phá**: Moltbot sẽ tự động tìm kiếm các kênh mà nó tham gia, hoặc bạn có thể chỉ định danh sách kênh thủ công trong `groupChannels`.
|
||||
- **Phản hồi theo luồng**: Nếu tin nhắn gốc nằm trong một luồng (thread), Moltbot sẽ trả lời ngay trong luồng đó.
|
||||
|
||||
## Kiểm soát quyền truy cập
|
||||
Bạn có thể giới hạn những tàu (ship) nào được phép tương tác với bot thông qua `dmAllowlist` (cho tin nhắn cá nhân) và `authorization` (cho các quy tắc trong nhóm).
|
||||
|
||||
## Các giới hạn hiện tại
|
||||
- Hiện tại chưa hỗ trợ gửi các tệp tin media trực tiếp (sẽ được gửi dưới dạng URL đính kèm).
|
||||
- Chưa hỗ trợ các tính năng như Biểu tượng cảm xúc (Reactions) hoặc Bình chọn (Polls).
|
||||
|
||||
---
|
||||
Tài liệu liên quan: [Khái niệm phiên làm việc](../../concepts/session.vi.md), [Plugin](../../plugin.vi.md).
|
||||
28
translation/vietnamese/docs/channels/troubleshooting.vi.md
Normal file
28
translation/vietnamese/docs/channels/troubleshooting.vi.md
Normal file
@ -0,0 +1,28 @@
|
||||
---
|
||||
summary: "Phím tắt khắc phục sự cố đặc thù cho từng kênh (Discord/Telegram/WhatsApp)"
|
||||
read_when:
|
||||
- Kênh đã kết nối nhưng tin nhắn không được gửi/nhận
|
||||
- Điều tra lỗi cấu hình kênh (quyền hạn, chế độ riêng tư)
|
||||
---
|
||||
# Khắc phục sự cố kênh truyền thông (Channel Troubleshooting)
|
||||
|
||||
Trước khi đi sâu vào từng kênh, hãy thử chạy các lệnh chẩn đoán cơ bản sau:
|
||||
|
||||
```bash
|
||||
moltbot doctor
|
||||
moltbot channels status --probe
|
||||
```
|
||||
|
||||
Lệnh `channels status --probe` sẽ in ra các cảnh báo nếu phát hiện cấu hình sai phổ biến và thực hiện các bước kiểm tra thực tế (thông tin đăng nhập, quyền hạn, tư cách thành viên nhóm).
|
||||
|
||||
## Tài liệu sửa lỗi chi tiết cho từng kênh:
|
||||
- **Discord**: [Sửa lỗi Discord](./discord.vi.md#khắc-phục-sự-cố)
|
||||
- **Telegram**: [Sửa lỗi Telegram](./telegram.vi.md#khắc-phục-sự-cố)
|
||||
- **WhatsApp**: [Sửa lỗi WhatsApp](./whatsapp.vi.md#khắc-phục-sự-cố-nhanh)
|
||||
|
||||
## Một số lỗi Telegram thường gặp
|
||||
- **Lỗi Mạng (HttpError)**: Nếu nhật ký ghi `Network request for 'sendMessage' failed`, hãy kiểm tra cấu hình IPv6 của máy chủ. Nếu máy chủ không hỗ trợ IPv6, hãy buộc Telegram sử dụng IPv4 hoặc dùng Proxy.
|
||||
- **Lỗi `setMyCommands`**: Thường do máy chủ của bạn bị chặn kết nối HTTPS tới `api.telegram.org` (thường gặp ở các VPS bị thắt chặt bảo mật).
|
||||
|
||||
---
|
||||
Tài liệu liên quan: [Khắc phục sự cố Gateway](../gateway/troubleshooting.vi.md), [Nhật ký hệ thống](../gateway/logging.vi.md).
|
||||
52
translation/vietnamese/docs/channels/twitch.vi.md
Normal file
52
translation/vietnamese/docs/channels/twitch.vi.md
Normal file
@ -0,0 +1,52 @@
|
||||
---
|
||||
summary: "Cấu hình và thiết lập bot chat cho Twitch"
|
||||
read_when:
|
||||
- Bạn muốn tích hợp Moltbot vào luồng livestream trên Twitch
|
||||
---
|
||||
# Twitch (Plugin)
|
||||
|
||||
Moltbot hỗ trợ chat trên Twitch thông qua giao thức IRC. Bot sẽ tham gia vào luồng chat của bạn dưới tư cách là một người dùng Twitch bình thường để gửi và nhận tin nhắn.
|
||||
|
||||
## Cài đặt Plugin
|
||||
Twitch được cung cấp dưới dạng plugin riêng biệt:
|
||||
```bash
|
||||
moltbot plugins install @moltbot/twitch
|
||||
```
|
||||
|
||||
## Thiết lập nhanh (Dành cho người mới)
|
||||
1. **Tạo tài khoản**: Bạn nên tạo một tài khoản Twitch riêng cho bot (để tránh nhầm lẫn với tài khoản cá nhân).
|
||||
2. **Lấy mã Token**: Sử dụng công cụ [Twitch Token Generator](https://twitchtokengenerator.com/).
|
||||
- Chọn **Bot Token**.
|
||||
- Đảm bảo đã chọn quyền `chat:read` và `chat:write`.
|
||||
- Sao chép **Client ID** và **Access Token**.
|
||||
3. **Cấu hình**:
|
||||
```json5
|
||||
{
|
||||
channels: {
|
||||
twitch: {
|
||||
enabled: true,
|
||||
username: "ten_bot_cua_ban",
|
||||
accessToken: "oauth:abc123...", // Bắt đầu bằng oauth:
|
||||
clientId: "ma_client_id_cua_ban",
|
||||
channel: "ten_kenh_cua_ban", // Tên kênh mà bot sẽ tham gia
|
||||
allowFrom: ["ID_nguoi_dung_cua_ban"] // Giới hạn người được điều khiển bot
|
||||
}
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
## Kiểm soát quyền truy cập
|
||||
Trên Twitch chat, bất kỳ ai cũng có thể gõ phím. Vì vậy, việc thiết lập quyền là **cực kỳ quan trọng**:
|
||||
- **Nhắc tên**: Mặc định bot chỉ phản hồi khi được `@nhắc_tên`.
|
||||
- **Theo vai trò (`allowedRoles`)**: Bạn có thể quy định chỉ `moderator` (kiểm duyệt viên), `vip`, hoặc `subscriber` mới được dùng lệnh.
|
||||
- **Theo ID người dùng (`allowFrom`)**: Cách an toàn nhất, chỉ những ID cụ thể mới có toàn quyền điều khiển bot.
|
||||
|
||||
## Tự động làm mới Token (Refresh Token)
|
||||
Mã Token lấy từ trình tạo mã thường có thời hạn ngắn. Để bot chạy ổn định lâu dài, bạn nên đăng ký một ứng dụng trên [Twitch Developer Console](https://dev.twitch.tv/console) để lấy `clientSecret` và `refreshToken`. Khi đó, Moltbot sẽ tự động làm mới mã đăng nhập mỗi khi hết hạn.
|
||||
|
||||
## Các giới hạn
|
||||
- Mỗi tin nhắn bị giới hạn ở **500 ký tự** (Hệ thống sẽ tự cắt nhỏ tin nhắn nếu dài hơn).
|
||||
- Không hỗ trợ gửi các tệp tin đa phương tiện trực tiếp (hình ảnh, video) vào chat.
|
||||
|
||||
---
|
||||
Tài liệu liên quan: [Cấu hình hệ thống](../gateway/configuration.vi.md), [Plugin](../../plugin.vi.md).
|
||||
101
translation/vietnamese/docs/channels/whatsapp.vi.md
Normal file
101
translation/vietnamese/docs/channels/whatsapp.vi.md
Normal file
@ -0,0 +1,101 @@
|
||||
---
|
||||
summary: "Tích hợp WhatsApp (kết nối web): đăng nhập, hộp thư, phản hồi, media và vận hành"
|
||||
read_when:
|
||||
- Bạn đang làm việc với hành vi của kênh WhatsApp hoặc điều hướng tin nhắn
|
||||
---
|
||||
# WhatsApp (kết nối web)
|
||||
|
||||
Trạng thái: Sử dụng WhatsApp Web thông qua thư viện Baileys. Gateway sở hữu các phiên làm việc.
|
||||
|
||||
## Thiết lập nhanh (Dành cho người mới)
|
||||
1) Sử dụng một **số điện thoại riêng biệt** nếu có thể (khuyên dùng).
|
||||
2) Cấu hình WhatsApp trong file `~/.clawdbot/moltbot.json`.
|
||||
3) Chạy lệnh `moltbot channels login` để quét mã QR (Thiết bị đã liên kết).
|
||||
4) Khởi động gateway.
|
||||
|
||||
Cấu hình tối thiểu:
|
||||
```json5
|
||||
{
|
||||
channels: {
|
||||
whatsapp: {
|
||||
dmPolicy: "allowlist",
|
||||
allowFrom: ["+84..."] // Số điện thoại của bạn (người chủ)
|
||||
}
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
## Chọn số điện thoại (Hai chế độ)
|
||||
|
||||
WhatsApp yêu cầu một số điện thoại di động thực để xác minh.
|
||||
|
||||
### Số riêng biệt (Khuyên dùng)
|
||||
Sử dụng một **số điện thoại riêng** cho Moltbot. Đây là cách thiết lập tốt nhất, giúp điều hướng tin nhắn sạch sẽ và không gặp lỗi tin nhắn tự gửi cho chính mình. Thiết lập lý tưởng: **điện thoại Android cũ/giá rẻ + eSIM/SIM trả trước**. Cắm sạc và bật Wi-Fi 24/7, sau đó liên kết qua mã QR.
|
||||
|
||||
Bạn có thể dùng **WhatsApp Business** trên cùng một thiết bị với một số khác để tách biệt với WhatsApp cá nhân.
|
||||
|
||||
### Số cá nhân (Phương án dự phòng)
|
||||
Chạy Moltbot trên **chính số điện thoại của bạn**. Bạn có thể nhắn tin cho chính mình (mục "Nhắn tin cho chính mình" trên WhatsApp) để thử nghiệm. **Bắt buộc phải bật chế độ self-chat.**
|
||||
|
||||
Cấu hình mẫu (số cá nhân, self-chat):
|
||||
```json5
|
||||
{
|
||||
channels: {
|
||||
whatsapp: {
|
||||
selfChatMode: true,
|
||||
dmPolicy: "allowlist",
|
||||
allowFrom: ["+84..."]
|
||||
}
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
## Đăng nhập & Thông tin xác thực
|
||||
- Lệnh đăng nhập: `moltbot channels login` (Quét QR qua Thiết bị đã liên kết).
|
||||
- Hỗ trợ nhiều tài khoản: `moltbot channels login --account <id>`.
|
||||
- Thông tin xác thực được lưu tại `~/.clawdbot/credentials/whatsapp/<accountId>/creds.json`.
|
||||
- Đăng xuất: `moltbot channels logout` sẽ xóa trạng thái xác thực WhatsApp.
|
||||
|
||||
## Quy trình tin nhắn đến (DM + Nhóm)
|
||||
- **Chính sách DM**: `channels.whatsapp.dmPolicy` kiểm soát quyền truy cập chat trực tiếp (mặc định: `pairing`).
|
||||
- `pairing`: người lạ nhắn tin sẽ nhận được mã ghép đôi (phê duyệt qua lệnh `moltbot pairing approve whatsapp <code>`).
|
||||
- `allowlist`: chỉ những số trong danh sách `allowFrom` mới được phép chat.
|
||||
- Tin nhắn tự gửi cho chính mình luôn được phép; nhưng "chế độ self-chat" vẫn yêu cầu số của bạn phải nằm trong `allowFrom`.
|
||||
|
||||
## Thông báo đã đọc (Dấu tích xanh)
|
||||
Mặc định, gateway sẽ đánh dấu các tin nhắn WhatsApp đã đọc (tích xanh) ngay khi chúng được tiếp nhận.
|
||||
|
||||
Tắt tính năng này:
|
||||
```json5
|
||||
{
|
||||
channels: { whatsapp: { sendReadReceipts: false } }
|
||||
}
|
||||
```
|
||||
|
||||
## Nhóm chat (Groups)
|
||||
- Nhóm được ánh xạ tới phiên: `agent:<agentId>:whatsapp:group:<jid>`.
|
||||
- Chế độ kích hoạt:
|
||||
- `mention` (mặc định): yêu cầu phải @mention bot hoặc khớp regex.
|
||||
- `always`: luôn phản hồi mọi tin nhắn trong nhóm.
|
||||
- Gửi lệnh `/activation always` hoặc `/activation mention` ngay trong nhóm để thay đổi chế độ (chỉ dành cho chủ sở hữu).
|
||||
|
||||
## Phản hồi nhanh (Acknowledge reactions)
|
||||
WhatsApp có thể tự động gửi cảm xúc (emoji) cho tin nhắn ngay khi nhận được, trước khi bot tạo phản hồi. Cách này báo cho người dùng biết bot đã nhận được tin nhắn.
|
||||
|
||||
Cấu hình:
|
||||
```json5
|
||||
{
|
||||
channels: {
|
||||
whatsapp: {
|
||||
ackReaction: {
|
||||
emoji: "👀",
|
||||
direct: true,
|
||||
group: "mentions"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
---
|
||||
Tài liệu liên quan: [Bảo mật](../gateway/security.vi.md), [Ghép nối](../start/pairing.vi.md).
|
||||
67
translation/vietnamese/docs/channels/zalo.vi.md
Normal file
67
translation/vietnamese/docs/channels/zalo.vi.md
Normal file
@ -0,0 +1,67 @@
|
||||
---
|
||||
summary: "Trạng thái hỗ trợ Zalo bot, các khả năng và cấu hình"
|
||||
read_when:
|
||||
- Đang làm việc với các tính năng Zalo hoặc webhook
|
||||
---
|
||||
# Zalo (Bot API)
|
||||
|
||||
Trạng thái: Đang thử nghiệm (experimental). Hiện tại chỉ hỗ trợ tin nhắn trực tiếp (DM); nhóm chat đang được phát triển theo lộ trình của Zalo.
|
||||
|
||||
## Yêu cầu Plugin
|
||||
Zalo được cung cấp dưới dạng plugin và không đi kèm sẵn trong bản cài đặt cốt lõi.
|
||||
- Cài đặt qua CLI: `moltbot plugins install @moltbot/zalo`
|
||||
- Chi tiết: [Plugins](../plugin.vi.md)
|
||||
|
||||
## Thiết lập nhanh (Dành cho người mới)
|
||||
1) Cài đặt plugin Zalo.
|
||||
2) Thiết lập mã token:
|
||||
- Biến môi trường: `ZALO_BOT_TOKEN=...`
|
||||
- Hoặc cấu hình: `channels.zalo.botToken: "..."`.
|
||||
3) Khởi động lại gateway.
|
||||
4) Quyền truy cập DM mặc định là `pairing` (ghép đôi); hãy phê duyệt mã ghép đôi trong lần liên lạc đầu tiên.
|
||||
|
||||
Cấu hình tối thiểu:
|
||||
```json5
|
||||
{
|
||||
channels: {
|
||||
zalo: {
|
||||
enabled: true,
|
||||
botToken: "12345689:abc-xyz",
|
||||
dmPolicy: "pairing"
|
||||
}
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
## Tổng quan
|
||||
Zalo là ứng dụng nhắn tin phổ biến nhất tại Việt Nam. Bot API cho phép Gateway chạy một con bot để hội thoại 1:1.
|
||||
- Một kênh Zalo Bot API do Gateway sở hữu.
|
||||
- Định tuyến xác định: phản hồi sẽ quay lại Zalo.
|
||||
- DM chia sẻ phiên làm việc chính của agent.
|
||||
- Nhóm chat chưa được hỗ trợ (tài liệu Zalo ghi "sắp ra mắt").
|
||||
|
||||
## Thiết lập (Các bước nhanh)
|
||||
|
||||
### 1) Tạo bot token (Zalo Bot Platform)
|
||||
1) Truy cập **https://bot.zaloplatforms.com** và đăng nhập.
|
||||
2) Tạo một bot mới và cấu hình các cài đặt.
|
||||
3) Sao chép bot token (định dạng: `12345689:abc-xyz`).
|
||||
|
||||
## Cách hoạt động
|
||||
- Tin nhắn đến được chuẩn hóa vào khung chung của kênh kèm theo các vị trí chờ cho media.
|
||||
- Phản hồi luôn quay lại đúng cuộc chat Zalo đó.
|
||||
- Sử dụng long-polling mặc định; chế độ webhook có sẵn qua `channels.zalo.webhookUrl`.
|
||||
|
||||
## Giới hạn
|
||||
- Văn bản gửi đi được chia nhỏ mỗi 2000 ký tự (giới hạn của Zalo API).
|
||||
- Truyền phát dữ liệu (Streaming) bị chặn theo mặc định do giới hạn 2000 ký tự làm cho tính năng này kém hiệu quả.
|
||||
|
||||
## Kiểm soát quyền truy cập (DM)
|
||||
- Mặc định: `channels.zalo.dmPolicy = "pairing"`. Người lạ nhắn tin sẽ nhận được mã ghép đôi; tin nhắn bị bỏ qua cho đến khi được phê duyệt (mã hết hạn sau 1 giờ).
|
||||
- Phê duyệt qua lệnh:
|
||||
- `moltbot pairing list zalo`
|
||||
- `moltbot pairing approve zalo <MÃ_CODE>`
|
||||
- `channels.zalo.allowFrom` chấp nhận các ID người dùng dạng số.
|
||||
|
||||
---
|
||||
Tài liệu liên quan: [Plugins](../plugin.vi.md), [Ghép nối](../start/pairing.vi.md).
|
||||
59
translation/vietnamese/docs/channels/zalouser.vi.md
Normal file
59
translation/vietnamese/docs/channels/zalouser.vi.md
Normal file
@ -0,0 +1,59 @@
|
||||
---
|
||||
summary: "Hỗ trợ tài khoản Zalo cá nhân qua zca-cli (đăng nhập QR), khả năng và cấu hình"
|
||||
read_when:
|
||||
- Thiết lập Zalo Cá nhân cho Moltbot
|
||||
- Kiểm tra luồng đăng nhập hoặc gửi tin nhắn Zalo Cá nhân
|
||||
---
|
||||
# Zalo Cá nhân (phiên bản không chính thức)
|
||||
|
||||
Trạng thái: Đang thử nghiệm (experimental). Bản tích hợp này tự động hóa một **tài khoản Zalo cá nhân** thông qua công cụ `zca-cli`.
|
||||
|
||||
> **Cảnh báo:** Đây là bản tích hợp không chính thức và có thể dẫn đến việc tài khoản bị khóa/cấm. Hãy tự chịu rủi ro khi sử dụng.
|
||||
|
||||
## Yêu cầu Plugin
|
||||
Zalo Cá nhân được cung cấp dưới dạng plugin và không đi kèm sẵn trong bản cài đặt cốt lõi.
|
||||
- Cài đặt qua CLI: `moltbot plugins install @moltbot/zalouser`
|
||||
- Chi tiết: [Plugins](../plugin.vi.md)
|
||||
|
||||
## Điều kiện tiên quyết: zca-cli
|
||||
Máy chạy Gateway phải cài đặt sẵn binary chất `zca` trong `PATH`.
|
||||
|
||||
- Kiểm tra: `zca --version`
|
||||
- Nếu thiếu, hãy cài đặt zca-cli theo tài liệu hướng dẫn của họ.
|
||||
|
||||
## Thiết lập nhanh (Dành cho người mới)
|
||||
1) Cài đặt plugin (xem ở trên).
|
||||
2) Đăng nhập (Quét QR, ngay trên máy chạy Gateway):
|
||||
- `moltbot channels login --channel zalouser`
|
||||
- Quét mã QR trong terminal bằng ứng dụng Zalo trên điện thoại.
|
||||
3) Bật kênh trong cấu hình:
|
||||
|
||||
```json5
|
||||
{
|
||||
channels: {
|
||||
zalouser: {
|
||||
enabled: true,
|
||||
dmPolicy: "pairing"
|
||||
}
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
4) Khởi động lại Gateway.
|
||||
5) Quyền truy cập DM mặc định là `pairing` (ghép đôi); phê duyệt mã ghép đôi trong lần liên lạc đầu tiên.
|
||||
|
||||
## Tổng quan
|
||||
- Sử dụng `zca listen` để nhận tin nhắn đến.
|
||||
- Sử dụng `zca msg ...` để gửi phản hồi (văn bản/media/liên kết).
|
||||
- Thiết kế cho các trường hợp sử dụng "tài khoản cá nhân" khi không thể dùng Zalo Bot API.
|
||||
|
||||
## Đặt tên
|
||||
ID của kênh là `zalouser` để phân biệt rõ ràng đây là việc tự động hóa một **tài khoản người dùng Zalo cá nhân** (không chính thức). Chúng tôi giữ ID `zalo` cho các tích hợp Zalo API chính thức trong tương lai.
|
||||
|
||||
## Kiểm soát quyền truy cập
|
||||
- DM: `channels.zalouser.dmPolicy` hỗ trợ: `pairing | allowlist | open | disabled` (mặc định: `pairing`).
|
||||
- Nhóm: `channels.zalouser.groupPolicy` hỗ trợ: `open | allowlist | disabled`.
|
||||
- Bạn có thể dùng tên nhóm hoặc ID nhóm trong danh sách phê duyệt `allowlist`.
|
||||
|
||||
---
|
||||
Tài liệu liên quan: [Bảo mật](../gateway/security.vi.md), [Plugins](../plugin.vi.md).
|
||||
49
translation/vietnamese/docs/cli/acp.vi.md
Normal file
49
translation/vietnamese/docs/cli/acp.vi.md
Normal file
@ -0,0 +1,49 @@
|
||||
---
|
||||
summary: "Chạy cầu nối ACP để tích hợp với các môi trường lập trình (IDE)"
|
||||
read_when:
|
||||
- Bạn muốn thiết lập tích hợp Moltbot với các IDE (như Zed, VS Code)
|
||||
- Bạn cần sửa lỗi điều phối phiên làm việc thông qua Gateway
|
||||
---
|
||||
|
||||
# acp (Agent Client Protocol)
|
||||
|
||||
Lệnh này khởi chạy cầu nối ACP giúp giao tiếp giữa các IDE (môi trường lập trình) và Moltbot Gateway.
|
||||
|
||||
Cầu nối này nhận các yêu cầu ACP qua luồng vào/ra chuẩn (stdio) và chuyển tiếp chúng tới Gateway thông qua WebSocket, giúp giữ cho các phiên làm việc trong IDE luôn đồng bộ với Agent.
|
||||
|
||||
## Cách sử dụng
|
||||
|
||||
```bash
|
||||
# Chạy cầu nối ACP cục bộ
|
||||
moltbot acp
|
||||
|
||||
# Kết nối tới Gateway từ xa
|
||||
moltbot acp --url wss://di-chi-gateway:18789 --token <mã-token>
|
||||
|
||||
# Gắn vào một phiên làm việc cụ thể
|
||||
moltbot acp --session agent:main:main
|
||||
```
|
||||
|
||||
## Cách thiết lập với trình soạn thảo Zed
|
||||
Thêm phần cấu hình sau vào file `~/.config/zed/settings.json`:
|
||||
|
||||
```json
|
||||
{
|
||||
"agent_servers": {
|
||||
"Moltbot ACP": {
|
||||
"type": "custom",
|
||||
"command": "moltbot",
|
||||
"args": ["acp"],
|
||||
"env": {}
|
||||
}
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
Sau khi cấu hình, bạn có thể mở bảng Agent trong Zed và chọn "Moltbot ACP" để bắt đầu trò chuyện với bot ngay trong môi trường code.
|
||||
|
||||
## Quản lý phiên làm việc
|
||||
Mặc định, các phiên ACP sẽ có tên bắt đầu bằng tiền tố `acp:`. Bạn có thể sử dụng cờ `--reset-session` để tạo một phiên trò chuyện mới hoàn toàn (nhưng vẫn giữ nguyên các cài đặt cấu hình).
|
||||
|
||||
---
|
||||
Tài liệu liên quan: [Khái niệm phiên làm việc](../../concepts/session.vi.md), [Cấu hình Gateway](../gateway/configuration.vi.md).
|
||||
27
translation/vietnamese/docs/cli/agent.vi.md
Normal file
27
translation/vietnamese/docs/cli/agent.vi.md
Normal file
@ -0,0 +1,27 @@
|
||||
---
|
||||
summary: "Tài liệu tham khảo lệnh `moltbot agent` (Chạy một lượt xử lý của Agent qua Gateway)"
|
||||
read_when:
|
||||
- Bạn muốn chạy một lệnh AI từ các script hoặc lệnh terminal (có tùy chọn gửi phản hồi)
|
||||
---
|
||||
|
||||
# `moltbot agent`
|
||||
|
||||
Chạy một lượt xử lý (turn) của Agent thông qua Gateway. Sử dụng cờ `--local` nếu muốn chạy trực tiếp không qua máy chủ.
|
||||
|
||||
Sử dụng `--agent <id>` để chỉ định chính xác Agent nào (nếu bạn có nhiều trợ lý).
|
||||
|
||||
## Ví dụ sử dụng
|
||||
|
||||
```bash
|
||||
# Gửi một thông báo cập nhật trạng thái
|
||||
moltbot agent --to +8490xxxxxxx --message "Cập nhật tiến độ dự án" --deliver
|
||||
|
||||
# Yêu cầu Agent "ops" tóm tắt nhật ký
|
||||
moltbot agent --agent ops --message "Hãy tóm tắt các dòng log gần nhất"
|
||||
|
||||
# Phản hồi vào một kênh cụ thể (ví dụ Slack)
|
||||
moltbot agent --agent ops --message "Tạo báo cáo tuần" --deliver --reply-channel slack --reply-to "#reports"
|
||||
```
|
||||
|
||||
Tài liệu liên quan:
|
||||
- Công cụ gửi tin nhắn: [Agent send](../../tools/agent-send.vi.md).
|
||||
44
translation/vietnamese/docs/cli/agents.vi.md
Normal file
44
translation/vietnamese/docs/cli/agents.vi.md
Normal file
@ -0,0 +1,44 @@
|
||||
---
|
||||
summary: "Tài liệu tham khảo lệnh `moltbot agents` (Liệt kê/Thêm/Xóa/Thiết lập danh tính Agent)"
|
||||
read_when:
|
||||
- Bạn muốn quản lý nhiều Agent riêng biệt (khác không gian làm việc, khác quyền hạn)
|
||||
---
|
||||
|
||||
# `moltbot agents`
|
||||
|
||||
Quản lý các Agent riêng biệt (phân tách về không gian làm việc, xác thực và cơ chế điều phối).
|
||||
|
||||
Tài liệu liên quan:
|
||||
- Điều phối đa Agent: [Multi-Agent Routing](../../concepts/multi-agent.vi.md)
|
||||
- Không gian làm việc: [Agent workspace](../../concepts/agent-workspace.vi.md)
|
||||
|
||||
## Ví dụ sử dụng
|
||||
|
||||
```bash
|
||||
# Xem danh sách các Agent đang có
|
||||
moltbot agents list
|
||||
|
||||
# Thêm một Agent mới tên là "work" với thư mục riêng
|
||||
moltbot agents add work --workspace ~/clawd-work
|
||||
|
||||
# Cập nhật danh tính từ file IDENTITY.md trong thư mục làm việc
|
||||
moltbot agents set-identity --workspace ~/clawd --from-identity
|
||||
|
||||
# Đặt ảnh đại diện cho Agent
|
||||
moltbot agents set-identity --agent main --avatar avatars/clawd.png
|
||||
|
||||
# Xóa một Agent
|
||||
moltbot agents delete work
|
||||
```
|
||||
|
||||
## Hồ sơ danh tính (Identity)
|
||||
Mỗi Agent có thể có một file `IDENTITY.md` tại thư mục gốc của mình để định nghĩa:
|
||||
- **Tên**: Tên hiển thị của bot.
|
||||
- **Phong cách**: Mô tả ngắn về tính cách.
|
||||
- **Emoji**: Biểu tượng đại diện.
|
||||
- **Avatar**: Đường dẫn ảnh đại diện (có thể là đường dẫn máy, URL hoặc base64).
|
||||
|
||||
Bạn có thể dùng lệnh `set-identity` để cập nhật các thông tin này vào cấu hình hệ thống, giúp giao diện người dùng hiển thị đúng thông tin của bot.
|
||||
|
||||
---
|
||||
Tài liệu liên quan: [Cơ chế Trí nhớ](../../concepts/memory.vi.md), [Hồ sơ Agent](../../concepts/agent.vi.md).
|
||||
46
translation/vietnamese/docs/cli/approvals.vi.md
Normal file
46
translation/vietnamese/docs/cli/approvals.vi.md
Normal file
@ -0,0 +1,46 @@
|
||||
---
|
||||
summary: "Tài liệu tham khảo lệnh `moltbot approvals` (Quản lý phê duyệt lệnh cho máy chủ hoặc các node)"
|
||||
read_when:
|
||||
- Bạn muốn chỉnh sửa danh sách các lệnh được phép chạy mà không cần sửa file JSON thủ công
|
||||
---
|
||||
|
||||
# `moltbot approvals`
|
||||
|
||||
Quản lý việc phê duyệt thực thi lệnh (`exec approvals`) cho **máy tính cục bộ**, **máy chủ gateway**, hoặc một **node từ xa**.
|
||||
|
||||
Tài liệu liên quan:
|
||||
- Cơ chế phê duyệt: [Exec approvals](../../tools/exec-approvals.md)
|
||||
- Quản lý Node: [Nodes](./nodes.vi.md)
|
||||
|
||||
## Các lệnh phổ biến
|
||||
|
||||
```bash
|
||||
# Xem danh sách phê duyệt hiện tại trên máy cục bộ
|
||||
moltbot approvals get
|
||||
|
||||
# Xem danh sách phê duyệt trên một Node cụ thể
|
||||
moltbot approvals get --node <id-hoac-ten>
|
||||
|
||||
# Xem danh sách phê duyệt trên Gateway
|
||||
moltbot approvals get --gateway
|
||||
```
|
||||
|
||||
## Quản lý danh sách trắng (Allowlist)
|
||||
|
||||
Bạn có thể thêm các đường dẫn lệnh cụ thể vào danh sách được phép chạy mà không cần AI phải hỏi lại:
|
||||
|
||||
```bash
|
||||
# Cho phép chạy công cụ tìm kiếm ripgrep (rg)
|
||||
moltbot approvals allowlist add "~/bin/rg"
|
||||
|
||||
# Cho phép chạy lệnh uptime cho tất cả Agent trên một Node cụ thể
|
||||
moltbot approvals allowlist add --agent "*" --node <id-node> "/usr/bin/uptime"
|
||||
|
||||
# Xóa một lệnh khỏi danh sách trắng
|
||||
moltbot approvals allowlist remove "~/bin/rg"
|
||||
```
|
||||
|
||||
Ghi chú: File phê duyệt thường được lưu tại `~/.clawdbot/exec-approvals.json` trên từng máy tương ứng.
|
||||
|
||||
---
|
||||
Tài liệu liên quan: [Bảo mật](../gateway/security/index.vi.md).
|
||||
40
translation/vietnamese/docs/cli/browser.vi.md
Normal file
40
translation/vietnamese/docs/cli/browser.vi.md
Normal file
@ -0,0 +1,40 @@
|
||||
---
|
||||
summary: "Tài liệu tham khảo lệnh `moltbot browser` (Hồ sơ, tab, hành động, chuyển tiếp tiện ích mở rộng)"
|
||||
read_when:
|
||||
- Bạn muốn điều khiển trình duyệt thông qua dòng lệnh hoặc gán quyền cho Agent
|
||||
- Bạn muốn sử dụng tiện ích mở rộng Chrome để điều khiển tab hiện tại
|
||||
---
|
||||
|
||||
# `moltbot browser`
|
||||
|
||||
Quản lý máy chủ điều khiển trình duyệt của Moltbot và thực hiện các hành động (quản lý tab, chụp ảnh màn hình, điều hướng, click, nhập liệu).
|
||||
|
||||
Tài liệu liên quan:
|
||||
- Công cụ trình duyệt: [Browser tool](../../tools/browser.vi.md)
|
||||
- Tiện ích Chrome: [Chrome extension](../../tools/chrome-extension.md)
|
||||
|
||||
## Các lệnh khởi động nhanh (Cục bộ)
|
||||
|
||||
```bash
|
||||
# Liệt kê các tab đang mở trong Google Chrome
|
||||
moltbot browser --browser-profile chrome tabs
|
||||
|
||||
# Khởi động trình duyệt riêng biệt của Moltbot
|
||||
moltbot browser --browser-profile clawd start
|
||||
|
||||
# Mở một trang web mới
|
||||
moltbot browser --browser-profile clawd open https://google.com
|
||||
|
||||
# Chụp ảnh nội dung trang (snapshot)
|
||||
moltbot browser --browser-profile clawd snapshot
|
||||
```
|
||||
|
||||
## Các hồ sơ trình duyệt (Profiles)
|
||||
- `clawd`: Khởi động một phiên Chrome hoàn toàn mới và độc lập (có thư mục dữ liệu riêng). Agent thường dùng hồ sơ này để không ảnh hưởng đến trình duyệt cá nhân của bạn.
|
||||
- `chrome`: Điều khiển các tab Chrome bạn đang mở sẵn (yêu cầu cài đặt thêm tiện ích mở rộng Chrome relay).
|
||||
|
||||
## Điều khiển trình duyệt từ xa (Node host)
|
||||
Nếu Gateway của bạn chạy trên một máy tính khác với máy tính đang mở trình duyệt, bạn cần chạy một **node host** trên máy tính có trình duyệt. Gateway sẽ đóng vai trò trung gian (proxy) để gửi các lệnh điều khiển tới node đó. Điều này rất hữu ích khi bạn chạy bot trên server nhưng muốn nó điều khiển trình duyệt trên máy tính cá nhân của mình.
|
||||
|
||||
---
|
||||
Tài liệu liên quan: [Cài đặt từ xa](../gateway/remote.vi.md), [Bảo mật](../gateway/security/index.vi.md).
|
||||
53
translation/vietnamese/docs/cli/channels.vi.md
Normal file
53
translation/vietnamese/docs/cli/channels.vi.md
Normal file
@ -0,0 +1,53 @@
|
||||
---
|
||||
summary: "Tài liệu tham khảo lệnh `moltbot channels` (Tài khoản, Trạng thái, Đăng nhập và Nhật ký kênh)"
|
||||
read_when:
|
||||
- Bạn muốn thêm/xóa các tài khoản chat (WhatsApp, Telegram, Discord...)
|
||||
- Bạn muốn kiểm tra tình trạng kết nối của các kênh
|
||||
---
|
||||
|
||||
# `moltbot channels`
|
||||
|
||||
Quản lý các tài khoản kênh chat và trạng thái hoạt động của chúng trên Gateway.
|
||||
|
||||
Tài liệu liên quan:
|
||||
- Hướng dẫn các kênh: [Danh mục kênh](../channels/index.vi.md)
|
||||
- Cấu hình hệ thống: [Cấu hình Gateway](../gateway/configuration.vi.md)
|
||||
|
||||
## Các lệnh phổ biến
|
||||
|
||||
```bash
|
||||
# Liệt kê các kênh đã cấu hình
|
||||
moltbot channels list
|
||||
|
||||
# Kiểm tra sức khỏe kết nối của các kênh
|
||||
moltbot channels status
|
||||
|
||||
# Xem nhật ký (logs) riêng của các kênh chat
|
||||
moltbot channels logs --channel all
|
||||
```
|
||||
|
||||
## Thêm hoặc xóa tài khoản
|
||||
Để thêm một bot mới, bạn có thể truyền trực tiếp mã token qua dòng lệnh:
|
||||
```bash
|
||||
# Thêm Telegram
|
||||
moltbot channels add --channel telegram --token <mã-token-bot>
|
||||
|
||||
# Xóa một kênh
|
||||
moltbot channels remove --channel telegram --delete
|
||||
```
|
||||
|
||||
**Mẹo**: Sử dụng lệnh `moltbot channels add --help` để xem danh sách các cờ cấu hình riêng cho từng loại kênh (WhatsApp cần quét mã QR, Discord cần token app, v.v.).
|
||||
|
||||
## Đăng nhập tương tác
|
||||
Đối với WhatsApp Web, bạn cần quét mã QR để đăng nhập:
|
||||
```bash
|
||||
moltbot channels login --channel whatsapp
|
||||
```
|
||||
|
||||
## Khắc phục sự cố
|
||||
- Sử dụng lệnh `moltbot status --deep` để kiểm tra toàn diện.
|
||||
- Sử dụng `moltbot doctor` để được hướng dẫn sửa các lỗi cấu hình phổ biến.
|
||||
- Nếu `channels list` báo lỗi 403, hãy kiểm tra lại mã xác thực hoặc hạn mức của tài khoản AI.
|
||||
|
||||
---
|
||||
Tài liệu liên quan: [Xác thực OAuth](../../concepts/oauth.vi.md), [Sửa lỗi kết nối](../gateway/troubleshooting.vi.md).
|
||||
41
translation/vietnamese/docs/cli/config.vi.md
Normal file
41
translation/vietnamese/docs/cli/config.vi.md
Normal file
@ -0,0 +1,41 @@
|
||||
---
|
||||
summary: "Tài liệu tham khảo lệnh `moltbot config` (Đọc/Ghi/Gỡ bỏ các giá trị cấu hình)"
|
||||
read_when:
|
||||
- Bạn muốn đọc hoặc sửa file cấu hình thông qua các dòng lệnh nhanh
|
||||
---
|
||||
|
||||
# `moltbot config`
|
||||
|
||||
Các lệnh hỗ trợ quản lý cấu hình: Đọc (get), Ghi (set), Gỡ bỏ (unset) các giá trị theo đường dẫn. Nếu chạy lệnh này mà không có lệnh con, nó sẽ mở trình thuật sĩ cấu hình tương tác (tương đương với `moltbot configure`).
|
||||
|
||||
## Ví dụ sử dụng
|
||||
|
||||
```bash
|
||||
# Đọc đường dẫn trình duyệt
|
||||
moltbot config get browser.executablePath
|
||||
|
||||
# Thiết lập đường dẫn trình duyệt
|
||||
moltbot config set browser.executablePath "/usr/bin/google-chrome"
|
||||
|
||||
# Đặt lịch kiểm tra (heartbeat) mỗi 2 giờ
|
||||
moltbot config set agents.defaults.heartbeat.every "2h"
|
||||
|
||||
# Gỡ bỏ mã API key của công cụ tìm kiếm
|
||||
moltbot config unset tools.web.search.apiKey
|
||||
```
|
||||
|
||||
## Đường dẫn (Paths)
|
||||
|
||||
Bạn có thể sử dụng dấu chấm hoặc dấu ngoặc vuông để truy cập các cấp cấu hình sâu hơn:
|
||||
|
||||
```bash
|
||||
moltbot config get agents.defaults.workspace
|
||||
moltbot config get agents.list[0].id
|
||||
```
|
||||
|
||||
## Các lưu ý về giá trị
|
||||
- Các giá trị sẽ được ưu tiên phân tích theo chuẩn JSON5 nếu có thể; nếu không sẽ được coi là chuỗi văn bản thông thường.
|
||||
- Hãy khởi động lại Gateway sau khi thực hiện các thay đổi để cấu hình mới có hiệu lực.
|
||||
|
||||
---
|
||||
Tài liệu liên quan: [Cấu hình hệ thống](../gateway/configuration.vi.md).
|
||||
24
translation/vietnamese/docs/cli/configure.vi.md
Normal file
24
translation/vietnamese/docs/cli/configure.vi.md
Normal file
@ -0,0 +1,24 @@
|
||||
---
|
||||
summary: "Tài liệu tham khảo lệnh `moltbot configure` (Cấu hình tương tác qua các câu hỏi)"
|
||||
read_when:
|
||||
- Bạn muốn điều chỉnh mã xác thực, thiết bị hoặc các cài đặt mặc định của Agent một cách trực quan
|
||||
---
|
||||
|
||||
# `moltbot configure`
|
||||
|
||||
Cung cấp giao diện tương tác để thiết lập thông tin đăng nhập, thiết bị và các cấu hình mặc định cho Agent.
|
||||
|
||||
**Lưu ý**: Phần **Model** giờ đây cho phép bạn chọn nhiều mô hình cùng lúc để đưa vào "danh sách trắng" (`agents.defaults.models`). Những mô hình này sẽ xuất hiện trong menu chọn của ứng dụng hoặc khi bạn dùng lệnh `/model`.
|
||||
|
||||
**Mẹo**: Lệnh `moltbot config` khi chạy không kèm lệnh con cũng sẽ mở trình thuật sĩ tương tự. Nếu muốn chỉnh sửa nhanh không cần tương tác, hãy dùng `moltbot config get|set|unset`.
|
||||
|
||||
Tài liệu liên quan:
|
||||
- Tham khảo cấu hình Gateway: [Cấu hình hệ thống](../gateway/configuration.vi.md)
|
||||
- Lệnh cấu hình nhanh: [Config](./config.vi.md)
|
||||
|
||||
## Ví dụ sử dụng
|
||||
|
||||
```bash
|
||||
moltbot configure
|
||||
moltbot configure --section models --section channels
|
||||
```
|
||||
34
translation/vietnamese/docs/cli/cron.vi.md
Normal file
34
translation/vietnamese/docs/cli/cron.vi.md
Normal file
@ -0,0 +1,34 @@
|
||||
---
|
||||
summary: "Tài liệu tham khảo lệnh `moltbot cron` (Lập lịch và chạy các tác vụ chạy ngầm)"
|
||||
read_when:
|
||||
- Bạn muốn lên lịch cho các công việc tự động hoặc đánh thức Agent theo giờ
|
||||
---
|
||||
|
||||
# `moltbot cron`
|
||||
|
||||
Quản lý các tác vụ lập lịch (cron jobs) cho trình điều phối của Gateway.
|
||||
|
||||
Tài liệu liên quan:
|
||||
- Các tác vụ Cron: [Lập lịch tự động](../../automation/cron-jobs.vi.md)
|
||||
|
||||
**Mẹo**: Sử dụng lệnh `moltbot cron --help` để xem đầy đủ các tùy chọn cấu hình.
|
||||
|
||||
## Các thao tác chỉnh sửa phổ biến
|
||||
|
||||
Cập nhật cài đặt gửi tin nhắn của một công việc mà không làm thay đổi nội dung thông điệp:
|
||||
```bash
|
||||
moltbot cron edit <id-công-việc> --deliver --channel telegram --to "ID_NGƯỜI_NHẬN"
|
||||
```
|
||||
|
||||
Tắt việc tự động gửi tin nhắn cho một công việc cụ thể:
|
||||
```bash
|
||||
moltbot cron edit <id-công-việc> --no-deliver
|
||||
```
|
||||
|
||||
Dùng lệnh `list` để xem tất cả các công việc đang có:
|
||||
```bash
|
||||
moltbot cron list
|
||||
```
|
||||
|
||||
---
|
||||
Tài liệu liên quan: [Cron vs Heartbeat](../../automation/cron-vs-heartbeat.md).
|
||||
24
translation/vietnamese/docs/cli/dashboard.vi.md
Normal file
24
translation/vietnamese/docs/cli/dashboard.vi.md
Normal file
@ -0,0 +1,24 @@
|
||||
---
|
||||
summary: "Tài liệu tham khảo lệnh `moltbot dashboard` (Mở giao diện điều khiển Control UI)"
|
||||
read_when:
|
||||
- Bạn muốn truy cập nhanh vào giao diện quản lý trên trình duyệt
|
||||
---
|
||||
|
||||
# `moltbot dashboard`
|
||||
|
||||
Mở giao diện điều khiển (Control UI) trên trình duyệt web bằng tài khoản xác thực hiện tại của bạn.
|
||||
|
||||
## Ví dụ sử dụng
|
||||
|
||||
```bash
|
||||
# Tự động mở trình duyệt và truy cập trang quản lý
|
||||
moltbot dashboard
|
||||
|
||||
# Chỉ in ra địa chỉ URL để bạn tự copy-paste mà không tự động mở trình duyệt
|
||||
moltbot dashboard --no-open
|
||||
```
|
||||
|
||||
Giao diện Dashboard cho phép bạn quản lý các Agent, xem nhật ký trò chuyện, cấu hình các kỹ năng và theo dõi sức khỏe hệ thống một cách trực quan nhất.
|
||||
|
||||
---
|
||||
Tài liệu liên quan: [Giao diện điều khiển Web](../../web/dashboard.md).
|
||||
41
translation/vietnamese/docs/cli/devices.vi.md
Normal file
41
translation/vietnamese/docs/cli/devices.vi.md
Normal file
@ -0,0 +1,41 @@
|
||||
---
|
||||
summary: "Tài liệu tham khảo lệnh `moltbot devices` (Ghép nối thiết bị + Thu hồi/Làm mới Token)"
|
||||
read_when:
|
||||
- Bạn muốn phê duyệt các yêu cầu ghép nối thiết bị mới
|
||||
- Bạn cần làm mới hoặc hủy bỏ mã Token của một thiết bị cụ thể
|
||||
---
|
||||
|
||||
# `moltbot devices`
|
||||
|
||||
Quản lý các yêu cầu ghép nối thiết bị và các mã Token (mã định danh bảo mật) được cấp riêng cho từng thiết bị.
|
||||
|
||||
## Các lệnh chính
|
||||
|
||||
### 1. `moltbot devices list`
|
||||
Liệt kê các yêu cầu đang chờ và các thiết bị đã ghép nối thành công.
|
||||
```bash
|
||||
moltbot devices list
|
||||
```
|
||||
|
||||
### 2. `moltbot devices approve <ID_yeu_cau>`
|
||||
Phê duyệt một thiết bị mới được phép kết nối vào hệ thống của bạn.
|
||||
```bash
|
||||
moltbot devices approve req_abc123
|
||||
```
|
||||
|
||||
### 3. Làm mới hoặc Hủy bỏ Token
|
||||
Nhằm đảm bảo an toàn, bạn có thể thay đổi hoặc thu hồi quyền truy cập của bất kỳ thiết bị nào:
|
||||
```bash
|
||||
# Làm mới token cho thiết bị
|
||||
moltbot devices rotate --device <ID_thiet_bi> --role operator
|
||||
|
||||
# Hủy bỏ quyền truy cập của thiết bị
|
||||
moltbot devices revoke --device <ID_thiet_bi> --role node
|
||||
```
|
||||
|
||||
## Lưu ý về bảo mật
|
||||
- Khi bạn làm mới (rotate) token, hệ thống sẽ trả về một mã token mới. Hãy giữ nó thật cẩn thận và không chia sẻ cho người khác.
|
||||
- Chỉ những người có quyền quản trị (`admin`) mới có thể thực hiện các lệnh này.
|
||||
|
||||
---
|
||||
Tài liệu liên quan: [Cơ chế Ghép nối Gateway](../gateway/pairing.vi.md), [Bảo mật Gateway](../gateway/security/index.vi.md).
|
||||
37
translation/vietnamese/docs/cli/directory.vi.md
Normal file
37
translation/vietnamese/docs/cli/directory.vi.md
Normal file
@ -0,0 +1,37 @@
|
||||
---
|
||||
summary: "Tài liệu tham khảo lệnh `moltbot directory` (Tra cứu cá nhân, bạn bè, nhóm)"
|
||||
read_when:
|
||||
- Bạn muốn tìm ID của một người dùng hoặc nhóm chat để gửi tin nhắn qua CLI
|
||||
---
|
||||
|
||||
# `moltbot directory`
|
||||
|
||||
Tra cứu danh bạ cho các kênh có hỗ trợ (bao gồm liên hệ cá nhân, nhóm và thông tin của chính bot).
|
||||
|
||||
## Ví dụ sử dụng
|
||||
|
||||
```bash
|
||||
# Liệt kê danh sách người dùng trên Slack có chứa chữ "U0"
|
||||
moltbot directory peers list --channel slack --query "U0"
|
||||
|
||||
# Lấy ID của chính mình trên Zalo
|
||||
moltbot directory self --channel zalouser
|
||||
|
||||
# Liệt kê thông tin thành viên trong một nhóm cụ thể
|
||||
moltbot directory groups members --channel zalouser --group-id <id_nhom>
|
||||
```
|
||||
|
||||
## Mục đích sử dụng
|
||||
Lệnh `directory` được thiết kế để giúp bạn lấy các ID chính xác mà bạn có thể sao chép và dán vào các lệnh khác, đặc biệt là lệnh gửi tin nhắn:
|
||||
```bash
|
||||
moltbot message send --channel slack --target user:U012ABCDEF --message "Chào bạn!"
|
||||
```
|
||||
|
||||
## Định dạng ID theo từng kênh:
|
||||
- **WhatsApp**: Số điện thoại `+84...` hoặc mã JID nhóm.
|
||||
- **Telegram**: `@tên_người_dùng` hoặc ID số.
|
||||
- **Slack/Discord**: Định dạng `user:<id>` hoặc `channel:<id>`.
|
||||
- **Zalo**: ID người dùng hoặc ID cuộc trò chuyện.
|
||||
|
||||
---
|
||||
Tài liệu liên quan: [Gửi tin nhắn](./message.vi.md), [Cấu hình kênh](../channels/index.vi.md).
|
||||
25
translation/vietnamese/docs/cli/dns.vi.md
Normal file
25
translation/vietnamese/docs/cli/dns.vi.md
Normal file
@ -0,0 +1,25 @@
|
||||
---
|
||||
summary: "Tài liệu tham khảo lệnh `moltbot dns` (Công cụ hỗ trợ khám phá mạng diện rộng)"
|
||||
read_when:
|
||||
- Bạn muốn cấu hình hệ thống khám phá Gateway (DNS-SD) thông qua Tailscale và CoreDNS
|
||||
---
|
||||
|
||||
# `moltbot dns`
|
||||
|
||||
Các công cụ hỗ trợ thiết lập DNS để tự động tìm kiếm Gateway trong mạng nội bộ và mạng diện rộng (Tailscale + CoreDNS). Hiện tại tính năng này tập trung hỗ trợ cho hệ điều hành macOS sử dụng Homebrew CoreDNS.
|
||||
|
||||
Tài liệu liên quan:
|
||||
- Khám phá mạng: [Discovery](../gateway/discovery.vi.md)
|
||||
- Cấu hình nâng cao: [Cấu hình hệ thống](../gateway/configuration.vi.md)
|
||||
|
||||
## Thiết lập
|
||||
|
||||
```bash
|
||||
# Xem hướng dẫn thiết lập DNS
|
||||
moltbot dns setup
|
||||
|
||||
# Áp dụng các thay đổi cấu hình DNS vào hệ thống
|
||||
moltbot dns setup --apply
|
||||
```
|
||||
|
||||
Lệnh này giúp bạn thiết lập "Split DNS" cho miền `moltbot.internal`, cho phép các thiết bị trong mạng Tailscale tự động nhận diện và kết nối với Gateway mà không cần nhập địa chỉ IP thủ công.
|
||||
21
translation/vietnamese/docs/cli/docs.vi.md
Normal file
21
translation/vietnamese/docs/cli/docs.vi.md
Normal file
@ -0,0 +1,21 @@
|
||||
---
|
||||
summary: "Tài liệu tham khảo lệnh `moltbot docs` (Tìm kiếm thông tin trong tài liệu hướng dẫn)"
|
||||
read_when:
|
||||
- Bạn muốn tra cứu nhanh cách sử dụng các tính năng của Moltbot ngay trong terminal
|
||||
---
|
||||
|
||||
# `moltbot docs`
|
||||
|
||||
Tìm kiếm thông tin từ chỉ mục tài liệu hướng dẫn trực tuyến của Moltbot.
|
||||
|
||||
## Ví dụ sử dụng
|
||||
|
||||
```bash
|
||||
# Tìm kiếm về tiện ích mở rộng trình duyệt
|
||||
moltbot docs browser extension
|
||||
|
||||
# Tìm kiếm về các tùy chọn cấu hình sandbox
|
||||
moltbot docs sandbox allowHostControl
|
||||
```
|
||||
|
||||
Kết quả sẽ trả về các đoạn trích dẫn và đường dẫn tới tài liệu chi tiết, giúp bạn không cần phải rời khỏi terminal khi đang làm việc.
|
||||
34
translation/vietnamese/docs/cli/doctor.vi.md
Normal file
34
translation/vietnamese/docs/cli/doctor.vi.md
Normal file
@ -0,0 +1,34 @@
|
||||
---
|
||||
summary: "Tài liệu tham khảo lệnh `moltbot doctor` (Kiểm tra sức khỏe + Hướng dẫn sửa lỗi)"
|
||||
read_when:
|
||||
- Bạn gặp vấn đề về kết nối, xác thực và muốn hệ thống tự động kiểm tra và gợi ý cách sửa
|
||||
- Bạn vừa cập nhật Moltbot và muốn kiểm tra lại tính ổn định
|
||||
---
|
||||
|
||||
# `moltbot doctor`
|
||||
|
||||
Lệnh này thực hiện các bước kiểm tra sức khỏe và đưa ra các giải pháp sửa lỗi nhanh cho Gateway cũng như các kênh truyền thông.
|
||||
|
||||
Tài liệu liên quan:
|
||||
- Khắc phục sự cố: [Sửa lỗi Gateway](../gateway/troubleshooting.vi.md)
|
||||
- Kiểm tra bảo mật: [Bảo mật](../gateway/security/index.vi.md)
|
||||
|
||||
## Ví dụ sử dụng
|
||||
|
||||
```bash
|
||||
# Kiểm tra tổng quát
|
||||
moltbot doctor
|
||||
|
||||
# Tự động thực hiện các bước sửa lỗi
|
||||
moltbot doctor --repair
|
||||
|
||||
# Kiểm tra sâu vào các dịch vụ hệ thống
|
||||
moltbot doctor --deep
|
||||
```
|
||||
|
||||
## Một số lưu ý quan trọng:
|
||||
- **Tương tác**: Các gợi ý sửa lỗi (như keychain hoặc OAuth) chỉ xuất hiện khi bạn chạy lệnh này trực tiếp trong terminal. Nếu chạy ngầm, hệ thống sẽ chỉ áp dụng các bước chuyển đổi (migration) an toàn.
|
||||
- **Dự phòng**: Khi bạn sử dụng `--repair` (hoặc `--fix`), một bản sao lưu cấu hình sẽ được tạo tại `~/.clawdbot/moltbot.json.bak` trước khi thực hiện thay đổi.
|
||||
|
||||
---
|
||||
Tài liệu liên quan: [Trạng thái hệ thống](./status.vi.md).
|
||||
76
translation/vietnamese/docs/cli/gateway.vi.md
Normal file
76
translation/vietnamese/docs/cli/gateway.vi.md
Normal file
@ -0,0 +1,76 @@
|
||||
---
|
||||
summary: "Tài liệu tham khảo lệnh `moltbot gateway` — khởi chạy, truy vấn và tìm kiếm gateway"
|
||||
read_when:
|
||||
- Bạn muốn chạy Gateway từ dòng lệnh
|
||||
- Bạn cần kiểm tra kết nối và xác thực của Gateway
|
||||
---
|
||||
|
||||
# Lệnh Gateway
|
||||
|
||||
Gateway là máy chủ WebSocket trung tâm của Moltbot, chịu trách nhiệm quản lý các kênh chat, agent, phiên làm việc và các công cụ khác.
|
||||
|
||||
Tài liệu liên quan:
|
||||
- [Bonjour (Khám phá mạng)](../gateway/bonjour.vi.md)
|
||||
- [Cấu hình hệ thống](../gateway/configuration.vi.md)
|
||||
|
||||
## Khởi chạy Gateway
|
||||
|
||||
Chạy một Gateway cục bộ:
|
||||
```bash
|
||||
moltbot gateway
|
||||
```
|
||||
|
||||
Chạy trực tiếp (không chạy ngầm):
|
||||
```bash
|
||||
moltbot gateway run
|
||||
```
|
||||
|
||||
**Lưu ý quan trọng**:
|
||||
- Mặc định Gateway sẽ không chạy nếu cấu hình `gateway.mode` chưa được đặt là `local`. Bạn có thể dùng cờ `--allow-unconfigured` để chạy thử nghiệm.
|
||||
- Việc kết nối từ bên ngoài (LAN/Internet) mà không có mật khẩu/token sẽ bị chặn để đảm bảo an toàn.
|
||||
|
||||
## Tùy chọn khởi chạy (Options)
|
||||
- `--port <cổng>`: Cổng WebSocket (mặc định là `18789`).
|
||||
- `--bind <loopback|lan|tailnet|auto|custom>`: Chế độ liên kết địa chỉ mạng.
|
||||
- `--token <token>` / `--password <mật khẩu>`: Đè lên cấu hình xác thực hiện có.
|
||||
- `--tailscale <off|serve|funnel>`: Công khai Gateway qua mạng Tailscale.
|
||||
- `--force`: Buộc đóng bất kỳ ứng dụng nào đang chiếm dụng cổng trước khi chạy.
|
||||
- `--verbose`: Hiển thị nhật ký chi tiết.
|
||||
|
||||
## Truy vấn Gateway đang chạy
|
||||
|
||||
Bạn có thể sử dụng các lệnh sau để kiểm tra trạng thái của một Gateway đang hoạt động (cục bộ hoặc từ xa):
|
||||
|
||||
### `gateway health`
|
||||
Kiểm tra sức khỏe cơ bản của Gateway.
|
||||
```bash
|
||||
moltbot gateway health --url ws://127.0.0.1:18789
|
||||
```
|
||||
|
||||
### `gateway status`
|
||||
Xem trạng thái dịch vụ hệ thống (launchd/systemd) và thăm dò RPC.
|
||||
```bash
|
||||
moltbot gateway status
|
||||
```
|
||||
|
||||
### `gateway probe`
|
||||
Lệnh chẩn đoán "tất cả trong một". Nó sẽ kiểm tra cả Gateway cục bộ và Gateway từ xa (nếu có cấu hình).
|
||||
|
||||
## Quản lý dịch vụ Gateway
|
||||
Nếu bạn cài đặt Moltbot như một dịch vụ hệ thống, hãy dùng các lệnh sau:
|
||||
```bash
|
||||
moltbot gateway install # Cài đặt dịch vụ
|
||||
moltbot gateway start # Khởi động dịch vụ
|
||||
moltbot gateway stop # Dừng dịch vụ
|
||||
moltbot gateway restart # Khởi động lại
|
||||
moltbot gateway uninstall # Gỡ bỏ dịch vụ
|
||||
```
|
||||
|
||||
## Tìm kiếm Gateway trong mạng nội bộ (Bonjour)
|
||||
Moltbot hỗ trợ tự động tìm kiếm các bộ Gateway khác đang chạy trong cùng mạng Wi-Fi hoặc mạng Tailscale.
|
||||
```bash
|
||||
moltbot gateway discover
|
||||
```
|
||||
|
||||
---
|
||||
Tài liệu liên quan: [Cổng kết nối từ xa](../gateway/remote.vi.md), [Bảo mật](../gateway/security/index.vi.md).
|
||||
29
translation/vietnamese/docs/cli/health.vi.md
Normal file
29
translation/vietnamese/docs/cli/health.vi.md
Normal file
@ -0,0 +1,29 @@
|
||||
---
|
||||
summary: "Tài liệu tham khảo lệnh `moltbot health` (Kiểm tra điểm cuối sức khỏe Gateway qua RPC)"
|
||||
read_when:
|
||||
- Bạn muốn kiểm tra nhanh xem Gateway có đang hoạt động tốt hay không
|
||||
---
|
||||
|
||||
# `moltbot health`
|
||||
|
||||
Lấy thông tin sức khỏe từ Gateway đang chạy.
|
||||
|
||||
## Ví dụ sử dụng
|
||||
|
||||
```bash
|
||||
# Kiểm tra nhanh
|
||||
moltbot health
|
||||
|
||||
# Xuất kết quả dưới dạng JSON để sử dụng trong script
|
||||
moltbot health --json
|
||||
|
||||
# Hiển thị chi tiết (Running probes)
|
||||
moltbot health --verbose
|
||||
```
|
||||
|
||||
## Các lưu ý:
|
||||
- Chế độ `--verbose` sẽ thực hiện các lượt thăm dò thực tế và hiển thị thời gian phản hồi của từng tài khoản cấu hình.
|
||||
- Nếu bạn có nhiều Agent, kết quả sẽ bao gồm cả tình trạng lưu trữ phiên trò chuyện của từng Agent đó.
|
||||
|
||||
---
|
||||
Tài liệu liên quan: [Chẩn đoán hệ thống](./status.vi.md), [Hướng dẫn Onboarding](../../start/onboarding.vi.md).
|
||||
53
translation/vietnamese/docs/cli/hooks.vi.md
Normal file
53
translation/vietnamese/docs/cli/hooks.vi.md
Normal file
@ -0,0 +1,53 @@
|
||||
---
|
||||
summary: "Tài liệu tham khảo lệnh `moltbot hooks` (Các điểm neo tự động của Agent)"
|
||||
read_when:
|
||||
- Bạn muốn quản lý các đoạn mã tự động chạy khi có sự kiện (như khởi động bot, reset chat)
|
||||
---
|
||||
|
||||
# `moltbot hooks`
|
||||
|
||||
Quản lý các điểm neo (hooks) của Agent — các tác vụ tự động hóa được kích hoạt bởi các sự kiện như lệnh `/new`, `/reset`, hoặc khi Gateway khởi động.
|
||||
|
||||
Tài liệu liên quan:
|
||||
- [Hệ thống Hooks](../../hooks.md)
|
||||
- [Plugin Hooks](../../plugin.md#plugin-hooks)
|
||||
|
||||
## Liệt kê tất cả các Hooks
|
||||
|
||||
```bash
|
||||
moltbot hooks list
|
||||
```
|
||||
|
||||
Hiển thị tất cả các hooks được tìm thấy trong không gian làm việc, các thư mục được quản lý và các hooks đi kèm mặc định.
|
||||
|
||||
**Tùy chọn:**
|
||||
- `--eligible`: Chỉ hiện các hooks đã đủ điều kiện chạy (đã đáp ứng các yêu cầu hệ thống).
|
||||
- `-v, --verbose`: Hiện chi tiết lý do tại sao một hook chưa chạy được.
|
||||
|
||||
## Bật/Tắt một Hook
|
||||
|
||||
Khi bạn muốn sử dụng một tính năng tự động nào đó, bạn cần phải bật nó lên:
|
||||
|
||||
```bash
|
||||
# Bật hook ghi nhớ phiên làm việc
|
||||
moltbot hooks enable session-memory
|
||||
|
||||
# Tắt hook ghi nhật ký lệnh
|
||||
moltbot hooks disable command-logger
|
||||
```
|
||||
|
||||
**Lưu ý**: Sau khi bật hoặc tắt, bạn cần khởi động lại Gateway để các thay đổi có hiệu lực.
|
||||
|
||||
## Các Hooks đi kèm phổ biến:
|
||||
|
||||
### 1. session-memory
|
||||
Tự động lưu lại tóm tắt nội dung cuộc trò chuyện vào thư mục "ký ức" khi bạn sử dụng lệnh `/new`. Giúp AI không bị quên những gì đã thảo luận trong các phiên trước.
|
||||
|
||||
### 2. command-logger
|
||||
Ghi lại tất cả các lệnh đã thực hiện vào một file nhật ký tập trung để bạn có thể kiểm tra lại sau này (tại `~/.clawdbot/logs/commands.log`).
|
||||
|
||||
### 3. boot-md
|
||||
Tự động chạy các chỉ dẫn trong file `BOOT.md` ngay khi Gateway vừa khởi động xong.
|
||||
|
||||
---
|
||||
Tài liệu liên quan: [Kỹ năng (Skills)](./skills.vi.md), [Hệ thống Plugin](./plugins.vi.md).
|
||||
63
translation/vietnamese/docs/cli/index.vi.md
Normal file
63
translation/vietnamese/docs/cli/index.vi.md
Normal file
@ -0,0 +1,63 @@
|
||||
---
|
||||
summary: "Tài liệu tham khảo lệnh CLI `moltbot`, các lệnh con và tùy chọn"
|
||||
read_when:
|
||||
- Khi bạn cần tra cứu cách sử dụng các lệnh của Moltbot trong terminal
|
||||
---
|
||||
|
||||
# Tài liệu tham khảo CLI
|
||||
|
||||
Trang này mô tả chi tiết các lệnh và hành vi của giao diện dòng lệnh (CLI). Nếu các lệnh có sự thay đổi, tài liệu này sẽ được cập nhật tương ứng.
|
||||
|
||||
## Danh mục lệnh chi tiết
|
||||
|
||||
Dưới đây là liên kết tới các trang chi tiết cho từng nhóm lệnh:
|
||||
|
||||
- [`setup`](./setup.vi.md): Khởi tạo cấu hình và không gian làm việc.
|
||||
- [`onboard`](./onboard.vi.md): Trình thuật sĩ thiết lập nhanh hệ thống.
|
||||
- [`configure`](./configure.vi.md): Trình thuật sĩ cấu hình (mô hình, kênh, kỹ năng).
|
||||
- [`config`](./config.vi.md): Các lệnh hỗ trợ cấu hình không tương tác (get/set).
|
||||
- [`doctor`](./doctor.vi.md): Kiểm tra sức khỏe và sửa lỗi nhanh.
|
||||
- [`gateway`](./gateway.vi.md): Quản lý máy chủ cổng kết nối WebSocket.
|
||||
- [`models`](./models.vi.md): Quản lý các mô hình AI và xác thực.
|
||||
- [`channels`](./channels.vi.md): Quản lý các tài khoản kênh chat (WhatsApp, Telegram...).
|
||||
- [`skills`](./skills.vi.md): Liệt kê và kiểm tra các kỹ năng khả dụng.
|
||||
- [`status`](./status.vi.md): Hiển thị trạng thái hoạt động của hệ thống.
|
||||
- [`logs`](./logs.vi.md): Xem nhật ký hoạt động từ Gateway.
|
||||
|
||||
## Các cờ (flags) toàn cục
|
||||
|
||||
- `--dev`: Cách ly dữ liệu trong thư mục `~/.clawdbot-dev` và sử dụng các cổng mặc định khác.
|
||||
- `--profile <tên>`: Cách ly dữ liệu trong thư mục `~/.clawdbot-<tên>`.
|
||||
- `--no-color`: Tắt màu sắc hiển thị trong terminal.
|
||||
- `-V`, `--version`, `-v`: Hiển thị phiên bản hiện tại.
|
||||
|
||||
## Màu sắc hiển thị
|
||||
|
||||
Moltbot sử dụng bảng màu "tôm hùm" đặc trưng để giúp bạn dễ dàng đọc thông tin trong terminal:
|
||||
|
||||
- `accent` (#FF5A2D): Tiêu đề, nhãn, các điểm nhấn chính.
|
||||
- `info` (#FF8A5B): Các giá trị thông tin.
|
||||
- `success` (#2FBF71): Trạng thái thành công.
|
||||
- `warn` (#FFB020): Cảnh báo, các phương án dự phòng.
|
||||
- `error` (#E23D2D): Lỗi, thất bại.
|
||||
- `muted` (#8B7F77): Thông tin nền, siêu dữ liệu.
|
||||
|
||||
## Cấu trúc cây lệnh (Tóm tắt)
|
||||
|
||||
```
|
||||
moltbot [--dev] [--profile <tên>] <lệnh>
|
||||
setup - Khởi tạo hệ thống
|
||||
onboard - Thuật sĩ thiết lập
|
||||
configure - Cấu hình tương tác
|
||||
config - Quản lý file cấu hình
|
||||
doctor - Chẩn đoán lỗi
|
||||
status - Trạng thái hệ thống
|
||||
gateway - Máy chủ WebSocket
|
||||
channels - Kênh truyền thông
|
||||
models - Mô hình AI
|
||||
skills - Kỹ năng của Agent
|
||||
logs - Xem nhật ký
|
||||
```
|
||||
|
||||
---
|
||||
Tài liệu liên quan: [Cấu hình hệ thống](../gateway/configuration.vi.md), [Hướng dẫn Onboarding](../../start/onboarding.vi.md).
|
||||
29
translation/vietnamese/docs/cli/logs.vi.md
Normal file
29
translation/vietnamese/docs/cli/logs.vi.md
Normal file
@ -0,0 +1,29 @@
|
||||
---
|
||||
summary: "Tài liệu tham khảo lệnh `moltbot logs` (Theo dõi nhật ký Gateway qua RPC)"
|
||||
read_when:
|
||||
- Bạn muốn xem nhật ký hoạt động của Gateway từ xa (không cần SSH)
|
||||
- Bạn cần thu thập dữ liệu nhật ký dưới dạng JSON cho các công cụ khác
|
||||
---
|
||||
|
||||
# `moltbot logs`
|
||||
|
||||
Theo dõi nhật ký (logs) của Gateway thông qua giao thức RPC (hoạt động tốt ngay cả khi đang ở chế độ điều khiển từ xa).
|
||||
|
||||
Tài liệu liên quan:
|
||||
- Tổng quan về Nhật ký: [Logging](../gateway/logging.vi.md)
|
||||
|
||||
## Ví dụ sử dụng
|
||||
|
||||
```bash
|
||||
# Xem nhật ký hiện tại
|
||||
moltbot logs
|
||||
|
||||
# Theo dõi nhật ký theo thời gian thực (real-time stream)
|
||||
moltbot logs --follow
|
||||
|
||||
# Xuất nhật ký dưới định dạng JSON (mỗi dòng là một đối tượng JSON)
|
||||
moltbot logs --json
|
||||
|
||||
# Giới hạn số dòng hiển thị gần nhất
|
||||
moltbot logs --limit 500
|
||||
```
|
||||
37
translation/vietnamese/docs/cli/memory.vi.md
Normal file
37
translation/vietnamese/docs/cli/memory.vi.md
Normal file
@ -0,0 +1,37 @@
|
||||
---
|
||||
summary: "Tài liệu tham khảo lệnh `moltbot memory` (Trạng thái/Đánh chỉ mục/Tìm kiếm bộ nhớ)"
|
||||
read_when:
|
||||
- Bạn muốn quản lý hoặc tìm kiếm thông tin trong bộ nhớ ngữ nghĩa (semantic memory) của Agent
|
||||
---
|
||||
|
||||
# `moltbot memory`
|
||||
|
||||
Quản lý việc đánh chỉ mục và tìm kiếm bộ nhớ dữ liệu (semantic memory). Tính năng này được cung cấp bởi plugin bộ nhớ (mặc định là `memory-core`).
|
||||
|
||||
Tài liệu liên quan:
|
||||
- Khái niệm bộ nhớ: [Trí nhớ Agent](../../concepts/memory.vi.md)
|
||||
|
||||
## Ví dụ sử dụng
|
||||
|
||||
```bash
|
||||
# Xem trạng thái bộ nhớ hiện tại
|
||||
moltbot memory status
|
||||
|
||||
# Kiểm tra sâu tình trạng vector và mô hình nhúng (embedding)
|
||||
moltbot memory status --deep
|
||||
|
||||
# Thực hiện đánh lại chỉ mục toàn bộ dữ liệu (reindex)
|
||||
moltbot memory index --verbose
|
||||
|
||||
# Tìm kiếm thông tin trong bộ nhớ
|
||||
moltbot memory search "quy trình bàn giao dự án"
|
||||
```
|
||||
|
||||
## Các tùy chọn
|
||||
- `--agent <id>`: Chỉ thực hiện lệnh cho một Agent cụ thể (mặc định là tất cả).
|
||||
- `--verbose`: Hiển thị chi tiết quá trình đánh chỉ mục (nguồn dữ liệu, mô hình đang dùng, các lô dữ liệu đang xử lý).
|
||||
|
||||
**Lưu ý**: Lệnh `memory status --deep --index` sẽ tự động thực hiện việc đánh chỉ mục lại nếu phát hiện dữ liệu hiện có đã bị cũ hoặc bị thay đổi.
|
||||
|
||||
---
|
||||
Tài liệu liên quan: [Cấu hình Plugin](./plugins.vi.md).
|
||||
61
translation/vietnamese/docs/cli/message.vi.md
Normal file
61
translation/vietnamese/docs/cli/message.vi.md
Normal file
@ -0,0 +1,61 @@
|
||||
---
|
||||
summary: "Tài liệu tham khảo lệnh `moltbot message` (Gửi tin nhắn + Tác vụ trên kênh)"
|
||||
read_when:
|
||||
- Bạn muốn gửi tin nhắn hoặc thực hiện các hành động (react, edit, delete) trên các kênh chat qua CLI
|
||||
---
|
||||
|
||||
# `moltbot message`
|
||||
|
||||
Một lệnh duy nhất để gửi tin nhắn và thực hiện các hành động trên các kênh (Discord, Google Chat, Slack, Mattermost, Telegram, WhatsApp, Signal, iMessage, MS Teams).
|
||||
|
||||
## Cách sử dụng
|
||||
|
||||
```bash
|
||||
moltbot message <lệnh-con> [flags]
|
||||
```
|
||||
|
||||
### Cách chọn mục tiêu (`--target`)
|
||||
- **WhatsApp**: Số điện thoại chuẩn E.164 hoặc JID của nhóm.
|
||||
- **Telegram**: ID cuộc trò chuyện hoặc `@tên-người-dùng`.
|
||||
- **Discord**: `channel:<id>` hoặc `user:<id>`.
|
||||
- **Slack**: `channel:<id>` hoặc `user:<id>`.
|
||||
- **Signal**: `+Số-điện-thoại`, `group:<id>`.
|
||||
- **MS Teams**: ID cuộc hội thoại hoặc `user:<aad-object-id>`.
|
||||
|
||||
## Các hành động chính
|
||||
|
||||
### 1. Gửi tin nhắn (`send`)
|
||||
```bash
|
||||
moltbot message send --target "+8490xxxxxxx" --message "Chào chủ nhân!"
|
||||
```
|
||||
- Hỗ trợ: Gửi tệp tin (`--media`), Trả lời tin nhắn cụ thể (`--reply-to`), Gửi vào luồng (`--thread-id`).
|
||||
|
||||
### 2. Tạo bình chọn (`poll`)
|
||||
```bash
|
||||
moltbot message poll --channel discord \
|
||||
--target channel:123 \
|
||||
--poll-question "Trưa nay ăn gì?" \
|
||||
--poll-option "Phở" --poll-option "Bún chả"
|
||||
```
|
||||
- Hỗ trợ trên: WhatsApp, Discord, MS Teams.
|
||||
|
||||
### 3. Tương tác cảm xúc (`react`)
|
||||
```bash
|
||||
moltbot message react --channel slack --target C123 --message-id 456 --emoji "✅"
|
||||
```
|
||||
- Hỗ trợ trên: Discord, Google Chat, Slack, Telegram, WhatsApp, Signal.
|
||||
|
||||
### 4. Các hành động khác
|
||||
- `edit`: Sửa tin nhắn (Discord, Slack).
|
||||
- `delete`: Xóa tin nhắn (Discord, Slack, Telegram).
|
||||
- `pin` / `unpin`: Ghim hoặc bỏ ghim tin nhắn.
|
||||
- `search`: Tìm kiếm tin nhắn (Discord).
|
||||
|
||||
## Broadcast (Gửi hàng loạt)
|
||||
Sử dụng lệnh `broadcast` để gửi một thông điệp tới nhiều mục tiêu cùng lúc:
|
||||
```bash
|
||||
moltbot message broadcast --channel all --targets "+số_1" --targets "@user2" --message "Thông báo khẩn!"
|
||||
```
|
||||
|
||||
---
|
||||
Tài liệu liên quan: [Các lệnh Slash](../../tools/slash-commands.vi.md), [Cấu hình kênh](../channels/index.vi.md).
|
||||
45
translation/vietnamese/docs/cli/models.vi.md
Normal file
45
translation/vietnamese/docs/cli/models.vi.md
Normal file
@ -0,0 +1,45 @@
|
||||
---
|
||||
summary: "Tài liệu tham khảo lệnh `moltbot models` (Trạng thái/Danh sách/Thiết lập/Quét mô hình)"
|
||||
read_when:
|
||||
- Bạn muốn thay đổi mô hình mặc định hoặc kiểm tra trạng thái xác thực của nhà cung cấp
|
||||
---
|
||||
|
||||
# `moltbot models`
|
||||
|
||||
Lệnh này dùng để khám phá, quét và cấu hình các mô hình AI (mô hình mặc định, dự phòng, hồ sơ xác thực).
|
||||
|
||||
Tài liệu liên quan:
|
||||
- Danh sách mô hình: [Mô hình AI](../providers/models.vi.md)
|
||||
- Thiết lập ban đầu: [Bắt đầu nhanh](../../start/getting-started.vi.md)
|
||||
|
||||
## Các lệnh phổ biến
|
||||
|
||||
```bash
|
||||
# Xem trạng thái các mô hình và xác thực hiện tại
|
||||
moltbot models status
|
||||
|
||||
# Liệt kê tất cả các mô hình khả dụng
|
||||
moltbot models list
|
||||
|
||||
# Đặt mô hình mặc định cho Agent
|
||||
moltbot models set <tên-mô-hình-hoặc-alias>
|
||||
|
||||
# Quét các nhà cung cấp để tìm mô hình mới
|
||||
moltbot models scan
|
||||
```
|
||||
|
||||
## Chú ý về định dạng tên mô hình:
|
||||
- Tên mô hình thường có dạng `nhà-cung-cấp/tên-model` (Ví dụ: `anthropic/claude-3-5-sonnet`).
|
||||
- Nếu bạn sử dụng OpenRouter, hãy nhớ bao gồm cả tiền tố: `openrouter/anthropic/claude-3-5-sonnet`.
|
||||
- Nếu bạn không ghi tên nhà cung cấp, Moltbot sẽ tìm trong danh sách các tên viết tắt (alias) hoặc dùng nhà cung cấp mặc định.
|
||||
|
||||
## Quản lý xác thực (Auth profiles)
|
||||
Bạn có thể quản lý cách Moltbot đăng nhập vào các nền tảng AI:
|
||||
```bash
|
||||
moltbot models auth add # Thêm tài khoản mới qua hướng dẫn
|
||||
moltbot models auth login # Đăng nhập vào một nhà cung cấp cụ thể
|
||||
moltbot models auth setup-token # Cấu hình bằng mã Token (đối với Anthropic)
|
||||
```
|
||||
|
||||
---
|
||||
Tài liệu liên quan: [Lựa chọn mô hình](../../concepts/models.vi.md), [Hạn mức sử dụng](../../concepts/usage-tracking.md).
|
||||
41
translation/vietnamese/docs/cli/node.vi.md
Normal file
41
translation/vietnamese/docs/cli/node.vi.md
Normal file
@ -0,0 +1,41 @@
|
||||
---
|
||||
summary: "Tài liệu tham khảo lệnh `moltbot node` (Chạy host node không giao diện)"
|
||||
read_when:
|
||||
- Bạn muốn chạy Moltbot trên các máy tính khác trong mạng nội bộ để thực hiện lệnh từ xa
|
||||
---
|
||||
|
||||
# `moltbot node`
|
||||
|
||||
Khởi chạy một **máy chủ node (headless node host)** giúp kết nối với Gateway và cho phép thực thi các lệnh hệ thống (`system.run`) trên chính máy tính đó.
|
||||
|
||||
## Tại sao nên dùng Node Host?
|
||||
Sử dụng node host khi bạn muốn Agent có thể **chạy lệnh trên các máy tính khác** trong mạng của bạn mà không cần phải cài đặt đầy đủ ứng dụng Moltbot trên đó.
|
||||
|
||||
Ví dụ:
|
||||
- Chạy lệnh trên máy chủ Linux/Windows từ xa.
|
||||
- Giữ cho tiến trình chính được bảo vệ trong sandbox trên Gateway, nhưng ủy quyền thực hiện các lệnh đã được phê duyệt trên các máy chủ cụ thể.
|
||||
|
||||
## Khởi chạy trực tiếp (Foreground)
|
||||
```bash
|
||||
moltbot node run --host <dia-chi-gateway> --port 18789
|
||||
```
|
||||
|
||||
## Cài đặt như một dịch vụ chạy ngầm
|
||||
```bash
|
||||
moltbot node install --host <dia-chi-gateway> --port 18789
|
||||
|
||||
# Quản lý dịch vụ
|
||||
moltbot node status
|
||||
moltbot node restart
|
||||
moltbot node stop
|
||||
```
|
||||
|
||||
## Quy trình ghép nối (Pairing)
|
||||
Lần đầu tiên kết nối, node host sẽ gửi một yêu cầu ghép nối tới Gateway. Bạn cần phê duyệt yêu cầu này trên máy tính chạy Gateway bằng lệnh:
|
||||
```bash
|
||||
moltbot nodes pending
|
||||
moltbot nodes approve <ID_yeu_cau>
|
||||
```
|
||||
|
||||
---
|
||||
Tài liệu liên quan: [Thành phần Node](../../nodes.vi.md), [Phê duyệt lệnh](../../tools/exec-approvals.md).
|
||||
47
translation/vietnamese/docs/cli/nodes.vi.md
Normal file
47
translation/vietnamese/docs/cli/nodes.vi.md
Normal file
@ -0,0 +1,47 @@
|
||||
---
|
||||
summary: "Tài liệu tham khảo lệnh `moltbot nodes` (Liệt kê/Trạng thái/Phê duyệt/Gửi lệnh tới Node)"
|
||||
read_when:
|
||||
- Bạn đang quản lý các thiết bị đã ghép nối (camera, máy trạm, màn hình)
|
||||
- Bạn cần phê duyệt yêu cầu kết nối hoặc gửi lệnh điều khiển tới một node cụ thể
|
||||
---
|
||||
|
||||
# `moltbot nodes`
|
||||
|
||||
Quản lý các node (thiết bị) đã ghép nối và kích hoạt các khả năng đặc nhiệm của chúng.
|
||||
|
||||
Tài liệu liên quan:
|
||||
- Tổng quan về Nodes: [Danh sách Node](../../nodes.vi.md)
|
||||
- Camera: [Camera nodes](../../nodes/camera.vi.md)
|
||||
|
||||
## Các lệnh phổ biến
|
||||
|
||||
```bash
|
||||
# Xem danh sách tất cả các node
|
||||
moltbot nodes list
|
||||
|
||||
# Xem các yêu cầu ghép nối đang chờ xử lý
|
||||
moltbot nodes pending
|
||||
|
||||
# Phê duyệt một thiết bị mới kết nối
|
||||
moltbot nodes approve <ID_yeu_cau>
|
||||
|
||||
# Kiểm tra trạng thái kết nối thực tế
|
||||
moltbot nodes status --connected
|
||||
```
|
||||
|
||||
## Gửi lệnh tới Node (Invoke / Run)
|
||||
|
||||
Bạn có thể gửi lệnh trực tiếp tới một máy tính khác đã kết nối node host:
|
||||
|
||||
```bash
|
||||
# Gửi lệnh dạng thấp (RPC)
|
||||
moltbot nodes invoke --node <id-hoac-ten> --command system.run --params '{"command": "ls"}'
|
||||
|
||||
# Gửi lệnh trực tiếp
|
||||
moltbot nodes run --node <id-hoac-ten> "git status"
|
||||
```
|
||||
|
||||
Lưu ý: Việc chạy lệnh từ xa vẫn tuân thủ các quy tắc bảo mật và phê duyệt lệnh (`exec approvals`) giống như khi chạy cục bộ.
|
||||
|
||||
---
|
||||
Tài liệu liên quan: [Cơ chế Phê duyệt lệnh](../../tools/exec-approvals.md), [Bảo mật](../gateway/security/index.vi.md).
|
||||
26
translation/vietnamese/docs/cli/onboard.vi.md
Normal file
26
translation/vietnamese/docs/cli/onboard.vi.md
Normal file
@ -0,0 +1,26 @@
|
||||
---
|
||||
summary: "Tài liệu tham khảo lệnh `moltbot onboard` (Thuật sĩ thiết lập tương tác)"
|
||||
read_when:
|
||||
- Bạn muốn được hướng dẫn từng bước để thiết lập gateway, không gian làm việc, xác thực, các kênh và kỹ năng
|
||||
---
|
||||
|
||||
# `moltbot onboard`
|
||||
|
||||
Đây là trình thuật sĩ thiết lập tương tác (hỗ trợ cả thiết lập Gateway tại chỗ hoặc từ xa).
|
||||
|
||||
Tài liệu liên quan:
|
||||
- Hướng dẫn thuật sĩ: [Quy trình Onboarding](../../start/onboarding.vi.md)
|
||||
|
||||
## Ví dụ sử dụng
|
||||
|
||||
```bash
|
||||
moltbot onboard
|
||||
moltbot onboard --flow quickstart
|
||||
moltbot onboard --flow advanced
|
||||
moltbot onboard --mode remote --remote-url ws://di-chi-gateway:18789
|
||||
```
|
||||
|
||||
## Các lưu ý về luồng thiết lập (Flow):
|
||||
- `quickstart`: Tối giản các câu hỏi, tự động tạo mã bảo mật (token) cho gateway.
|
||||
- `advanced`: Đầy đủ các câu hỏi cấu hình về cổng (port), địa chỉ liên kết (bind), và phương thức xác thực.
|
||||
- Cách nhanh nhất để bắt đầu: `moltbot dashboard` (Mở giao diện điều khiển, không cần thiết lập kênh ngay).
|
||||
24
translation/vietnamese/docs/cli/pairing.vi.md
Normal file
24
translation/vietnamese/docs/cli/pairing.vi.md
Normal file
@ -0,0 +1,24 @@
|
||||
---
|
||||
summary: "Tài liệu tham khảo lệnh `moltbot pairing` (Phê duyệt/Liệt kê các yêu cầu ghép nối)"
|
||||
read_when:
|
||||
- Bạn đang sử dụng chế độ ghép nối tin nhắn trực tiếp DM và cần phê duyệt người gửi
|
||||
---
|
||||
|
||||
# `moltbot pairing`
|
||||
|
||||
Phê duyệt hoặc kiểm tra các yêu cầu ghép nối tin nhắn trực tiếp (DM) cho các kênh có hỗ trợ tính năng này (như WhatsApp).
|
||||
|
||||
Tài liệu liên quan:
|
||||
- Quy trình ghép nối: [Pairing](../../start/pairing.vi.md)
|
||||
|
||||
## Các lệnh chính
|
||||
|
||||
```bash
|
||||
# Xem danh sách các yêu cầu ghép nối trên WhatsApp
|
||||
moltbot pairing list whatsapp
|
||||
|
||||
# Phê duyệt một mã ghép nối và gửi thông báo cho người gửi
|
||||
moltbot pairing approve whatsapp <code> --notify
|
||||
```
|
||||
|
||||
Tính năng này giúp bạn kiểm soát ai được phép nhắn tin trực tiếp cho bot của bạn trước khi nó bắt đầu trả lời.
|
||||
41
translation/vietnamese/docs/cli/plugins.vi.md
Normal file
41
translation/vietnamese/docs/cli/plugins.vi.md
Normal file
@ -0,0 +1,41 @@
|
||||
---
|
||||
summary: "Tài liệu tham khảo lệnh `moltbot plugins` (Liệt kê, Cài đặt, Bật/Tắt, Chẩn đoán)"
|
||||
read_when:
|
||||
- Bạn muốn cài đặt hoặc quản lý các tiện ích mở rộng chạy trực tiếp trong Gateway
|
||||
---
|
||||
|
||||
# `moltbot plugins`
|
||||
|
||||
Quản lý các tiện ích mở rộng (plugins) cho Gateway. Các plugin này được tải và chạy trực tiếp bên trong tiến trình của Gateway.
|
||||
|
||||
Tài liệu liên quan:
|
||||
- Hệ thống Plugin: [Plugins](../../plugin.vi.md)
|
||||
- Bảo mật hệ thống: [Bảo mật](../gateway/security/index.vi.md)
|
||||
|
||||
## Các lệnh chính
|
||||
|
||||
```bash
|
||||
moltbot plugins list # Xem danh sách plugins
|
||||
moltbot plugins info <id> # Xem chi tiết một plugin
|
||||
moltbot plugins enable <id> # Kích hoạt plugin
|
||||
moltbot plugins disable <id> # Tạm dừng plugin
|
||||
moltbot plugins doctor # Kiểm tra lý do plugin tải lỗi
|
||||
moltbot plugins update --all # Cập nhật tất cả các plugin
|
||||
```
|
||||
|
||||
Các plugin đi kèm (bundled) thường mặc định ở trạng thái tắt. Bạn cần dùng lệnh `enable` để kích hoạt chúng khi cần thiết.
|
||||
|
||||
## Cài đặt Plugin mới
|
||||
|
||||
Bạn có thể cài đặt plugin từ một thư mục cục bộ, một file nén (.zip, .tgz) hoặc từ kho lưu trữ npm:
|
||||
|
||||
```bash
|
||||
moltbot plugins install <đường-dẫn-hoặc-tên-package>
|
||||
```
|
||||
|
||||
**Lưu ý về bảo mật**: Cài đặt một plugin tương đương với việc cho phép chạy mã nguồn lạ trên máy tính của bạn. Hãy chỉ cài đặt các plugin từ những nguồn mà bạn thực sự tin tưởng.
|
||||
|
||||
Hầu hết các thay đổi về plugin đều yêu cầu bạn khởi động lại Gateway để áp dụng.
|
||||
|
||||
---
|
||||
Tài liệu liên quan: [Cấu hình Gateway](../gateway/configuration.vi.md).
|
||||
31
translation/vietnamese/docs/cli/reset.vi.md
Normal file
31
translation/vietnamese/docs/cli/reset.vi.md
Normal file
@ -0,0 +1,31 @@
|
||||
---
|
||||
summary: "Tài liệu tham khảo lệnh `moltbot reset` (Khôi phục trạng thái/cấu hình mặc định)"
|
||||
read_when:
|
||||
- Bạn muốn xóa sạch các cài đặt hiện tại để bắt đầu lại từ đầu
|
||||
- Bạn muốn xóa nhật ký trò chuyện và thông tin đăng nhập mà không gỡ cài đặt ứng dụng
|
||||
---
|
||||
|
||||
# `moltbot reset`
|
||||
|
||||
Khôi phục lại cấu hình và trạng thái ban đầu của hệ thống (giữ nguyên bộ công cụ CLI).
|
||||
|
||||
## Ví dụ sử dụng
|
||||
|
||||
```bash
|
||||
# Khởi chạy quy trình khôi phục có hướng dẫn
|
||||
moltbot reset
|
||||
|
||||
# Xóa toàn bộ cấu hình, thông tin đăng nhập và các phiên trò chuyện mà không hỏi lại
|
||||
moltbot reset --scope config+creds+sessions --yes --non-interactive
|
||||
|
||||
# Chạy thử để xem các file nào sẽ bị ảnh hưởng
|
||||
moltbot reset --dry-run
|
||||
```
|
||||
|
||||
**Các phạm vi khôi phục (Scopes):**
|
||||
- `config`: Chỉ xóa file cấu hình JSON.
|
||||
- `config+creds+sessions`: Xóa cấu hình, mã xác thực và toàn bộ lịch sử trò chuyện.
|
||||
- `full`: Xóa toàn bộ dữ liệu ứng dụng trong thư mục `~/.clawdbot`.
|
||||
|
||||
---
|
||||
Tài liệu liên quan: [Hướng dẫn thiết lập](./setup.vi.md), [Onboarding](../../start/onboarding.vi.md).
|
||||
42
translation/vietnamese/docs/cli/sandbox.vi.md
Normal file
42
translation/vietnamese/docs/cli/sandbox.vi.md
Normal file
@ -0,0 +1,42 @@
|
||||
---
|
||||
title: Lệnh Sandbox (Môi trường cô lập)
|
||||
summary: "Quản lý các container sandbox và kiểm tra các chính sách bảo mật thực tế"
|
||||
read_when: "Bạn đang quản lý các container Docker hoặc gỡ lỗi về phân quyền của Agent"
|
||||
---
|
||||
|
||||
# Lệnh Sandbox
|
||||
|
||||
Quản lý các container dựa trên Docker để thực thi các lệnh của Agent trong môi trường cô lập, đảm bảo an toàn cho hệ thống chủ.
|
||||
|
||||
Tài liệu liên quan:
|
||||
- Bảo mật: [Cơ chế Sandboxing](../gateway/sandboxing.vi.md)
|
||||
|
||||
## Các lệnh chính
|
||||
|
||||
### 1. `moltbot sandbox explain`
|
||||
Giải thích chi tiết về chế độ sandbox đang hoạt động, phạm vi truy cập của Agent vào các thư mục và các công cụ được cấp quyền. Rất hữu ích khi bạn cần biết tại sao một lệnh bị bot từ chối thực hiện.
|
||||
```bash
|
||||
moltbot sandbox explain
|
||||
```
|
||||
|
||||
### 2. `moltbot sandbox list`
|
||||
Liệt kê tất cả các container sandbox đang chạy kèm theo trạng thái và cấu hình của chúng.
|
||||
```bash
|
||||
moltbot sandbox list
|
||||
```
|
||||
|
||||
### 3. `moltbot sandbox recreate`
|
||||
Buộc xóa và tạo lại các container sandbox. Lệnh này thường dùng sau khi bạn cập nhật bản image Docker mới hoặc thay đổi cấu hình bảo mật.
|
||||
```bash
|
||||
# Tạo lại tất cả các container
|
||||
moltbot sandbox recreate --all
|
||||
|
||||
# Chỉ tạo lại container cho một Agent cụ thể
|
||||
moltbot sandbox recreate --agent mybot
|
||||
```
|
||||
|
||||
## Tại sao cần lệnh này?
|
||||
Containers thường chỉ bị xóa sau 24 giờ không hoạt động. Nếu bạn vừa thay đổi cấu hình hoặc cập nhật Moltbot, các container cũ có thể vẫn đang chạy với cài đặt lỗi thời. Lệnh `recreate` đảm bảo mọi thứ được làm mới theo cấu hình mới nhất của bạn.
|
||||
|
||||
---
|
||||
Tài liệu liên quan: [Cấu hình Gateway](../gateway/configuration.vi.md), [Hướng dẫn cài đặt Docker](../../install/docker.md).
|
||||
32
translation/vietnamese/docs/cli/security.vi.md
Normal file
32
translation/vietnamese/docs/cli/security.vi.md
Normal file
@ -0,0 +1,32 @@
|
||||
---
|
||||
summary: "Tài liệu tham khảo lệnh `moltbot security` (Kiểm toán và khắc phục các lỗ hổng bảo mật phổ biến)"
|
||||
read_when:
|
||||
- Bạn muốn thực hiện kiểm tra bảo mật nhanh cho cấu hình và trạng thái hệ thống
|
||||
---
|
||||
|
||||
# `moltbot security`
|
||||
|
||||
Các công cụ bảo mật dùng để kiểm tra (audit) và đưa ra các đề xuất sửa chữa (fix).
|
||||
|
||||
Tài liệu liên quan:
|
||||
- Hướng dẫn bảo mật: [Security](../gateway/security/index.vi.md)
|
||||
|
||||
## Kiểm toán (Audit)
|
||||
|
||||
```bash
|
||||
# Chạy kiểm tra bảo mật cơ bản
|
||||
moltbot security audit
|
||||
|
||||
# Kiểm tra sâu và chi tiết hơn
|
||||
moltbot security audit --deep
|
||||
|
||||
# Tự động thực hiện các bước sửa lỗi an toàn (như phân quyền file, v.v.)
|
||||
moltbot security audit --fix
|
||||
```
|
||||
|
||||
## Các hạng mục kiểm tra chính:
|
||||
- **Phạm vi phiên làm việc (Session Scope)**: Cảnh báo nếu nhiều người cùng gửi tin nhắn trực tiếp (DM) vào một phiên làm việc chung, có thể gây rò rỉ dữ liệu giữa các người dùng. Hệ thống sẽ khuyên dùng chế độ `per-channel-peer`.
|
||||
- **Sandboxing**: Cảnh báo nếu bạn sử dụng các mô hình nhỏ (dưới 300 tỷ tham số) dễ bị tấn công tấn công prompt injection mà không bật chế độ sandbox khi dùng các công cụ trình duyệt/web.
|
||||
|
||||
---
|
||||
Tài liệu liên quan: [Môi trường cô lập](./sandbox.vi.md).
|
||||
25
translation/vietnamese/docs/cli/sessions.vi.md
Normal file
25
translation/vietnamese/docs/cli/sessions.vi.md
Normal file
@ -0,0 +1,25 @@
|
||||
---
|
||||
summary: "Tài liệu tham khảo lệnh `moltbot sessions` (Liệt kê các phiên trò chuyện đã lưu)"
|
||||
read_when:
|
||||
- Bạn muốn xem danh sách các cuộc trò chuyện gần đây và dung lượng bộ nhớ chúng chiếm dụng
|
||||
---
|
||||
|
||||
# `moltbot sessions`
|
||||
|
||||
Liệt kê các phiên trò chuyện (conversation sessions) đang được lưu trữ trong hệ thống.
|
||||
|
||||
## Ví dụ sử dụng
|
||||
|
||||
```bash
|
||||
# Xem danh sách tất cả các phiên trò chuyện
|
||||
moltbot sessions
|
||||
|
||||
# Xem các phiên trò chuyện có hoạt động trong vòng 120 phút qua
|
||||
moltbot sessions --active 120
|
||||
|
||||
# Xuất kết quả dưới dạng JSON (dùng cho lập trình hoặc báo cáo)
|
||||
moltbot sessions --json
|
||||
```
|
||||
|
||||
---
|
||||
Tài liệu liên quan: [Quản lý phiên làm việc](../../concepts/session.vi.md), [TUI (Giao diện terminal)](./tui.vi.md).
|
||||
27
translation/vietnamese/docs/cli/setup.vi.md
Normal file
27
translation/vietnamese/docs/cli/setup.vi.md
Normal file
@ -0,0 +1,27 @@
|
||||
---
|
||||
summary: "Tài liệu tham khảo lệnh `moltbot setup` (Khởi tạo cấu hình + không gian làm việc)"
|
||||
read_when:
|
||||
- Bạn muốn khởi tạo hệ thống lần đầu mà không dùng thuật sĩ đầy đủ
|
||||
- Bạn muốn đặt đường dẫn mặc định cho không gian làm việc của Agent
|
||||
---
|
||||
|
||||
# `moltbot setup`
|
||||
|
||||
Lệnh này dùng để khởi tạo file cấu hình tại `~/.clawdbot/moltbot.json` và chuẩn bị không gian làm việc cho Agent.
|
||||
|
||||
Tài liệu liên quan:
|
||||
- Bắt đầu nhanh: [Bắt đầu nhanh](../../start/getting-started.vi.md)
|
||||
- Thuật sĩ: [Onboarding](../../start/onboarding.vi.md)
|
||||
|
||||
## Ví dụ sử dụng
|
||||
|
||||
```bash
|
||||
moltbot setup
|
||||
moltbot setup --workspace ~/my-agent-folder
|
||||
```
|
||||
|
||||
Nếu bạn muốn chạy đồng thời cả trình thuật sĩ thông qua lệnh setup:
|
||||
|
||||
```bash
|
||||
moltbot setup --wizard
|
||||
```
|
||||
33
translation/vietnamese/docs/cli/skills.vi.md
Normal file
33
translation/vietnamese/docs/cli/skills.vi.md
Normal file
@ -0,0 +1,33 @@
|
||||
---
|
||||
summary: "Tài liệu tham khảo lệnh `moltbot skills` (Liệt kê/Thông tin/Kiểm tra) và điều kiện sử dụng kỹ năng"
|
||||
read_when:
|
||||
- Bạn muốn xem những kỹ năng nào đang khả dụng và sẵn sàng hoạt động
|
||||
- Bạn muốn tìm lý do tại sao một kỹ năng không hoạt động (thiếu môi trường, thiếu cấu hình)
|
||||
---
|
||||
|
||||
# `moltbot skills`
|
||||
|
||||
Kiểm tra các kỹ năng (kỹ năng đi kèm, kỹ năng trong không gian làm việc và các cài đặt đè). Lệnh này giúp bạn biết kỹ năng nào đủ điều kiện chạy và kỹ năng nào đang thiếu các yêu cầu cần thiết.
|
||||
|
||||
Tài liệu liên quan:
|
||||
- Hệ thống kỹ năng: [Tổng quan về Kỹ năng](../../tools/skills.vi.md)
|
||||
- Cấu hình kỹ năng: [Cấu hình chi tiết](../../tools/skills-config.md)
|
||||
- Cài đặt từ ClawdHub: [ClawdHub](../../tools/clawdhub.md)
|
||||
|
||||
## Các lệnh chính
|
||||
|
||||
```bash
|
||||
# Liệt kê tất cả các kỹ năng đã cài đặt
|
||||
moltbot skills list
|
||||
|
||||
# Chỉ liệt kê các kỹ năng đủ điều kiện hoạt động
|
||||
moltbot skills list --eligible
|
||||
|
||||
# Xem chi tiết yêu cầu của một kỹ năng cụ thể
|
||||
moltbot skills info <tên-kỹ-năng>
|
||||
|
||||
# Kiểm tra nhanh xem hệ thống còn thiếu gì (binaries, môi trường...)
|
||||
moltbot skills check
|
||||
```
|
||||
|
||||
**Gợi ý**: Bạn nên sử dụng `npx clawdhub` để tìm kiếm, cài đặt và đồng bộ hóa các kỹ năng mới từ cộng đồng một cách dễ dàng nhất.
|
||||
33
translation/vietnamese/docs/cli/status.vi.md
Normal file
33
translation/vietnamese/docs/cli/status.vi.md
Normal file
@ -0,0 +1,33 @@
|
||||
---
|
||||
summary: "Tài liệu tham khảo lệnh `moltbot status` (Chẩn đoán, thăm dò và kiểm tra dung lượng sử dụng)"
|
||||
read_when:
|
||||
- Bạn muốn kiểm tra nhanh tình trạng các kênh và các phiên trò chuyện gần đây
|
||||
---
|
||||
|
||||
# `moltbot status`
|
||||
|
||||
Lệnh chẩn đoán cho các kênh truyền thông và phiên làm việc (sessions).
|
||||
|
||||
## Ví dụ sử dụng
|
||||
|
||||
```bash
|
||||
# Xem trạng thái cơ bản
|
||||
moltbot status
|
||||
|
||||
# Xem báo cáo chẩn đoán đầy đủ (có thể dùng để gửi yêu cầu hỗ trợ)
|
||||
moltbot status --all
|
||||
|
||||
# Thăm dò thực tế tình trạng kết nối của các kênh
|
||||
moltbot status --deep
|
||||
|
||||
# Kiểm tra lưu lượng/hạn mức sử dụng của các nhà cung cấp AI
|
||||
moltbot status --usage
|
||||
```
|
||||
|
||||
## Các thành phần hiển thị:
|
||||
- **Thăm dò sâu (`--deep`)**: Thực hiện kết nối thực tế tới WhatsApp, Telegram, Discord... để kiểm tra xem bot có thực sự đang trực tuyến không.
|
||||
- **Dung lượng sử dụng**: Nếu bạn cung cấp mã API key, Moltbot sẽ hiển thị hạn mức còn lại từ các nhà cung cấp như Anthropic, OpenAI, Google Gemini...
|
||||
- **Thông tin cập nhật**: Nếu có phiên bản mới, hệ thống sẽ hiển thị thông báo nhắc nhở bạn chạy lệnh `moltbot update`.
|
||||
|
||||
---
|
||||
Tài liệu liên quan: [Khắc phục sự cố](../gateway/troubleshooting.vi.md), [Cập nhật hệ thống](../../install/updating.md).
|
||||
38
translation/vietnamese/docs/cli/system.vi.md
Normal file
38
translation/vietnamese/docs/cli/system.vi.md
Normal file
@ -0,0 +1,38 @@
|
||||
---
|
||||
summary: "Tài liệu tham khảo lệnh `moltbot system` (Sự kiện hệ thống, Heartbeat, Sự hiện diện)"
|
||||
read_when:
|
||||
- Bạn muốn gửi một sự kiện hệ thống mà không cần tạo lịch trình cron
|
||||
- Bạn cần bật hoặc tắt tính năng tự động kiểm tra (heartbeat)
|
||||
---
|
||||
|
||||
# `moltbot system`
|
||||
|
||||
Các công cụ hỗ trợ cấp hệ thống cho Gateway: gửi sự kiện hệ thống, điều khiển tính năng heartbeat và xem trạng thái hiện diện của các thành phần.
|
||||
|
||||
## Các lệnh phổ biến
|
||||
|
||||
```bash
|
||||
# Gửi một sự kiện hệ thống ngay lập tức tới Agent
|
||||
moltbot system event --text "Kiểm tra các phản hồi khẩn cấp" --mode now
|
||||
|
||||
# Bật lại tính năng heartbeat
|
||||
moltbot system heartbeat enable
|
||||
|
||||
# Xem lần cuối cùng heartbeat hoạt động
|
||||
moltbot system heartbeat last
|
||||
|
||||
# Xem danh sách các thành phần đang hiện diện (nodes, instances...)
|
||||
moltbot system presence
|
||||
```
|
||||
|
||||
## Giải thích về `system event`
|
||||
Lệnh này gửi một thông báo hệ thống vào phiên làm việc **chính**. Ở lượt xử lý tiếp theo, thông báo này sẽ xuất hiện dưới dạng một dòng `System:` trong ngữ cảnh gửi cho AI.
|
||||
- Sử dụng `--mode now` để kích hoạt AI xử lý ngay lập tức.
|
||||
- Sử dụng `next-heartbeat` (mặc định) để đợi đến lần kiểm tra định kỳ tiếp theo.
|
||||
|
||||
## Ghi chú
|
||||
- Các lệnh này yêu cầu Gateway phải đang chạy và có thể kết nối được.
|
||||
- Các sự kiện hệ thống chỉ mang tính chất tạm thời và sẽ mất đi nếu bạn khởi động lại Gateway.
|
||||
|
||||
---
|
||||
Tài liệu liên quan: [Cổng kết nối Gateway](./gateway.vi.md), [Xử lý Heartbeat](../gateway/heartbeat.vi.md).
|
||||
27
translation/vietnamese/docs/cli/tui.vi.md
Normal file
27
translation/vietnamese/docs/cli/tui.vi.md
Normal file
@ -0,0 +1,27 @@
|
||||
---
|
||||
summary: "Tài liệu tham khảo lệnh `moltbot tui` (Giao diện dòng lệnh đồ họa kết nối với Gateway)"
|
||||
read_when:
|
||||
- Bạn muốn trò chuyện với bot trực tiếp trong terminal bằng giao diện trực quan
|
||||
---
|
||||
|
||||
# `moltbot tui`
|
||||
|
||||
Mở giao diện người dùng trên Terminal (TUI) để kết nối và trò chuyện với Gateway.
|
||||
|
||||
Tài liệu liên quan:
|
||||
- Hướng dẫn TUI: [Tổng quan giao diện TUI](../../tui.md)
|
||||
|
||||
## Ví dụ sử dụng
|
||||
|
||||
```bash
|
||||
# Mở giao diện mặc định (kết nối với Gateway cục bộ)
|
||||
moltbot tui
|
||||
|
||||
# Kết nối tới một Gateway từ xa với mã bảo mật
|
||||
moltbot tui --url ws://1.2.3.4:18789 --token <mã-của-bạn>
|
||||
|
||||
# Mở một phiên trò chuyện cụ thể và gửi phản hồi ngay lập tức
|
||||
moltbot tui --session main --deliver
|
||||
```
|
||||
|
||||
Giao diện này cực kỳ hữu ích khi bạn đang làm việc trong môi trường SSH hoặc đơn giản là muốn trò chuyện với Agent mà không cần mở trình duyệt web.
|
||||
25
translation/vietnamese/docs/cli/uninstall.vi.md
Normal file
25
translation/vietnamese/docs/cli/uninstall.vi.md
Normal file
@ -0,0 +1,25 @@
|
||||
---
|
||||
summary: "Tài liệu tham khảo lệnh `moltbot uninstall` (Gỡ bỏ dịch vụ gateway và dữ liệu cục bộ)"
|
||||
read_when:
|
||||
- Bạn muốn gỡ bỏ hoàn toàn Moltbot khỏi hệ thống của mình
|
||||
---
|
||||
|
||||
# `moltbot uninstall`
|
||||
|
||||
Lệnh này dùng để gỡ bỏ dịch vụ Gateway và các dữ liệu cấu hình cục bộ. Lưu ý lệnh này chỉ gỡ bỏ các thành phần vận hành, bộ công cụ CLI (lệnh `moltbot`) vẫn sẽ được giữ lại trừ khi bạn gỡ cài đặt qua npm/pnpm.
|
||||
|
||||
## Ví dụ sử dụng
|
||||
|
||||
```bash
|
||||
# Gỡ bỏ có xác nhận từ người dùng
|
||||
moltbot uninstall
|
||||
|
||||
# Gỡ bỏ tất cả dữ liệu và bỏ qua các câu hỏi xác nhận
|
||||
moltbot uninstall --all --yes
|
||||
|
||||
# Chạy thử để xem những gì sẽ bị xóa (không xóa thật)
|
||||
moltbot uninstall --dry-run
|
||||
```
|
||||
|
||||
Tài liệu liên quan:
|
||||
- [Cài đặt hệ thống](../../install/docker.md).
|
||||
41
translation/vietnamese/docs/cli/update.vi.md
Normal file
41
translation/vietnamese/docs/cli/update.vi.md
Normal file
@ -0,0 +1,41 @@
|
||||
---
|
||||
summary: "Tài liệu tham khảo lệnh `moltbot update` (Cập nhật hệ thống an toàn + tự động khởi động lại gateway)"
|
||||
read_when:
|
||||
- Bạn muốn cập nhật Moltbot lên phiên bản mới nhất một cách an toàn
|
||||
- Bạn muốn chuyển đổi giữa các kênh phát hành (stable/beta/dev)
|
||||
---
|
||||
|
||||
# `moltbot update`
|
||||
|
||||
Lệnh này giúp cập nhật Moltbot một cách an toàn và cho phép bạn chuyển đổi linh hoạt giữa các kênh phát hành: Chính thức (stable), Thử nghiệm (beta) hoặc Phát triển (dev).
|
||||
|
||||
## Ví dụ sử dụng
|
||||
|
||||
```bash
|
||||
# Kiểm tra và cập nhật lên phiên bản mới nhất
|
||||
moltbot update
|
||||
|
||||
# Chỉ kiểm tra trạng thái cập nhật mà không thực hiện
|
||||
moltbot update status
|
||||
|
||||
# Chuyển sang kênh dùng thử (beta)
|
||||
moltbot update --channel beta
|
||||
|
||||
# Cập nhật nhưng không tự động khởi động lại Gateway
|
||||
moltbot update --no-restart
|
||||
```
|
||||
|
||||
## Các kênh cập nhật (Channels)
|
||||
- **stable**: Phiên bản chính thức, ổn định nhất cho túi tiền và hệ thống của bạn.
|
||||
- **beta**: Các tính năng mới đang trong quá trình hoàn thiện.
|
||||
- **dev**: Phiên bản mới nhất trực tiếp từ nhánh phát triển (thường dành cho cộng tác viên hoặc những người muốn trải nghiệm sớm nhất).
|
||||
|
||||
## Các bước hệ thống thực hiện:
|
||||
1. Kiểm tra phiên bản hiện tại và so sánh với máy chủ.
|
||||
2. Tải về và cài đặt các phụ thuộc mới (dependencies).
|
||||
3. Biên dịch lại các thành phần hệ thống và giao diện điều khiển.
|
||||
4. Chạy lệnh `moltbot doctor` để đảm bảo sau khi cập nhật hệ thống vẫn hoạt động tốt.
|
||||
5. Tự động khởi động lại Gateway để áp dụng các thay đổi (trừ khi bạn dùng cờ `--no-restart`).
|
||||
|
||||
---
|
||||
Tài liệu liên quan: [Hướng dẫn cập nhật chi tiết](../../install/updating.md), [Chẩn đoán hệ thống](./doctor.vi.md).
|
||||
37
translation/vietnamese/docs/cli/voicecall.vi.md
Normal file
37
translation/vietnamese/docs/cli/voicecall.vi.md
Normal file
@ -0,0 +1,37 @@
|
||||
---
|
||||
summary: "Tài liệu tham khảo lệnh `moltbot voicecall` (Các lệnh cho plugin cuộc gọi thoại)"
|
||||
read_when:
|
||||
- Bạn sử dụng plugin voice-call và muốn thực hiện cuộc gọi qua dòng lệnh
|
||||
---
|
||||
|
||||
# `moltbot voicecall`
|
||||
|
||||
`voicecall` là bộ lệnh được cung cấp bởi một plugin. Lệnh này chỉ xuất hiện nếu bạn đã cài đặt và kích hoạt plugin cuộc gọi thoại (voice-call).
|
||||
|
||||
Tài liệu liên quan:
|
||||
- Plugin Cuộc gọi thoại: [Voice Call](../../plugins/voice-call.md)
|
||||
|
||||
## Các lệnh phổ biến
|
||||
|
||||
```bash
|
||||
# Kiểm tra trạng thái của một cuộc gọi đang diễn ra
|
||||
moltbot voicecall status --call-id <id>
|
||||
|
||||
# Thực hiện cuộc gọi thông báo tự động
|
||||
moltbot voicecall call --to "+8490xxxxxxx" --message "Chào chủ nhân, hệ thống đã hoàn tất sao lưu" --mode notify
|
||||
|
||||
# Tiếp tục cuộc trò chuyện trong cuộc gọi
|
||||
moltbot voicecall continue --call-id <id> --message "Bạn có câu hỏi nào nữa không?"
|
||||
|
||||
# Kết thúc cuộc gọi
|
||||
moltbot voicecall end --call-id <id>
|
||||
```
|
||||
|
||||
## Công khai Webhook (Tailscale)
|
||||
Dùng để cho phép các dịch vụ điện thoại bên thứ ba (như Twilio) có thể gửi tín hiệu về máy của bạn:
|
||||
```bash
|
||||
moltbot voicecall expose --mode serve
|
||||
moltbot voicecall unexpose
|
||||
```
|
||||
|
||||
Lưu ý bảo mật: Chỉ công khai các điểm cuối webhook trong các mạng mà bạn thực sự tin tưởng.
|
||||
25
translation/vietnamese/docs/cli/webhooks.vi.md
Normal file
25
translation/vietnamese/docs/cli/webhooks.vi.md
Normal file
@ -0,0 +1,25 @@
|
||||
---
|
||||
summary: "Tài liệu tham khảo lệnh `moltbot webhooks` (Công cụ hỗ trợ Webhook + Gmail Pub/Sub)"
|
||||
read_when:
|
||||
- Bạn muốn kết nối các sự kiện từ Gmail vào Moltbot
|
||||
---
|
||||
|
||||
# `moltbot webhooks`
|
||||
|
||||
Cung cấp các công cụ hỗ trợ cho Webhook và các tích hợp bên thứ ba (như Gmail Pub/Sub).
|
||||
|
||||
Tài liệu liên quan:
|
||||
- Webhooks: [Tổng quan Webhook](../../automation/webhook.vi.md)
|
||||
- Gmail Pub/Sub: [Tích hợp Gmail](../../automation/gmail-pubsub.vi.md)
|
||||
|
||||
## Tích hợp Gmail
|
||||
|
||||
```bash
|
||||
# Thiết lập tài khoản Gmail kết nối với Google Cloud Pub/Sub
|
||||
moltbot webhooks gmail setup --account email_cua_ban@gmail.com
|
||||
|
||||
# Chạy trình lắng nghe sự kiện từ Gmail
|
||||
moltbot webhooks gmail run
|
||||
```
|
||||
|
||||
Hãy xem thêm [Tài liệu hướng dẫn Gmail Pub/Sub](../../automation/gmail-pubsub.vi.md) để biết các bước cấu hình phía Google Cloud Console trước khi chạy các lệnh này.
|
||||
59
translation/vietnamese/docs/concepts/agent-loop.vi.md
Normal file
59
translation/vietnamese/docs/concepts/agent-loop.vi.md
Normal file
@ -0,0 +1,59 @@
|
||||
---
|
||||
summary: "Vòng đời của vòng lặp Agent, luồng dữ liệu và cơ chế chờ đợi"
|
||||
read_when:
|
||||
- Bạn cần tìm hiểu chi tiết quy trình của vòng lặp Agent hoặc các sự kiện vòng đời
|
||||
---
|
||||
|
||||
# Vòng lặp Agent (Agent Loop)
|
||||
|
||||
Vòng lặp Agent là quy trình thực thi đầy đủ của một Agent: tiếp nhận dữ liệu → lắp ghép ngữ cảnh → mô hình AI suy luận → thực thi công cụ → phản hồi trực tiếp (streaming) → lưu trữ dữ liệu. Đây là con đường chính thức biến một tin nhắn thành hành động và câu trả lời cuối cùng, đồng thời giữ cho trạng thái phiên làm việc luôn nhất quán.
|
||||
|
||||
Trong Moltbot, mỗi vòng lặp là một lượt chạy tuần tự cho mỗi phiên làm việc, phát ra các sự kiện vòng đời và luồng dữ liệu khi mô hình đang suy nghĩ, gọi công cụ và trả về kết quả.
|
||||
|
||||
## Các điểm truy cập
|
||||
- Gateway RPC: lệnh `agent` và `agent.wait`.
|
||||
- CLI: lệnh `moltbot agent`.
|
||||
|
||||
## Cách thức hoạt động (Cấp độ hệ thống)
|
||||
1) **Yêu cầu RPC `agent`**: Kiểm tra các tham số, xác định phiên làm việc (sessionKey/sessionId), lưu trữ thông tin về phiên và trả về ngay lập tức mã `{ runId, acceptedAt }`.
|
||||
2) **Thực thi lệnh Agent**:
|
||||
- Xác định mô hình AI và các tùy chọn suy luận/hiển thị chi tiết.
|
||||
- Tải các "ảnh chụp" kỹ năng (skills snapshot).
|
||||
- Gọi trình thực thi `runEmbeddedPiAgent`.
|
||||
- Phát sự kiện **kết thúc/lỗi** nếu vòng lặp nhúng gặp sự cố.
|
||||
3) **Hàm `runEmbeddedPiAgent`**:
|
||||
- Xếp hàng các lượt chạy để thực hiện tuần tự theo từng phiên làm việc.
|
||||
- Xác định mô hình và hồ sơ xác thực.
|
||||
- Đăng ký nhận các sự kiện và truyền các thay đổi (deltas) từ trợ lý/công cụ.
|
||||
- Áp dụng thời gian chờ (timeout) -> hủy lượt chạy nếu quá hạn.
|
||||
4) **Hàm `agent.wait`**:
|
||||
- Chờ đợi sự kiện **kết thúc/lỗi** cho một mã `runId` cụ thể.
|
||||
- Trả về trạng thái `{ status: ok|error|timeout, startedAt, endedAt, error? }`.
|
||||
|
||||
## Xếp hàng & Đồng thời (Concurrency)
|
||||
- Các lượt chạy được thực hiện tuần tự cho mỗi phiên làm việc (session lane) để tránh việc các công cụ bị xung đột và giữ cho lịch sử phiên luôn đúng thứ tự.
|
||||
- Các kênh nhắn tin có thể chọn chế độ hàng đợi (collect/steer/followup) để nạp dữ liệu vào hệ thống này. Xem thêm tại [Hàng đợi lệnh](./queue.vi.md).
|
||||
|
||||
## Lắp ghép câu lệnh (Prompt)
|
||||
- Câu lệnh hệ thống được xây dựng từ: câu lệnh gốc của Moltbot, câu lệnh của kỹ năng, ngữ cảnh khởi tạo (bootstrap) và các ghi đè riêng cho từng lượt chạy.
|
||||
- Các giới hạn của từng mô hình và quy tắc nén ngữ cảnh (compaction) sẽ được áp dụng tại đây.
|
||||
|
||||
## Các điểm can thiệp (Hooks)
|
||||
Moltbot có hai hệ thống can thiệp:
|
||||
- **Internal hooks**: Các kịch bản tự động hóa cho lệnh và sự kiện vòng đời.
|
||||
- **Plugin hooks**: Các điểm mở rộng sâu bên trong vòng đời Agent/Công cụ.
|
||||
|
||||
Ví dụ: `agent:bootstrap` chạy trong lúc xây dựng các tệp khởi tạo trước khi câu lệnh hệ thống được chốt lại.
|
||||
|
||||
Chi tiết tại: [Hooks](../hooks.vi.md).
|
||||
|
||||
## Thực thi công cụ
|
||||
- Các sự kiện bắt đầu/cập nhật/kết thúc công cụ được phát ra qua luồng `tool`.
|
||||
- Kết quả công cụ được làm sạch (về kích thước và dữ liệu hình ảnh) trước khi lưu nhật ký hoặc phát đi.
|
||||
|
||||
## Tóm tắt & Trạng thái
|
||||
- Câu trả lời cuối cùng được lắp ghép từ: văn bản của trợ lý, tóm tắt công cụ, văn bản lỗi (nếu có).
|
||||
- Các lượt chạy bị lỗi hoặc quá hạn sẽ được thông báo rõ ràng để người dùng xử lý.
|
||||
|
||||
---
|
||||
Tài liệu liên quan: [Cấu hình truyền tin](./streaming.vi.md), [Nén ngữ cảnh](./compaction.vi.md).
|
||||
75
translation/vietnamese/docs/concepts/agent-workspace.vi.md
Normal file
75
translation/vietnamese/docs/concepts/agent-workspace.vi.md
Normal file
@ -0,0 +1,75 @@
|
||||
---
|
||||
summary: "Không gian làm việc của Agent: Vị trí, sơ đồ thư mục và chiến lược sao lưu"
|
||||
read_when:
|
||||
- Bạn muốn tìm hiểu về thư mục làm việc của Agent hoặc cấu trúc tệp tin
|
||||
- Bạn muốn sao lưu hoặc di chuyển không gian làm việc sang máy tính khác
|
||||
---
|
||||
|
||||
# Không gian làm việc (Workspace)
|
||||
|
||||
Không gian làm việc là "nhà" của Agent. Đây là thư mục làm việc duy nhất dành cho các công cụ tệp tin và ngữ cảnh của Agent. Hãy giữ nó riêng tư và coi nó như bộ nhớ của Agent.
|
||||
|
||||
Thư mục này tách biệt hoàn toàn với `~/.clawdbot/` (nơi lưu trữ cấu hình, thông tin xác thực và lịch sử các phiên làm việc).
|
||||
|
||||
**Quan trọng:** Không gian làm việc là thư mục làm việc mặc định (`cwd`), không phải là một môi trường bị khóa (sandbox) hoàn toàn. Các công cụ sẽ giải quyết các đường dẫn tương đối dựa trên thư mục này, nhưng các đường dẫn tuyệt đối vẫn có thể truy cập các nơi khác trên máy tính của bạn trừ khi bạn bật tính năng [Sandbox](../gateway/sandboxing.md).
|
||||
|
||||
## Vị trí mặc định
|
||||
|
||||
- Mặc định: `~/clawd`
|
||||
- Nếu bạn thiết lập `CLAWDBOT_PROFILE` khác mặc định, vị trí sẽ là `~/clawd-<tên-profile>`.
|
||||
- Bạn có thể ghi đè trong tệp `moltbot.json`:
|
||||
|
||||
```json
|
||||
{
|
||||
"agent": {
|
||||
"workspace": "~/clawd"
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
## Bản đồ các tệp tin trong không gian làm việc
|
||||
|
||||
Đây là các tệp tiêu chuẩn mà Moltbot mong đợi có bên trong không gian làm việc:
|
||||
|
||||
- **`AGENTS.md`**: Chỉ dẫn vận hành cho Agent và cách nó nên sử dụng bộ nhớ. Thường chứa các quy tắc, mức độ ưu tiên và cách cư xử.
|
||||
- **`SOUL.md`**: Định nghĩa tính cách, giọng văn và các giới hạn đạo đức/hành vi.
|
||||
- **`USER.md`**: Thông tin về người dùng (là bạn) và cách Agent nên xưng hô.
|
||||
- **`IDENTITY.md`**: Tên của Agent, phong cách và biểu tượng đại diện. Thường được tạo trong lần chạy đầu tiên.
|
||||
- **`TOOLS.md`**: Các ghi chú về công cụ cục bộ của bạn. Đây chỉ là tài liệu hướng dẫn cho Agent, không dùng để bật/tắt công cụ.
|
||||
- **`HEARTBEAT.md`**: (Tùy chọn) Danh sách kiểm tra ngắn gọn cho các lượt chạy tự động (heartbeat).
|
||||
- **`BOOTSTRAP.md`**: Quy trình cho lần đầu tiên sử dụng. Sẽ biến mất sau khi hoàn thành.
|
||||
- **`memory/YYYY-MM-DD.md`**: Nhật ký bộ nhớ hàng ngày. Khuyên dùng Agent nên đọc dữ liệu hôm nay và hôm qua khi bắt đầu phiên mới.
|
||||
|
||||
Chi tiết về bộ nhớ: [Bộ nhớ Agent](./memory.vi.md).
|
||||
|
||||
## Những gì KHÔNG nằm trong không gian làm việc
|
||||
|
||||
Các thành phần sau nằm trong `~/.clawdbot/` và **KHÔNG** nên được đưa vào kho lưu trữ (Git) của không gian làm việc:
|
||||
- Cấu hình Gateway (`moltbot.json`).
|
||||
- Thông tin xác thực (token, mã API).
|
||||
- Lịch sử trò chuyện của các phiên làm việc.
|
||||
|
||||
## Sao lưu bằng Git (Khuyên dùng, chế độ Riêng tư)
|
||||
|
||||
Hãy coi không gian làm việc là bộ não riêng tư của bạn. Bạn nên đưa nó vào một kho lưu trữ Git **bí mật (private)** để có thể khôi phục khi cần.
|
||||
|
||||
### 1) Khởi tạo kho lưu trữ
|
||||
```bash
|
||||
cd ~/clawd
|
||||
git init
|
||||
git add .
|
||||
git commit -m "Khởi tạo không gian làm việc Agent"
|
||||
```
|
||||
|
||||
### 2) Thêm máy chủ lưu trữ (Ví dụ: GitHub)
|
||||
1. Tạo một repository mới trên GitHub ở chế độ **Private**.
|
||||
2. Thêm địa chỉ và đẩy dữ liệu lên:
|
||||
```bash
|
||||
git remote add origin <địa-chỉ-github-cua-ban>
|
||||
git push -u origin main
|
||||
```
|
||||
|
||||
**LƯU Ý QUAN TRỌNG:** Đừng bao giờ lưu mật khẩu hay mã API vào các tệp tin trong không gian làm việc, dù kho lưu trữ của bạn là riêng tư.
|
||||
|
||||
---
|
||||
Tài liệu liên quan: [Cấu hình Gateway](../gateway/configuration.vi.md), [Định tuyến kênh](./channel-routing.vi.md).
|
||||
68
translation/vietnamese/docs/concepts/agent.vi.md
Normal file
68
translation/vietnamese/docs/concepts/agent.vi.md
Normal file
@ -0,0 +1,68 @@
|
||||
---
|
||||
summary: "Trình thực thi Agent (nhúng p-mono), quy ước không gian làm việc và khởi tạo phiên làm việc"
|
||||
read_when:
|
||||
- Bạn muốn thay đổi trình thực thi Agent, quy trình khởi tạo không gian làm việc hoặc hành vi phiên làm việc
|
||||
---
|
||||
|
||||
# Trình thực thi Agent (Runtime) 🤖
|
||||
|
||||
Moltbot sử dụng một trình thực thi Agent duy nhất được nhúng bên trong, phát triển dựa trên nền tảng **p-mono**.
|
||||
|
||||
## Không gian làm việc (Workspace - Bắt buộc)
|
||||
|
||||
Moltbot sử dụng một thư mục không gian làm việc duy nhất (`agents.defaults.workspace`) làm thư mục làm việc chính (`cwd`) cho mọi công cụ và ngữ cảnh của Agent.
|
||||
|
||||
Khuyên dùng: Sử dụng lệnh `moltbot setup` để tạo tệp cấu hình `~/.clawdbot/moltbot.json` (nếu chưa có) và khởi tạo các tệp tin trong không gian làm việc.
|
||||
|
||||
Hướng dẫn chi tiết về sơ đồ thư mục và sao lưu: [Không gian làm việc của Agent](./agent-workspace.vi.md)
|
||||
|
||||
Nếu tính năng **sandbox** được bật (`agents.defaults.sandbox`), các phiên làm việc không phải chính (non-main) có thể ghi đè thư mục này bằng các không gian làm việc riêng biệt cho từng phiên (xem thêm tại [Cấu hình Gateway](../gateway/configuration.vi.md)).
|
||||
|
||||
## Các tệp khởi tạo (Bootstrap files)
|
||||
|
||||
Bên trong thư mục `agents.defaults.workspace`, Moltbot mong đợi các tệp tin có thể chỉnh sửa như sau:
|
||||
- `AGENTS.md` — Chỉ dẫn hoạt động + "bộ nhớ" của Agent.
|
||||
- `SOUL.md` — Tính cách, giới hạn và văn phong giao tiếp.
|
||||
- `TOOLS.md` — Các chú thích về công cụ do người dùng duy trì (ví dụ: các quy ước sử dụng công cụ).
|
||||
- `BOOTSTRAP.md` — Quy trình "nghi lễ" cho lần chạy đầu tiên (sẽ bị xóa sau khi hoàn thành).
|
||||
- `IDENTITY.md` — Tên, phong cách và biểu tượng emoji của Agent.
|
||||
- `USER.md` — Hồ sơ người dùng và cách Agent nên xưng hô với bạn.
|
||||
|
||||
Tại lượt gửi đầu tiên của một phiên làm việc mới, Moltbot sẽ nạp nội dung của các tệp này trực tiếp vào ngữ cảnh của Agent.
|
||||
|
||||
Các tệp trống sẽ bị bỏ qua. Các tệp quá lớn sẽ được cắt bớt và chèn dấu đánh dấu để giữ cho câu lệnh (prompt) luôn gọn gàng.
|
||||
|
||||
Nếu thiếu tệp, Moltbot sẽ chèn một dòng đánh dấu "tệp bị thiếu" (lệnh `moltbot setup` sẽ giúp bạn tạo các tệp mẫu mặc định an toàn).
|
||||
|
||||
## Công cụ tích hợp sẵn
|
||||
|
||||
Các công cụ cốt lõi (đọc/thực thi/chỉnh sửa/ghi file và các công cụ hệ thống liên quan) luôn sẵn sàng sử dụng, tùy thuộc vào chính sách phân quyền công cụ. Tệp `TOOLS.md` **không** dùng để bật/tắt công cụ; nó chỉ là tài liệu chỉ dẫn cho Agent biết *bạn* muốn chúng được sử dụng như thế nào.
|
||||
|
||||
## Các kỹ năng (Skills)
|
||||
|
||||
Moltbot tải các kỹ năng từ ba vị trí (nếu trùng tên, không gian làm việc sẽ được ưu tiên):
|
||||
- Mặc định (đi kèm bộ cài đặt).
|
||||
- Cục bộ: `~/.clawdbot/skills`.
|
||||
- Không gian làm việc: `<workspace>/skills`.
|
||||
|
||||
## Phiên làm việc (Sessions)
|
||||
|
||||
Lịch sử các phiên làm việc được lưu trữ dưới dạng JSONL tại:
|
||||
`~/.clawdbot/agents/<agentId>/sessions/<SessionId>.jsonl`
|
||||
|
||||
ID phiên làm việc là cố định và do Moltbot tự động chọn. Các thư mục phiên làm việc từ các phiên bản Pi/Tau cũ sẽ **không** được sử dụng.
|
||||
|
||||
## Điều hướng khi đang truyền tin (Steering while streaming)
|
||||
|
||||
Khi chế độ hàng đợi là `steer`, các tin nhắn mới gửi đến sẽ được chèn trực tiếp vào lượt chạy hiện tại. Hàng đợi được kiểm tra **sau mỗi lần gọi công cụ**; nếu có tin nhắn mới, các công cụ còn lại trong thông điệp của Agent sẽ bị bỏ qua (trả về lỗi "Bỏ qua do có tin nhắn chờ từ người dùng"), sau đó tin nhắn mới từ người dùng sẽ được chèn vào trước khi Agent đưa ra phản hồi tiếp theo.
|
||||
|
||||
Các chi tiết khác: [Truyền tin & Cắt đoạn (Streaming)](./streaming.vi.md).
|
||||
|
||||
## Cấu hình (Tối thiểu)
|
||||
|
||||
Để hệ thống hoạt động, bạn cần thiết lập ít nhất:
|
||||
- `agents.defaults.workspace`: Đường dẫn không gian làm việc.
|
||||
- `channels.whatsapp.allowFrom`: (Khuyên dùng mạnh mẽ) Danh sách số điện thoại được phép điều khiển.
|
||||
|
||||
---
|
||||
*Tiếp theo: [Trò chuyện nhóm](./group-messages.vi.md)* 🦞
|
||||
93
translation/vietnamese/docs/concepts/architecture.vi.md
Normal file
93
translation/vietnamese/docs/concepts/architecture.vi.md
Normal file
@ -0,0 +1,93 @@
|
||||
---
|
||||
summary: "Kiến trúc Gateway WebSocket, các thành phần và luồng hoạt động của ứng dụng khách (client)"
|
||||
read_when:
|
||||
- Bạn đang làm việc với giao thức Gateway, các ứng dụng khách hoặc phương thức truyền tải dữ liệu
|
||||
---
|
||||
|
||||
# Kiến trúc Gateway
|
||||
|
||||
Cập nhật lần cuối: 22/01/2026
|
||||
|
||||
## Tổng quan
|
||||
|
||||
- Một tiến trình **Gateway** duy nhất chạy nền, quản lý tất cả các bề mặt nhắn tin (WhatsApp qua Baileys, Telegram qua grammY, Slack, Discord, Signal, iMessage, WebChat).
|
||||
- Các ứng dụng khách điều khiển (ứng dụng macOS, CLI, giao diện web, hệ thống tự động hóa) kết nối tới Gateway thông qua **WebSocket** trên địa chỉ host đã cấu hình (mặc định là `127.0.0.1:18789`).
|
||||
- Các **Node** (trên máy macOS/iOS/Android/không giao diện) cũng kết nối qua **WebSocket**, nhưng khai báo vai trò là `role: node` với các khả năng và lệnh cụ thể.
|
||||
- Chỉ có tối đa một Gateway trên mỗi máy chủ; đây là nơi duy nhất mở phiên làm việc WhatsApp.
|
||||
- Một **máy chủ canvas** (mặc định cổng `18793`) cung cấp HTML có thể chỉnh sửa bởi Agent và giao diện A2UI.
|
||||
|
||||
## Thành phần và Luồng hoạt động
|
||||
|
||||
### Gateway (dịch vụ chạy ngầm - daemon)
|
||||
- Duy trì kết nối với các nhà cung cấp chat (providers).
|
||||
- Cung cấp API WebSocket có kiểu dữ liệu rõ ràng (yêu cầu, phản hồi, sự kiện đẩy từ máy chủ).
|
||||
- Kiểm tra tính hợp lệ của các khung dữ liệu (frames) đến dựa trên JSON Schema.
|
||||
- Phát ra các sự kiện như: `agent`, `chat`, `presence`, `health`, `heartbeat`, `cron`.
|
||||
|
||||
### Ứng dụng khách (Client - Ứng dụng Mac / CLI / Web quản trị)
|
||||
- Mỗi ứng dụng khách sử dụng một kết nối WebSocket duy nhất.
|
||||
- Gửi các gói yêu cầu (`health`, `status`, `send`, `agent`, `system-presence`).
|
||||
- Đăng ký nhận các sự kiện (`tick`, `agent`, `presence`, `shutdown`).
|
||||
|
||||
### Các Node (Node - macOS / iOS / Android / Headless)
|
||||
- Kết nối tới **cùng một máy chủ WebSocket** với vai trò `role: node`.
|
||||
- Cung cấp định danh thiết bị khi kết nối; việc ghép nối dựa trên **thiết bị** (vai trò `node`) và được phê duyệt trong kho lưu trữ ghép nối thiết bị.
|
||||
- Cung cấp các lệnh như `canvas.*`, `camera.*`, `screen.record`, `location.get`.
|
||||
|
||||
Chi tiết giao thức:
|
||||
- [Giao thức Gateway](../gateway/protocol.vi.md)
|
||||
|
||||
### WebChat
|
||||
- Giao diện người dùng tĩnh, sử dụng API WebSocket của Gateway để xem lịch sử chat và gửi tin nhắn.
|
||||
- Trong các thiết lập từ xa, WebChat kết nối thông qua cùng một đường truyền tunnel SSH hoặc Tailscale như các ứng dụng khách khác.
|
||||
|
||||
## Vòng đời kết nối (Dành cho một client đơn lẻ)
|
||||
|
||||
```
|
||||
Ứng dụng khách (Client) Gateway
|
||||
| |
|
||||
|---- yêu cầu:connect ---------->|
|
||||
|<------ phản hồi (ok) ----------| (hoặc phản hồi lỗi + đóng kết nối)
|
||||
| (dữ liệu hello-ok kèm ảnh chụp trạng thái: hiện diện + sức khỏe)
|
||||
| |
|
||||
|<------ sự kiện:presence -------|
|
||||
|<------ sự kiện:tick -----------|
|
||||
| |
|
||||
|------- yêu cầu:agent ---------->|
|
||||
|<------ phản hồi:agent ---------| (Xác nhận: {runId, status: "accepted"})
|
||||
|<------ sự kiện:agent ----------| (Đang truyền tin - streaming)
|
||||
|<------ phản hồi:agent ---------| (Kết thúc: {runId, status, summary})
|
||||
| |
|
||||
```
|
||||
|
||||
## Giao thức truyền tin (Tóm tắt)
|
||||
|
||||
- Phương thức truyền tải: WebSocket, các khung văn bản với dữ liệu JSON.
|
||||
- Khung dữ liệu đầu tiên **phải** là `connect`.
|
||||
- Sau bước bắt tay (handshake):
|
||||
- Yêu cầu (Requests): `{type:"req", id, method, params}` → `{type:"res", id, ok, payload|error}`
|
||||
- Sự kiện (Events): `{type:"event", event, payload, seq?, stateVersion?}`
|
||||
- Nếu `CLAWDBOT_GATEWAY_TOKEN` (hoặc cờ `--token`) được thiết lập, tham số `connect.params.auth.token` phải khớp, nếu không kết nối sẽ bị đóng.
|
||||
- Khóa phi biến (Idempotency keys) là bắt buộc đối với các phương thức có tác động thay đổi dữ liệu (`send`, `agent`) để có thể thử lại an toàn; máy chủ sẽ giữ một bộ nhớ đệm ngắn hạn để chống trùng lặp.
|
||||
|
||||
## Ghép nối & Tin cậy cục bộ
|
||||
|
||||
- Tất cả các khách WebSocket (người vận hành + các node) đều phải gửi **định danh thiết bị** khi `connect`.
|
||||
- Các ID thiết bị mới yêu cầu phê duyệt ghép nối; Gateway sẽ cấp một **token thiết bị** cho các lần kết nối sau.
|
||||
- Các kết nối **cục bộ** (truy cập qua loopback hoặc địa chỉ Tailscale của chính máy chủ đó) có thể được tự động phê duyệt để trải nghiệm người dùng trên cùng một máy được mượt mà.
|
||||
- Các kết nối **không cục bộ** phải ký xác nhận `connect.challenge` và yêu cầu phê duyệt thủ công rõ ràng.
|
||||
- Xác thực Gateway (`gateway.auth.*`) vẫn áp dụng cho **tất cả** các kết nối, dù là tại chỗ hay từ xa.
|
||||
|
||||
Chi tiết: [Giao thức Gateway](../gateway/protocol.vi.md), [Ghép nối](../start/pairing.vi.md), [Bảo mật](../gateway/security/index.vi.md).
|
||||
|
||||
## Truy cập từ xa
|
||||
|
||||
- Cách khuyên dùng: Tailscale hoặc VPN.
|
||||
- Cách thay thế: Tunnel SSH
|
||||
```bash
|
||||
ssh -N -L 18789:127.0.0.1:18789 user@host
|
||||
```
|
||||
- Các bước bắt tay và mã token xác thực vẫn áp dụng tương tự qua đường truyền tunnel.
|
||||
|
||||
---
|
||||
Tài liệu liên quan: [Cấu hình Gateway](../gateway/configuration.vi.md), [Xử lý lỗi](../gateway/troubleshooting.vi.md).
|
||||
54
translation/vietnamese/docs/concepts/channel-routing.vi.md
Normal file
54
translation/vietnamese/docs/concepts/channel-routing.vi.md
Normal file
@ -0,0 +1,54 @@
|
||||
---
|
||||
summary: "Quy tắc định tuyến theo từng kênh (WhatsApp, Telegram, Discord, Slack) và ngữ cảnh chia sẻ"
|
||||
read_when:
|
||||
- Bạn muốn thay đổi cách Agent phản hồi trên các kênh chat khác nhau
|
||||
---
|
||||
|
||||
# Kênh & Định tuyến (Channels & Routing)
|
||||
|
||||
Moltbot thực hiện định tuyến các câu trả lời **về đúng kênh nơi tin nhắn gốc được gửi đến**. Mô hình AI không tự chọn kênh; việc định tuyến là cố định và được kiểm soát bởi cấu hình hệ thống của bạn.
|
||||
|
||||
## Các thuật ngữ chính
|
||||
|
||||
- **Channel (Kênh)**: `whatsapp`, `telegram`, `discord`, `slack`, `webchat`, v.v.
|
||||
- **AccountId**: Tài khoản cụ thể trên từng kênh.
|
||||
- **AgentId**: Một thực thể Agent có không gian làm việc và bộ nhớ riêng biệt.
|
||||
- **SessionKey**: Khóa định danh phiên làm việc, dùng để lưu trữ ngữ cảnh và kiểm soát việc chạy tuần tự.
|
||||
|
||||
## Cấu trúc khóa phiên làm việc (Session Key)
|
||||
|
||||
Tin nhắn trực tiếp (DM) thường gộp chung về phiên làm việc **chính (main)** của Agent:
|
||||
- `agent:<agentId>:main` (Mặc định: `agent:main:main`)
|
||||
|
||||
Các nhóm và kênh cộng đồng sẽ được cách ly riêng:
|
||||
- Nhóm: `agent:<agentId>:<channel>:group:<id>`
|
||||
- Kênh/Phòng chat: `agent:<agentId>:<channel>:channel:<id>`
|
||||
|
||||
Ví dụ: `agent:main:whatsapp:group:120363424282127706@g.us`
|
||||
|
||||
## Quy tắc định tuyến (Cách chọn Agent)
|
||||
|
||||
Hệ thống sẽ chọn **duy nhất một Agent** cho mỗi tin nhắn đến dựa trên thứ tự ưu tiên:
|
||||
|
||||
1. **Khớp chính xác (Exact match)**: Dựa trên ID nhóm hoặc ID người dùng cụ thể.
|
||||
2. **Khớp theo máy chủ (Guild match)**: Dành cho Discord.
|
||||
3. **Khớp theo tài khoản (Account match)**: Dành cho các tài khoản cụ thể trong một ứng dụng.
|
||||
4. **Khớp theo kênh (Channel match)**: Bất kỳ tin nhắn nào đến từ WhatsApp, Telegram, v.v.
|
||||
5. **Agent mặc định**: Lựa chọn cuối cùng nếu không khớp các quy tắc trên (thường là `main`).
|
||||
|
||||
Agent được chọn sẽ quyết định không gian làm việc và lịch sử bộ nhớ nào sẽ được đem vào cuộc trò chuyện.
|
||||
|
||||
## Nhóm phát tin (Broadcast Groups)
|
||||
|
||||
Nhóm phát tin cho phép bạn chạy **nhiều Agent cùng lúc** cho cùng một cuộc trò chuyện. Điều này thường dùng trong các nhóm làm việc chung cần nhiều chuyên gia AI tư vấn cùng lúc.
|
||||
|
||||
Xem chi tiết tại: [Nhóm phát tin (Broadcast Groups)](../broadcast-groups.vi.md).
|
||||
|
||||
## Lưu trữ phiên làm việc
|
||||
|
||||
Dữ liệu được lưu tại thư mục trạng thái của hệ thống (mặc định là `~/.clawdbot`):
|
||||
- `~/.clawdbot/agents/<agentId>/sessions/sessions.json`
|
||||
- Lịch sử chat (transcripts) nằm ngay cạnh tệp cấu hình này dưới dạng JSONL.
|
||||
|
||||
---
|
||||
Tài liệu liên quan: [Điều phối đa Agent](./multi-agent.vi.md), [Cấu hình Gateway](../gateway/configuration.vi.md).
|
||||
39
translation/vietnamese/docs/concepts/compaction.vi.md
Normal file
39
translation/vietnamese/docs/concepts/compaction.vi.md
Normal file
@ -0,0 +1,39 @@
|
||||
---
|
||||
summary: "Cửa sổ ngữ cảnh và Nén ngữ cảnh: Cách Moltbot giữ cho các phiên làm việc luôn nằm trong giới hạn của mô hình AI"
|
||||
read_when:
|
||||
- Bạn muốn tìm hiểu về cơ chế nén tự động và lệnh /compact
|
||||
- Bạn đang gặp lỗi về giới hạn ngữ cảnh khi trò chuyện quá dài
|
||||
---
|
||||
|
||||
# Cửa sổ ngữ cảnh & Nén ngữ cảnh
|
||||
|
||||
Mỗi mô hình AI đều có một **cửa sổ ngữ cảnh** (số lượng Token tối đa mà nó có thể "nhìn thấy" cùng một lúc). Các cuộc trò chuyện kéo dài sẽ tích lũy tin nhắn và kết quả của công cụ; khi cửa sổ này bị lấp đầy, Moltbot sẽ thực hiện **nén ngữ cảnh (compaction)** các tin nhắn cũ để nhường chỗ cho dữ liệu mới.
|
||||
|
||||
## Nén ngữ cảnh là gì?
|
||||
Cơ chế này sẽ **tóm tắt toàn bộ lịch sử trò chuyện cũ** thành một mục tóm tắt ngắn gọn và giữ nguyên các tin nhắn gần đây. Bản tóm tắt này được lưu trực tiếp vào lịch sử phiên làm việc (JSONL), nên các yêu cầu sau này sẽ sử dụng:
|
||||
- Bản tóm tắt ngữ cảnh.
|
||||
- Các tin nhắn mới sau thời điểm nén.
|
||||
|
||||
## Nén tự động (Mặc định bật)
|
||||
Khi một phiên làm việc sắp đạt đến giới hạn của mô hình, Moltbot sẽ tự động thực hiện nén và thử lại yêu cầu của bạn bằng ngữ cảnh đã được tinh gọn.
|
||||
|
||||
Bạn sẽ thấy thông báo:
|
||||
- `🧹 Auto-compaction complete` (trong chế độ hiển thị chi tiết - verbose).
|
||||
- Lệnh `/status` sẽ hiển thị `🧹 Compactions: <số lần>`.
|
||||
|
||||
Trước khi nén, Moltbot có thể thực hiện một lượt **đẩy dữ liệu vào bộ nhớ (memory flush)** để lưu các thông tin quan trọng vào đĩa cứng. Xem thêm tại [Bộ nhớ Agent](./memory.vi.md).
|
||||
|
||||
## Nén thủ công
|
||||
Bạn có thể gõ lệnh `/compact` (có kèm theo chỉ dẫn nếu muốn) để ép buộc hệ thống thực hiện nén ngay lập tức:
|
||||
```
|
||||
/compact Hãy tập trung vào các quyết định quan trọng và những câu hỏi chưa có lời giải.
|
||||
```
|
||||
|
||||
## Phân biệt Nén và Cắt tỉa (Pruning)
|
||||
- **Nén (Compaction)**: Tóm tắt nội dung và **lưu vĩnh viễn** vào lịch sử chat.
|
||||
- **Cắt tỉa (Session pruning)**: Chỉ tạm thời xóa bớt các **kết quả của công cụ** quá dài ra khỏi bộ nhớ trong lúc chạy (không lưu đè lên lịch sử).
|
||||
|
||||
Xem chi tiết tại [Cắt tỉa phiên làm việc](./session-pruning.vi.md).
|
||||
|
||||
---
|
||||
Tài liệu liên quan: [Ngữ cảnh (Context)](./context.vi.md), [Xử lý phiên làm việc](./session.vi.md).
|
||||
56
translation/vietnamese/docs/concepts/context.vi.md
Normal file
56
translation/vietnamese/docs/concepts/context.vi.md
Normal file
@ -0,0 +1,56 @@
|
||||
---
|
||||
summary: "Ngữ cảnh: Những gì mô hình AI nhìn thấy, cách nó được xây dựng và cách kiểm tra thông tin"
|
||||
read_when:
|
||||
- Bạn muốn hiểu rõ khái niệm “ngữ cảnh” trong Moltbot
|
||||
- Bạn đang gỡ lỗi tại sao Agent nhớ (hoặc quên) một thông tin gì đó
|
||||
- Bạn muốn tối ưu hóa dung lượng ngữ cảnh để tiết kiệm chi phí
|
||||
---
|
||||
|
||||
# Ngữ cảnh (Context)
|
||||
|
||||
“Ngữ cảnh” là **tất cả mọi thứ mà Moltbot gửi đến cho mô hình AI trong một lượt chạy**. Nó bị giới hạn bởi **cửa sổ ngữ cảnh** (giới hạn Token) của từng mô hình.
|
||||
|
||||
Cấu trúc cơ bản của ngữ cảnh:
|
||||
- **Câu lệnh hệ thống (System prompt)**: Các quy tắc, danh sách công cụ, kỹ năng, thời gian và các tệp khởi tạo từ không gian làm việc.
|
||||
- **Lịch sử trò chuyện**: Tin nhắn của bạn và phản hồi của Agent trong phiên làm việc này.
|
||||
- **Kết quả gọi công cụ & Tệp đính kèm**: Kết quả thực thi lệnh, nội dung file đã đọc, hình ảnh/âm thanh, v.v.
|
||||
|
||||
Ngữ cảnh *không giống* với “bộ nhớ” (memory): bộ nhớ được lưu trên đĩa và có thể tải lại sau; còn ngữ cảnh là những gì nằm bên trong cửa sổ làm việc hiện tại của mô hình.
|
||||
|
||||
## Kiểm tra ngữ cảnh nhanh
|
||||
|
||||
- `/status`: Xem nhanh "cửa sổ ngữ cảnh đã đầy bao nhiêu?" và các cài đặt phiên.
|
||||
- `/context list`: Xem danh sách các thành phần được nạp vào và kích thước ước tính của chúng.
|
||||
- `/context detail`: Xem chi tiết sâu hơn về kích thước các schema công cụ, các kỹ năng và câu lệnh hệ thống.
|
||||
- `/compact`: Tóm tắt lịch sử cũ để giải phóng không gian cho cửa sổ ngữ cảnh.
|
||||
|
||||
## Moltbot xây dựng câu lệnh hệ thống như thế nào?
|
||||
|
||||
Câu lệnh hệ thống do Moltbot quản lý và được xây dựng lại sau mỗi lần chạy. Nó bao gồm:
|
||||
- Danh sách công cụ + mô tả ngắn.
|
||||
- Danh sách kỹ năng (chỉ lấy mô tả).
|
||||
- Vị trí không gian làm việc.
|
||||
- Thời gian (giờ quốc tế + giờ địa phương của người dùng).
|
||||
- Thông tin về hệ điều hành, máy chủ, mô hình AI.
|
||||
- Các tệp khởi tạo quan trọng (`AGENTS.md`, `SOUL.md`, `USER.md`, `IDENTITY.md`, v.v.).
|
||||
|
||||
## Các tệp Ngữ cảnh Dự án
|
||||
|
||||
Mặc định, Moltbot sẽ nạp các tệp sau từ không gian làm việc của bạn:
|
||||
- `AGENTS.md`: Chỉ dẫn vận hành Agent.
|
||||
- `SOUL.md`: Tính cách và ranh giới hành vi.
|
||||
- `TOOLS.md`: Các lưu ý về cách dùng công cụ.
|
||||
- `IDENTITY.md`: Tên và biểu tượng của Agent.
|
||||
- `USER.md`: Thông tin về chính bạn.
|
||||
- `HEARTBEAT.md`: Chỉ dẫn cho các lượt chạy tự động.
|
||||
|
||||
Các tệp quá lớn sẽ bị cắt bớt dựa trên tham số `agents.defaults.bootstrapMaxChars` (mặc định là 20.000 ký tự). Bạn có thể dùng lệnh `/context` để biết tệp nào đang bị cắt bớt.
|
||||
|
||||
## Lệnh Slash và Chỉ dẫn (Directives)
|
||||
|
||||
Các lệnh bắt đầu bằng dấu `/` được Gateway xử lý trước khi gửi đến mô hình:
|
||||
- **Lệnh độc lập**: Một tin nhắn chỉ có `/...` sẽ được thực thi như một lệnh hệ thống.
|
||||
- **Chỉ dẫn (Directives)**: Các từ khóa như `/think`, `/verbose`, `/model` sẽ được Gateway lọc bỏ và áp dụng cài đặt tương ứng thay vì gửi cho mô hình xem. Bạn có thể dùng chúng độc lập hoặc chèn vào giữa tin nhắn để điều chỉnh hành vi cho riêng lượt chạy đó.
|
||||
|
||||
---
|
||||
Tài liệu liên quan: [Lệnh Slash](../../tools/slash-commands.md), [Sử dụng Token](../../token-use.vi.md), [Nén ngữ cảnh](./compaction.vi.md).
|
||||
60
translation/vietnamese/docs/concepts/group-messages.vi.md
Normal file
60
translation/vietnamese/docs/concepts/group-messages.vi.md
Normal file
@ -0,0 +1,60 @@
|
||||
---
|
||||
summary: "Hành vi và cấu hình cho việc xử lý tin nhắn nhóm trên WhatsApp (Mẫu nhắc tên được chia sẻ trên mọi nền tảng)"
|
||||
read_when:
|
||||
- Bạn muốn cấu hình cách Agent hoạt động trong nhóm hoặc quy tắc nhắc tên (@mention)
|
||||
---
|
||||
|
||||
# Tin nhắn nhóm (WhatsApp Web)
|
||||
|
||||
Mục tiêu: Cho phép Agent tham gia vào các nhóm WhatsApp, chỉ phản hồi khi được gọi tên (@-mention) và giữ cho các cuộc hội thoại trong nhóm hoàn toàn tách biệt với các cuộc trò chuyện cá nhân của bạn.
|
||||
|
||||
Lưu ý: Danh sách các mẫu nhắc tên (`mentionPatterns`) hiện được chia sẻ dùng chung cho cả Telegram, Discord, Slack và iMessage.
|
||||
|
||||
## Các tính năng đã triển khai
|
||||
|
||||
- **Chế độ kích hoạt**: Bao gồm `mention` (mặc định) hoặc `always`.
|
||||
- `mention`: Yêu cầu phải nhắc tên Agent (thông qua @-mention thật của WhatsApp, hoặc các mẫu regex, hoặc số điện thoại của Agent).
|
||||
- `always`: Agent sẽ theo dõi tất cả tin nhắn nhưng chỉ phản hồi khi thấy có thông tin giá trị cần đóng góp; nếu không nó sẽ im lặng (trả về mã `NO_REPLY`).
|
||||
- Bạn có thể chuyển đổi giữa các chế độ này bằng lệnh `/activation`.
|
||||
|
||||
- **Chính sách nhóm (Group policy)**: Kiểm soát việc có chấp nhận tin nhắn từ nhóm hay không (`open` - mở cho tất cả, `disabled` - tắt hoàn toàn, hoặc `allowlist` - chỉ cho phép các nhóm nằm trong danh sách trắng).
|
||||
|
||||
- **Phiên làm việc riêng cho từng nhóm**: Các phiên làm việc nhóm hoàn toàn độc lập với các phiên DM cá nhân. Các lệnh như `/verbose on` hay `/think high` gửi trong nhóm sẽ chỉ có tác dụng trong nhóm đó, không ảnh hưởng đến bộ não của Agent ở nơi khác. Các lượt chạy tự động (heartbeats) sẽ không được thực hiện trong các nhóm chat để tránh làm phiền.
|
||||
|
||||
- **Nạp ngữ cảnh**: Các tin nhắn chờ trong nhóm chưa được phản hồi sẽ được gộp lại và chèn vào ngữ cảnh dưới nhãn `[Chat messages since your last reply - for context]` (Tin nhắn từ lần trả lời cuối - để lấy ngữ cảnh). Điều này giúp Agent nắm bắt được toàn bộ câu chuyện trong nhóm trước khi đưa ra câu trả lời chính thức cho tin nhắn hiện tại.
|
||||
|
||||
- **Định danh người gửi**: Mỗi đoạn hội thoại trong nhóm đều được đính kèm nhãn `[from: Tên người gửi (+Số điện thoại)]` ở cuối để Agent biết chính xác ai đang nói chuyện với mình.
|
||||
|
||||
## Ví dụ cấu hình (Mẫu nhắc tên)
|
||||
|
||||
Thêm khối `groupChat` vào file `moltbot.json` để Agent có thể nhận diện tên mình ngay cả khi ứng dụng chat lọc bỏ ký hiệu `@`:
|
||||
|
||||
```json
|
||||
{
|
||||
"agents": {
|
||||
"list": [
|
||||
{
|
||||
"id": "main",
|
||||
"groupChat": {
|
||||
"historyLimit": 50,
|
||||
"mentionPatterns": [
|
||||
"@?moltbot",
|
||||
"\\+?15555550123"
|
||||
]
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
## Lệnh kích hoạt (Dành cho chủ sở hữu)
|
||||
|
||||
Sử dụng lệnh sau trong nhóm chat:
|
||||
- `/activation mention`: Chỉ phản hồi khi được nhắc tên.
|
||||
- `/activation always`: Luôn luôn lắng nghe và phản hồi khi cần.
|
||||
|
||||
Chỉ người chủ (được khai báo trong danh sách `allowFrom`) mới có quyền thay đổi các cài đặt này.
|
||||
|
||||
---
|
||||
Tài liệu liên quan: [Cấu hình Nhóm (Groups)](./groups.vi.md), [Trạng thái hệ thống](../../cli/status.vi.md).
|
||||
52
translation/vietnamese/docs/concepts/groups.vi.md
Normal file
52
translation/vietnamese/docs/concepts/groups.vi.md
Normal file
@ -0,0 +1,52 @@
|
||||
---
|
||||
summary: "Hành vi trò chuyện nhóm trên các nền tảng (WhatsApp/Telegram/Discord/Slack/Signal/iMessage/Teams)"
|
||||
read_when:
|
||||
- Bạn muốn thay đổi cách Agent hoạt động trong nhóm hoặc thiết lập bộ lọc nhắc tên (@mention)
|
||||
---
|
||||
|
||||
# Quản lý Nhóm (Groups)
|
||||
|
||||
Moltbot xử lý các cuộc trò chuyện nhóm một cách nhất quán trên tất cả các nền tảng: WhatsApp, Telegram, Discord, Slack, Signal, iMessage và Microsoft Teams.
|
||||
|
||||
## Giới thiệu cơ bản
|
||||
|
||||
Moltbot "sống" ngay trên chính tài khoản nhắn tin cá nhân của bạn. Không có một tài khoản robot riêng biệt nào trong WhatsApp. Nếu **bạn** ở trong một nhóm, Moltbot có thể nhìn thấy nhóm đó và phản hồi tại đó.
|
||||
|
||||
Hành vi mặc định:
|
||||
- Các nhóm bị hạn chế (`groupPolicy: "allowlist"`).
|
||||
- Việc phản hồi yêu cầu phải nhắc tên (@mention) trừ khi bạn tắt bộ lọc này.
|
||||
|
||||
Nói cách khác: Những người dùng có trong danh sách trắng (allowlist) có thể gọi Moltbot hoạt động bằng cách nhắc tên nó.
|
||||
|
||||
## Quy trình xử lý tin nhắn nhóm
|
||||
|
||||
Hệ thống sẽ kiểm tra theo thứ tự:
|
||||
1. **Chính sách nhóm (`groupPolicy`)**: Có bị tắt (disabled) hay không?
|
||||
2. **Danh sách trắng (Allowlist)**: Nhóm này có được phép hoạt động không?
|
||||
3. **Bộ lọc nhắc tên (`requireMention`)**: Có yêu cầu nhắc tên không? Nếu có mà chưa nhắc tên, tin nhắn sẽ chỉ được lưu vào ngữ cảnh mà không phản hồi.
|
||||
|
||||
## Các kịch bản cấu hình phổ biến
|
||||
|
||||
| Mục tiêu | Cài đặt tương ứng |
|
||||
|------|-------------|
|
||||
| Cho phép mọi nhóm nhưng chỉ phản hồi khi được nhắc tên | `groups: { "*": { "requireMention": true } }` |
|
||||
| Tắt hoàn toàn việc phản hồi trong nhóm | `groupPolicy: "disabled"` |
|
||||
| Chỉ cho phép các nhóm cụ thể | `groups: { "<ID-nhóm>": { ... } }` (không dùng khóa `*`) |
|
||||
| Chỉ có mình bạn mới có quyền gọi Bot trong nhóm | `groupPolicy: "allowlist"`, `groupAllowFrom: ["+1555..."]` |
|
||||
|
||||
## Đặc quyền của chủ sở hữu (Owner)
|
||||
|
||||
Chủ sở hữu của Bot có thể thay đổi chế độ kích hoạt trong từng nhóm bằng lệnh:
|
||||
- `/activation mention`: Chỉ phản hồi khi được nhắc tên.
|
||||
- `/activation always`: Phản hồi mọi lúc khi thấy cần thiết.
|
||||
|
||||
Người chủ được xác định thông qua tham số `allowFrom` trong cấu hình kênh. Các lệnh này phải được gửi dưới dạng tin nhắn độc lập.
|
||||
|
||||
## Ghi chú cho từng kênh
|
||||
|
||||
- **WhatsApp**: Xem chi tiết tại [Tin nhắn nhóm WhatsApp](./group-messages.vi.md).
|
||||
- **Telegram**: Hỗ trợ các chủ đề (topics) trong nhóm Forum; mỗi chủ đề sẽ có một phiên làm việc riêng biệt.
|
||||
- **iMessage**: Ưu tiên sử dụng `chat_id:<id>` khi thực hiện các quy tắc định tuyến hoặc cho phép nhóm. Bạn có thể xem danh sách chat bằng lệnh `moltbot imsg chats`.
|
||||
|
||||
---
|
||||
Tài liệu liên quan: [Định tuyến kênh](./channel-routing.vi.md), [Cấu hình Gateway](../../gateway/configuration.vi.md).
|
||||
@ -0,0 +1,45 @@
|
||||
---
|
||||
summary: "Quy trình xử lý định dạng Markdown cho các kênh nhắn tin đầu ra"
|
||||
read_when:
|
||||
- Bạn đang thay đổi cách định dạng hoặc cắt nhỏ tin nhắn cho các kênh nhắn tin
|
||||
- Bạn muốn thêm một nhà cung cấp định dạng mới cho một kênh chat
|
||||
---
|
||||
|
||||
# Định dạng Markdown
|
||||
|
||||
Moltbot định dạng các nội dung Markdown đầu ra bằng cách chuyển đổi chúng thành một **cấu trúc dữ liệu trung gian (IR)** chung trước khi kết xuất (render) ra định dạng đặc thù của từng kênh. Cách tiếp cận này giúp giữ nguyên nội dung văn bản gốc trong khi vẫn mang theo các thông tin về phong cách và liên kết, giúp việc cắt nhỏ tin nhắn (chunking) được nhất quán trên mọi nền tảng.
|
||||
|
||||
## Mục tiêu
|
||||
|
||||
- **Tính nhất quán**: Chỉ cần một bước phân tích cú pháp nhưng có thể dùng cho nhiều bộ kết xuất khác nhau.
|
||||
- **Cắt nhỏ an toàn**: Chia văn bản thành các đoạn nhỏ trước khi kết xuất để đảm bảo các định dạng (như in đậm, in nghiêng) không bị lỗi khi nằm giữa các đoạn.
|
||||
- **Phù hợp với từng kênh**: Chuyển đổi cùng một cấu trúc IR sang định dạng mrkdwn của Slack, HTML của Telegram hay các phạm vi phong cách của Signal mà không cần phân tích lại Markdown.
|
||||
|
||||
## Quy trình (Pipeline)
|
||||
|
||||
1. **Phân tích Markdown thành IR**:
|
||||
- IR bao gồm văn bản thuần túy kèm các vùng phong cách (bold, italic, strike, code, spoiler) và các liên kết.
|
||||
- Các bảng (tables) chỉ được phân tích khi kênh chat đó hỗ trợ chuyển đổi bảng.
|
||||
2. **Cắt nhỏ IR (Ưu tiên định dạng)**:
|
||||
- Các vùng định dạng (như in đậm) sẽ được xử lý sao cho không bị ngắt giữa chừng khi chia tin nhắn.
|
||||
3. **Kết xuất theo từng kênh**:
|
||||
- **Slack**: Dùng thẻ mrkdwn (ví dụ: `<url|label>`).
|
||||
- **Telegram**: Dùng thẻ HTML (ví dụ: `<b>`, `<i>`, `<a href>`).
|
||||
- **Signal**: Văn bản thuần kèm các dải phong cách; liên kết được chuyển thành dạng `nhãn (url)`.
|
||||
|
||||
## Xử lý bảng (Tables)
|
||||
|
||||
Do các bảng Markdown không được hỗ trợ nhất quán trên mọi nền tảng chat, Moltbot cung cấp các chế độ chuyển đổi qua tham số `markdown.tables`:
|
||||
|
||||
- `code` (Mặc định): Hiển thị bảng dạng khối mã nguồn (thường dùng cho Slack, Discord).
|
||||
- `bullets`: Chuyển đổi mỗi hàng trong bảng thành một danh sách gạch đầu dòng (thường dùng cho WhatsApp, Signal).
|
||||
- `off`: Giữ nguyên văn bản bảng thô.
|
||||
|
||||
## Lưu ý về liên kết
|
||||
|
||||
- **Slack**: `[nhãn](url)` trở thành `<url|nhãn>`. Các URL trần sẽ được giữ nguyên.
|
||||
- **Telegram**: `[nhãn](url)` trở thành `<a href="url">nhãn</a>` (Chế độ HTML).
|
||||
- **Signal**: `[nhãn](url)` trở thành `nhãn (url)` trừ khi nhãn trùng với URL.
|
||||
|
||||
---
|
||||
Tài liệu liên quan: [Cắt nhỏ & Truyền tin](./streaming.vi.md), [Cấu hình hệ thống](../../gateway/configuration.vi.md).
|
||||
52
translation/vietnamese/docs/concepts/memory.vi.md
Normal file
52
translation/vietnamese/docs/concepts/memory.vi.md
Normal file
@ -0,0 +1,52 @@
|
||||
---
|
||||
summary: "Cơ chế hoạt động bộ nhớ của Moltbot (tệp không gian làm việc + tự động đẩy dữ liệu bộ nhớ)"
|
||||
read_when:
|
||||
- Bạn muốn tìm hiểu sơ đồ tệp bộ nhớ và quy trình làm việc
|
||||
- Bạn muốn điều chỉnh cơ chế đẩy dữ liệu trước khi nén ngữ cảnh
|
||||
---
|
||||
|
||||
# Bộ nhớ (Memory)
|
||||
|
||||
Bộ nhớ của Moltbot là **các tệp Markdown thuần túy nằm trong không gian làm việc của Agent**. Các tệp này là nguồn dữ liệu gốc duy nhất; Agent chỉ "nhớ" những gì đã được ghi xuống đĩa cứng.
|
||||
|
||||
Các công cụ tìm kiếm bộ nhớ được cung cấp bởi plugin bộ nhớ mặc định (`memory-core`).
|
||||
|
||||
## Các tệp bộ nhớ (Markdown)
|
||||
|
||||
Cấu trúc mặc định sử dụng hai lớp bộ nhớ:
|
||||
|
||||
- **`memory/YYYY-MM-DD.md`**: Nhật ký hàng ngày (chỉ ghi thêm). Agent sẽ đọc báo cáo hôm nay và hôm qua khi bắt đầu phiên làm việc.
|
||||
- **`MEMORY.md`**: (Tùy chọn) Bộ nhớ dài hạn được chọn lọc kỹ lưỡng. **Tệp này chỉ được nạp trong các phiên làm việc cá nhân, riêng tư** (không bao giờ nạp trong các nhóm chat).
|
||||
|
||||
Các tệp này nằm trong không gian làm việc (`agents.defaults.workspace`).
|
||||
|
||||
## Khi nào cần ghi vào bộ nhớ?
|
||||
|
||||
- Các quyết định, sở thích và sự thật quan trọng nên đưa vào `MEMORY.md`.
|
||||
- Các ghi chú hàng ngày và ngữ cảnh đang thực hiện nên đưa vào `memory/YYYY-MM-DD.md`.
|
||||
- Nếu bạn muốn Agent nhớ điều gì đó lâu dài, hãy **yêu cầu nó ghi lại** vào bộ nhớ thay vì chỉ nói suông.
|
||||
|
||||
## Tự động đẩy dữ liệu bộ nhớ (Memory Flush)
|
||||
|
||||
Khi một phiên làm việc **sắp đạt đến giới hạn nén ngữ cảnh**, Moltbot sẽ kích hoạt một **lượt chạy ngầm**. Lượt chạy này nhắc nhở Agent ghi lại các thông tin quan trọng vào bộ nhớ **trước khi** lịch sử chat bị nén lại.
|
||||
|
||||
Cơ chế này được điều khiển bởi tham số `agents.defaults.compaction.memoryFlush`. Thường thì lượt chạy này sẽ diễn ra âm thầm và người dùng sẽ không nhìn thấy bất kỳ phản hồi nào trong ô chat.
|
||||
|
||||
## Tìm kiếm bộ nhớ bằng Vector
|
||||
|
||||
Moltbot có thể xây dựng một chỉ mục vector nhỏ dựa trên các tệp `.md` trong bộ nhớ để thực hiện tìm kiếm ngữ nghĩa, giúp tìm thấy thông tin ngay cả khi cách dùng từ khác nhau.
|
||||
|
||||
- Mặc định tính năng này được bật.
|
||||
- Hệ thống sẽ theo dõi sự thay đổi của các tệp bộ nhớ để cập nhật chỉ mục.
|
||||
- Sử dụng nhà cung cấp dịch vụ nhúng (embeddings) như OpenAI hoặc Gemini để xử lý dữ liệu.
|
||||
|
||||
## Tìm kiếm hỗn hợp (Hybrid Search)
|
||||
|
||||
Moltbot kết hợp hai cơ chế tìm kiếm để đạt hiệu quả cao nhất:
|
||||
- **Vector similarity**: Tìm kiếm theo ý nghĩa (ví dụ: "máy chủ" và "server" được coi là giống nhau).
|
||||
- **BM25 keyword relevance**: Tìm kiếm chính xác theo từ khóa (ví dụ: số ID, tên biến, ký hiệu mã nguồn).
|
||||
|
||||
Sự kết hợp này giúp bạn tìm kiếm chính xác "cây kim trong đống cỏ" khi cần thông tin cụ thể (như mã lỗi), đồng thời vẫn hiểu được các câu hỏi bằng ngôn ngữ tự nhiên.
|
||||
|
||||
---
|
||||
Tài liệu liên quan: [Không gian làm việc của Agent](./agent-workspace.vi.md), [Nén ngữ cảnh](./compaction.vi.md).
|
||||
51
translation/vietnamese/docs/concepts/messages.vi.md
Normal file
51
translation/vietnamese/docs/concepts/messages.vi.md
Normal file
@ -0,0 +1,51 @@
|
||||
---
|
||||
summary: "Luồng tin nhắn, phiên làm việc, xếp hàng và hiển thị suy luận"
|
||||
read_when:
|
||||
- Bạn muốn giải thích cách các tin nhắn đến trở thành phản hồi của Agent
|
||||
- Bạn cần làm rõ về phiên làm việc, chế độ hàng đợi hoặc hành vi truyền tin
|
||||
---
|
||||
|
||||
# Tin nhắn (Messages)
|
||||
|
||||
Trang này tổng hợp cách Moltbot xử lý các tin nhắn đến, quản lý phiên làm việc, hàng đợi, truyền dữ liệu (streaming) và hiển thị quá trình suy luận của AI.
|
||||
|
||||
## Luồng tin nhắn (Cấp độ cao)
|
||||
|
||||
```
|
||||
Tin nhắn đến
|
||||
-> Định tuyến/Ghép nối -> Khóa phiên làm việc
|
||||
-> Hàng đợi (nếu đang có lượt chạy khác)
|
||||
-> Lượt chạy Agent (Truyền tin + Công cụ)
|
||||
-> Phản hồi đầu ra (Giới hạn kênh + Cắt nhỏ tin nhắn)
|
||||
```
|
||||
|
||||
Các cài đặt quan trọng nằm trong cấu hình:
|
||||
- `messages.*`: Cài đặt tiền tố, hàng đợi và hành vi trong nhóm.
|
||||
- `agents.defaults.*`: Cài đặt mặc định cho việc truyền tin theo khối và cắt nhỏ tin nhắn.
|
||||
|
||||
## Chống trùng lặp tin nhắn đến
|
||||
|
||||
Các kênh chat có thể gửi lại cùng một tin nhắn khi kết nối lại. Moltbot duy trì một bộ nhớ đệm ngắn hạn dựa trên ID tin nhắn để đảm bảo mỗi tin nhắn chỉ kích hoạt Agent một lần duy nhất.
|
||||
|
||||
## Gộp tin nhắn (Debouncing)
|
||||
|
||||
Khi bạn gửi nhiều tin nhắn liên tiếp một cách nhanh chóng, Moltbot có thể gộp chúng lại thành một lượt chạy duy nhất để tiết kiệm tài nguyên và trả lời mạch lạc hơn. Bạn có thể điều chỉnh thời gian chờ gộp bằng tham số `debounceMs`.
|
||||
|
||||
## Phiên làm việc và Thiết bị
|
||||
|
||||
Phiên làm việc thuộc quyền quản lý của Gateway, không phụ thuộc vào ứng dụng khách (client).
|
||||
- Chat cá nhân sẽ được gộp vào phiên làm việc chính (`main`) của Agent.
|
||||
- Các nhóm và kênh chat sẽ có các khóa phiên làm việc riêng biệt.
|
||||
- Lịch sử chat và dữ liệu phiên được lưu trữ trực tiếp trên máy chủ chạy Gateway.
|
||||
|
||||
Khuyên dùng: Bạn nên sử dụng một thiết bị chính cho các cuộc hội thoại dài để tránh việc ngữ cảnh bị phân tán.
|
||||
|
||||
## Hiển thị suy luận (Reasoning)
|
||||
|
||||
Moltbot có thể hiển thị hoặc ẩn quá trình suy nghĩ của mô hình AI:
|
||||
- Dùng lệnh `/reasoning on|off|stream` để điều khiển việc hiển thị.
|
||||
- Nội dung suy nghĩ vẫn được tính vào số lượng Token tiêu thụ.
|
||||
- Telegram hỗ trợ hiển thị luồng suy nghĩ ngay trong bóng bóng đang soạn thảo tin nhắn.
|
||||
|
||||
---
|
||||
Tài liệu liên quan: [Cấu hình Gateway](../../gateway/configuration.vi.md), [Quản lý Phiên](./session.vi.md).
|
||||
36
translation/vietnamese/docs/concepts/model-failover.vi.md
Normal file
36
translation/vietnamese/docs/concepts/model-failover.vi.md
Normal file
@ -0,0 +1,36 @@
|
||||
---
|
||||
summary: "Cách Moltbot luân chuyển các hồ sơ xác thực và dự phòng lỗi giữa các mô hình AI"
|
||||
read_when:
|
||||
- Bạn muốn chẩn đoán lỗi luân chuyển hồ sơ, thời gian chờ hoặc hành vi dự phòng của mô hình
|
||||
---
|
||||
|
||||
# Dự phòng lỗi mô hình (Failover)
|
||||
|
||||
Moltbot xử lý các lỗi xảy ra theo hai giai đoạn:
|
||||
1) **Luân chuyển hồ sơ xác thực**: Thử các tài khoản/khóa API khác nhau trong cùng một nhà cung cấp.
|
||||
2) **Dự phòng mô hình**: Chuyển sang mô hình tiếp theo trong danh sách `fallbacks` nếu nhà cung cấp hiện tại gặp sự cố hoàn toàn.
|
||||
|
||||
## Hồ sơ xác thực (Auth Profiles)
|
||||
|
||||
Moltbot sử dụng các **hồ sơ xác thực** cho cả khóa API và token OAuth.
|
||||
- Các bí mật được lưu tại `~/.clawdbot/agents/<agentId>/agent/auth-profiles.json`.
|
||||
- Các loại định danh: `api_key` (Khóa API) và `oauth` (Đăng nhập qua Google/Github/v.v.).
|
||||
|
||||
## Thứ tự luân chuyển
|
||||
|
||||
Khi một nhà cung cấp có nhiều hồ sơ xác thực, Moltbot sẽ chọn theo thứ tự:
|
||||
1. **Theo cấu hình cụ thể**: Tham số `auth.order`.
|
||||
2. **Loại hồ sơ**: Luôn ưu tiên **OAuth trước Khóa API**.
|
||||
3. **Thống kê sử dụng**: Hồ sơ nào lâu chưa dùng nhất sẽ được ưu tiên đưa lên đầu.
|
||||
4. **Hồ sơ bị lỗi/vô hiệu hóa** sẽ bị đẩy xuống cuối danh sách.
|
||||
|
||||
## Thời gian chờ (Cooldowns)
|
||||
|
||||
Khi một hồ sơ bị lỗi (lỗi xác thực, giới hạn băng thông - rate limit), Moltbot sẽ đưa nó vào trạng thái chờ và chuyển sang hồ sơ tiếp theo. Thời gian chờ sẽ tăng dần theo lũy kế (1 phút, 5 phút, 25 phút, tối đa 1 giờ).
|
||||
|
||||
## Vô hiệu hóa do thanh toán
|
||||
|
||||
Nếu gặp lỗi liên quan đến tài chính (như "hết tiền trong tài khoản" - insufficient credits), Moltbot sẽ coi đây là lỗi nghiêm trọng. Thay vì chỉ chờ một lát, hồ sơ đó sẽ bị **vô hiệu hóa** trong một khoảng thời gian dài (mặc định bắt đầu từ 5 giờ) trước khi hệ thống thử lại.
|
||||
|
||||
---
|
||||
Tài liệu liên quan: [Xác thực OAuth](./oauth.vi.md), [Quản lý mô hình](./models.vi.md).
|
||||
43
translation/vietnamese/docs/concepts/model-providers.vi.md
Normal file
43
translation/vietnamese/docs/concepts/model-providers.vi.md
Normal file
@ -0,0 +1,43 @@
|
||||
---
|
||||
summary: "Tổng quan về các nhà cung cấp mô hình AI kèm ví dụ cấu hình và lệnh CLI"
|
||||
read_when:
|
||||
- Bạn cần tham khảo cách thiết lập từng nhà cung cấp mô hình cụ thể
|
||||
---
|
||||
|
||||
# Nhà cung cấp mô hình (Providers)
|
||||
|
||||
Trang này đề cập đến các **nhà cung cấp mô hình ngôn ngữ (LLM Providers)** (không phải các kênh chat như WhatsApp/Telegram).
|
||||
|
||||
## Các quy tắc nhanh
|
||||
|
||||
- Tên mô hình sử dụng định dạng `nhà-cung-cấp/tên-mô hình` (ví dụ: `openai/gpt-4o`).
|
||||
- Bạn có thể dùng lệnh `moltbot onboard` để bắt đầu quá trình thiết lập tự động.
|
||||
|
||||
## Các nhà cung cấp hỗ trợ sẵn
|
||||
|
||||
Moltbot tích hợp sẵn danh mục các mô hình phổ biến nhất. Bạn chỉ cần nạp thông tin xác thực (Key hoặc OAuth) là có thể sử dụng ngay.
|
||||
|
||||
- **OpenAI**: Dùng biến môi trường `OPENAI_API_KEY`.
|
||||
- **Anthropic (Claude)**: Hỗ trợ cả Khóa API truyền thống và Token đăng nhập.
|
||||
- **Google Gemini**: Hỗ trợ qua API Key (`GEMINI_API_KEY`) hoặc đăng nhập OAuth qua Google Cloud/Antigravity.
|
||||
- **OpenRouter**: Một cổng trung gian cho phép truy cập hàng trăm mô hình khác nhau từ nhiều nhà cung cấp.
|
||||
|
||||
## Nhà cung cấp thông qua cấu hình tùy chỉnh
|
||||
|
||||
Nếu bạn muốn sử dụng các máy chủ riêng hoặc các dịch vụ tương thích với OpenAI (như vLLM, Ollama), bạn có thể cấu hình chúng trong phần `models.providers`.
|
||||
|
||||
### Ollama (Mô hình chạy cục bộ)
|
||||
Ollama là trình thực thi mô hình AI chạy ngay trên máy tính của bạn. Moltbot sẽ tự động phát hiện nếu Ollama đang chạy tại cổng mặc định `11434`.
|
||||
|
||||
```json
|
||||
{
|
||||
"agents": {
|
||||
"defaults": {
|
||||
"model": { "primary": "ollama/llama3" }
|
||||
}
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
---
|
||||
Tài liệu liên quan: [Quản lý mô hình](./models.vi.md), [Cấu hình Gateway](../../gateway/configuration.vi.md).
|
||||
53
translation/vietnamese/docs/concepts/models.vi.md
Normal file
53
translation/vietnamese/docs/concepts/models.vi.md
Normal file
@ -0,0 +1,53 @@
|
||||
---
|
||||
summary: "Công cụ CLI cho mô hình: danh sách, cài đặt, bí danh và dự phòng"
|
||||
read_when:
|
||||
- Bạn muốn thêm hoặc thay đổi mô hình bằng dòng lệnh (CLI)
|
||||
- Bạn muốn hiểu cơ chế chọn mô hình AI trong Moltbot
|
||||
---
|
||||
|
||||
# Quản lý mô hình (Models CLI)
|
||||
|
||||
## Cơ chế chọn mô hình
|
||||
|
||||
Moltbot chọn mô hình theo thứ tự ưu tiên sau:
|
||||
|
||||
1) **Mô hình chính (Primary)**: Được cấu hình trong `agents.defaults.model.primary`.
|
||||
2) **Mô hình dự phòng (Fallbacks)**: Danh sách các mô hình thay thế nếu mô hình chính gặp lỗi hoàn toàn.
|
||||
3) **Dự phòng xác thực**: Hệ thống sẽ thử luân chuyển các tài khoản khác nhau trong cùng một nhà cung cấp trước khi chuyển sang mô hình mới.
|
||||
|
||||
Tài liệu liên quan: [Dự phòng lỗi mô hình](./model-failover.vi.md), [Danh sách nhà cung cấp](./model-providers.vi.md).
|
||||
|
||||
## Thuật sĩ thiết lập (Khuyên dùng)
|
||||
|
||||
Nếu bạn không muốn tự tay sửa file cấu hình JSON, hãy chạy lệnh thuật sĩ sau để bắt đầu nhanh:
|
||||
|
||||
```bash
|
||||
moltbot onboard
|
||||
```
|
||||
|
||||
Lệnh này sẽ hướng dẫn bạn thiết lập mô hình và thông tin đăng nhập cho các nhà cung cấp phổ biến như OpenAI, Anthropic hay Google.
|
||||
|
||||
## Đổi mô hình ngay trong khi chat (`/model`)
|
||||
|
||||
Bạn có thể thay đổi mô hình cho phiên trò chuyện hiện tại mà không cần khởi động lại Gateway:
|
||||
|
||||
- `/model`: Hiển thị bảng chọn mô hình nhanh bằng số thứ tự.
|
||||
- `/model list`: Xem danh sách đầy đủ các mô hình khả dụng.
|
||||
- `/model <số>`: Chọn nhanh mô hình theo số trong danh sách.
|
||||
- `/model status`: Xem chi tiết về nhà cung cấp và trạng thái đăng nhập.
|
||||
|
||||
Lưu ý: Nếu một mô hình không nằm trong danh sách trắng (`agents.defaults.models`), bạn sẽ không thể chuyển sang mô hình đó.
|
||||
|
||||
## Các lệnh CLI chính (quản trị viên)
|
||||
|
||||
| Lệnh | Công dụng |
|
||||
|------|-----------|
|
||||
| `moltbot models list` | Xem danh sách mô hình đã cấu hình |
|
||||
| `moltbot models status` | Xem trạng thái kết nối và xác thực |
|
||||
| `moltbot models set <ref>` | Đổi mô hình chính của hệ thống |
|
||||
| `moltbot models scan` | Quét và tìm các mô hình miễn phí trên OpenRouter |
|
||||
|
||||
Lệnh `moltbot models scan` rất hữu ích nếu bạn muốn tìm các mô hình chạy ổn định mà không tốn phí. Nó sẽ xếp hạng các mô hình dựa trên hỗ trợ hình ảnh, tốc độ phản hồi công cụ và dung lượng ngữ cảnh.
|
||||
|
||||
---
|
||||
Tài liệu liên quan: [Lệnh Slash](../../tools/slash-commands.md), [Mô hình dự phòng](./model-failover.vi.md).
|
||||
83
translation/vietnamese/docs/concepts/multi-agent.vi.md
Normal file
83
translation/vietnamese/docs/concepts/multi-agent.vi.md
Normal file
@ -0,0 +1,83 @@
|
||||
---
|
||||
summary: "Định tuyến đa Agent: Các Agent cô lập, tài khoản kênh và ghép nối"
|
||||
title: Định tuyến đa Agent
|
||||
read_when: "Bạn muốn chạy nhiều Agent độc lập (khác không gian làm việc và xác thực) trong cùng một tiến trình Gateway."
|
||||
---
|
||||
|
||||
# Định tuyến đa Agent
|
||||
|
||||
Mục tiêu: Chạy nhiều Agent **cô lập** (tách biệt về không gian làm việc, cấu hình và phiên làm việc), cùng với nhiều tài khoản của các kênh nhắn tin (ví dụ: hai tài khoản WhatsApp) trong một dịch vụ Gateway duy nhất. Các tin nhắn đến sẽ được định tuyến tới từng Agent thông qua quy tắc ghép nối (bindings).
|
||||
|
||||
## "Một Agent" nghĩa là gì?
|
||||
|
||||
Một **Agent** là một "bộ não" hoàn chỉnh được giới hạn trong:
|
||||
|
||||
- **Không gian làm việc (Workspace)**: Các tệp chỉ dẫn (`AGENTS.md`, `SOUL.md`, `USER.md`), ghi chú cục bộ và các quy tắc tính cách.
|
||||
- **Thư mục trạng thái (`agentDir`)**: Lưu giữ hồ sơ xác thực, danh mục mô hình và cấu hình riêng.
|
||||
- **Kho lưu trữ phiên**: Lịch sử chat và trạng thái định tuyến.
|
||||
|
||||
Thông tin xác thực (Auth profiles) là **riêng cho từng Agent**. Mỗi Agent chỉ đọc từ thư mục của chính nó. Không bao giờ dùng chung thư mục `agentDir` giữa các Agent vì sẽ gây ra xung đột về dữ liệu.
|
||||
|
||||
Gateway có thể host **một Agent** (mặc định) hoặc **nhiều Agent** chạy song song.
|
||||
|
||||
## Các đường dẫn chính
|
||||
|
||||
- Cấu hình chung: `~/.clawdbot/moltbot.json`
|
||||
- Thư mục trạng thái: `~/.clawdbot`
|
||||
- Không gian làm việc: `~/clawd-<agentId>`
|
||||
- Kho lưu trữ phiên: `~/.clawdbot/agents/<agentId>/sessions`
|
||||
|
||||
## Thuật sĩ thêm Agent
|
||||
|
||||
Sử dụng lệnh sau để thêm một Agent cô lập mới:
|
||||
|
||||
```bash
|
||||
moltbot agents add <tên-agent>
|
||||
```
|
||||
|
||||
Sau đó thêm quy tắc định tuyến (`bindings`) để dẫn các tin nhắn đến đúng nơi. Kiểm tra danh sách bằng lệnh:
|
||||
|
||||
```bash
|
||||
moltbot agents list --bindings
|
||||
```
|
||||
|
||||
## Nhiều Agent = Nhiều người dùng, Nhiều tính cách
|
||||
|
||||
Với thiết lập đa Agent, mỗi `agentId` trở thành một **nhân vật hoàn toàn độc lập**:
|
||||
|
||||
- **Sử dụng số điện thoại/tài khoản khác nhau**.
|
||||
- **Tính cách khác nhau** (quy định trong tệp `SOUL.md` riêng).
|
||||
- **Bộ nhớ tách biệt** (không bị lẫn dữ liệu giữa các người dùng).
|
||||
|
||||
Điều này cho phép **nhiều người** dùng chung một máy chủ Gateway nhưng vẫn giữ cho bộ não AI và dữ liệu cá nhân của mình được bảo mật tuyệt đối.
|
||||
|
||||
## Định tuyến thông minh
|
||||
|
||||
Moltbot chọn Agent cho mỗi tin nhắn dựa theo quy tắc **"Khớp chính xác nhất sẽ thắng"**:
|
||||
|
||||
1. Khớp theo ID người dùng/nhóm cụ thể (`peer`).
|
||||
2. Khớp theo máy chủ (Discord/Slack).
|
||||
3. Khớp theo ID tài khoản của kênh.
|
||||
4. Ưu tiên cuối cùng là Agent mặc định (`main`).
|
||||
|
||||
## Ví dụ: Hai WhatsApp cho hai Agent khác nhau
|
||||
|
||||
```json
|
||||
{
|
||||
"agents": {
|
||||
"list": [
|
||||
{ "id": "alex", "workspace": "~/clawd-alex" },
|
||||
{ "id": "mia", "workspace": "~/clawd-mia" }
|
||||
]
|
||||
},
|
||||
"bindings": [
|
||||
{ "agentId": "alex", "match": { "channel": "whatsapp", "accountId": "personal" } },
|
||||
{ "agentId": "mia", "match": { "channel": "whatsapp", "accountId": "work" } }
|
||||
]
|
||||
}
|
||||
```
|
||||
|
||||
Trong ví dụ này, tin nhắn từ tài khoản WhatsApp cá nhân sẽ do Agent Alex trả lời, còn tin nhắn từ tài khoản công việc sẽ do Mia xử lý.
|
||||
|
||||
---
|
||||
Tài liệu liên quan: [Cấu hình Sandbox & Công cụ đa Agent](../multi-agent-sandbox-tools.vi.md), [Nhóm phát tin](../broadcast-groups.vi.md).
|
||||
52
translation/vietnamese/docs/concepts/oauth.vi.md
Normal file
52
translation/vietnamese/docs/concepts/oauth.vi.md
Normal file
@ -0,0 +1,52 @@
|
||||
---
|
||||
summary: "OAuth trong Moltbot: Trao đổi token, lưu trữ và các mô hình đa tài khoản"
|
||||
read_when:
|
||||
- Bạn muốn hiểu quy trình OAuth trong Moltbot từ đầu đến cuối
|
||||
- Bạn gặp vấn đề về việc bị đăng xuất hoặc token không hợp lệ
|
||||
---
|
||||
|
||||
# Xác thực OAuth
|
||||
|
||||
Moltbot hỗ trợ hình thức "xác thực đăng ký" (subscription auth) qua OAuth cho các nhà cung cấp hỗ trợ (đặc biệt là **OpenAI Codex - ChatGPT Plus**). Đối với Claude (Anthropic), vui lòng sử dụng quy trình **setup-token**.
|
||||
|
||||
## Nơi lưu tập trung (Token sink)
|
||||
|
||||
Các nhà cung cấp OAuth thường cấp một **refresh token mới** mỗi khi bạn đăng nhập hoặc làm mới token. Một số dịch vụ có tính năng: khi có token mới thì token cũ sẽ bị vô hiệu hóa ngay lập tức.
|
||||
|
||||
Triệu chứng thực tế:
|
||||
- Bạn vừa đăng nhập Moltbot *vừa* dùng Claude Code trên cùng một tài khoản → một trong hai sẽ bị "văng" ra sau một lát.
|
||||
|
||||
Để hạn chế điều này, Moltbot quản lý tệp `auth-profiles.json` như một kho lưu trữ tập trung (token sink):
|
||||
- Hệ thống luôn đọc thông tin đăng nhập từ **một nơi duy nhất**.
|
||||
- Chúng ta có thể giữ nhiều hồ sơ tài khoản và định tuyến chúng một cách chính xác.
|
||||
|
||||
## Vị trí lưu trữ
|
||||
|
||||
Các thông tin bí mật được lưu trữ **theo từng Agent**:
|
||||
|
||||
- Hồ sơ xác thực (OAuth + API Keys): `~/.clawdbot/agents/<agentId>/agent/auth-profiles.json`
|
||||
- Bộ nhớ đệm tự động (Runtime cache): `~/.clawdbot/agents/<agentId>/agent/auth.json` (Không nên chỉnh sửa tệp này).
|
||||
|
||||
## Đăng nhập qua OpenAI Codex (ChatGPT OAuth)
|
||||
|
||||
Quy trình hoạt động (PKCE):
|
||||
1. Hệ thống tạo mã thử thách PKCE và trạng thái ngẫu nhiên.
|
||||
2. Mở trình duyệt để bạn đăng nhập vào OpenAI.
|
||||
3. Sau khi đăng nhập, OpenAI sẽ gửi mã về `http://127.0.0.1:1455/auth/callback`.
|
||||
4. Nếu bạn đang chạy Bot trên máy chủ từ xa (không có trình duyệt), bạn có thể dán địa chỉ URL phản hồi vào Terminal để hoàn tất.
|
||||
5. Hồ sơ tài khoản sẽ được lưu vào hệ thống.
|
||||
|
||||
Để bắt đầu, hãy dùng lệnh:
|
||||
```bash
|
||||
moltbot onboard
|
||||
```
|
||||
Và chọn phương thức `openai-codex`.
|
||||
|
||||
## Làm mới và Hết hạn (Refresh & Expiry)
|
||||
|
||||
Moltbot tự động kiểm tra thời gian hết hạn của token:
|
||||
- Nếu vẫn còn hạn: Sử dụng token hiện có.
|
||||
- Nếu hết hạn: Tự động thực hiện quy trình "làm mới" (refresh) và ghi đè thông tin mới vào tệp hồ sơ. Bạn gần như không bao giờ phải xử lý token thủ công.
|
||||
|
||||
---
|
||||
Tài liệu liên quan: [Dự phòng lỗi mô hình](./model-failover.vi.md), [Lệnh Slash](../../tools/slash-commands.md).
|
||||
46
translation/vietnamese/docs/concepts/presence.vi.md
Normal file
46
translation/vietnamese/docs/concepts/presence.vi.md
Normal file
@ -0,0 +1,46 @@
|
||||
---
|
||||
summary: "Trạng thái hiện diện trong Moltbot: Cách tạo, gộp và hiển thị danh sách hoạt động"
|
||||
read_when:
|
||||
- Bạn muốn tìm hiểu về danh sách các tệp/thiết bị đang kết nối tới Gateway
|
||||
---
|
||||
|
||||
# Trạng thái hiện diện (Presence)
|
||||
|
||||
Trạng thái hiện diện trong Moltbot là một cái nhìn tổng quan nhanh về:
|
||||
- Chính bản thân **Gateway**.
|
||||
- Các **ứng dụng khách (clients)** đang kết nối tới Gateway (ứng dụng Mac, WebChat, CLI, v.v.).
|
||||
|
||||
Thông tin này chủ yếu dùng để hiển thị trong tab **Instances** của ứng dụng macOS và giúp người quản trị biết ai đang truy cập hệ thống.
|
||||
|
||||
## Các thông tin hiển thị
|
||||
|
||||
Mỗi bản ghi trạng thái bao gồm các trường như:
|
||||
- `instanceId`: Định danh cố định của thiết bị kết nối.
|
||||
- `host`: Tên máy tính.
|
||||
- `ip`: Địa chỉ IP của thiết bị.
|
||||
- `version`: Phiên bản của ứng dụng khách.
|
||||
- `mode`: Loại kết nối (ví dụ: `ui` - giao diện đồ họa, `cli` - dòng lệnh, `node` - thiết bị đầu cuối).
|
||||
- `reason`: Lý do ghi nhận trạng thái (kết nối mới, cập nhật định kỳ).
|
||||
- `ts`: Thời điểm cập nhật cuối cùng.
|
||||
|
||||
## Nguồn tạo trạng thái
|
||||
|
||||
1. **Bản thân Gateway**: Luôn tự tạo một mục "tôi đang chạy" khi khởi động.
|
||||
2. **Khi kết nối WebSocket**: Mọi ứng dụng khi kết nối sẽ khai báo thông tin của mình.
|
||||
- *Lưu ý*: Các lệnh CLI ngắn gọn (chỉ chạy rồi tắt) thường sẽ không hiển thị để tránh làm rối danh sách.
|
||||
3. **Tín hiệu đèn báo (system-event beacons)**: Các ứng dụng gửi thông tin cập nhật định kỳ (như thời gian người dùng không hoạt động).
|
||||
4. **Kết nối của các Node**: Khi bạn ghép nối camera hay màn hình, chúng cũng xuất hiện trong danh sách này.
|
||||
|
||||
## Quy tắc xóa bỏ (TTL)
|
||||
|
||||
Trạng thái hiện diện chỉ mang tính chất tạm thời:
|
||||
- Các mục không cập nhật trong vòng **5 phút** sẽ bị tự động xóa.
|
||||
- Danh sách tối đa là **200 mục** (mục cũ nhất sẽ bị đẩy ra nếu danh sách đầy).
|
||||
|
||||
Điều này đảm bảo danh sách luôn mới và không chiếm dụng bộ nhớ hệ thống.
|
||||
|
||||
## Mẹo gỡ lỗi
|
||||
Để xem danh sách thô của tất cả các thiết bị đang hiện diện, bạn có thể thực hiện yêu cầu `system-presence` tới Gateway.
|
||||
|
||||
---
|
||||
Tài liệu liên quan: [Ghép nối thiết bị](../../start/pairing.vi.md), [Giao thức Gateway](../../gateway/protocol.vi.md).
|
||||
47
translation/vietnamese/docs/concepts/queue.vi.md
Normal file
47
translation/vietnamese/docs/concepts/queue.vi.md
Normal file
@ -0,0 +1,47 @@
|
||||
---
|
||||
summary: "Thiết kế hàng đợi lệnh giúp thực thi các phản hồi tự động theo tuần tự"
|
||||
read_when:
|
||||
- Bạn muốn tìm hiểu về cơ chế xử lý đồng thời của Agent
|
||||
---
|
||||
|
||||
# Hàng đợi lệnh (Command Queue)
|
||||
|
||||
Moltbot thực hiện tuần tự hóa các lượt chạy phản hồi tự động thông qua một hàng đợi nội bộ nhỏ. Điều này giúp ngăn chặn việc nhiều lượt chạy của Agent bị xung đột khi có nhiều tin nhắn đến cùng lúc, đồng thời vẫn cho phép thực hiện song song giữa các phiên làm việc khác nhau.
|
||||
|
||||
## Tại sao cần hàng đợi?
|
||||
- Việc gọi AI (LLM) có thể tốn kém và gây xung đột nếu nhiều tin nhắn đến quá gần nhau.
|
||||
- Xử lý tuần tự giúp tránh việc tranh chấp tài nguyên chung (tệp bộ nhớ, nhật ký) và giảm khả năng bị nhà cung cấp API giới hạn băng thông (rate limit).
|
||||
|
||||
## Cách thức hoạt động
|
||||
- Hệ thống chia thành các **"luồng" (lanes)**. Mỗi phiên làm việc (`session`) có một luồng riêng, đảm bảo tại một thời điểm chỉ có một yêu cầu được xử lý cho một cuộc trò chuyện.
|
||||
- Tất cả các luồng này được gom vào một **luồng tổng** để giới hạn số lượng xử lý đồng thời trên toàn hệ thống (mặc định cấu hình qua `maxConcurrent`).
|
||||
- Các thông báo "đang soạn thảo" (typing indicators) vẫn sẽ được gửi đi ngay lập tức khi tin nhắn vào hàng đợi để người dùng không cảm thấy Bot bị chậm.
|
||||
|
||||
## Các chế độ hàng đợi (Queue Modes)
|
||||
Bạn có thể điều chỉnh cách Bot xử lý khi tin nhắn mới đến trong lúc nó đang bận:
|
||||
|
||||
- **`collect` (Mặc định)**: Gom tất cả tin nhắn mới gửi đến thành **một lượt trả lời duy nhất** sau khi Bot rảnh.
|
||||
- **`steer`**: Chèn tin nhắn mới trực tiếp vào lượt chạy hiện tại (Bot sẽ thay đổi nội dung đang trả lời dựa trên thông tin mới).
|
||||
- **`followup`**: Tin nhắn sau sẽ được xếp hàng để trả lời ngay sau khi tin nhắn trước kết thúc.
|
||||
- **`interrupt`**: Ngắt ngay lập tức câu trả lời hiện tại để xử lý tin nhắn mới.
|
||||
|
||||
## Cấu hình
|
||||
Bạn có thể cấu hình toàn cục hoặc cho từng kênh chat trong phần `messages.queue`:
|
||||
|
||||
```json
|
||||
{
|
||||
"messages": {
|
||||
"queue": {
|
||||
"mode": "collect",
|
||||
"debounceMs": 1000,
|
||||
"cap": 20
|
||||
}
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
- `debounceMs`: Thời gian chờ "yên tĩnh" trước khi bắt đầu trả lời tin nhắn tiếp nối (tránh việc Bot bị "nói lắp").
|
||||
- `cap`: Số lượng tin nhắn tối đa được phép xếp hàng cho một phiên làm việc.
|
||||
|
||||
---
|
||||
Tài liệu liên quan: [Cấu hình hệ thống](../../gateway/configuration.vi.md), [Truyền tin (Streaming)](./streaming.vi.md).
|
||||
46
translation/vietnamese/docs/concepts/retry.vi.md
Normal file
46
translation/vietnamese/docs/concepts/retry.vi.md
Normal file
@ -0,0 +1,46 @@
|
||||
---
|
||||
summary: "Chính sách thử lại cho các cuộc gọi đến nhà cung cấp đầu ra"
|
||||
read_when:
|
||||
- Bạn muốn cập nhật hành vi thử lại hoặc các giá trị mặc định của hệ thống
|
||||
---
|
||||
|
||||
# Chính sách thử lại (Retry policy)
|
||||
|
||||
## Mục tiêu
|
||||
- Thực hiện thử lại cho từng yêu cầu HTTP (gửi tin nhắn, tải ảnh), không phải cho toàn bộ quy trình công việc.
|
||||
- Đảm bảo thứ tự tin nhắn được giữ nguyên bằng cách chỉ thử lại thao tác hiện tại.
|
||||
- Tránh việc bị trùng lặp các thao tác quan trọng.
|
||||
|
||||
## Các giá trị mặc định
|
||||
- Số lần thử tối đa: **3 lần**.
|
||||
- Thời gian chờ giữa các lần: Tăng dần theo lũy kế, tối đa **30 giây**.
|
||||
- Độ trễ nhiễu (Jitter): **0.1 (10%)** - giúp tránh việc tất cả các yêu cầu bị lỗi cùng gửi lại vào một thời điểm duy nhất.
|
||||
|
||||
## Hành vi cụ thể của từng kênh
|
||||
|
||||
### WhatsApp / Telegram
|
||||
- Thử lại khi gặp các lỗi tạm thời như: Lỗi giới hạn băng thông (HTTP 429), lỗi kết nối bị ngắt nửa chừng (reset/closed), hoặc dịch vụ của nhà cung cấp tạm thời không khả dụng.
|
||||
- Nếu gặp lỗi định dạng Markdown, hệ thống sẽ **không thử lại** mà chuyển sang gửi văn bản thuần túy để đảm bảo người dùng nhận được tin nhắn.
|
||||
|
||||
### Discord
|
||||
- Chủ yếu thử lại khi gặp lỗi HTTP 429 (Rate limit). Hệ thống sẽ tuân thủ thời gian chờ `retry_after` do Discord phản hồi.
|
||||
|
||||
## Cấu hình
|
||||
Bạn có thể tùy chỉnh chính sách này cho từng kênh trong file `moltbot.json`:
|
||||
|
||||
```json
|
||||
{
|
||||
"channels": {
|
||||
"telegram": {
|
||||
"retry": {
|
||||
"attempts": 3,
|
||||
"minDelayMs": 400,
|
||||
"maxDelayMs": 30000
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
---
|
||||
Tài liệu liên quan: [Cấu hình Gateway](../../gateway/configuration.vi.md), [Xử lý lỗi](../../gateway/troubleshooting.vi.md).
|
||||
41
translation/vietnamese/docs/concepts/session-pruning.vi.md
Normal file
41
translation/vietnamese/docs/concepts/session-pruning.vi.md
Normal file
@ -0,0 +1,41 @@
|
||||
---
|
||||
summary: "Cắt tỉa phiên làm việc: Thu gọn kết quả của công cụ để giảm dung lượng ngữ cảnh"
|
||||
read_when:
|
||||
- Bạn muốn giảm tốc độ tăng trưởng ngữ cảnh AI do kết quả của các công cụ quá dài
|
||||
---
|
||||
|
||||
# Cắt tỉa phiên làm việc (Session Pruning)
|
||||
|
||||
Cơ chế này giúp lược bỏ các **kết quả cũ của công cụ** ra khỏi bộ nhớ ngữ cảnh ngay trước mỗi lần gọi AI. Lưu ý rằng nó **không** ghi đè hay thay đổi lịch sử chat lưu trên đĩa cứng (`*.jsonl`).
|
||||
|
||||
## Tại sao cần cắt tỉa?
|
||||
- **Tiết kiệm chi phí**: Giảm số lượng Token đầu vào gửi cho AI.
|
||||
- **Tối ưu hóa bộ nhớ đệm (Cache)**: Anthropic có tính năng lưu bộ nhớ đệm (Prompt Caching). Nếu bạn để phiên làm việc quá tải với các kết quả công cụ cũ không còn dùng tới, nhà cung cấp sẽ phải nạp lại toàn bộ dữ liệu này sau một khoảng thời gian chờ (TTL), gây tốn kém không đáng có.
|
||||
|
||||
## Những gì sẽ bị cắt tỉa?
|
||||
- Hệ thống chỉ tác động lên các tin nhắn loại `toolResult` (kết quả trả về từ các công cụ).
|
||||
- Các tin nhắn của người dùng và phản hồi của Agent **không bao giờ** bị thay đổi.
|
||||
- Agent luôn bảo vệ một số lượng nhất định các tin nhắn phản hồi gần nhất (`keepLastAssistants`).
|
||||
|
||||
## Cắt tỉa mềm và Cắt tỉa cứng
|
||||
|
||||
- **Cắt tỉa mềm (Soft-trim)**: Chỉ áp dụng cho các kết quả công cụ quá dài. Hệ thống sẽ giữ lại phần đầu và phần cuối, thay thế phần giữa bằng dấu `...` và ghi chú rõ kích thước gốc. Điều này giúp Agent vẫn biết sơ qua về nội dung mà không tốn quá nhiều dung lượng.
|
||||
- **Cắt tỉa cứng (Hard-clear)**: Thay thế toàn bộ kết quả công cụ cũ bằng một dòng thông báo ngắn gọn: `[Nội dung kết quả công cụ cũ đã được xóa bỏ]`.
|
||||
|
||||
## Cấu hình
|
||||
Mặc định tính năng này được bật cho các mô hình của Anthropic với các thông số tối ưu:
|
||||
|
||||
```json
|
||||
{
|
||||
"agent": {
|
||||
"contextPruning": {
|
||||
"mode": "cache-ttl",
|
||||
"ttl": "5m",
|
||||
"keepLastAssistants": 3
|
||||
}
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
---
|
||||
Tài liệu liên quan: [Cửa sổ ngữ cảnh & Nén ngữ cảnh](./compaction.vi.md), [Ngữ cảnh AI](./context.vi.md).
|
||||
35
translation/vietnamese/docs/concepts/session-tool.vi.md
Normal file
35
translation/vietnamese/docs/concepts/session-tool.vi.md
Normal file
@ -0,0 +1,35 @@
|
||||
---
|
||||
summary: "Bộ công cụ quản lý phiên: liệt kê, lấy lịch sử và gửi tin nhắn xuyên phiên"
|
||||
read_when:
|
||||
- Thêm hoặc chỉnh sửa các công cụ liên quan đến phiên làm việc
|
||||
---
|
||||
# Công cụ phiên làm việc (Session Tools)
|
||||
|
||||
Mục tiêu: Cung cấp một bộ công cụ nhỏ, an toàn để agent có thể quản lý các phiên làm việc, xem lịch sử và gửi tin nhắn tới các phiên khác.
|
||||
|
||||
## Danh sách công cụ
|
||||
- `sessions_list`: Liệt kê các phiên làm việc.
|
||||
- `sessions_history`: Lấy lịch sử chat của một phiên.
|
||||
- `sessions_send`: Gửi một tin nhắn vào một phiên khác.
|
||||
- `sessions_spawn`: Khởi tạo một phiên chạy agent phụ (sub-agent) độc lập.
|
||||
|
||||
## Các loại phiên chính
|
||||
- `main`: Phiên chat trực tiếp chính của agent.
|
||||
- `group`: Các phiên chat nhóm (WhatsApp/Telegram/Discord...).
|
||||
- `cron`: Các phiên chạy định kỳ.
|
||||
- `hook`: Các phiên kích hoạt qua Webhook.
|
||||
- `node`: Các phiên kết nối từ các nút (nodes).
|
||||
|
||||
## Tính năng sessions_send (Gửi tin nhắn xuyên phiên)
|
||||
Cho phép agent hiện tại gửi một yêu cầu tới một agent/phiên khác. Moltbot sẽ thực hiện một **vòng lặp trả lời ngược lại (reply-back loop)**:
|
||||
- Cho phép hai agent "nói chuyện" với nhau qua lại (tối đa 5 lượt ping-pong).
|
||||
- Sau khi kết thúc hội thoại giữa hai agent, kết quả cuối cùng sẽ được thông báo (announce) lại cho người dùng tại kênh chat gốc.
|
||||
|
||||
## Tính năng sessions_spawn (Agent phụ)
|
||||
Khởi tạo một lượt chạy agent phụ trong một phiên cô lập:
|
||||
- Agent phụ mặc định có đầy đủ công cụ nhưng **không có công cụ phiên** (ngăn chặn việc khởi tạo vô hạn).
|
||||
- Kết quả chạy của agent phụ sẽ được tự động báo cáo lại kênh chat của người dùng sau khi hoàn thành.
|
||||
- Các phiên agent phụ sẽ được tự động lưu trữ (archive) sau 60 phút không hoạt động.
|
||||
|
||||
---
|
||||
Tài liệu liên quan: [Quản lý phiên](./session.vi.md), [Subagents](../tools/subagents.vi.md).
|
||||
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue
Block a user