Skip to content

Commit ab38c4a

Browse files
authored
docs: add Telegram privacy mode note and improve VI translation (#29)
* docs: add Telegram privacy mode setup note and improve VI translation (EN+VI) Add critical /setprivacy → Disable note for group functionality in both EN and VI Setup sections. Update troubleshooting to reference privacy mode. Improve Vietnamese translation naturalness by keeping technical terms (allowlist, reasoning token, pending history buffer, etc.) untranslated. * fix: update goclaw-source metadata to eab3766c (2026-03-24)
1 parent 2d1e417 commit ab38c4a

2 files changed

Lines changed: 33 additions & 29 deletions

File tree

channels/telegram.md

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,8 @@ Telegram bot integration via long polling (Bot API). Supports DMs, groups, forum
99
2. `/newbot` → choose name and username
1010
3. Copy the token (format: `123456:ABCDEFGHIJKLMNOPQRSTUVWxyz...`)
1111

12+
> **Important — Group Privacy Mode:** By default, Telegram bots run in **privacy mode** and can only see commands (`/`) and @mentions in groups. To let the bot read all group messages (required for history buffer, `require_mention: false`, and group context), message **@BotFather**`/setprivacy` → select your bot → **Disable**. Without this, the bot will silently ignore most group messages.
13+
1214
**Enable Telegram:**
1315

1416
```json
@@ -230,8 +232,8 @@ Each Telegram instance maintains an isolated HTTP transport — no shared connec
230232

231233
| Issue | Solution |
232234
|-------|----------|
233-
| Bot not responding in groups | Check `require_mention=true` (default). Mention bot or reply to its message. |
234-
| Media downloads fail | Verify bot has `Can read all group messages` in @BotFather settings. Check `media_max_bytes` limit. |
235+
| Bot not responding in groups | Ensure privacy mode is disabled via @BotFather (`/setprivacy` → Disable). Then check `require_mention=true` (default) — mention bot or reply to its message. |
236+
| Media downloads fail | Verify bot has `Can read all group messages` in @BotFather (`/setprivacy` → Disable). Check `media_max_bytes` limit. |
235237
| STT transcription missing | Verify STT proxy URL and API key. Check logs for timeout. |
236238
| Streaming not working | Enable `dm_stream` or `group_stream`. Ensure provider supports streaming. |
237239
| Topic routing fails | Check topic ID in config keys (integer thread ID). Generic topic (ID=1) stripped in Telegram API. |
@@ -243,4 +245,4 @@ Each Telegram instance maintains an isolated HTTP transport — no shared connec
243245
- [Browser Pairing](#channel-browser-pairing) — Pairing flow
244246
- [Sessions & History](#sessions-and-history) — Conversation history
245247

246-
<!-- goclaw-source: 120fc2d | updated: 2026-03-19 -->
248+
<!-- goclaw-source: eab3766c | updated: 2026-03-24 -->

vi/channels/telegram.md

Lines changed: 28 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,8 @@ Tích hợp Telegram bot qua long polling (Bot API). Hỗ trợ DM, nhóm, forum
1111
2. `/newbot` → chọn tên và username
1212
3. Sao chép token (định dạng: `123456:ABCDEFGHIJKLMNOPQRSTUVWxyz...`)
1313

14+
> **Quan trọng — Group Privacy Mode:** Mặc định, Telegram bot chạy ở **privacy mode** và chỉ nhận được command (`/`) và @mention trong group. Để bot đọc được tất cả tin nhắn trong group (cần thiết cho history buffer, `require_mention: false`, và group context), nhắn **@BotFather**`/setprivacy` → chọn bot → **Disable**. Nếu không, bot sẽ bỏ qua hầu hết tin nhắn trong group.
15+
1416
**Bật Telegram:**
1517

1618
```json
@@ -36,15 +38,15 @@ Tất cả config key nằm trong `channels.telegram`:
3638
| `enabled` | bool | false | Bật/tắt channel |
3739
| `token` | string | bắt buộc | Bot API token từ BotFather |
3840
| `proxy` | string | -- | HTTP proxy (ví dụ: `http://proxy:8080`) |
39-
| `allow_from` | list | -- | Danh sách trắng user ID hoặc username |
41+
| `allow_from` | list | -- | Allowlist user ID hoặc username |
4042
| `dm_policy` | string | `"pairing"` | `pairing`, `allowlist`, `open`, `disabled` |
4143
| `group_policy` | string | `"open"` | `open`, `allowlist`, `disabled` |
42-
| `require_mention` | bool | true | Yêu cầu mention @bot trong nhóm |
44+
| `require_mention` | bool | true | Yêu cầu mention @bot trong group |
4345
| `history_limit` | int | 50 | Tin nhắn chờ tối đa mỗi nhóm (0=tắt) |
4446
| `dm_stream` | bool | false | Bật streaming cho DM (chỉnh sửa placeholder) |
4547
| `group_stream` | bool | false | Bật streaming cho nhóm (tin nhắn mới) |
46-
| `draft_transport` | bool | false | Dùng `sendMessageDraft` cho DM streaming (xem trước ẩn, không thông báo mỗi lần chỉnh sửa) |
47-
| `reasoning_stream` | bool | true | Hiển thị token suy luận dưới dạng tin nhắn riêng trước câu trả lời |
48+
| `draft_transport` | bool | false | Dùng `sendMessageDraft` cho DM streaming (stealth preview, không thông báo mỗi lần edit) |
49+
| `reasoning_stream` | bool | true | Hiển thị reasoning token dưới dạng tin nhắn riêng trước câu trả lời |
4850
| `block_reply` | bool | -- | Ghi đè cài đặt `block_reply` của gateway cho channel này (nil = kế thừa) |
4951
| `reaction_level` | string | `"off"` | `off`, `minimal` (chỉ ⏳), `full` (⏳💬🛠️✅❌🔄) |
5052
| `media_max_bytes` | int | 20MB | Kích thước file media tối đa |
@@ -56,7 +58,7 @@ Tất cả config key nằm trong `channels.telegram`:
5658
| `stt_timeout_seconds` | int | 30 | Timeout cho request STT |
5759
| `voice_agent_id` | string | -- | Định tuyến voice message đến agent cụ thể |
5860

59-
**Giới hạn upload media**: Trường `media_max_bytes` áp đặt giới hạn cứng cho việc upload media ra ngoài do agent gửi (mặc định 20 MB). File vượt quá giới hạn này bị bỏ qua yên lặng và ghi log. Không ảnh hưởng đến media nhận vào từ người dùng.
61+
**Giới hạn upload media**: Trường `media_max_bytes` áp đặt hard limit cho outbound media upload do agent gửi (mặc định 20 MB). File vượt giới hạn bị skip và ghi log. Không ảnh hưởng đến inbound media từ user.
6062

6163
## Cấu hình nhóm
6264

@@ -94,28 +96,28 @@ Các config key cho nhóm:
9496
- `group_policy` — Ghi đè chính sách cấp nhóm
9597
- `allow_from` — Ghi đè allowlist
9698
- `require_mention` — Ghi đè yêu cầu mention
97-
- `skills`Danh sách trắng skill (nil=tất cả, []=không có)
98-
- `tools`Danh sách trắng tool (hỗ trợ cú pháp `group:xxx`)
99+
- `skills`Whitelist skill (nil=tất cả, []=không có)
100+
- `tools`Whitelist tool (hỗ trợ cú pháp `group:xxx`)
99101
- `system_prompt` — Extra system prompt cho nhóm này
100102
- `topics` — Ghi đè theo topic (key: topic/thread ID)
101103

102104
## Tính năng
103105

104106
### Mention Gating
105107

106-
Trong nhóm, bot chỉ phản hồi tin nhắn có mention nó (mặc định `require_mention: true`). Khi không được mention, tin nhắn được lưu vào buffer lịch sử chờ (mặc định 50 tin nhắn) và được đưa vào context khi bot được mention. Reply vào tin nhắn của bot được tính là mention.
108+
Trong group, bot chỉ phản hồi tin nhắn có mention nó (mặc định `require_mention: true`). Khi không được mention, tin nhắn được lưu vào pending history buffer (mặc định 50 tin nhắn) và được đưa vào context khi bot được mention. Reply vào tin nhắn của bot được tính là mention.
107109

108110
```mermaid
109111
flowchart TD
110-
MSG["User đăng trong nhóm"] --> MENTION{"Bot được @mention<br/>hoặc reply?"}
111-
MENTION -->|Không| BUFFER["Thêm vào lịch sử chờ<br/>(tối đa 50 tin nhắn)"]
112-
MENTION -->|Có| PROCESS["Xử lý ngay<br/>Kèm lịch sử làm context"]
113-
BUFFER --> NEXT["Mention tiếp theo:<br/>lịch sử được đưa vào"]
112+
MSG["User gửi tin trong group"] --> MENTION{"Bot được @mention<br/>hoặc reply?"}
113+
MENTION -->|Không| BUFFER["Thêm vào pending history<br/>(tối đa 50 tin nhắn)"]
114+
MENTION -->|Có| PROCESS["Xử lý ngay<br/>Kèm history làm context"]
115+
BUFFER --> NEXT["Mention tiếp theo:<br/>history được đưa vào"]
114116
```
115117

116-
### Đồng thời trong nhóm
118+
### Group Concurrency
117119

118-
Session nhóm hỗ trợ tối đa **3 lần chạy agent đồng thời**. Khi đạt giới hạn này, các tin nhắn tiếp theo sẽ được xếp hàng. Áp dụng cho tất cả context nhóm và forum topic.
120+
Group session hỗ trợ tối đa **3 agent run đồng thời**. Khi đạt giới hạn này, các tin nhắn tiếp theo sẽ được xếp hàng chờ. Áp dụng cho tất cả group context và forum topic.
119121

120122
### Forum Topic
121123

@@ -168,24 +170,24 @@ Khi user gửi voice message:
168170

169171
Bật cập nhật phản hồi trực tiếp:
170172

171-
- **DM** (`dm_stream`): Chỉnh sửa placeholder "Thinking..." khi từng chunk đến. Mặc định dùng `sendMessage+editMessageText`; đặt `draft_transport: true` để dùng `sendMessageDraft` (xem trước ẩn, không thông báo mỗi lần chỉnh sửa, nhưng có thể gây lỗi "reply to deleted message" trên một số client).
172-
- **Nhóm** (`group_stream`): Gửi placeholder, chỉnh sửa với phản hồi đầy đủ
173+
- **DM** (`dm_stream`): Edit placeholder "Thinking..." khi từng chunk đến. Mặc định dùng `sendMessage+editMessageText`; đặt `draft_transport: true` để dùng `sendMessageDraft` (stealth preview, không thông báo mỗi lần edit, nhưng có thể gây lỗi "reply to deleted message" trên một số client).
174+
- **Group** (`group_stream`): Gửi placeholder, edit với phản hồi đầy đủ
173175

174-
Mặc định tắt. Khi bật với `reasoning_stream: true` (mặc định), token suy luận hiển thị dưới dạng tin nhắn riêng trước câu trả lời cuối cùng.
176+
Mặc định tắt. Khi bật với `reasoning_stream: true` (mặc định), reasoning token hiển thị dưới dạng tin nhắn riêng trước câu trả lời cuối cùng.
175177

176178
### Reaction
177179

178180
Hiển thị trạng thái emoji trên tin nhắn user. Đặt `reaction_level`:
179181

180-
> Các reaction typing indicator hiện được xử lý với khả năng phục hồi lỗi tốt hơn — các loại reaction không hợp lệ được bắt một cách gracefully thay vì gây ra lỗi.
182+
> Typing indicator reaction giờ có error recovery tốt hơn — invalid reaction type được handle gracefully thay vì gây lỗi.
181183
182184
- `off` — Không có reaction
183185
- `minimal` — Chỉ ⏳ (đang suy nghĩ)
184186
- `full` — ⏳ (suy nghĩ) → 🛠️ (dùng tool) → ✅ (xong) hoặc ❌ (lỗi)
185187

186188
### Lệnh Bot
187189

188-
Lệnh được xử lý trước khi làm phong phú tin nhắn:
190+
Lệnh được xử lý trước bước message enrichment:
189191

190192
| Lệnh | Hành vi | Hạn chế |
191193
|---------|----------|-----------|
@@ -203,17 +205,17 @@ Lệnh được xử lý trước khi làm phong phú tin nhắn:
203205

204206
Writer là thành viên nhóm được phép chạy lệnh nhạy cảm (`/reset`, ghi file). Quản lý qua `/addwriter``/removewriter` (reply vào tin nhắn của user mục tiêu).
205207

206-
## Cách ly mạng
208+
## Network Isolation
207209

208-
Mỗi instance Telegram duy trì một HTTP transport riêng biệt — không dùng chung connection pool giữa các bot. Điều này ngăn contention giữa các bot và cho phép định tuyến mạng theo từng tài khoản.
210+
Mỗi Telegram instance duy trì HTTP transport riêng biệt — không share connection pool giữa các bot. Điều này ngăn cross-bot contention và cho phép network routing theo từng account.
209211

210212
| Tuỳ chọn | Mặc định | Mô tả |
211213
|--------|---------|-------------|
212-
| `force_ipv4` | false | Bắt buộc dùng IPv4 cho tất cả kết nối. Hữu ích cho sticky routing hoặc khi IPv6 bị lỗi/chặn. |
214+
| `force_ipv4` | false | Bắt buộc dùng IPv4 cho tất cả connection. Hữu ích cho sticky routing hoặc khi IPv6 bị lỗi/chặn. |
213215
| `proxy` | -- | URL HTTP proxy cho instance bot này (ví dụ: `http://proxy:8080`). |
214216
| `api_server` | -- | Server Telegram Bot API tuỳ chỉnh. Hữu ích với local Bot API server hoặc private deployment. |
215217

216-
**Sticky IPv4 fallback**: Khi `force_ipv4: true`, dialer được khóa vào `tcp4` lúc khởi động, đảm bảo IP nguồn nhất quán cho tất cả request đến Telegram. Hữu ích cho quản lý rate limit trong môi trường có IPv6 không ổn định.
218+
**Sticky IPv4 fallback**: Khi `force_ipv4: true`, dialer được lock vào `tcp4` lúc khởi động, đảm bảo source IP nhất quán cho tất cả request đến Telegram. Hữu ích cho rate limit management trong môi trường có IPv6 không ổn định.
217219

218220
```json
219221
{
@@ -232,8 +234,8 @@ Mỗi instance Telegram duy trì một HTTP transport riêng biệt — không d
232234

233235
| Vấn đề | Giải pháp |
234236
|-------|----------|
235-
| Bot không phản hồi trong nhóm | Kiểm tra `require_mention=true` (mặc định). Mention bot hoặc reply vào tin nhắn của nó. |
236-
| Tải media thất bại | Xác minh bot có quyền "Can read all group messages" trong @BotFather. Kiểm tra giới hạn `media_max_bytes`. |
237+
| Bot không phản hồi trong group | Đảm bảo đã tắt privacy mode qua @BotFather (`/setprivacy` → Disable). Kiểm tra `require_mention=true` (mặc định) — mention bot hoặc reply vào tin nhắn của nó. |
238+
| Tải media thất bại | Xác minh bot đã Disable privacy mode trong @BotFather (`/setprivacy` → Disable). Kiểm tra giới hạn `media_max_bytes`. |
237239
| Thiếu transcript STT | Xác minh URL proxy STT và API key. Kiểm tra log về timeout. |
238240
| Streaming không hoạt động | Bật `dm_stream` hoặc `group_stream`. Đảm bảo provider hỗ trợ streaming. |
239241
| Định tuyến topic thất bại | Kiểm tra topic ID trong config key (integer thread ID). Generic topic (ID=1) bị loại bỏ trong Telegram API. |
@@ -245,4 +247,4 @@ Mỗi instance Telegram duy trì một HTTP transport riêng biệt — không d
245247
- [Browser Pairing](#channel-browser-pairing) — Luồng pairing
246248
- [Sessions & History](#sessions-and-history) — Lịch sử cuộc trò chuyện
247249

248-
<!-- goclaw-source: 120fc2d | cập nhật: 2026-03-19 -->
250+
<!-- goclaw-source: eab3766c | cập nhật: 2026-03-24 -->

0 commit comments

Comments
 (0)