You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
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)
Copy file name to clipboardExpand all lines: channels/telegram.md
+5-3Lines changed: 5 additions & 3 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -9,6 +9,8 @@ Telegram bot integration via long polling (Bot API). Supports DMs, groups, forum
9
9
2.`/newbot` → choose name and username
10
10
3. Copy the token (format: `123456:ABCDEFGHIJKLMNOPQRSTUVWxyz...`)
11
11
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
+
12
14
**Enable Telegram:**
13
15
14
16
```json
@@ -230,8 +232,8 @@ Each Telegram instance maintains an isolated HTTP transport — no shared connec
230
232
231
233
| Issue | Solution |
232
234
|-------|----------|
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 @BotFathersettings. 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. |
235
237
| STT transcription missing | Verify STT proxy URL and API key. Check logs for timeout. |
236
238
| Streaming not working | Enable `dm_stream` or `group_stream`. Ensure provider supports streaming. |
237
239
| 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
> **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
+
14
16
**Bật Telegram:**
15
17
16
18
```json
@@ -36,15 +38,15 @@ Tất cả config key nằm trong `channels.telegram`:
36
38
|`enabled`| bool | false | Bật/tắt channel |
37
39
|`token`| string | bắt buộc | Bot API token từ BotFather |
|`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`:
56
58
|`stt_timeout_seconds`| int | 30 | Timeout cho request STT |
57
59
|`voice_agent_id`| string | -- | Định tuyến voice message đến agent cụ thể |
58
60
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.
-`tools` — Whitelist tool (hỗ trợ cú pháp `group:xxx`)
99
101
-`system_prompt` — Extra system prompt cho nhóm này
100
102
-`topics` — Ghi đè theo topic (key: topic/thread ID)
101
103
102
104
## Tính năng
103
105
104
106
### Mention Gating
105
107
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.
107
109
108
110
```mermaid
109
111
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"]
114
116
```
115
117
116
-
### Đồng thời trong nhóm
118
+
### Group Concurrency
117
119
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.
119
121
120
122
### Forum Topic
121
123
@@ -168,24 +170,24 @@ Khi user gửi voice message:
168
170
169
171
Bật cập nhật phản hồi trực tiếp:
170
172
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).
-**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 đủ
173
175
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.
175
177
176
178
### Reaction
177
179
178
180
Hiển thị trạng thái emoji trên tin nhắn user. Đặt `reaction_level`:
179
181
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.
@@ -203,17 +205,17 @@ Lệnh được xử lý trước khi làm phong phú tin nhắn:
203
205
204
206
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` và `/removewriter` (reply vào tin nhắn của user mục tiêu).
205
207
206
-
## Cách ly mạng
208
+
## Network Isolation
207
209
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.
209
211
210
212
| Tuỳ chọn | Mặc định | Mô tả |
211
213
|--------|---------|-------------|
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. |
213
215
|`proxy`| -- | URL HTTP proxy cho instance bot này (ví dụ: `http://proxy:8080`). |
214
216
|`api_server`| -- | Server Telegram Bot API tuỳ chỉnh. Hữu ích với local Bot API server hoặc private deployment. |
215
217
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.
217
219
218
220
```json
219
221
{
@@ -232,8 +234,8 @@ Mỗi instance Telegram duy trì một HTTP transport riêng biệt — không d
232
234
233
235
| Vấn đề | Giải pháp |
234
236
|-------|----------|
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`. |
237
239
| Thiếu transcript STT | Xác minh URL proxy STT và API key. Kiểm tra log về timeout. |
238
240
| Streaming không hoạt động | Bật `dm_stream` hoặc `group_stream`. Đảm bảo provider hỗ trợ streaming. |
239
241
| Đị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
0 commit comments