Có một lỗi rất dễ gặp khi đưa agent vào Discord: agent làm đúng việc, nhưng lại kể lể quá nhiều giữa các lần gọi tool. Kết quả là kênh chat bị spam bởi các câu kiểu “mình sẽ kiểm tra”, “mình đang đọc file”, “tiếp theo mình sẽ…”.
Vấn đề này không chỉ là thẩm mỹ. Với team vận hành, chat quá ồn làm người dùng mất niềm tin, bỏ sót tín hiệu quan trọng, và khó phân biệt đâu là cập nhật thật sự cần đọc.
Vì sao agent hay nói quá nhiều
Thường có ba nguyên nhân:
- Prompt khuyến khích “giải thích từng bước” nhưng không phân biệt giữa suy nghĩ nội bộ và cập nhật cho người dùng.
- Agent không có quy tắc rõ ràng về khi nào được gửi message ra kênh.
- Workflow xem Discord như terminal log, trong khi người dùng lại kỳ vọng nó là giao diện cộng tác.
Nói cách khác, đây không hẳn là lỗi của Claude hay model nào đó. Đây là lỗi thiết kế lớp giao tiếp.
Cách mình thường xử lý
1. Tách “tool narration” khỏi “user update”
Không phải bước nào cũng đáng được nói ra. Một nguyên tắc thực dụng:
- Đọc file, grep, kiểm tra trạng thái: im lặng.
- Thao tác có rủi ro, thay đổi dữ liệu, gửi ra ngoài: báo ngắn trước khi làm hoặc xin xác nhận.
- Việc dài hơn vài phút: cập nhật theo mốc, không cập nhật theo từng tool call.
- Có lỗi thật sự hoặc cần quyết định từ người dùng: nói rõ blocker.
Nếu agent chỉ đang làm việc bình thường, im lặng là tính năng.
2. Đặt “message budget” cho mỗi task
Một cách đơn giản là ép agent tự hỏi: “Trong task này, tối đa nên gửi mấy tin?”
Ví dụ:
- Task nhỏ dưới 1 phút: 1 tin cuối là đủ.
- Task nhiều bước: 1 tin bắt đầu nếu cần, 1 tin khi có kết quả, thêm 1 tin nếu bị block.
- Task chạy nền: chỉ báo khi có milestone hoặc cần người dùng can thiệp.
Điểm quan trọng là đừng để agent biến mỗi tool call thành một message.
3. Dùng prompt có quy tắc im lặng cụ thể
Một đoạn hướng dẫn kiểu này thường hiệu quả hơn “đừng spam”:
Do not narrate routine tool calls.
Only send a progress update when:
- the action is risky or external-facing,
- the task is blocked,
- the user needs to make a decision,
- or a meaningful milestone is complete.
For simple internal lookups, act silently and report only the result.
Nếu chạy trong Discord, mình còn thêm:
Discord is a collaboration channel, not a debug log.
Avoid sending separate messages for planning, checking, reading, or tool execution.
Batch updates into one concise message when possible.
4. Chặn ở tầng orchestrator nếu prompt chưa đủ
Prompt giúp nhiều, nhưng nếu cần chắc hơn thì nên có lớp ngoài model:
- Gom nhiều update nhỏ thành một tin.
- Chặn các câu có mẫu “I’ll check”, “I’m going to”, “Let me…”.
- Chỉ cho phép gửi message ở một số trạng thái:
needs_user,completed,blocked,risky_action_confirmation. - Ghi log nội bộ riêng, không đẩy toàn bộ log ra Discord.
Đây là khác biệt giữa “agent đang chat” và “agent đang được vận hành như một sản phẩm”.
Checklist nhanh cho anh em
Nếu agent của anh em đang spam Discord, thử kiểm tra:
- Có quy định rõ việc gì được nói và việc gì phải im lặng chưa?
- Có giới hạn số message cho mỗi task chưa?
- Có tách log kỹ thuật khỏi cập nhật người dùng chưa?
- Có bắt agent gộp kết quả thành một reply cuối chưa?
- Có lớp ngoài model để lọc/gộp message nếu prompt fail chưa?
Kết luận
Một agent tốt không phải là agent giải thích mọi thứ nó làm. Một agent tốt là agent biết khi nào nên nói, khi nào nên làm trong im lặng, và khi nào cần kéo người dùng vào quyết định.
Với Discord, mình sẽ ưu tiên thiết kế theo hướng “ít message nhưng đúng lúc”. Đó là cách giữ kênh sạch, giữ tín hiệu rõ, và làm agent trông chuyên nghiệp hơn rất nhiều.
Top comments (0)