Cẩm nang · GoClaw v3.10.0 🆕 Có bản mới: v3.12.0
Tài liệu chuyên sâu dành cho người mới

Cẩm nang Quản trị 11 Menu trong GoClaw

Hiểu trọn vẹn từng menu, từng trường cấu hình — biết chính xác nên điền gì và cấu hình thế nào là tốt nhất. Từ Agent, Team, Channel đến Memory, Vault, Knowledge Graph.

11
Menu chính
100+
Trường cấu hình
9
Kênh giao tiếp
5
Góc nhìn mỗi mục

Tổng quan hệ thống

GoClaw là nền tảng AI Agent đa tenant, hoạt động như cổng kết nối giữa 20+ nhà cung cấp LLM, 9 kênh giao tiếp và nhiều người dùng với phân quyền RBAC (admin/operator/viewer).

Các menu trong tài liệu này xoay quanh vòng đời dữ liệu của agent:

Agent (cá thể AI) ─▶ Team (nhóm agent) ─▶ Channel (kênh tiếp nhận) │ │ ▼ ▼ Session (lịch sử chat) ◀──────────────── Message vào/ra │ ▼ Memory (ngắn hạn) ─▶ Vault (tài liệu team) ─▶ Knowledge Graph (tri thức ngữ nghĩa) │ ▼ Skill + Built-in Tools + MCP (công cụ mở rộng) + Cron (tác vụ định kỳ)
Cách đọc tài liệu nàyVới mỗi mục, bạn sẽ gặp 5 khối màu: Là gì? Ý nghĩa Giúp được gì? Nên điền gì? Cách tốt nhất
1

Menu Agent

Hãy hình dung Agent như một "nhân viên AI" của bạn. Bạn đặt cho nó cái tên, dáng vẻ (emoji), tính cách, giao việc và cho phép nó dùng những công cụ nào. Sau đó, nó sẽ thay bạn trò chuyện với khách, viết bài, gọi tool và xử lý công việc 24/7.

1.1 Khái niệm cơ bản: 2 loại Agent

Khi tạo agent, bạn phải chọn 1 trong 2 loại — và không đổi được sau này. Đây là quyết định nền tảng nhất.

Open (Riêng tư)

Mỗi người dùng có một bản agent riêng của mình. Cùng 1 agent nhưng người A và người B có lịch sử, ghi chú, ngữ cảnh khác nhau — không ai thấy của ai.

Ví dụ: trợ lý cá nhân, agent dành cho 1 user.

Predefined (Dùng chung)

Agent có ngữ cảnh nền dùng chung cho mọi người dùng (vd: "Trợ lý hỗ trợ khách hàng" của công ty), nhưng vẫn giữ thông tin riêng của từng user qua file USER.md. Bắt buộc nếu muốn agent tham gia Team.

Ví dụ: bot CSKH, agent nội bộ công ty.

Lời khuyênNếu bạn không chắc — chọn Predefined. Vì sau này muốn lập Team thì agent Open không tham gia được, lúc đó phải tạo lại từ đầu rất mất công.

1.2 Trang Danh sách Agent

Khi click vào menu Agent ở thanh bên trái, bạn vào trang này — nơi quản lý tất cả agent đã tạo. Đây là điểm bắt đầu của mọi thao tác.

Có gì trên trang này?

  • Tiêu đề "Agent"Kèm dòng phụ "Quản lý các agent AI của bạn".
  • Nút + Tạo agentMở dialog tạo agent mới — đây là nút bạn dùng nhiều nhất khi mới bắt đầu.
  • Nút Chuyển AgentDi chuyển agent giữa các tenant (chỉ admin master cần dùng).
  • Ô "Tìm kiếm agent..."Gõ tên hoặc khóa agent để lọc nhanh.
  • Lọc theo loại: Predefined / Open / Tất cảHiển thị riêng từng loại để tiện quản lý.
  • Lọc theo người tạo: "Tất cả người tạo"Khi nhiều người trong tenant cùng tạo agent.
  • Nút chuyển kiểu xem (lưới/danh sách)2 icon góc phải: Card grid (mặc định) hoặc List view kiểu bảng.

Mỗi thẻ Agent hiển thị gì?

Trên mỗi card agent, bạn thấy đầy đủ những thông tin sau (xem lại ảnh giao diện thật):

  • Biểu tượng (emoji)Icon đại diện ở góc trái — giúp nhận diện nhanh.
  • Tên hiển thịTên thân thiện, vd: "Lửng Mật Văn Vở".
  • Khóa agent (agent_key)Mã định danh kỹ thuật bên dưới tên, vd: lung-mat-van-vo. Dùng trong logs, API.
  • Trạng tháiBadge xanh "active" = đang hoạt động; "inactive" = tạm dừng.
  • Provider/ModelDòng nhỏ, vd: gemini-native / gemma-4-31b-it — cho biết "bộ não" agent đang dùng.
  • Mô tảĐoạn ngắn nêu agent này làm gì, chuyên môn ra sao.
  • Badge Đầy đủCho biết agent đang dùng Chế độ System Prompt nào (Đầy đủ / Tác vụ / Tối giản / Không).
  • Badge Đang tiến hóaCó biểu tượng ✨ — agent đang bật chế độ tự học hỏi (chỉ Predefined).
  • Badge 200K ctxKích thước "trí nhớ ngắn hạn" của agent — 200.000 token (rất lớn).
  • Nút XóaCẩn thận — xóa agent là xóa luôn cấu hình. Nên đổi sang inactive trước nếu không chắc.
Mẹo nhỏClick trực tiếp vào card agent (không phải nút Xóa) để vào Trang chi tiết — nơi cấu hình tất cả mọi thứ. Đây là cách "vào sâu" để chỉnh agent.

1.3 Tạo Agent mới — Đi từng ô một

Khi bấm + Tạo agent, một cửa sổ pop-up mở ra. Hãy đi qua từng ô theo thứ tự:

Khối 1: Định danh agent

  • Tên hiển thị * Là gì? Tên gọi thân thiện của agent, hiện ra mọi nơi trong giao diện và khi agent ký tên trong tin nhắn.
    Nên đặt thế nào? Đặt tên có "tính cách" để dễ nhớ. Ví dụ: "Cáo Tinh", "Bếp trưởng Phú", "Trợ lý Sales Lan". Tránh tên kỹ thuật khô khan như "Bot01".
    Bên trái còn có ô tròn nhỏ để chọn emoji đại diện — nhấn vào để mở bảng emoji.
  • Khóa agent * Là gì? Mã định danh "máy đọc được" — chỉ chữ thường, số, dấu gạch ngang. Không có dấu tiếng Việt, không có khoảng trắng.
    Hệ thống tự sinh ra từ Tên hiển thị (vd: "Cáo Tinh" → cao-tinh). Bạn có thể sửa lại nếu muốn ngắn gọn hơn.
    Lưu ý quan trọng: Sau khi tạo, đổi khóa rất phức tạp. Hãy chọn cẩn thận từ đầu. Mẫu nên dùng: vai-trò-biến-thể như support-vip, coder-go.

Khối 2: Bộ não agent (Provider & Model)

  • Provider * Là gì? Hãng cung cấp "bộ não AI" cho agent — Anthropic (Claude), OpenAI (GPT/ChatGPT), Google (Gemini), DeepSeek, Groq, v.v.
    Yêu cầu: Provider phải được bạn cấu hình API key trước ở menu Providers. Nếu danh sách rỗng — vào đó thêm trước.
    Khi nào chọn cái nào? Mới bắt đầu nên chọn Anthropic (Claude) — mạnh nhất cho việc gọi tool, hội thoại tự nhiên. Cần rẻ chọn DeepSeek hoặc Groq.
  • Model * Là gì? Phiên bản cụ thể của bộ não. Mỗi provider có nhiều model khác nhau về giá, tốc độ, chất lượng.
    Sau khi chọn xong, bấm nút Kiểm tra để chắc model có tồn tại và API key hợp lệ. Nếu báo lỗi → check lại key.
    Gợi ý: Anthropic dùng claude-opus-4-6 (mạnh nhất) hoặc claude-sonnet-4-6 (cân bằng). OpenAI dùng gpt-4o.

Khối 3: Mô tả agent của bạn

Đây là khối quan trọng nhất vì nó quyết định "tính cách" của agent. Có 2 phần:

  • 7 Preset có sẵn Hàng chip màu cam — bấm vào 1 cái để dùng tính cách mẫu:
    🦊 Tiểu Hồ 💻 Lập trình viên 🎧 Hỗ trợ ✍️ Biên tập 🌐 Phiên dịch 🎨 Tiểu La 🔮 Mễ Mễ
    Bấm preset → mô tả tự điền vào ô bên dưới + tự động chọn emoji. Bạn vẫn sửa lại được.
  • Ô mô tả lớn Bạn viết gì vào đây? Mô tả tính cách, mục đích và hành vi của agent.
    Ví dụ tốt: "Tôi là Cáo Tinh — chuyên tư vấn marketing cho SME ngành thời trang. Giọng văn vui tươi, hay dùng emoji. Luôn hỏi rõ nhu cầu trước khi đưa giải pháp. Không tư vấn về tài chính cá nhân."
    Ghi chú từ hệ thống (xem dưới ô): "AI sẽ tự động tạo tệp ngữ cảnh cho agent từ mô tả này. Để trống để bắt đầu với mẫu có sẵn." — nghĩa là nếu để trống, agent sẽ dùng template mặc định.

Khối 4: Tự tiến hóa

  • Toggle "Tự tiến hóa" Mô tả của hệ thống: "Cho phép agent tiến hóa phong cách và giọng điệu theo thời gian qua SOUL.md".
    Hiểu đơn giản: bật cái này, agent sẽ tự "rút kinh nghiệm" sau mỗi cuộc trò chuyện và tự điều chỉnh tính cách dần.
    Có nên bật ngay? Khuyên là tạm tắt khi mới tạo. Sau 1-2 tuần dùng ổn rồi mới bật, để tránh agent tự đổi tính cách mà bạn không kiểm soát.

Khối 5: Chế độ System Prompt — Chọn 1 trong 4

Đây là "độ dày" của hướng dẫn ban đầu mà agent đọc trước khi trả lời mỗi tin nhắn. Càng dày càng thông minh nhưng tốn tiền hơn.

Chế độTokenHiểu đơn giảnKhi nào chọn?
⚡ Đầy đủ ~4.8K Tất cả phần — chat tương tác, persona, đầy đủ tính năng Mặc định nên chọn. Agent chính, chất lượng cao.
🔧 Tác vụ ~1.3K Tự động hóa — memory, evolution, không persona/vibe Agent chạy task tự động, không cần "tính cách".
📦 Tối giản ~570 Tác vụ nền — rules cốt lõi, domain context, observe-only Heartbeat, cron job — cần rẻ và nhanh.
⊘ Không ~640 Tự động gọi tool — tools, skills, không rules hay persona Test thử nghiệm. Hiếm dùng production.
Lời khuyênMới tạo → cứ chọn Đầy đủ. Sau 1 tuần, vào menu Usage/Traces xem nếu cache hit > 80% thì giữ nguyên; nếu thấy chi phí cao mà tin nhắn đơn giản, hạ xuống Tác vụ.

Sau khi điền xong, bấm Tạo ở góc dưới bên phải. Agent sẽ xuất hiện trên trang danh sách.

1.4 Trang chi tiết Agent — Bố cục chung

Khi click vào 1 agent từ danh sách, bạn vào trang chi tiết. Trên cùng là thanh đầu trang:

  • Mũi tên quay lạiVề trang danh sách.
  • Emoji + Tên + KhóaThông tin cơ bản, kèm chấm xanh = đang active.
  • Provider/ModelDòng nhỏ bên dưới tên.
  • Badges: Đầy đủ V3 ✨ Đang tiến hóaTóm tắt cấu hình hiện tại.
  • Nút System Prompt (con mắt)Mở dialog xem trước toàn bộ system prompt thực tế mà LLM nhận. Cực kỳ quan trọng — đọc trước khi đưa vào production.
  • Nút Tắt (trái tim)Mở dialog cấu hình Heartbeat (nhịp tim — agent chủ động nhắn).
  • Nút bánh răngMở dialog Nâng cao (Workspace, Memory sharing, Subagents, Sandbox, v.v.).
  • Nút XóaXóa vĩnh viễn agent. Cẩn thận!

5 tab chính bên dưới

TabBạn làm gì ở đây?
AgentCấu hình chính: System Prompt, Cá tính, Mô hình & Ngân sách, Skills, Heartbeat...
TệpQuản lý các file ngữ cảnh (SOUL.md, IDENTITY.md, USER.md...) — nguồn "ký ức nền" của agent.
Phân quyềnCấp quyền cho user nào được sửa file, sửa heartbeat, sửa cron của agent.
EvolutionXem chỉ số tiến hóa và các gợi ý cải tiến (chỉ Predefined, khi đã bật Tự tiến hóa).
Phiên bản người dùngXem từng "instance" của agent với mỗi user (chỉ Predefined).

1.5 Tab Agent — Phần "Chế độ System Prompt"

Đây là phần đầu tiên bạn thấy khi mở tab Agent. Hiển thị 4 thẻ tương ứng 4 chế độ — bấm vào thẻ nào để chọn chế độ đó. Mỗi thẻ kèm danh sách "khối" sẽ được nhúng vào prompt:

⚡ Đầy đủ ~4.8K

Tất cả phần — chat tương tác, persona, đầy đủ tính năng

Persona Tools Exec Bias Call Style Safety Skills MCP Memory Sandbox Tiến hóa Gợi ý kênh

🔧 Tác vụ ~1.3K

Tự động hóa — memory, evolution, không persona/vibe

Style Echo Tools Exec Bias Safety (sm) Skills (hybrid) MCP (search) Memory (sm)

📦 Tối giản ~570

Tác vụ nền — rules cốt lõi, domain context, observe-only

Tools Skill ghim Memory (min) Domain Context

⊘ Không ~640

Tự động gọi tool — tools, skills, không rules hay persona

Tools Tool Notes Skill ghim MCP (search) Workspace
Xem prompt thật trông như thế nào?Bấm nút System Prompt (con mắt) ở thanh đầu trang. Cửa sổ mở ra cho bạn chuyển qua lại Full / Task / Minimal / None để so sánh và đếm token thực tế (vd: "7,706 tokens").

1.6 Tab Agent — Phần "Cá tính Agent"

Đây là nơi tinh chỉnh "danh tính" của agent. Bao gồm:

  • Biểu tượngÔ bên trái có hình emoji hiện tại — click để đổi. Có cả nút "Chọn icon" nếu muốn dùng icon từ thư viện.
  • Tên hiển thịSửa tên thân thiện. Đổi xong nhớ bấm "Lưu thay đổi" ở dưới.
  • Tóm tắt chuyên môn Đoạn ngắn 2-3 câu mà LLM thực sự đọc để hiểu mình là ai. Viết ở ngôi thứ nhất.
    Ví dụ: "Chuyên gia điều phối Content, Marketing & Branding cho Lemon Digital, chuyên về E-commerce Enabler và AI-First Content Strategy."
    Ngay dưới ô có dòng "LLM nhìn thấy đây là: ..." — preview chính xác phần text được nhúng vào prompt.
  • Trạng thái Dropdown gồm: Hoạt động (active — bình thường), Tạm dừng (inactive — không nhận tin nhắn), Tạo lỗi (summon_failed — cần sửa cấu hình rồi thử lại).
    Mẹo: Khi không chắc có muốn dùng nữa không, đặt "Tạm dừng" thay vì xóa.
  • Agent mặc định (toggle)Bật cho 1 agent duy nhất trong workspace. Đây là agent sẽ nhận tin nhắn từ kênh chưa được pair với agent cụ thể nào.

1.7 Tab Agent — "Mô hình & Ngân sách"

Phần này quyết định agent dùng "bộ não" gì và được tiêu bao nhiêu tiền mỗi tháng.

  • Provider + ModelĐổi nhà cung cấp/model — giống lúc tạo. Lưu ý: đổi provider sẽ phải chọn lại model.
  • Context Window (Cửa sổ ngữ cảnh) Số token tối đa "trí nhớ ngắn hạn" của agent — tức là tổng dung lượng system prompt + lịch sử + tool results mà agent có thể "thấy" cùng lúc.
    Để đúng theo datasheet model: Claude Sonnet 4 = 200.000, GPT-4o = 128.000, một số model 1.000.000. Đừng tự "phóng đại" hơn thực tế — sẽ bị truncate (cắt) bất ngờ.
  • Max Tool Iterations (Số vòng tool tối đa) Mặc định 20. Là số lần tối đa agent được gọi tool trong 1 lượt trả lời.
    Khi nào tăng? Agent hay làm task dài (scraping web, batch processing) → tăng lên 40-60. Đừng để vô hạn vì có thể loop tốn tiền.
  • Budget Monthly (Ngân sách tháng — USD) Hàng rào cuối chống lỗi loop tốn tiền. Vượt ngưỡng → agent bị chặn API call đến đầu tháng sau.
    Gợi ý mức: Agent dùng nhiều với Claude Sonnet → 20-50$. Agent dùng Opus / reasoning → 100-300$.
    Quan trọng: Luôn đặt budget, ngay cả khi bạn tin tưởng agent. Bắt đầu mức thấp, tăng dần khi cần.

1.8 Cấu hình Heartbeat (Nhịp tim) — Nút trái tim

Heartbeat là tính năng cho agent chủ động gửi tin nhắn định kỳ — không phụ thuộc user nhắn trước. Như cú "check-in" hàng ngày của agent với bạn.

Mở: Bấm nút Tắt (hoặc Bật) ở thanh đầu trang chi tiết agent — biểu tượng trái tim đỏ. Dialog "Cấu hình Heartbeat" mở ra.

Khối "Kích hoạt"

  • Toggle Kích hoạtBật/tắt heartbeat. Mô tả: "Khi bật, agent sẽ chạy theo chu kỳ đã cấu hình."
  • Ô số phút (kèm icon đồng hồ)Tần suất chạy — mặc định 5 min. Khuyên: agent đồng hành ≥60 phút; agent monitoring 5-15 phút.

Khối "MODEL"

Mô tả: "Ghi đè provider/model cho heartbeat. Để trống để dùng mặc định của agent."

  • Provider + ModelCó thể chọn model rẻ hơn cho heartbeat (vd Claude Haiku, GPT-4o-mini) để tiết kiệm. Nếu để trống, dùng model chính của agent.

Khối "GỬI KẾT QUẢ"

  • KênhChọn channel để gửi heartbeat (Telegram, Discord, Slack...). Mặc định "Không (không gửi)". Nếu để trống → heartbeat chỉ chạy nội bộ, không gửi tin.
  • Chat IDID của nhóm hoặc DM cụ thể nhận tin (vd Telegram chat_id). Phải chọn Kênh trước mới điền được.

Khối "LỊCH HOẠT ĐỘNG"

  • Bắt đầu + Kết thúc (HH:MM)Khung giờ trong ngày agent được phép check-in. Ví dụ: 08:00 đến 22:00 — chỉ làm việc giờ hành chính, không làm phiền ban đêm.
  • Múi giờChọn Asia/Saigon (UTC+7) nếu bạn ở Việt Nam. Mặc định lấy theo browser user.

Ghi chú phía dưới: "Để trống để chạy 24/7."

Cài đặt nâng cao (collapsible)

Mở rộng để tinh chỉnh sâu hơn — retry, suppress on OK, v.v. (đa số người mới có thể bỏ qua).

DANH SÁCH KIỂM TRA (HEARTBEAT.MD)

"Hướng dẫn được đưa vào mỗi lần chạy heartbeat. Hỗ trợ markdown."

Đây là checklist agent đọc mỗi lần check-in — bạn viết những điều agent cần kiểm tra/báo cáo. Ví dụ:

# Danh sách kiểm tra Heartbeat
- Tổng hợp 3 đơn hàng mới nhất
- Kiểm tra inbox có khách chờ trả lời không
- Báo cáo nếu có lỗi trong 1 giờ qua

Buttons cuối cùng

  • Chạy thử: Test heartbeat ngay lập tức để xem kết quả trước khi enable.
  • Hủy: Đóng dialog, bỏ thay đổi.
  • Lưu: Lưu cấu hình.
Luôn bấm Chạy thử ít nhất 1 lần trước khi bật heartbeat. Đảm bảo Channel + Chat ID đã đúng — tránh tin nhắn gửi nhầm chỗ.

1.9 Dialog "Nâng cao" — Nút bánh răng ⚙️

Bấm nút bánh răng ở thanh đầu trang để mở dialog Nâng cao. Đây là nơi tập trung mọi cấu hình "kỹ thuật" — chia thành nhiều khối:

Khối "Workspace"

  • Đường dẫn workspace Đường dẫn nơi agent lưu file riêng, vd: /app/workspace/lung-mat-van-vo.
    "Được gán tự động khi agent được tạo. Các thư mục con theo người dùng được tạo khi chạy."
    Đa số trường hợp không cần đổi. Chỉ sửa nếu bạn muốn dùng chung folder với agent khác.

Khối "Memory & Knowledge Graph"

"Kiểm soát cô lập memory và knowledge graph giữa các người dùng".

  • Toggle Chia sẻ MemoryCho phép user khác đọc memory của agent. Mặc định tắt để bảo mật.
  • Toggle Chia sẻ Knowledge GraphCho phép user khác xem KG của agent. Mặc định tắt.
  • Toggle Chia sẻ phiên hội thoạiCho phép user khác xem/tham gia sessions của agent. Mặc định tắt.

Khối "Chia sẻ Workspace"

"Kiểm soát cách cô lập file workspace giữa các người dùng".

Có cảnh báo cam ngay trong UI: "Khi bật chia sẻ, tất cả người dùng được chia sẻ có thể đọc và ghi file trong cùng thư mục workspace. Chia sẻ bộ nhớ được cài đặt riêng. File ngữ cảnh vẫn được cô lập theo từng người dùng."

Bên dưới là phần Thư mục Workspace — cụ thể chọn user nào được phép truy cập (nếu bật chia sẻ).

Khối "Subagents (Agent con)"

Cho phép agent này spawn (tạo ra) các agent con để làm song song nhiều việc.

  • Toggle Bật SubagentsMặc định tắt.
  • Max ConcurrentSố agent con chạy cùng lúc tối đa (mặc định 8).
  • Max Spawn DepthCon có được spawn cháu không? (1 = không).
  • Max Children Per AgentMỗi agent cha có tối đa N con (mặc định 5).
  • Archive After (phút)Session con nhàn rỗi bao lâu sẽ archive (mặc định 60).
  • Model OverrideDùng model rẻ hơn cho subagent (vd Haiku — chỉ tốn 1/10 giá cha).

Khối "Tool Policy" (Chính sách công cụ)

  • Profile: chọn gói preset — full (đầy đủ), coding (lập trình), messaging (chat), minimal (tối thiểu).
  • Allow / Deny / Also Allow: 3 danh sách để bật, cấm, hoặc bổ sung tool ngoài profile.
  • Tool Call Prefix: Tiền tố xóa khi LLM gọi tool — chỉ cần khi dùng MCP có prefix.
Khởi đầu để full. Agent client-facing đổi sang messaging để giới hạn tool nguy hiểm như exec.

Khối "Sandbox" (Docker)

Cấu hình môi trường cô lập để agent chạy code (như Python, Bash) an toàn.

TrườngGiá trịKhuyên
Modeoff / non-main / allProduction: non-main
Workspace Accessnone / ro / rwrw chỉ khi agent là "coder"
Docker Imagegoclaw-sandbox:bookworm-slimMặc định ổn
Scopesession / agent / sharedProduction: session
Timeout / Memory / CPUs300s / 512MB / 1.0Tăng nếu task nặng
Network EnabledfalseChỉ bật khi cần pip/npm install

Khối "Thinking / Reasoning"

Bật suy luận mở rộng (extended thinking) cho task phức tạp.

  • Reasoning Mode: inherit (theo provider default) / custom
  • Thinking Level: off / low / medium / high
  • Reasoning Effort (expert): off đến xhigh
  • Fallback Behavior: downgrade / provider_default / off

Khuyên: Để inherit trừ khi làm task toán/code phức tạp. Thinking tốn token rất đắt.

Khối "Memory" (Bộ nhớ agent)

TrườngMặc địnhÝ nghĩa đời thường
Max Chunk Length1000Cắt memory thành đoạn dài bao nhiêu ký tự
Chunk Overlap200Mỗi đoạn chồng lấp đoạn kế bao nhiêu (giữ ngữ cảnh)
Max Results6Mỗi lần tìm trả về tối đa N memory
Min Score0.35Ngưỡng "giống" tối thiểu để được trả về (0-1)
Vector / Text Weight0.7 / 0.3Trọng số semantic vs keyword search
Dreaming EnabledtrueCho agent "ngủ mơ" — cố định bộ nhớ ban đêm
Threshold / Debounce5 / 10 phútCần ít nhất N memory mới để dreaming chạy; cách tối thiểu 10 phút

Mẹo: Agent "quên" → hạ Min Score về 0.25. Agent "nhớ rác" → nâng lên 0.5.

Khối "Compaction" + "Context Pruning"

Compaction (Nén lịch sử)

  • Max History Share: 0.85 — khi history chiếm 85% context thì nén
  • Keep Last Messages: 4 — giữ 4 tin cuối nguyên vẹn
  • Memory Flush: bật — flush memory khi context đầy

Context Pruning (Tỉa context) v3.10.0

  • Mặc định BẬT với cache-ttl mode (mới v3.10.0)
  • Keep Last Assistants: 3
  • Soft Trim / Hard Clear: 0.3 / 0.5
  • Max / Head / Tail Chars: 4000 / 1500 / 1500
  • Hard Clear Enabled: bật
Mới v3.10.0Context Pruning được bật mặc định với chế độ cache-ttl — giúp agent ít "lú" trong hội thoại dài mà không cần tinh chỉnh tay. Trước đây phải bật thủ công.

Khi nào động vào? Mặc định ổn. Nếu agent hay "lú" cuối cuộc trò chuyện dài → giảm Max History Share xuống 0.75.

Bấm Lưu cấu hình ở đáy dialog để áp dụng.

1.10 Tab Agent — Phần "Skills" và "Pinned Skills"

  • Skills List: danh sách kỹ năng đã cấp cho agent. Mỗi skill là 1 file SKILL.md hướng dẫn agent làm 1 loại task chuyên biệt (xem Menu Skill).
  • Pinned Skills (Skill được ghim): tối đa 10 skill được nhúng thẳng vào system prompt — agent không cần gọi skill_search để tìm. Phù hợp với skill thường xuyên dùng.
Ghim 3-5 skill cốt lõi nhất. Mỗi pinned skill = +vài trăm token system prompt → tốn tiền hơn nhưng nhanh hơn.

1.11 Tab Agent — Phần "Orchestration" (Phối hợp)

Phần này chỉ hiển thị, không sửa được. Nó tóm tắt quan hệ agent với agent khác:

  • Mode: spawn (đứng riêng), delegate (có Agent Link gửi việc cho agent khác), team (thành viên Team).
  • Delegate Targets: danh sách agent có thể gửi việc tới.
  • Team: tên team đang tham gia.

Cấu hình thật ở menu Agent Link & Team.

1.12 Tab Agent — Phần "ChatGPT OAuth Routing"

Chỉ hiện khi provider là chatgpt_oauth với nhiều tài khoản ChatGPT Plus.

  • Strategy: primary_first (ưu tiên tài khoản chính) / round_robin (xoay vòng) / priority_order (theo thứ tự định sẵn).
  • Extra Providers: thêm tài khoản phụ vào pool routing để tránh rate limit.

1.13 Tab Agent — Phần "Self-Evolution" (chỉ Predefined)

  • Self-Evolution (false): Bật metrics → suggestion → auto-adapt.
  • Skill Learning (false): Tự khám phá skill mới.
  • Skill Nudge Interval (15%): Tần suất gợi ý skill mới cho agent.
  • Evolution Metrics / Suggestions: Thu thập metric, đề xuất cải tiến.
Production: bật Metrics + Suggestions (read-only) để theo dõi; không bật auto-adapt cho đến khi quan sát suggestions ít nhất 2 tuần.

1.14 Tab "Tệp" — Files

Quản lý các file ngữ cảnh nền của agent — đây là "ký ức gốc" mà agent luôn đọc:

  • SOUL.md — Linh hồn, tính cách cốt lõi
  • IDENTITY.md — Danh tính, vai trò
  • USER.md — Thông tin về user (per-user, chỉ Predefined)
  • HEARTBEAT.md — Checklist heartbeat (xem mục 1.8)
  • ...và các file khác bạn upload thêm
  • Regenerate Bootstrap Files (chỉ Predefined): Tái tạo SOUL/IDENTITY/USER khi đổi preset hoặc sửa lỗi cấu trúc.
  • System Prompt Preview: Xem prompt thật ở 4 chế độ (giống nút System Prompt ở header).

1.15 Tab "Phân quyền" — Permissions

Cấp quyền cho user nào được sửa cấu hình agent ở từng phần:

  • Config Type: file_writer (sửa file), heartbeat, cron, context_files, hoặc * (tất cả)
  • User ID: ai được cấp
  • Scope: phạm vi (agent, group:*, group:<id>)
  • Permission: allow hoặc deny

Khuyên: tối thiểu quyền. * chỉ cho admin tuyệt đối tin cậy. Luôn kèm Scope cụ thể, không để global.

1.16 Tab "Evolution" (chỉ Predefined)

Hiển thị bảng metrics tiến hóa và danh sách gợi ý cải tiến từ AI. Có nút Apply / Reject cho từng suggestion. Có Guardrails (hàng rào) ngăn thay đổi nguy hiểm.

1.17 Tab "Phiên bản người dùng" (chỉ Predefined)

Liệt kê các "instance" của agent với từng user — mỗi user có file USER.md và state riêng. Tiện cho việc xem agent đang làm việc với những ai và tình trạng riêng từng người.

1.18 Tóm tắt — Khi tạo agent xong, làm gì tiếp?

  1. ✅ Vào trang chi tiết, bấm System Prompt (con mắt) → đọc kỹ prompt LLM thực sự thấy.
  2. ✅ Vào phần Mô hình & Ngân sách → đặt Budget Monthly (đừng để vô hạn).
  3. ✅ Cấp 1-2 Skills phù hợp + ghim 3 skill cốt lõi nhất.
  4. ✅ Mở dialog Nâng cao → kiểm tra Sandbox, Workspace Sharing (nên tắt hết khi mới bắt đầu).
  5. ✅ Test thử: vào menu Trò chuyện, chọn agent, gửi vài tin nhắn xem agent phản hồi đúng tính cách chưa.
  6. ✅ Khi ok, link agent với Channel (Telegram, Slack...) ở menu Channel.
  7. ✅ Sau 1 tuần dùng, xem Usage để theo dõi chi phí thực tế và điều chỉnh.
2

Menu Agent Team & Agent Link

Hãy hình dung: nếu Agent là 1 nhân viên thì Team là 1 phòng ban (có trưởng nhóm, có thành viên, có bảng việc Kanban chung), còn Agent Link là "đường ống ủy quyền" giữa 2 nhân viên — cho phép họ nhờ vả công việc qua lại.

2.1 Hiểu nhanh: Team vs Agent Link

Agent Team (Nhóm)

Là một tổ chức chính thức gồm 1 Trưởng nhóm + nhiều Thành viên. Có bảng việc Kanban chung, không gian làm việc (workspace) chung, lịch sử hoạt động (audit log).

Khi nào dùng? Việc dài, nhiều bước, nhiều người cùng làm. Ví dụ: "Team Hỗ trợ Tier 1" có 1 Lead + 4 thành viên xử lý ticket khách.

Agent Link (Liên kết)

đường nối có hướng giữa 2 agent — cho phép agent A "nhờ" agent B làm 1 việc cụ thể. Không cần lập team, không có Kanban.

Khi nào dùng? Khi 2 agent thi thoảng cần giao việc qua nhau, không cần workspace chung. Ví dụ: agent "Sales" link tới agent "Kế toán" để xin báo giá.

Lưu ý quan trọngChỉ Predefined Agent (loại "dùng chung") mới được làm Thành viên Team hoặc làm Agent đích trong Link. Open Agent (loại "riêng tư") không tham gia được vì thiếu ngữ cảnh chia sẻ.

2.2 Vào menu — 2 tab ở thanh trên cùng

Khi click vào menu Agent Link & Team ở thanh bên trái, bạn vào trang có tiêu đề "Agent Team" kèm dòng phụ "Quản lý các agent team của bạn". Bên dưới là 2 tab:

  • Agent TeamTab mặc định — danh sách các Team đã tạo. Đây là nơi bạn quản lý nhóm.
  • Agent LinkBảng tất cả các đường nối ủy quyền giữa các agent (không phụ thuộc Team).

TAB 1 — AGENT TEAM (Nhóm)

2.3 Trang danh sách Team — Có gì trên màn hình?

Tab Agent Team mở ra một thanh công cụ + lưới các Team. Lần lượt từ trái sang phải:

  • Ô "Tìm kiếm Team..."Gõ tên hoặc mô tả team để lọc nhanh.
  • Nút + Tạo TeamMở dialog tạo team mới. Đây là nút chính khi mới bắt đầu.
  • Toggle xem (cuối thanh, 2 icon nhỏ)"Dạng thẻ" (lưới card — mặc định) hoặc "Dạng danh sách" (bảng dòng).

Mỗi thẻ Team hiển thị

Trên mỗi card team, bạn sẽ thấy:

  • Icon + Tên TeamVd: "Research Team", "Hỗ trợ Tier 1".
  • Badge v2 (nếu có)Phiên bản team — hầu hết team mới sẽ là v2 (Super Team).
  • Badge trạng tháiactive đang hoạt động hoặc inactive tạm dừng.
  • Mô tả (2 dòng)Đoạn ngắn tóm tắt team làm gì.
  • Danh sách thành viên (tối đa 4)Mỗi thành viên một chip ngang: emoji + tên + đoạn frontmatter (2 dòng đầu của AGENT.md). Trưởng nhóm có icon vương miện vàng.
  • +N khácNếu có hơn 4 thành viên, hiện dòng "+N khác".
  • Thời gian tạoVd "2 giờ trước", "3 ngày trước".
  • Nút XóaCẩn thận! Khi xóa sẽ xóa luôn mọi thành viên, nhiệm vụ và cấu hình. Hệ thống sẽ hỏi nhập đúng tên team để xác nhận.
Trạng thái rỗngNếu chưa có team nào, hệ thống hiện: "Chưa có Team nào — Tạo Team đầu tiên để bắt đầu."

2.4 Tạo Team mới — Đi từng ô một

Bấm + Tạo Team, dialog "Tạo Team" mở ra với 4 trường:

  • Tên * Là gì? Tên gọi của team, hiển thị mọi nơi.
    Placeholder gợi ý: "vd: Research Team"
    Nên đặt thế nào? Ngắn gọn, theo nghiệp vụ chứ không theo người. Ví dụ tốt: "Hỗ trợ Tier 1", "Sales Inbound", "Content Marketing". Tránh: "Team của Long" (nếu Long nghỉ thì khó).
  • Mô tả Là gì? Đoạn ngắn nói team này làm gì — không bắt buộc nhưng nên có.
    Placeholder: "Mô tả nhóm tùy chọn..."
    Ví dụ tốt: "Xử lý tất cả ticket khách hàng cấp 1, escalate cấp 2 nếu vượt khả năng."
  • Agent trưởng nhóm * Là gì? Agent đóng vai trò "Lead" — nhận yêu cầu, phân công cho members. Có thể là Open hoặc Predefined.
    Combobox placeholder: "Chọn agent trưởng nhóm...". Nếu rỗng, sẽ thấy: "Không tìm thấy agent hoạt động. Hãy tạo agent trước."
    Nên chọn ai? Agent có model mạnh (Claude Opus/Sonnet) vì lead phải điều phối — tốn não nhiều hơn members. Description rõ ràng để biết "Lead này điều phối được gì".
  • Thành viên Là gì? Các agent thực thi công việc.
    Tooltip ⓘ: "Chỉ có agent được định nghĩa sẵn mới có thể được thêm vào nhóm. Agent mở là per-user và thiếu ngữ cảnh dùng chung."
    Combobox placeholder: "Tìm kiếm và thêm thành viên...". Mỗi member chọn xong sẽ hiện thành 1 badge nhỏ; bấm để bỏ.
    Cảnh báo nhỏ: nếu chọn Lead xong mà chưa chọn member nào, hệ thống nhắc "Chọn ít nhất 1 thành viên cho nhóm".
    Nên có bao nhiêu? 3-7 là tối ưu. Ít quá không tận dụng team; nhiều quá tốn token cho lead điều phối.

Bấm Tạo ở góc dưới (đang xám cho đến khi đủ điều kiện: có tên + có lead + ≥1 member). Khi tạo xong, toast hiện "Đã tạo nhóm".

Lời khuyênLead = Predefined agent có Description rõ ràng vai trò điều phối. Members = các agent có "chuyên môn" khác nhau (vd: 1 viết content, 1 phân tích số liệu, 1 phản hồi khách). Tránh ghép toàn bộ "agent giống hệt nhau".

2.5 Trang chi tiết Team — Bố cục Bảng Kanban

Click vào card team → vào trang chi tiết. Khác với Agent (có nhiều tab), Team mở thẳng vào Bảng Kanban với phần header ở trên cùng.

Header — Thanh đầu trang

Từ trái sang phải:

  • Mũi tên quay lạiVề danh sách Team.
  • Tên TeamHiển thị to ở giữa.
  • Badge active / inactiveTrạng thái team.
  • Badge gradient cam-vàng v2 Super TeamBấm vào sẽ mở dialog "Tính năng Super Team" liệt kê 9 tính năng v2 (xem mục 2.10).
  • Dòng phụ bên dưới tênHiển thị: "Trưởng nhóm: {tên}" + "{N} thành viên".
  • Nút Thành viênMở dialog Thành viên (xem mục 2.6).
  • Nút Nhật ký hoạt độngMở dialog Audit Logs xem timeline mọi sự kiện trong team (xem mục 2.9).
  • Nút Cài đặtMở dialog Cài đặt team — nơi cấu hình notifications, workspace, escalation, access control (xem mục 2.7).
  • Nút Xóa TeamHỏi xác nhận bằng cách nhập đúng tên team mới cho xóa.

Bảng Kanban — Phần chính

Đây là chỗ team thực sự "làm việc". Có 3 phần:

Thanh công cụ phía trên Kanban:

  • Bộ lọc trạng thái4 nút: Tất cả Chờ xử lý Đang chạy Đã hoàn thành
  • Lọc theo Phạm vi (Scope)Dropdown chỉ hiện khi team đã có ≥1 phạm vi (vd các chat ID khác nhau).
  • Nhóm theo (chỉ chế độ Kanban)2 nút: "Trạng thái" (mặc định) hoặc "Người phụ trách". Đổi cách chia cột.
  • Nút Không gian làm việcMở dialog Workspace xem file dùng chung của team (xem mục 2.8).
  • Toggle Bảng / Danh sách2 icon nhỏ: Kanban grid hoặc List dòng.
  • Nút Tạo task mới thủ công.
  • Nút RefreshTải lại danh sách task.

Cột Kanban: Hiển thị tasks chia theo trạng thái (mặc định): Chờ xử lý → Đang chạy → Chờ duyệt → Đã hoàn thành. Mỗi task là một thẻ chứa: tiêu đề, badge trạng thái, người phụ trách, độ ưu tiên, ID task.

Trạng thái rỗng: "Không có task — Chat với agent của team để tạo task" — gợi ý người dùng tạo task qua chat thay vì tạo thủ công.

2.6 Dialog "Thành viên" — Quản lý người trong team

Mở từ nút Thành viên ở header. Title hiện "Thành viên (N)" với N là số members.

Có gì trong dialog?

  • Nút Thêm thành viên ở góc phảiBấm để mở khu vực thêm: Combobox "Tìm kiếm agent..." + nút Thêm. Dropdown chỉ hiện những agent predefined, active, chưa trong team.
  • Danh sách membersMỗi dòng: emoji + tên + badge vai trò + đoạn frontmatter mô tả. Lead luôn ở đầu danh sách.

3 vai trò (badge màu)

Vai tròMàu badgeQuyềnGhi chú
leadVàng (amber)Tất cả: tạo/giao task, duyệt, xóa file, escalateSet lúc tạo team, không đổi được. Không có nút xóa.
reviewerCamNhư member + duyệt/từ chối kết quảPhù hợp người kiểm chất lượng đầu ra.
memberXámCơ bản: claim task, update status, commentNgười thực thi chính. Mặc định khi thêm mới.

Xóa member: Hover lên dòng → hiện nút ở phải. Lead không có nút này.

2.7 Dialog "Cài đặt" — Trái tim của Team

Mở từ nút Cài đặt ở header. Đây là dialog dài nhất, chia thành nhiều khối. Title hiện: {Tên Team} + {badge status} + {badge v2 Super Team}.

Khối tổng quan (đầu dialog)

Card xám hiển thị nhanh: Mô tả, Trưởng nhóm, Số thành viên.

Khối "Thông báo" (Notifications)

Đây là 7 toggle quyết định team gửi notification khi nào. Click toggle để bật/tắt:

  • Giao nhiệm vụ (mặc định: bật)Hint: "Thông báo khi nhiệm vụ được giao cho thành viên."
  • Tiến trình (mặc định: tắt)Hint: "Thông báo khi thành viên cập nhật tiến trình." Bật nếu cần track real-time, tắt để giảm noise.
  • Thất bại (mặc định: tắt)Hint: "Thông báo khi nhiệm vụ thất bại." Nên BẬT trên production để biết task fail.
  • Cảnh báo tool chạy lâu (mặc định: tắt)Hint: "Thông báo hệ thống khi tool chạy lâu bất thường. Luôn gửi trực tiếp — không qua leader."
  • Thông báo khi task hoàn thành (mặc định: bật)Báo khi 1 task xong.
  • Thông báo khi có bình luận (mặc định: tắt)Bật khi cần theo dõi sát mọi comment.
  • Thông báo khi tạo task mới (mặc định: bật)Báo có task mới được tạo.

Sub-khối "Chế độ gửi" (notifyMode)

Hint: "Cách thông báo được gửi đến kênh chat." 2 lựa chọn radio:

Trực tiếp

"Gửi thông báo thẳng đến kênh chat. Nhanh, không qua AI."

→ Khuyên dùng cho production. Không tốn token LLM.

Qua Leader

"Leader diễn đạt lại cập nhật một cách tự nhiên trước khi gửi."

⚠ "Chế độ Leader dùng AI để diễn đạt lại (tốn token, có thể chậm hơn)."

Khối "Không gian làm việc" (Workspace Scope)

Card gradient xanh ngọc, có tiêu đề "Phạm vi workspace" + hint "Kiểm soát cách tổ chức tệp trong workspace của team."

Click chọn 1 trong 2 thẻ:

Cô lập (mặc định)

"Mỗi cuộc hội thoại có thư mục workspace riêng. Tệp từ chat này không hiển thị ở chat khác."

An toàn nhất. Khuyên dùng mặc định.

Chia sẻ

"Tất cả cuộc hội thoại dùng chung một thư mục workspace. Tệp tạo từ bất kỳ chat nào đều hiển thị cho tất cả."

⚠ Có rủi ro leak file giữa các chat. Chỉ dùng khi nghiệp vụ rõ ràng.

Khối "Yêu cầu thành viên" (Member Requests)

  • Toggle "Cho phép thành viên tạo request""Thành viên có thể tạo request để nhờ hỗ trợ từ thành viên khác". Mặc định tắt.
  • Toggle "Tự động phân phối cho người nhận" (chỉ hiện khi cái trên bật)"Request được phân phối ngay; nếu tắt thì chờ leader duyệt". Khuyên tắt để Lead kiểm soát chất lượng.

Khối "Escalation khi bị chặn" (Blocker Escalation)

Card gradient cam-đỏ, icon .

  • Toggle "Bật escalation khi bị chặn" (mặc định: bật)"Khi member báo blocker, task tự fail và leader được thông báo để retry với hướng dẫn mới."
    Giữ bật. Khi member gặp khó (vd thiếu thông tin), task tự fail thay vì treo, lead nhận notify để xử lý.

Khối "Nhắc nhở theo dõi" (Follow-up Reminders)

Card gradient amber-vàng, icon đồng hồ. Có 2 trường:

  • Khoảng cách nhắc (phút) Hint: "Thời gian chờ trước khi gửi mỗi lần nhắc nhở cho người dùng."
    Range: 1-1440 (1 phút - 24 giờ). Mặc định 30.
    Khuyên: 60 phút — không spam mà vẫn đủ nhắc.
  • Số lần nhắc tối đa Hint: "Số lần nhắc tối đa cho mỗi nhiệm vụ. 0 = không giới hạn (nhắc cho đến khi người dùng trả lời)."
    Range: 0-100. Mặc định 0 (vô hạn).
    Khuyên: 5 — sau 5 lần thì dừng để tránh khó chịu.

Khối "Kiểm soát truy cập người dùng" (Access Control — Users)

  • Người dùng được phépHint: "Nếu được đặt, chỉ những người dùng này mới có thể kích hoạt quy trình nhóm. Để trống = tất cả được phép."
    Bấm + để thêm user ID. Combobox tìm "Tìm kiếm người dùng..."
  • Người dùng bị từ chốiHint: "Luôn bị chặn, ghi đè danh sách cho phép."
    → Ngay cả nếu user nằm trong "Được phép" mà cũng nằm trong "Từ chối" → sẽ bị chặn.

Khối "Hạn chế channel" (Access Control — Channels)

  • Channel được phépHint: "Nếu được đặt, chỉ những channel này mới có thể kích hoạt quy trình nhóm. Để trống = tất cả được phép." Multi-select các channel type: Telegram, Discord, Slack, Feishu, Zalo, WhatsApp, Facebook, Pancake.
  • Channel bị từ chốiHint: "Tin nhắn từ các channel này luôn bị chặn."

Nút Lưu

Cuối dialog, nút Lưu cài đặt (kèm icon ). Khi đang lưu hiện "Đang lưu...". Toast thành công: "Đã lưu".

Cấu hình production khuyến nghịWorkspace: Cô lập. Notifications: bật Giao nhiệm vụ + Thất bại + Hoàn thành + Tạo task mới; tắt Tiến trình + Bình luận. Mode: Trực tiếp. Member Requests: bật + auto-dispatch tắt. Blocker Escalation: bật. Follow-up: 60 phút / max 5.

2.8 Dialog "Không gian làm việc" — Workspace

Mở từ nút Không gian làm việc trên thanh công cụ Kanban. Đây là nơi xem các file dùng chung của team.

  • Title"Không gian làm việc"
  • Trạng thái rỗng"Chưa có file trong workspace — File được tạo bởi agent nhóm trong quá trình cộng tác."
  • Bảng cộtTên file | Kích thước | Người tải lên | Phạm vi | Cập nhật
  • Hành độngClick file xem nội dung; nút Xóa (xác nhận: "Xóa file này?"); nút Refresh.
  • UploadCó khu Upload với title "Tải lên Workspace" + mô tả "Tải tệp lên để agent đọc trong quá trình cộng tác".

2.9 Dialog "Nhật ký hoạt động" — Audit Logs

Mở từ nút Nhật ký hoạt động trên header. Hiện timeline mọi sự kiện trong team, mỗi sự kiện có badge loại:

Tạo mới Nhận Phân công Gửi đi Hoàn thành Thất bại Hủy Đánh giá Duyệt Từ chối Bình luận Tiến độ Cập nhật Quá hạn

Trạng thái rỗng: "Chưa có sự kiện". Có nút Tải thêm để paginate.

2.10 Dialog "Tính năng Super Team" (v2)

Mở khi click vào badge gradient v2 Super Team ở header. Title: "Tính năng Super Team" + badge Beta.

Liệt kê 9 tính năng có sẵn ở phiên bản v2:

Tính năngMô tả
Quản lý nhiệm vụTạo, phân công, hoàn thành, hủy nhiệm vụ
Workspace chungTệp, phiên bản, cộng tác nhóm
Khóa thực thiNgăn xung đột nhiệm vụ với tự phục hồi
Nhắc nhở theo dõiTự nhắc khi đợi người dùng trả lời
Theo dõi tiến độCập nhật phần trăm và bước theo thời gian thực
Tự phục hồiNhiệm vụ bị treo tự đặt lại sau thời gian chờ
Bình luận & Nhật kýBình luận nhiệm vụ và lịch sử sự kiện đầy đủ
Escalation khi bị chặnMember có thể báo blocker — tự fail task và thông báo leader để retry
Quy trình duyệtGửi để người duyệt trước khi hoàn thành

Note Beta cuối dialog: "Một số tính năng đang ở giai đoạn Beta.". Nút Đã hiểu để đóng.

TAB 2 — AGENT LINK (Liên kết)

2.11 Trang danh sách Agent Link

Bấm tab Agent Link ở thanh trên. Trang gồm:

Header

  • Tiêu đề "Liên kết Agent"Hiển thị bên trái.
  • Nút RefreshTải lại danh sách.
  • Nút + Tạo liên kếtMở dialog tạo link mới.

Bảng danh sách (6 cột)

CộtHiển thị gì
Agent nguồnEmoji + tên hoặc agent_key của agent gửi yêu cầu
Agent đíchEmoji + tên hoặc agent_key của agent nhận
HướngBadge: Đi ra / Đi vào / Hai chiều
Trạng tháiBadge: Hoạt động / Tắt
Mô tảĐoạn ngắn hoặc dấu "—" nếu trống. Tối đa 200px chiều rộng (truncate).
Thao tácNút Sửa + Xóa

Trạng thái rỗng: "Chưa có liên kết agent nào."

Xác nhận xóa: dialog title "Xóa liên kết", nội dung "Xóa liên kết agent này? Không thể hoàn tác.", nút Xóa đỏ.

2.12 Dialog Tạo / Sửa liên kết

Title đổi theo ngữ cảnh: "Tạo liên kết" hoặc "Sửa liên kết". Có 5 trường:

  • Agent nguồn * Combobox "Chọn agent...". Đây là agent chủ động gửi yêu cầu.
    Khi sửa: trường này khóa (read-only) hiển thị key của agent gốc — không đổi nguồn được, phải xóa link rồi tạo mới.
  • Agent đích * Combobox tương tự. Đây là agent nhận yêu cầu. Phải khác Agent nguồn (nếu trùng → error "Agent nguồn và đích phải khác nhau.").
    Lưu ý: Chỉ Predefined agent mới có thể là Agent đích.
  • Hướng * Dropdown 3 lựa chọn:
    • Đi ra (outbound, mặc định) — Nguồn → Đích: A nhờ B làm việc. Phổ biến nhất.
    • Đi vào (inbound) — Đích → Nguồn: B có thể nhờ A. Hiếm khi dùng.
    • Hai chiều (bidirectional) — Cả 2 hướng đều cho phép. Dùng khi 2 agent ngang hàng phối hợp qua lại.
  • Mô tả Text input, không bắt buộc. Placeholder: "Mô tả tùy chọn..."
    Nên điền: Lý do link tồn tại để admin sau hiểu, vd: "Sales nhờ Kế toán xuất báo giá", "Content xin Researcher tóm tắt số liệu".
  • Tối đa đồng thời Number input, range 1-50, mặc định 5.
    Là gì? Tối đa bao nhiêu task đồng thời chạy qua link này.
    Để bao nhiêu? Mặc định 5 đủ cho hầu hết trường hợp. Tăng lên 10-20 nếu volume cao và Agent đích đủ throughput xử lý. Đừng để 50 — dễ quá tải.

2 nút cuối: Hủy / Tạo (hoặc Lưu khi sửa). Nút Tạo/Lưu xám đến khi đủ điều kiện (source ≠ target và đủ trường bắt buộc).

Lời khuyên thiết lập Agent Link(1) Đa số dùng Đi ra — dễ hiểu và kiểm soát. (2) Hai chiều chỉ khi 2 agent thực sự "ngang hàng". (3) Mỗi link luôn có Mô tả — sau 6 tháng nhìn lại sẽ không nhớ vì sao. (4) Tối đa đồng thời 5 là an toàn. (5) Tránh tạo "link graph" (mọi agent link với mọi agent) — sẽ tốn token điều phối, agent loạn.

2.13 Tóm tắt — Khi nào tạo Team, khi nào dùng Link?

Tình huốngDùng TeamDùng Agent Link
Việc dài, nhiều bước, có người duyệt✅ Có Kanban + Reviewer❌ Không phù hợp
1 agent thi thoảng nhờ agent khác việc nhỏ❌ Quá nặng✅ Vừa đủ
Cần workspace chung lưu file✅ Có sẵn❌ Không có
Cần audit log mọi thao tác✅ Có Nhật ký hoạt động❌ Không có
Cần escalation, follow-up reminder✅ Có cấu hình sẵn❌ Không có
2 agent ngang hàng, phối hợp qua lại⚠ Được nhưng nặng✅ Bidirectional link
Mới bắt đầu, chỉ 2 agent⚠ Nên dùng Link trước✅ Đơn giản, nhanh

2.14 Checklist hoàn chỉnh sau khi tạo Team

  1. ✅ Tạo Team với Lead phù hợp + 3-7 members predefined
  2. ✅ Vào Cài đặt → kiểm tra: Workspace = Cô lập; Notifications bật đúng các loại quan trọng (Giao + Thất bại + Hoàn thành + Tạo mới)
  3. ✅ Nếu cần kiểm soát: thêm vào Người dùng được phép hoặc Channel được phép
  4. ✅ Bật Blocker Escalation để task không bị treo
  5. ✅ Đặt Follow-up Reminders: 60 phút / max 5
  6. ✅ Xem Tính năng Super Team v2 để biết những gì mình đang có
  7. ✅ Tạo task thử qua chat với Lead → quan sát task xuất hiện trên Kanban
  8. ✅ Sau 1 tuần, mở Nhật ký hoạt động review xem có sự kiện bất thường không
3

Menu Session

Hãy hình dung: mỗi cuộc trò chuyện giữa user và agent (qua chat web, Telegram, Slack, v.v.) là 1 Session. Menu này là "kho lưu trữ" tất cả những cuộc trò chuyện đó — bạn có thể tìm lại, đọc nội dung, đặt lại từ đầu hoặc xóa hẳn.

3.1 Hiểu nhanh: Session là gì?

Session = lịch sử 1 cuộc hội thoại giữa 1 người dùng và 1 agent trên 1 kênh cụ thể. Mỗi session có:

  • 1 mã định danh duy nhất (gọi là session key)
  • Tất cả tin nhắn (cả của user và của agent)
  • Thông tin: ai chat, kênh nào, agent nào, đã có bao nhiêu tin, dùng bao nhiêu token
  • Có thể có 1 đoạn tóm tắt tự động (nếu hội thoại đã dài)
Điều quan trọng cần nhớ2 session khác nhau = 2 "ký ức" tách biệt. Agent KHÔNG nhớ chéo giữa các session. Nếu user A chat với agent qua Telegram và qua Web — đó là 2 session khác nhau, ngữ cảnh không trộn lẫn.

3.2 Trang danh sách Session — Có gì trên màn hình?

Khi click menu Session ở thanh bên trái, bạn vào trang có:

  • Tiêu đề "Session"Kèm dòng phụ "Duyệt các session".
  • Ô "Tìm kiếm session..."Gõ để lọc nhanh. Tìm trong: session key, label, display name, username, chat title.
  • Bảng 5 cộtLiệt kê tất cả session đã có (xem chi tiết bên dưới).
  • Phân trangMặc định 20 session/trang.

Trạng thái rỗng

  • Nếu chưa có session nào: "Chưa có session nào — Các session sẽ xuất hiện ở đây khi bạn bắt đầu trò chuyện."
  • Nếu search không tìm thấy: "Không tìm thấy session phù hợp — Thử từ khóa tìm kiếm khác."

3.3 Bảng 5 cột — Hiểu từng cột

CộtHiển thị gì
Session Dòng trên: Tên hội thoại (ưu tiên: tên nhóm chat → tên hiển thị user → label tự đặt → mã scope).
Dòng dưới: @username (nếu có) hoặc session key đầy đủ + Badge tên kênh (nếu là kênh ngoài web, vd "telegram").
Agent Badge viền xám hiển thị tên agent đang xử lý hội thoại này.
Ngữ cảnh Thanh tiến trình màu cho biết "trí nhớ ngắn hạn" của agent đã đầy bao nhiêu (xem chi tiết mục 3.4).
Tin nhắn Tổng số tin nhắn trong session (cả user và agent).
Cập nhật Lần hoạt động gần nhất, dạng tương đối: "2 phút trước", "3 giờ trước", "hôm qua".

Click vào dòng nào sẽ vào trang chi tiết của session đó.

3.4 Hiểu cột "Ngữ cảnh" — Thanh tiến trình màu

Đây là cột quan trọng nhất để biết agent có "đầu đầy chữ" chưa. Ví dụ một thanh trông như: ▓▓▓▓▓▓░░░░ 12K / 200K · 🔄 2

Cách tính phần trăm

Phần trăm đầy = tokens hiện tại / (context window × 0.75). Tức là khi đạt 75% của context window thì thanh đã 100% — vì 25% còn lại dành cho dự phòng (response của agent).

3 mức màu

Xanh (< 60%)

Agent còn nhiều "trí nhớ" để xử lý — ổn.

Vàng (60-85%)

Bắt đầu đầy. Agent có thể sắp nén lịch sử.

Đỏ (≥ 85%)

Sắp tràn. Agent sẽ buộc phải nén/cắt lịch sử để tiếp tục được.

Số bên dưới thanh

Vd 12K / 200K · 🔄 2 nghĩa là:

  • 12K — token hiện tại trong session
  • 200K — context window tối đa của model agent đang dùng
  • 🔄 2 — đã nén lịch sử 2 lần. Hover vào sẽ thấy tooltip "Đã nén N lần". Số này càng cao = session đã rất dài, đã nén nhiều lần.
Mẹo theo dõiNếu thấy nhiều session có 🔄 > 5 lần — nghĩa là user chat quá dài liên tục. Cân nhắc: (1) hướng dẫn user dùng Đặt lại session khi chuyển chủ đề, hoặc (2) tăng Context Window của agent (nếu model hỗ trợ), hoặc (3) giảm history_limit ở channel.

3.5 Hiểu mã Session Key

Session key là chuỗi mã trông phức tạp nhưng có quy luật rõ ràng:

agent:<tên-agent>:<phần-scope>

Ví dụ thực tế và ý nghĩa:

Session keyNghĩa
agent:support:telegram:direct:386246614 DM Telegram của user ID 386246614 với agent "support"
agent:support:telegram:group:-100123456 Nhóm chat Telegram (ID âm) với agent "support"
agent:support:telegram:group:-100123456:topic:99 Forum topic 99 trong nhóm Telegram trên — tách session riêng cho mỗi topic
agent:support:ws:direct:abc123 Chat trên web (UI Chat trong dashboard)
agent:support:subagent:task-abc Session do subagent tạo ra (agent con xử lý task riêng)
agent:support:cron:reminder-job Session do tác vụ định kỳ kích hoạt
Tại sao nên hiểu key?Khi debug hoặc audit, bạn cần biết session đến từ đâu. Nhìn vào key là biết ngay: ai chat, kênh nào, dạng DM hay group, có topic không. Đừng tự sửa key — để hệ thống tự sinh.

3.6 Trang chi tiết Session — Bố cục

Click vào dòng session nào → vào trang chi tiết. Layout chia 3 phần (trên xuống):

Phần 1 — Header (đầu trang)

Bên trái:

  • Mũi tên quay lạiVề danh sách Session.
  • Tên hội thoại (có thể click để sửa) Hiển thị tên ưu tiên: chat_title → display_name → label → scope.
    Hover vào sẽ thấy icon bút chì mờ. Click vào → biến thành ô input:
    • Gõ tên mới → bấm Enter hoặc icon để lưu
    • Hoặc bấm Esc hoặc icon để hủy
    Mẹo: Đặt label dễ nhớ cho session quan trọng, vd "Phỏng vấn ứng viên A", "Họp Q2 với khách X". Sau dễ tìm.
  • Dòng badges Agent tên agent (viền xám) + channel tên kênh (chỉ hiện nếu khác "ws") + @username (nếu có) + peer_kind (direct hoặc group) + "N tin nhắn" + thời gian cập nhật + "X in / Y out" số tokens vào/ra (nếu có).

Bên phải — 2 nút action:

Đặt lại

Xóa hết tin nhắn nhưng giữ session. Bắt đầu lại sạch sẽ — như "đốt" lịch sử cũ.

Xóa

Xóa vĩnh viễn cả session. Mất luôn cả "định danh" — kênh sẽ phải pair lại nếu là kênh ngoài.

Phần 2 — Tóm tắt (Summary, nếu có)

Block nền xám nhạt nằm dưới header, có:

  • Chữ "Tóm tắt: " đậm
  • Đoạn tóm tắt nội dung session (do agent tự tạo khi consolidation chạy)
  • Nếu nội dung dài (>3 dòng) sẽ bị cắt + có nút "Xem thêm" / "Thu gọn"

Khi nào có tóm tắt? Khi session đã đủ dài và worker Episodic đã consolidate (xem Menu Bộ nhớ). Session ngắn thì chưa có.

Phần 3 — Danh sách tin nhắn

Vùng cuộn ở giữa, hiển thị tất cả tin nhắn theo thứ tự thời gian. 2 loại tin chính:

  • Message bubble thườngTin nhắn user và agent — bubble màu khác nhau, có timestamp, có nút copy. Tin assistant kèm thêm tool calls (nếu có) và phần "thinking" (nếu agent dùng reasoning).
  • SystemMessageBlock (block hệ thống) Hiển thị tin nhắn nội bộ: [System Message] hoặc [System]. Đây là các thông báo từ hệ thống (kết quả subagent, cron trigger, v.v.).
    Khung viền chấm chấm, icon , có nút "xem chi tiết" / "ẩn" để bung/thu gọn nội dung dài.
    Nếu không có title cụ thể, hiển thị mặc định: "Tin nhắn hệ thống".

Trạng thái rỗng: nếu chưa có tin nào → hiển thị "Không có tin nhắn trong session này" ở giữa.

Lưu ý kỹ thuật: Tin nhắn role tool bị ẩn (vì đã được nhúng vào assistant message kèm theo). Tin assistant chỉ hiện khi có content/tool_calls/thinking.

3.7 Dialog "Đặt lại phiên" — Reset

Bấm nút Đặt lại ở góc phải header → hiện dialog xác nhận:

  • Title"Đặt lại phiên"
  • Mô tả"Thao tác này sẽ xóa tất cả tin nhắn nhưng giữ lại phiên."
  • Nút xác nhậnĐặt lại (màu chính, không phải đỏ — vì không nguy hiểm)

Sau khi đặt lại: messages list trống, session key vẫn còn, agent vẫn nhớ tên session, kênh vẫn pair. User có thể tiếp tục chat từ đầu mà không cần thiết lập lại.

Toast khi xong: "Đã đặt lại session". Nếu lỗi: "Không thể đặt lại session".

3.8 Dialog "Xóa session" — Delete

Bấm nút Xóa (màu đỏ) → dialog xác nhận:

  • Title"Xóa session"
  • Mô tả"Thao tác này sẽ xóa vĩnh viễn tất cả tin nhắn trong session này."
  • Nút xác nhậnXóa (màu đỏ destructive)

Sau khi xóa: Session biến mất khỏi danh sách. Khi user chat lại, nếu là kênh ngoài (Telegram/Slack...) phải pair lại hoặc nhắn theo chính sách của channel (open/allowlist) → tạo session MỚI hoàn toàn (key mới, lịch sử trắng).

Toast khi xong: "Đã xóa session". Nếu lỗi: "Không thể xóa session".

3.9 Khi nào dùng "Đặt lại" vs "Xóa"?

Tình huốngĐặt lạiXóa
User đang chat dài, muốn bắt đầu chủ đề mới✅ Khuyên dùng❌ Không cần
Agent bị "lú" do context quá dài✅ Reset là đủ❌ Không cần
Test xong agent, muốn xóa hẳn dấu vết⚠ Vẫn còn key✅ Sạch hoàn toàn
User cũ đã rời, không bao giờ quay lại❌ Phí storage✅ Xóa hẳn
Cần debug — giữ key để trace✅ Giữ key❌ Mất key, mất trace
Session bị spam/lỗi credential⚠ Spam có thể đến lại✅ Buộc pair lại
Quy tắc vàngKhi nghi ngờ → dùng Đặt lại. Reset có thể "undo" tâm lý (user vẫn chat tiếp được), trong khi Xóa là không hoàn tác. Chỉ Xóa khi chắc chắn.

3.10 Tự động cập nhật (Auto-refresh)

Khi bạn đang xem chi tiết 1 session và agent vừa hoàn thành 1 turn (vd: user vừa chat → agent reply xong), trang sẽ tự refresh trong 2 giây để hiện tin nhắn mới — bạn không cần F5.

Cụ thể: hệ thống lắng nghe các sự kiện WebSocket: run.completed, run.failed, run.cancelled. Khi sự kiện đến cho đúng agent của session đang xem → debounced 2s → reload messages.

3.11 Những trường ẩn — Metadata thêm

Mỗi session có metadata kỹ thuật (không hiển thị trực tiếp nhưng có trong API):

{
  key, messageCount, created, updated, label, channel, userID,
  metadata: {
    display_name,    // tên hiển thị user (vd: "Nguyễn Văn A")
    username,        // username (vd: @nguyenvana)
    chat_title,      // tên nhóm chat (vd: "Marketing Team")
    peer_kind        // "direct" hoặc "group"
  },
  model, provider,
  inputTokens, outputTokens,
  agentName,
  estimatedTokens, contextWindow,
  compactionCount    // số lần đã nén lịch sử
}

Bạn không cần nhớ — hệ thống tự xử. Chỉ cần biết những trường này tồn tại nếu cần debug qua API.

3.12 Tóm tắt — Quy trình quản trị Session

  1. 📋 Theo dõi định kỳ: Vào menu Session 1 lần/tuần để biết có bao nhiêu session active, kênh nào nhiều nhất.
  2. 🔍 Kiểm tra cột "Ngữ cảnh": Nếu nhiều session có thanh đỏ hoặc 🔄 cao → cấu hình lại agent (tăng context window, giảm history_limit).
  3. 🏷️ Đặt label cho session quan trọng (Phỏng vấn, Họp với khách VIP) — dễ tìm sau.
  4. 🧹 Reset session khi user chuyển chủ đề — tránh ngữ cảnh cũ làm "lú" agent.
  5. 🗑️ Xóa session test sau khi xong — giữ DB sạch.
  6. 👀 Xem chi tiết session bị lỗi: Nếu user phàn nàn agent trả lời sai, vào session đó, đọc messages + xem SystemMessageBlock có thông báo lỗi gì không.
  7. 📊 Đối chiếu với menu Usage: Số tokens in/out ở session detail dùng để hiểu cost từng cuộc trò chuyện.
4

Menu Channel

Hãy hình dung: Channel là cánh cửa nối agent của bạn ra thế giới. Telegram bot, Slack workspace, Zalo OA, WhatsApp, Facebook Page... mỗi cái là 1 channel. Bạn cấu hình credential một lần, agent sẽ trả lời khách 24/7 qua đó.

4.1 Hiểu nhanh: Channel là gì?

Mỗi Channel Instance = 1 cấu hình cụ thể cho 1 nền tảng giao tiếp. Mỗi instance có:

  • Tên duy nhất (slug, vd: my-telegram-bot)
  • Loại (telegram / discord / slack / zalo_oa / zalo_personal / whatsapp / facebook / pancake)
  • Credentials (token, API key... được mã hóa AES-256-GCM phía server)
  • Cấu hình (chính sách DM/Group, giới hạn media, streaming...)
  • Trạng thái (đang chạy, đã tắt, lỗi xác thực...)
  • Agent gán kèm — agent nào sẽ trả lời tin nhắn từ channel này
1 channel = 1 hộp thư của 1 agentBạn có thể tạo nhiều instance cùng loại (vd: 3 bot Telegram cho 3 thị trường khác nhau), mỗi instance gán 1 agent khác nhau.

4.2 Trang danh sách Channel — Có gì trên màn hình?

Click menu Channel → trang có tiêu đề "Channel" + dòng phụ "Quản lý các phiên bản channel". Bao gồm:

  • Nút + Thêm channelMở dialog tạo channel mới.
  • Nút Làm mớiTải lại danh sách + force health check.
  • Ô "Tìm kiếm channel..."Lọc nhanh.
  • Bảng 6 cộtTên / Loại / Agent / Trạng thái / Bật / Thao tác

Trạng thái rỗng:

  • Chưa có: "Không có channel nào — Thêm phiên bản channel đầu tiên để bắt đầu."
  • Search không khớp: "Không tìm thấy channel phù hợp — Thử từ khóa tìm kiếm khác."

4.3 Trạng thái channel — 7 mức + biểu tượng

Cột Trạng thái hiển thị 1 trong 7 badge — sắp xếp theo độ ưu tiên cần xử lý:

BadgeTiếng ViệtNghĩaCần làm gì?
failedThất bạiLỗi nặng (sai credential, sai config, mạng đứt)Mở chi tiết → xem Diagnostics → khắc phục theo gợi ý
degradedSuy giảmHoạt động một phần, có gián đoạnTheo dõi vài phút, nếu vẫn không chạy thì kiểm tra mạng
startingĐang khởi độngChannel đang kết nốiĐợi 1-2 phút
checkingĐang kiểm traHealth check đang chạyĐợi vài giây
registeredĐã cấu hìnhĐã save nhưng chưa khởi động (cần xác thực)Bấm "Xác thực để khởi động channel"
runningĐang chạyHoạt động bình thường ✅Không cần làm gì
stoppedĐã dừngUser chủ động tắtBật toggle nếu muốn dùng lại

Nếu có {{N}} lỗi liên tiếp, hiển thị thêm dòng "Mở chi tiết channel để xem chẩn đoán mới nhất". Mỗi loại lỗi có gắn nhãn:

  • Xác thực — credential sai
  • Cấu hình — config sai
  • Mạng — không kết nối được
  • Cần chú ý — lỗi không xác định

4.4 Bảng 6 cột — Hiểu từng cột

CộtHiển thị
TênDisplay name (lớn) + slug khóa (nhỏ)
LoạiTelegram / Discord / Slack / Zalo OA / Zalo Personal / WhatsApp / Facebook / Pancake
AgentAgent gán cho channel này
Trạng thái1 trong 7 badge ở mục 4.3
BậtToggle Đã bật / Đã tắt — bật/tắt nhanh không cần xóa
Thao tác4 nút: Xác thực lại, Mở thông tin xác thực, Mở nâng cao, Xem sự cố

4.5 Tạo channel mới — Wizard nhiều bước

Bấm + Thêm channel, dialog "Tạo phiên bản channel" mở ra. Một số channel (Zalo Personal, WhatsApp) cần wizard nhiều bước, còn lại chỉ 1 bước.

Bước 1 — Thông tin chung (luôn có)

  • Khóa * Placeholder: my-telegram-bot. Hint: "Slug duy nhất dùng làm định danh channel".
    Chữ thường, số, dấu gạch ngang — không khoảng trắng. Sai → báo: "Khóa phải là slug hợp lệ (chữ thường, số, dấu gạch ngang)".
  • Tên hiển thịPlaceholder: Sales Bot. Tên thân thiện hiển thị trên UI.
  • Loại channel *Dropdown: telegram / discord / slack / zalo_oa / zalo_personal / whatsapp / facebook / pancake. Sau khi chọn → các trường credentials và config bên dưới sẽ đổi theo.
  • Agent *Combobox "Chọn agent". Agent sẽ trả lời tin nhắn đến từ channel này.
  • Bật (toggle)Mặc định bật. Tắt nếu muốn tạo trước, kích hoạt sau.
  • Khối "Thông tin xác thực"Hint: "Được mã hóa phía máy chủ. Không bao giờ trả về trong phản hồi API." Các trường khác nhau theo loại channel (xem mục 4.6).
  • Khối "Cấu hình"DM Policy, Group Policy, history limit, streaming... khác nhau theo loại.

Cuối: Hủy / Tạo. Khi đang lưu hiện "Đang lưu...". Toast khi xong: "Đã tạo channel".

Bước 2 — Xác thực (chỉ Zalo Personal & WhatsApp)

Sau khi tạo, dialog hiện QR code để quét bằng điện thoại:

  • Zalo PersonalBanner: "Sau khi tạo, bạn sẽ xác thực bằng mã QR và cấu hình người dùng được phép." Nút "Tạo & Xác thực". Quét QR bằng app Zalo (hết hạn ~100s).
  • WhatsAppBanner: "Sau khi tạo, quét mã QR bằng WhatsApp để xác thực." Nút "Tạo & Quét QR". Hint: "Mở WhatsApp → nhấn Bạn → Thiết bị đã liên kết → Liên kết thiết bị".

4.6 Credentials theo loại channel

Mỗi loại channel có bộ credentials riêng. Tất cả đều mã hóa AES-256-GCM phía server. Khi sửa, để trống nghĩa là giữ giá trị cũ — hệ thống không bao giờ trả credential cũ về UI.

ChannelTrường bắt buộcLấy ở đâu?
Telegram token (Bot Token, vd 123456:ABC-DEF...) Chat @BotFather trên Telegram → /newbot → đặt tên → nhận token
Discord token (Bot Token) Discord Developer Portal → New Application → Bot → Copy Token. Phải bật Message Content Intent để bot đọc được nội dung group.
Slack bot_token (xoxb-...) — Bot User OAuth
app_token (xapp-...) — App-Level Token (scope connections:write)
user_token (xoxp-...) — Tùy chọn, custom identity
Slack API → Your App → OAuth & Permissions cho bot_token; App-Level Tokens cho app_token (Socket Mode).
Zalo OA token (OA Access Token) + webhook_secret (tùy chọn) Zalo OA Settings → Phát triển ứng dụng. Phải có Official Account, không phải tài khoản cá nhân.
Zalo Personal Không có (đăng nhập QR) Quét QR bằng app Zalo cá nhân. Cảnh báo: dùng số phụ, có rủi ro Zalo block tài khoản.
WhatsApp Không có (đăng nhập QR) Quét QR bằng app WhatsApp. Cảnh báo: dùng SIM riêng, không spam.
Facebook page_access_token
app_secret
verify_token (chuỗi tự đặt để verify webhook)
Facebook Developer Console → App → Messenger → Page Access Token; Settings → Basic → App Secret.
Pancake api_key (user-level)
page_access_token (page-level)
webhook_secret (tùy chọn)
Pancake account → API Keys + Page Settings. Pancake là bridge đa platform (FB, Zalo, IG, TikTok, WA, LINE).
Bảo mật credentials(1) Rotate token 90 ngày/lần. (2) Bot dev khác bot prod (tách token). (3) Set webhook_secret cho mọi channel webhook-based (Facebook, Pancake, Zalo OA). (4) Không commit credential vào git.

4.7 Chính sách DM & Group — 4 mức an toàn

Đây là cấu hình quan trọng nhất để chống spam và lạm dụng. Áp dụng cho hầu hết channel:

Giá trịTiếng ViệtHành viBảo mật
pairingGhép nối (yêu cầu mã)User mới phải nhập mã OTP để được agent trả lời⭐⭐⭐⭐⭐ AN TOÀN NHẤT
allowlistChỉ danh sách cho phépChỉ user trong allow_from được chat⭐⭐⭐⭐
openMở (chấp nhận tất cả)Ai chat cũng được trả lời⭐⭐ RỦI RO, dễ spam
disabledTắtKhông xử lý DM/Group
Quy tắc vàngProduction: pairing cho cả DM và Group. Demo/Test: có thể open nhưng nhớ tắt khi deploy. Bot công khai chấp nhận spam thường xuyên dễ bị lừa đảo, ăn cắp credit nhanh chóng.

4.8 Cấu hình theo loại channel — Bảng tổng hợp

Mỗi loại channel có bộ field config riêng. Tất cả có chung: dm_policy, group_policy, require_mention, history_limit, allow_from, block_reply. Khác biệt nổi bật từng loại:

ChannelField đặc biệtMặc định nổi bật
Telegram api_server (Bot API local cho file ≥20MB),
proxy (HTTP proxy),
mention_mode (strict / yield),
dm_stream, group_stream,
draft_transport (preview ẩn không spam edit),
reasoning_stream (hiện thinking),
reaction_level (off/minimal/full),
media_max_mb, link_preview
history 50, dm_stream bật, group_stream tắt, draft_transport bật, reaction full, media 20MB
Discord Đơn giản — chỉ DM/Group policies + mention + history require_mention bật, history 50
Slack native_stream (ChatStreamer API),
debounce_delay (gom rapid msg),
thread_ttl (giờ bot stop auto-reply trong thread),
reaction_level
require_mention bật, dm_stream bật, debounce 300ms, thread_ttl 24h
Zalo OA webhook_url (HTTPS endpoint),
media_max_mb
media_max 5MB (Zalo giới hạn nhỏ)
Zalo Personal Tối giản — DM/Group/mention/allow DM & Group allowlist (an toàn mặc định)
WhatsApp DM/Group/mention/allow DM & Group pairing, JID format ...@s.whatsapp.net
Facebook page_id (bắt buộc),
features.comment_reply, features.messenger_auto_reply, features.first_inbox,
comment_reply_options.include_post_context, max_thread_depth,
messenger_options.session_timeout,
post_context_cache_ttl,
first_inbox_message
features tắt mặc định, max_thread_depth 10
Pancake page_id,
platform (auto-detect: facebook/zalo/instagram/tiktok/whatsapp/line),
features.inbox_reply,
features.comment_reply
inbox_reply bật, comment_reply tắt

4.9 Trang chi tiết Channel — 5 Tab

Click vào dòng channel → vào trang chi tiết. Có 5 tab ngang:

  • ChungIdentity + Agent + Enabled + Policies cơ bản (xem mục 4.10)
  • Cấu hìnhToàn bộ field config theo loại channel (xem mục 4.11)
  • Thông tin xác thựcCập nhật credentials mà không cần tạo lại instance (xem mục 4.12)
  • NhómPer-group/per-topic override (chủ yếu Telegram, xem mục 4.13)
  • Quản lýQuản lý người có quyền điều hành group (xem mục 4.14)

Bên cạnh tabs còn có nút "Nâng cao" mở dialog cài đặt nâng cao (Network, Limits, Streaming, Behavior, Access Control).

4.10 Tab "Chung"

Hiển thị thông tin định danh — đa phần read-only. Các trường có thể sửa:

  • Tên (read-only)Hint: "Slug duy nhất (chỉ đọc)". Không đổi được.
  • Loại channel (read-only)Telegram, Discord...
  • Tên hiển thịSửa tên thân thiện. Placeholder: "Tên thân thiện".
  • AgentĐổi agent xử lý channel này.
  • Bật (toggle)Bật/tắt mà không xóa.
  • Khối Chính sáchMột subset cấu hình quan trọng (DM Policy, Group Policy, mention) hiện ở đây để thao tác nhanh.

Nút Lưu thay đổi cuối tab. Toast: "Đã lưu".

4.11 Tab "Cấu hình"

Hiển thị toàn bộ field config theo loại channel — render thành form thân thiện (không phải JSON thô). Field hiện theo điều kiện showWhen: ví dụ Feishu chọn Webhook mode mới hiện webhook_port + webhook_path.

Nút Lưu cấu hình. Khi save: "Đang lưu...". Toast: "Đã lưu".

4.12 Tab "Thông tin xác thực"

Hint: "Để trống các trường để giữ giá trị hiện tại. Thông tin xác thực được mã hóa phía máy chủ và không bao giờ trả về trong phản hồi API."

Mỗi field type "password" (mask hiển thị). Khi cập nhật:

  • Trường nào điền giá trị mới → save vào DB
  • Trường nào để trống → giữ nguyên giá trị cũ
  • Không có cách nào "xem lại" credential cũ

Nút Cập nhật thông tin xác thực. Toast: "Đã lưu". Lỗi: "Lưu thất bại".

4.13 Tab "Nhóm" — Override per-group/per-topic (Telegram)

Tiêu đề: "Ghi đè nhóm & chủ đề". Hint: "Ghi đè mặc định channel theo cuộc trò chuyện nhóm hoặc chủ đề diễn đàn. Dùng \"*\" làm ID nhóm cho mặc định ký tự đại diện."

Cách dùng

  1. Nhập ID nhóm (vd: -100123456 hoặc * wildcard) → bấm Thêm nhóm
  2. Bên dưới có "Nhóm đã biết" — list các group bot đã tham gia, click để add nhanh
  3. Mỗi nhóm có thể chứa nhiều chủ đề (topic) — nhập ID topic + bấm Thêm chủ đề

Field override (tristate: Inherit / Có / Không)

  • Chính sách nhómInherit / open / pairing / allowlist / disabled
  • Yêu cầu @đề cậpInherit / Có / Không
  • BậtInherit / Có / Không (tắt nhóm cụ thể)
  • Người dùng được phépMỗi ID người dùng một dòng
  • Bộ lọc skillTrống = kế thừa tất cả; chọn để giới hạn skill cho nhóm này
  • Công cụ được phépTrống = kế thừa tất cả; chọn để giới hạn tool. Hỗ trợ tên nhóm như group:web, group:fs.
  • Prompt hệ thốngSystem prompt bổ sung riêng cho nhóm/chủ đề này

Use case: Bot ở nhiều nhóm, mỗi nhóm có rules riêng — vd nhóm VIP open + có skill đặc biệt; nhóm spam disabled.

4.14 Tab "Quản lý" — Managers

Mô tả: "Quản lý người dùng có quyền quản lý trong cuộc trò chuyện nhóm."

Hiển thị

  • Nhóm: Liệt kê các group có managers. Mỗi group có "{N} quản lý viên".
  • Trống: "Không có nhóm quản lý — Dùng biểu mẫu bên dưới để thêm quản lý viên vào nhóm."
  • Bảng managers: ID người dùng / Tên / Tên đăng nhập

Form thêm manager mới

Tiêu đề: "Thêm quản lý viên vào nhóm mới". Hint: "Thêm quản lý viên vào nhóm chưa xuất hiện trong danh sách trên."

  • ID nhóm *Placeholder: vd: group:telegram:-100123456
  • ID người dùng *Placeholder: "Tìm hoặc nhập ID người dùng". Có search contacts.
  • Tên hiển thị (Tùy chọn)
  • Tên đăng nhập (Tùy chọn, không có @)

Lỗi: "ID nhóm và ID người dùng là bắt buộc". Nút Thêm quản lý viên.

4.15 Dialog "Nâng cao" — Advanced

Tiêu đề: "Cài đặt nâng cao". Banner: "Xem chẩn đoán mới nhất của channel này trước khi thay đổi cài đặt."

Chia 6 khối collapsible:

KhốiMô tả
Chính sáchChính sách xử lý tin nhắn (DM/Group/mention)
MạngCấu hình máy chủ và proxy (api_server, proxy, connection_mode)
Giới hạnGiới hạn tin nhắn và media (history_limit, media_max_mb, text_chunk_limit)
StreamingTùy chọn streaming tin nhắn thời gian thực (dm_stream, group_stream, native_stream)
Hành viCấu hình hành vi phản hồi (block_reply, draft_transport, reasoning_stream, reaction_level)
Kiểm soát truy cậpGiới hạn truy cập người dùng (allow_from, allow channels, deny lists)

4.16 Dòng thời gian sự cố — Diagnostics

Khi channel có vấn đề, tab chính có khối "Dòng thời gian" hiển thị:

  • Lỗi đầu tiênTimestamp + thông báo lỗi đầu tiên
  • Kiểm tra gần nhấtLần health check gần nhất
  • Lỗi"{{N}} lần liên tiếp" + "Tổng cộng {{N}}"
  • Hoạt động tốt gần nhấtLần cuối channel chạy ổn
  • Khối Điều gì đã xảy raMô tả ngắn gọn lỗi
  • Khối Hành động được khuyến nghịBước tiếp theo nên làm (rotate token, kiểm tra mạng...)
  • Khối Chi tiết kỹ thuậtStack trace để gửi support nếu cần

Trạng thái rỗng: "Chưa có lần kiểm tra channel nào gần đây."

Banner cảnh báo đặc biệt:

  • "Cần xác thực": "Channel đã được bật nhưng cần đăng nhập trước khi có thể kết nối." → Nút "Kết nối lại phiên channel"
  • "Thiếu thông tin xác thực": "Channel đã được bật nhưng thiếu thông tin xác thực bắt buộc." → Nút "Điền thông tin xác thực bắt buộc"

4.17 Checklist setup channel chuẩn production

  1. ✅ Tạo channel với Khóa rõ ràng (vd support-bot-prod)
  2. ✅ Điền credentials đầy đủ → kiểm tra trạng thái chuyển Đang chạy
  3. ✅ Đặt DM Policy = pairingGroup Policy = pairing
  4. ✅ Set webhook_secret nếu là channel webhook-based (Facebook/Pancake/Zalo OA)
  5. ✅ Chat thử từ user thật → kiểm tra agent trả lời đúng
  6. ✅ Vào tab Quản lý thêm admin nếu cần (Telegram group)
  7. ✅ Vào tab Nhóm override nếu có nhóm cần xử lý đặc biệt
  8. ✅ 1 tuần sau: Kiểm tra Diagnostics — nếu Failure Streak >5 → rotate token
  9. ✅ 90 ngày sau: Rotate credential định kỳ
  10. ✅ Tách bot dev và bot prod (token khác nhau, instance khác nhau)
5

Menu Skill

Hãy hình dung: Skill giống như "sách hướng dẫn" mà agent đọc khi gặp việc đặc biệt. Khi user hỏi về PDF — agent tìm thấy skill pdf, đọc hướng dẫn, làm theo. Bạn có thể tạo skill riêng hoặc dùng skill hệ thống có sẵn.

5.1 Hiểu nhanh: Skill là gì?

Skill = 1 thư mục chứa file SKILL.md và (tuỳ chọn) các file kèm theo. SKILL.md có 2 phần:

  • YAML frontmatter (bắt buộc): khai báo name, description, license
  • Nội dung Markdown: hướng dẫn chi tiết, code mẫu, công thức xử lý task
---
name: pdf
description: Use this skill whenever the user wants to do anything with PDF files
license: Proprietary
---

# Hướng dẫn xử lý PDF
[nội dung dài...]

Khi agent cần làm việc nào đó (vd "trích văn bản từ PDF"), agent sẽ tìm trong danh sách skill được cấp → đọc SKILL.md phù hợp → làm theo.

Skill khác gì với Built-in Tool?Tool = khả năng thực thi (gọi API, đọc file, gửi message). Skill = hướng dẫn cách dùng tool để giải quyết bài toán cụ thể.

5.2 Trang danh sách Skill — Có gì trên màn hình?

Click menu Skill → trang có tiêu đề "Skill" + dòng phụ "Quản lý skill và khả năng của agent". Bao gồm:

Header — 3 nút action

  • Nút Tải lênChỉ hiện ở tab Tùy chỉnh. Mở dialog upload skill ZIP.
  • Nút Rescan DepsQuét lại dependencies (pip/npm) của tất cả skill. Khi xong: "Đã cập nhật {{N}} skill" hoặc "Tất cả skill đã cập nhật".
  • Nút Làm mớiReload danh sách.

2 Tab — Hệ thống vs Tùy chỉnh

Hệ thống (Core)

Skill built-in đã được đóng gói sẵn (PDF, DOCX, web search...). Không xóa được, chỉ bật/tắt hoặc override theo tenant.

Tùy chỉnh (Custom)

Skill bạn upload hoặc tạo. Có thể edit, delete, đổi visibility (private/internal/public).

Mỗi tab có badge số lượng cạnh tên: vd "Hệ thống (12)", "Tùy chỉnh (3)".

Search + Empty

  • Ô search: "Tìm kiếm skill..." — lọc theo name + description
  • Trạng thái rỗng: "Chưa có skill — Chưa có skill nào được đăng ký."
  • Search không khớp: "Không tìm thấy skill phù hợp — Thử từ khóa tìm kiếm khác."

5.3 Bảng danh sách — Cột thay đổi theo tab

Tab "Hệ thống"

CộtHiển thị
Tên tên skill (click vào để xem chi tiết) + badge Hệ thống (viền xanh) + version (v1...)
Mô tảĐoạn ngắn từ frontmatter (truncate). Nếu trống: "Không có mô tả".
Trạng tháiActive hoặc Missing deps. Nếu thiếu deps, hiện thêm 3 deps đầu + "+N" phía dưới.
Thao tácToggle bật/tắt skill. Có badge "Override riêng cho tenant" nếu đang dùng tenant override.

Tab "Tùy chỉnh"

Có thêm 2 cột:

  • Tác giảEmail/username người upload, hoặc dấu "—"
  • Hiển thị (Visibility) Badge có thể click để cycle (đổi qua lại):
    • Riêng tư (private) — chỉ chủ sở hữu thấy
    • Nội bộ (internal) — agent/người dùng được cấp quyền
    • Công khai (public) — tất cả agent
    Tooltip: "Nhấp để thay đổi hiển thị".

Cột Thao tác có thêm: Edit + Delete.

5.4 Tenant Override — Đa tenant

Khi bạn vào dưới góc nhìn 1 tenant cụ thể (không phải master), mỗi skill có thêm phần override per-tenant:

  • Badge Mặc địnhTenant đang dùng cấu hình toàn cục
  • Badge Đã bậtTenant ghi đè bật skill này riêng
  • Badge Đã tắtTenant ghi đè tắt skill này riêng
  • Tooltip "Ghi đè riêng cho tenant này"Hiện khi đã có override
  • Nút Đặt lại mặc địnhXóa override để dùng cấu hình toàn cục

Use case: Tenant A bật web_search dùng provider Exa, tenant B muốn tắt → override tenant B.

5.5 Panel "Missing Dependencies"

Nếu có skill thiếu dependency (Python package, npm package), panel cảnh báo hiện ở đầu trang:

  • Tiêu đề "Missing Dependencies"Liệt kê tất cả deps thiếu
  • Format depspip:numpy, npm:lodash, hoặc system runtime python/node
  • Nút Install mỗi itemBấm để cài từng dep. Trạng thái: "Installing...""Installed" hoặc "Failed"
  • Nút Install Dependencies (toàn bộ)Cài tất cả deps thiếu một lần. Khi xong: "Dependencies installed". Nếu một số fail: "Some dependencies failed"

Cảnh báo Runtime thiếu

Nếu container không có Python/Node:

"Runtime Prerequisites Missing — Các core skill cần runtime Python và/hoặc Node.js bên trong container runtime GoClaw. Runtime cài trên máy host sẽ không được dùng ở đây. Nếu bạn đang dùng image latest đã phát hành thì việc thiếu runtime có thể là bình thường."
Action gợi ý: "Mở trang Packages để kiểm tra hoặc cài runtime trong container này."

5.6 Dialog "Tải lên Skill" — Upload ZIP

Bấm Tải lên ở tab Tùy chỉnh. Title: "Tải lên Skill". Description: "Tải lên tệp ZIP chứa SKILL.md với YAML frontmatter (name, description, slug)."

Khu vực drop file

Khung lớn ở giữa: "Nhấp hoặc kéo thả tệp .zip". Khi kéo file vào: "Thả tệp .zip vào đây". Chỉ chấp nhận .zip: "Chỉ chấp nhận tệp .zip".

Validation lúc upload

Mỗi file ZIP đi qua các kiểm tra:

LỗiThông báo
File >20MB"Tệp vượt quá giới hạn 20MB"
ZIP hỏng"Tệp ZIP không hợp lệ"
Không có SKILL.md"ZIP phải chứa SKILL.md ở thư mục gốc"
SKILL.md trống"SKILL.md trống"
Thiếu YAML frontmatter"SKILL.md thiếu YAML frontmatter"
Frontmatter thiếu name"Cần có name trong SKILL.md frontmatter"
Slug sai format"Định dạng slug không hợp lệ"
ZIP >50 skill"ZIP chứa quá nhiều kỹ năng (tối đa 50)"

Multi-skill ZIP

1 ZIP có thể chứa nhiều skill (mỗi sub-folder = 1 skill). Hệ thống detect và hiện: "Phát hiện {{N}} kỹ năng". Mỗi skill có badge:

  • Mới — skill chưa có
  • Không đổi — đã có và content giống hệt → hệ thống skip: "Nội dung không đổi — đã bỏ qua"
  • Slug trùng với kỹ năng hệ thống — bị từ chối

Trạng thái upload

  • Đang validate: "Đang xác thực..." với badge "{{X}} / {{Y}} hợp lệ"
  • Đang upload: "Đang tải lên...". Nút: "Tải lên ({{N}})"
  • Hoàn thành: "{{X}} / {{Y}} đã tải lên thành công". Nút Xong
  • Lỗi: "Tải lên thất bại"
  • Mỗi file có nút Xóa tệp để loại trước khi upload

5.7 Dialog "Chỉnh sửa skill" — Edit metadata

Bấm icon ở dòng skill custom. Title: "Chỉnh sửa skill".

  • TênTên skill (slug, không sửa được sau khi upload — chỉ hiển thị)
  • Mô tảSửa description. Hệ thống dùng cho BM25 search — viết rõ "Use this skill whenever..." để agent dễ tìm.
  • Hiển thị Dropdown 3 mức:
    • "Riêng tư (chỉ chủ sở hữu)"
    • "Nội bộ (agent/người dùng được cấp quyền)"
    • "Công khai (tất cả agent)"
  • Thẻ (Tags)Gắn tag để lọc nhanh (vd marketing, coding). Placeholder: "Thêm thẻ...". Nút Thêm.

Cuối: Hủy / Lưu. Đang lưu: "Đang lưu...". Toast: "Đã cập nhật skill".

5.8 Dialog "Chi tiết skill" — Xem nội dung + files + versions

Click vào tên skill → mở dialog chi tiết. Title: "Chi tiết skill". Có:

  • Phiên bảnDropdown chọn version. Bên cạnh: "(hiện tại)" đánh dấu version đang dùng.
  • Nội dungHiển thị đầy đủ SKILL.md (markdown render). Trống: "Không có nội dung."
  • Tệp (file tree)Cây thư mục các file kèm theo: REFERENCE.md, FORMS.md, scripts/, requirements.txt... Click file để xem nội dung với syntax highlight.

5.9 Toggle Bật/Tắt + Xóa

Toggle bật/tắt

Mỗi skill có Switch ở cột Thao tác. Tooltip:

  • "Bật skill" khi đang tắt
  • "Tắt skill" khi đang bật
  • "Đã tắt" hiển thị badge khi disabled

Xóa skill (chỉ Custom)

Icon . Confirm dialog:

  • Title: "Xóa skill"
  • Mô tả: "Bạn có chắc chắn muốn xóa \"{{name}}\"? Hành động này không thể hoàn tác."
  • Nút: Xóa (đỏ)

Toast: "Đã xóa skill".

5.10 Best practices khi quản trị Skill

  1. 📝 Description rõ ràng: Bắt đầu bằng "Use this skill whenever..." — đây là input chính cho BM25 search. Mô tả tốt giúp agent tìm đúng skill.
  2. 🎯 1 skill / 1 năng lực: Chia nhỏ thay vì gộp. Vd: pdf-extract, pdf-merge tốt hơn 1 cái pdf-everything.
  3. 📦 Upload ZIP nhỏ: 1 skill / 1 ZIP để debug dễ. Multi-skill chỉ khi đã ổn.
  4. 🔒 Visibility mặc định "Internal": Chỉ Public với skill đã kiểm định kỹ — tránh agent dùng nhầm.
  5. 🏷️ Gắn Tags theo domain (marketing, coding, finance) — admin tìm nhanh.
  6. ⚙️ Cài deps trước khi enable: Vào Missing Dependencies panel → install hết → bật skill.
  7. 🔄 Rescan Deps định kỳ: Sau khi upgrade GoClaw hoặc cài thêm package.
  8. 🏢 Tenant override khi cần: Tenant nhạy cảm (banking, health) → tắt skill rủi ro cao.
  9. 📚 Theo dõi version: Mỗi lần sửa SKILL.md tăng version (v1 → v2). Detail dialog cho phép xem version cũ.
6

Menu Công cụ tích hợp

Hãy hình dung: Công cụ tích hợp là "bộ đồ nghề" mặc định mà mọi agent đều có. Đọc file, gửi tin, search web, gọi MCP, tạo ảnh... Bạn bật/tắt từng công cụ + cấu hình API key cho những công cụ cần (vd Web Search Exa, TTS ElevenLabs).

6.1 Hiểu nhanh: Công cụ tích hợp là gì?

"Công cụ tích hợp" (Built-in Tools) là bộ tool đóng gói sẵn trong GoClaw — không cần cài thêm. Khi agent cần làm việc gì đó cụ thể (đọc file, search web, tạo ảnh), nó gọi tool tương ứng.

Khác với Skill (sách hướng dẫn) và MCP (kết nối bên ngoài), built-in tools là khả năng cốt lõi đi kèm sản phẩm.

Bật/tắt + Cấu hìnhMỗi tool có 2 thao tác chính: (1) Toggle bật/tắt — kiểm soát ai được dùng. (2) Settings — cấu hình API key/provider chain (chỉ một số tool có).

6.2 Trang danh sách Công cụ tích hợp — Có gì trên màn hình?

Click menu Công cụ tích hợp → trang có tiêu đề "Công cụ tích hợp" + dòng phụ "Quản lý các công cụ tích hợp sẵn. Bật/tắt hoặc cấu hình cài đặt toàn cục."

  • Nút Làm mớiReload danh sách.
  • Ô "Tìm kiếm công cụ..."Lọc theo name / display_name / description.
  • Đếm số lượng"{N} công cụ · {M} danh mục"
  • Banner cảnh báo (cam)Hiện khi có media tool bật nhưng chưa cấu hình provider chain. Mỗi tool chưa cấu hình hiện 1 nút quick-config.
  • Danh sách nhóm theo categoryMỗi category là 1 nhóm collapsible (xem mục 6.3).

Banner cảnh báo (nếu có): "{{N}} công cụ cần cấu hình provider để agent sử dụng đầy đủ năng lực."

Trạng thái rỗng:

  • Chưa khởi tạo: "Không có công cụ tích hợp — Chưa có công cụ tích hợp nào được khởi tạo."
  • Search không khớp: "Không tìm thấy công cụ phù hợp — Thử từ khóa tìm kiếm khác."

6.3 Danh mục — 14 nhóm tool

Tool được nhóm theo category, hiển thị theo thứ tự cố định:

Danh mụcTool tiêu biểuMục đích
Hệ thống tệpread_file, write_file, list_files, editĐọc / ghi / tìm file trong workspace
Thời gian chạyexecChạy lệnh shell trong sandbox
Webweb_search, web_fetch, browserSearch Google/Brave/Exa, fetch URL, automation trình duyệt
Bộ nhớmemory_search, memory_getTìm trong long-term memory
Phương tiệncreate_image/audio/video, read_image/document/audio/video, ttsSinh/đọc ảnh/audio/video, đọc PDF, text-to-speech
Trình duyệtbrowserClick, fill form, screenshot (Rod + CDP)
Sessionsessions_list, session_status, sessions_history, sessions_sendQuản lý các phiên chat đang active
Nhắn tinmessageGửi tin chủ động qua kênh đã kết nối (Telegram, Discord...)
Lập lịchcronTạo / quản lý cron job
Agent (Subagents)spawnSpawn subagent xử lý job nền
Skillskill_search, use_skillTìm và kích hoạt skill
Ủy quyềndelegateỦy quyền cho agent khác qua Agent Link
Nhóm (Teams)team_tasksTạo/cập nhật task trên Kanban team
Nhanh.vnnhanh_products, nhanh_orders, nhanh_customers, nhanh_inventory, nhanh_syncTích hợp TMĐT Nhanh.vn (sản phẩm, đơn hàng, khách hàng, kho)

Knowledge Graph: knowledge_graph_search nằm trong nhóm Bộ nhớ.

6.4 Mỗi dòng tool hiển thị gì?

Trong mỗi nhóm category, mỗi tool là 1 row chứa:

  • Tên + Display NameVD: web_search + "Web Search". Click vào để mở settings (nếu tool có cấu hình).
  • Mô tảĐoạn ngắn từ descriptions.{tool_name} trong i18n. VD: "Tìm kiếm thông tin trên web bằng công cụ tìm kiếm (Brave hoặc DuckDuckGo)"
  • Badge yêu cầuNếu tool cần dependency (provider config, runtime). Tooltip: "Yêu cầu: {{list}}"
  • Badge Ngừng sử dụngTool deprecated. Tooltip: "Công cụ này đã ngừng sử dụng và không còn khả dụng"
  • Badge Ghi đè tenantHiện nếu tenant này có override riêng (xem mục 6.6)
  • Toggle Bật/TắtSwitch lớn ở phải. Toast: "Đã cập nhật công cụ". Lỗi: "Không thể cập nhật công cụ".
  • Nút Cài đặtMở dialog Settings. Một số tool có nhãn "Cấu hình qua trang Config" — phải chỉnh ở menu Config thay vì đây.

6.5 Dialog "Cài đặt" — Mỗi tool có form khác nhau

Click Cài đặt → dialog title "Cài đặt — {{name}}". Tùy tool, hiển thị 1 trong các form:

1️⃣ Web Search Provider Chain

Title: "Chuỗi nhà cung cấp tìm kiếm web". Description: "Kéo để sắp xếp lại nhà cung cấp tìm kiếm. Nhà cung cấp đầu tiên được bật với API key hợp lệ sẽ được thử trước."

4 provider có sẵn (kéo-thả thứ tự):

ProviderLoạiAPI Key
ExaTrả phí, chất lượng cao, tối ưu cho agentBắt buộc
TavilyTrả phí, cân bằngBắt buộc
Brave SearchFree tier nhỏBắt buộc
DuckDuckGoFree, fallbackKhông cần

Mỗi provider có:

  • Số kết quả tối đa (max_results) — mặc định 5
  • API Key — input password. Nếu đã có: hiện "✓ Đã có key" + nút "Thay đổi". Placeholder: "Nhập API key" hoặc "Nhập key mới để thay thế"
  • Badge "Dự phòng luôn bật" với DuckDuckGo (luôn enabled)

2️⃣ Web Fetch Extractor Chain

Title: "Web Fetch — Chuỗi bộ trích xuất". Description: "Danh sách bộ trích xuất nội dung theo thứ tự. Mỗi URL được thử từ trên xuống cho đến khi một bộ trả về nội dung chất lượng."

  • Defuddle (Cloudflare Worker)"Trích xuất markdown sạch qua fetch.goclaw.sh sử dụng thư viện Defuddle."
  • HTML→Markdown tích hợp"Bộ chuyển đổi dựa trên DOM trong tiến trình với khả năng phát hiện phần tử ẩn."
  • Thời gian chờ + URL cơ sởCấu hình chung

3️⃣ Text-to-Speech (TTS) Mở rộng v3.10.0

Title: "Chuyển văn bản thành giọng nói". Description: "Cấu hình provider TTS và cài đặt tự động".

Mới ở v3.10.0(1) Thêm provider Google Gemini với multi-speaker và audio tags. (2) Form param động (Dynamic Form) chia Cơ bản + Nâng cao. (3) Per-agent override — mỗi agent có thể ghi đè TTS riêng (speed/voice/style). (4) Test Connection + Playground nghe thử ngay. (5) Voice Picker chung qua Portal — preview/refresh/load voices.
Trạng thái

Badge ở đầu: "Đã cấu hình" / "Đã tắt" / "Chưa cấu hình provider TTS". Khi đã chạy: "Provider chính: {{provider}}, Tự động: {{auto}}".

Cài đặt chung
  • Provider chính5 lựa chọn: Không (Tắt) OpenAI ElevenLabs Edge (Miễn phí) MiniMax Google Gemini
  • Chế độ tự động phát 4 mức:
    • Tắt"Agent có thể dùng công cụ TTS thủ công"
    • Luôn luôn"Tất cả phản hồi đều có âm thanh"
    • Đầu vào"Chỉ khi người dùng gửi giọng nói/âm thanh"
    • Đánh dấu"Chỉ khi phản hồi chứa thẻ [[tts]]"
  • Chế độ trả lời
    • Chỉ phản hồi cuối (final) — chỉ phản hồi cuối cùng có giọng đọc
    • Tất cả (all) — Tất cả phản hồi bao gồm công cụ/khối
  • Độ dài text tối đa + Thời gian chờ (ms)Giới hạn ký tự + timeout xử lý
Cài đặt theo Provider — 5 form khác nhau

OpenAI: API Key, API Base URL, Model, Giọng nói, Tốc độ (0.25-4.0), Định dạng đầu ra (mp3/opus/aac/flac/wav/pcm), Hướng dẫn (chỉ với gpt-4o-mini-tts).

ElevenLabs: API Key, Base URL, Voice ID, Model ID. Voice settings: Độ ổn định (0=biến đổi, 1=ổn định), Độ tương đồng (0=sáng tạo, 1=giống gốc), Phóng đại phong cách, Tăng cường giọng, Tốc độ (0.7-1.2). Nâng cao: Chuẩn hoá văn bản (auto/on/off), Seed (tái tạo kết quả), Độ trễ streaming (0-4), Mã ngôn ngữ ISO 639-1.

Edge (Miễn phí): Hint "Edge TTS miễn phí, không cần API key. Cài đặt: pip install edge-tts". Params: Tốc độ nói (-50% đến +100%), Cao độ (-50Hz đến +50Hz), Âm lượng (-50% đến +100%).

MiniMax: API Key, Group ID * (bắt buộc, placeholder "Bắt buộc cho MiniMax"), API Base, Model, Voice ID. Params: Tốc độ (0.5-2.0), Âm lượng (0.01-10.0), Cao độ (-12 đến +12 nửa cung), Cảm xúc, Chuẩn hoá văn bản. Audio: format (mp3/pcm/flac/wav), sampleRate, bitrate (chỉ MP3), kênh (mono/stereo).

Google Gemini (Mới v3.10.0): API Key, API Base URL, Giọng đọc, Mô hình. Tính năng đặc biệt:

  • Nhiều người nói — hỗ trợ tối đa 2 người nói (multi-speaker mode). Thêm/xóa speaker với tên + giọng riêng.
  • Thẻ âm thanh — chèn thẻ biểu cảm như [laughs] trực tiếp vào văn bản. Có panel tìm thẻ với 4 nhóm: Cảm xúc, Nhịp độ, Hiệu ứng, Chất lượng giọng.
  • Badge "Xem trước" — nghe trước voice character (style).

Voice Picker chung (PortalVoicePicker — mới v3.10.0)

Dùng cho mọi provider. Chức năng:

  • Làm mới — load lại danh sách voice từ provider
  • Nghe thử / Dừng — preview voice tại chỗ. Lỗi: "Không nghe thử được — đang làm mới"
  • Nhập voice_id thủ công nếu provider có voice không trong list
  • Trạng thái: "Đang tải giọng đọc…", "Chưa có giọng đọc", "Lưu API key trước để tải giọng đọc", "Vui lòng cấu hình provider TTS trước"
Test Connection + Playground
  • Kiểm tra kết nối: "Đang kiểm tra…""Kết nối thành công" hoặc "Kết nối thất bại"
  • Thử nghiệm (Playground) — Textarea "Nhập văn bản để nghe thử…", nút Phát / Dừng. Trạng thái: "Đang tổng hợp…". Lỗi: "Phát âm thất bại". Nếu chưa chọn provider: "Chọn provider ở trên để bật phát thử."
Per-Agent Override (mới v3.10.0)

Mỗi agent có thể có TTS riêng — vào trang chi tiết agent, khối "Ghi đè giọng đọc cho agent này":

  • Bật toggle để override
  • Hint "Kế thừa: {{provider}} · {{voice}} · {{model}}" — biết đang inherit từ đâu
  • Tinh chỉnh params (tốc độ, cảm xúc, style...) khác với cấu hình toàn cục

Use case: Agent CSKH dùng giọng nữ ấm; Agent công bố tin tức dùng giọng nam trang trọng. Override chỉ chỗ cần — không phải tạo provider mới.

Trạng thái rỗng

Nếu chưa cấu hình: "Chưa cấu hình TTS — Cấu hình provider TTS để bật giọng đọc cho agent.". Nút Cấu hình TTS. Nếu user không phải owner: "Liên hệ chủ workspace để cấu hình TTS."

Cài đặt nâng cao

Mỗi provider có khu Advanced thu gọn. Badge: "{{N}} cài đặt nâng cao".

4️⃣ Knowledge Graph Settings

Title: "Cài đặt đồ thị tri thức". Description: "Cấu hình trích xuất thực thể từ lần ghi bộ nhớ. Yêu cầu provider/mô hình hỗ trợ đầu ra JSON có cấu trúc."

  • Provider trích xuấtTooltip: "Provider LLM dùng để trích xuất thực thể và quan hệ từ văn bản."
  • Mô hình trích xuấtTooltip: "ID mô hình để trích xuất. Nên hỗ trợ đầu ra JSON có cấu trúc."
  • Độ tin cậy tối thiểuHint: "Các thực thể dưới điểm tin cậy này sẽ bị loại bỏ (0,0–1,0)." Khuyên 0.7-0.8.
  • Toggle Tự động trích xuất khi ghi bộ nhớHint: "Tự động trích xuất thực thể khi agent ghi vào tệp bộ nhớ."

5️⃣ Media Provider Chain (cho create_image, create_audio, create_video, read_*)

Title: "{{tên tool}} — Chuỗi provider". Description: "Cấu hình và sắp xếp các provider dự phòng. Kéo để sắp xếp lại — provider đầu tiên được thử trước."

  • Mỗi provider trong chain cóProvider (dropdown), Mô hình, Thời gian chờ, Số lần thử lại, Cài đặt riêng
  • Trống: "Chưa có provider nào. Thêm bên dưới."Bấm Thêm provider

6️⃣ JSON Settings (fallback cho tool không có form chuyên biệt)

Title: "Cài đặt: {{name}}". Description: "Chỉnh sửa cài đặt công cụ dưới dạng JSON. Thay đổi có hiệu lực ngay sau khi lưu."

  • Textarea JSON với syntax highlighting
  • Nút Định dạng JSON để format đẹp
  • Validate: "Cú pháp JSON không hợp lệ" hoặc "JSON không hợp lệ"

Mọi dialog: nút Hủy / Lưu. Đang lưu: "Đang lưu...". Toast: "Đã lưu cài đặt". Lỗi: "Không thể lưu cài đặt".

Nếu tool không có cấu hình: "Không có cài đặt có thể cấu hình cho công cụ này."

6.6 Tenant Override

Khi truy cập dưới góc nhìn tenant (không phải master), mỗi tool có thêm:

  • Nhóm "Ghi đè tenant"3 lựa chọn:
    • Bật cho tenant này
    • Tắt cho tenant này
    • Dùng mặc định — bỏ override
  • Nút Đặt lại mặc địnhXóa override
  • Banner trong dialog Settings "Đang chỉnh ghi đè của tenant này. Thay đổi chỉ áp dụng cho tenant này."
    Hoặc nếu mới tạo override: "Tạo ghi đè mới cho tenant này. Đã điền sẵn giá trị mặc định toàn cục."
  • Nút Đặt lại về mặc định toàn cụcTrong dialog Settings cho tenant scope

6.7 Best practices khi quản trị Built-in Tools

  1. 🔧 Chỉ bật tool agent thực sự cần: Tool "đắt" (browser, exec, subagent spawn) → tắt cho agent client-facing.
  2. 🔑 Cấu hình API key cho Web Search: Production nên có Exa hoặc Tavily (chất lượng cao). DuckDuckGo dự phòng miễn phí.
  3. 🎤 TTS auto mode "Tắt" mặc định — chỉ bật Có thẻ hoặc Luôn luôn khi nghiệp vụ cần audio.
  4. 🖼️ Media tool cần provider chain: Bật xong phải vào Settings cấu hình ít nhất 1 provider — banner cam sẽ nhắc.
  5. 🧠 KG auto-extract: Bật nếu agent xử lý nhiều thực thể (CRM, support). Min confidence 0.7-0.8.
  6. 🛒 Nhanh.vn: Cấu hình app_id + business_id + access_token ở settings nhanh_* tool.
  7. 🏢 Tenant nhạy cảm tắt tool rủi ro: Banking, health → tắt exec, browser.
  8. ⚠️ Chú ý "Cấu hình qua trang Config": Một số tool phải sửa ở menu Config — không sửa được ở đây.
  9. 🔍 Xem banner cảnh báo: Nếu có tool media bật mà chưa cấu hình → vào quick-config trên banner cam.
7

Menu MCP Servers

Hãy hình dung: MCP là "ống nối" giữa agent và các dịch vụ bên ngoài (Notion, GitHub, custom API...). Người ta viết sẵn MCP server, bạn chỉ cấu hình kết nối + cấp quyền, agent có thêm tool dùng ngay — không cần code.

7.1 Hiểu nhanh: MCP là gì?

MCP (Model Context Protocol) = chuẩn mở do Anthropic giới thiệu để LLM kết nối với tool/dữ liệu bên ngoài. Mỗi MCP Server expose một bộ tool — agent gọi tool đó như tool thường.

Khác với Built-in Tools (đóng gói sẵn) và Skill (hướng dẫn), MCP là plugin từ bên ngoài — bạn cài thêm khi cần.

3 loại transport (cách kết nối)(1) stdio — chạy 1 process local, giao tiếp qua stdin/stdout. (2) SSE — Server-Sent Events qua HTTP. (3) HTTP — REST request/response. Mỗi loại điền config khác nhau (mục 7.5).

7.2 Trang danh sách MCP Servers — Có gì trên màn hình?

Click menu MCP → trang có tiêu đề "MCP Servers" + dòng phụ "Quản lý kết nối máy chủ Model Context Protocol".

  • Nút + Thêm máy chủMở dropdown 2 lựa chọn (xem mục 7.3).
  • Ô "Tìm kiếm máy chủ..."Lọc nhanh.
  • Bảng 7 cộtTên / Giao thức / Công cụ / Agents / Bật / Tạo bởi / Thao tác

Trạng thái rỗng:

  • Chưa có: "Không có MCP server — Thêm MCP server đầu tiên để bắt đầu."
  • Search không khớp: "Không tìm thấy máy chủ phù hợp — Thử từ khóa tìm kiếm khác."

7.3 Thêm MCP Server — 2 lựa chọn

Bấm + Thêm máy chủ, dropdown hiện 2 cách tạo:

Từ mẫu có sẵn

"Cấu hình nhanh cho dịch vụ phổ biến"

Mở catalog các preset đã được tối ưu sẵn. Title catalog: "Chọn mẫu cấu hình" + description "Kết nối nhanh các dịch vụ phổ biến với form cấu hình có hướng dẫn."

Tùy chỉnh (Nâng cao)

"Cấu hình thủ công command, URL, transport"

Form đầy đủ — bạn tự chọn transport (stdio/SSE/HTTP), nhập command, URL, headers, env... Dùng cho MCP server bạn tự host.

7.4 Bảng 7 cột — Hiểu từng cột

CộtHiển thị
TênDisplay name (hoặc slug nếu trống)
Giao thứcBadge: stdio / SSE / HTTP
Công cụSố tool server expose. Click để xem chi tiết.
AgentsSố agent đã được cấp quyền dùng MCP này
BậtToggle bật/tắt nhanh
Tạo bởiEmail/username người tạo
Thao tác4 nút: Xem công cụ, Quản lý quyền, Kết nối lại, Edit/Delete

7.5 Form tạo MCP Server tùy chỉnh — Đi từng ô

Title: "Thêm MCP Server" (hoặc "Chỉnh sửa MCP Server" khi sửa).

Khối 1 — Định danh

  • Tên *Hint: "Chỉ dùng chữ thường, số và dấu gạch ngang". Validate sai: "Tên phải là slug hợp lệ (chữ thường, số, dấu gạch ngang)".
  • Tên hiển thịPlaceholder: "Máy chủ MCP của tôi". Tên thân thiện trên UI.

Khối 2 — Giao thức (Transport) *

Dropdown 3 lựa chọn — quyết định các trường bên dưới:

TransportKhi nào dùngTrường cần điền
stdio MCP server chạy local như 1 process Lệnh * (vd: npx) + Tham số (vd: -y @modelcontextprotocol/server-everything)
SSE Server-Sent Events qua HTTP (1 chiều, server → client) URL * (vd: https://api.example.com/sse) + Headers
HTTP REST request/response — phổ biến nhất URL * + Headers

Lỗi validate: "Lệnh là bắt buộc cho giao thức stdio" hoặc "URL là bắt buộc cho giao thức SSE/HTTP".

Khối 3 — Stdio: Lệnh + Tham số (chỉ khi transport=stdio)

  • Lệnh *Lệnh thực thi (vd: npx, python, ./my-mcp)
  • Tham số (phân cách bằng dấu cách)Placeholder: "--flag1 --flag2=\"giá trị có dấu cách\"". Hỗ trợ quoted strings.

Khối 4 — HTTP/SSE: URL + Headers (chỉ khi transport=SSE/HTTP)

  • URL *Endpoint của MCP server
  • Headers Bảng key-value động. Mỗi dòng có:
    • Placeholder key: "Tên header" (vd Authorization)
    • Placeholder value: "Giá trị header" (vd Bearer abc123)
    Nút Thêm Header để thêm dòng.

Khối 5 — Biến môi trường (mọi transport)

  • Biến môi trường Bảng key-value tương tự headers. Vd: API_KEY=xxx, DEBUG=true.
    Placeholder: "Tên biến" + "Giá trị". Nút Thêm biến.
    Với stdio: env vars truyền vào process. Với HTTP/SSE: thường không dùng (dùng Headers thay).

Khối 6 — Cấu hình nâng cao

  • Tiền tố công cụHint: "Tự động lấy từ tên nếu để trống." Vd: nếu prefix = github → tool list_repos sẽ thành github_list_repos. Tránh đụng tên với tool khác.
  • Thời gian chờ (giây)Timeout cho mỗi tool call. Mặc định 60s. Tăng nếu MCP làm việc chậm.
  • Bật (toggle)Mặc định bật.
  • Toggle "Yêu cầu Credentials riêng"Hint: "Mỗi user phải cấu hình credentials riêng. Server bị vô hiệu cho user chưa có credentials." → Dùng cho MCP nhạy cảm theo user (vd: GitHub OAuth, Notion personal token).

Test Connection trước khi save

Có nút Kiểm tra kết nối. Khi bấm:

  • Đang test: "Đang kiểm tra..."
  • Thành công: "Tìm thấy {{N}} công cụ"
  • Lỗi: "Kết nối thất bại"

Khuyên: Luôn test trước khi save — để chắc connection đúng và biết MCP expose những tool gì.

Cuối: Hủy / Tạo (hoặc Cập nhật). Đang lưu: "Đang lưu...". Toast: "Đã tạo MCP server".

7.6 Dialog "Xem công cụ" — Tools

Bấm Xem công cụ ở cột Thao tác. Title: "Công cụ — {{name}}". Sub-title: "tiền tố: {{prefix}}".

  • Đang load"Đang khám phá công cụ..."
  • Trống"Không tìm thấy công cụ — Máy chủ có thể ngoại tuyến hoặc không có công cụ nào được đăng ký."
  • Lỗi"Không thể tải công cụ"
  • Có toolMỗi tool: tên + mô tả + input schema. Có ô "Lọc công cụ..." tìm nhanh.
  • Search rỗng"Không có công cụ phù hợp"

7.7 Dialog "Quản lý quyền" — Grants

Bấm Quản lý quyền. Title: "Quyền agent - {{name}}". Mặc định: "Tất cả công cụ được phép" cho mọi agent. Bạn có thể tạo grant chi tiết để hạn chế.

Khu vực "Quyền hiện tại"

Liệt kê các grant đã có: agent + tool allow list + tool deny list. Mỗi grant có nút Edit/Delete.

Form "Thêm quyền agent"

  • AgentCombobox "Chọn agent...". Bắt buộc — sai → "Agent là bắt buộc".
  • Danh sách công cụ được phép (tùy chọn) Multi-select "Chọn công cụ để cho phép...".
    Trống = cho phép tất cả tool.
  • Danh sách công cụ bị từ chối (tùy chọn) Multi-select "Chọn công cụ để từ chối...".
    Tool trong deny list luôn bị chặn ngay cả nếu nằm trong allow list.

Nút Cấp quyền (hoặc Cập nhật). Toast: lỗi "Cấp quyền thất bại" / "Thu hồi quyền thất bại".

Cách dùng grants thông minh(1) Mặc định không tạo grant → tất cả agent dùng được tất cả tool. (2) Khi có agent client-facing nhạy cảm → tạo grant với deny list các tool nguy hiểm (xóa, ghi). (3) Khi muốn agent chỉ dùng vài tool cụ thể → dùng allow list.

7.8 Dialog "Thông tin xác thực" — User Credentials

Khi MCP server bật "Yêu cầu Credentials riêng", mỗi user phải tự cấu hình. Bấm credentials button ở row → mở dialog.

2 ngữ cảnh hiển thị

User thường

"Đặt thông tin xác thực cá nhân của bạn cho máy chủ MCP này. Chỉ áp dụng cho tài khoản của bạn."

Admin

"Đặt thông tin xác thực cho người dùng cụ thể trên máy chủ MCP này. Chúng ghi đè cài đặt mặc định của máy chủ chỉ cho người dùng được chọn."

Có dropdown Chọn người dùng.

3 loại credential

  • API KeyInput password. Placeholder: "Để trống để giữ nguyên".
    Trạng thái: "API Key đã đặt" hoặc "Chưa có thông tin xác thực".
  • HeadersBảng key-value. Placeholder: "KEY=VALUE, mỗi dòng một cặp". Nút Thêm Header. Trạng thái: "Headers đã đặt".
  • Biến môi trườngBảng key-value tương tự. Nút Thêm biến. Trạng thái: "Biến môi trường đã đặt".

Buttons: Lưu / Xóa (1 user) / Xóa tất cả (mọi user) / Hủy.

Toast: "Đã lưu thông tin xác thực", "Đã xóa thông tin xác thực". Lỗi: "Lưu credentials thất bại", "Xóa credentials thất bại".

Hint quan trọng cho bot user: "Người dùng chat (Telegram, Discord...) cần được gộp vào tenant user qua trang Contacts trước khi có thể thiết lập credentials riêng."

7.9 Reconnect & Delete

Reconnect

Nút Kết nối lại ở cột Thao tác. Force reset connection nếu MCP bị lag/lỗi. Toast: "Đã reset kết nối MCP server". Lỗi: "Không thể kết nối lại MCP server".

Delete

Confirm dialog:

  • Title: "Xóa MCP Server"
  • Mô tả: "Bạn có chắc muốn xóa \"{{name}}\"? Tất cả quyền liên quan cũng sẽ bị xóa."
  • Nút: Xóa (đỏ)

Toast: "Đã xóa MCP server".

7.10 Best practices khi quản trị MCP

  1. 🧪 Test connection trước khi save: Tránh tạo server "ma" không kết nối được.
  2. 🏷️ Đặt tool prefix rõ ràng: github_, notion_, jira_ — tránh trùng tool name giữa các MCP.
  3. ⏱️ Timeout hợp lý: Mặc định 60s đủ cho hầu hết MCP. Tăng nếu MCP fetch dữ liệu lớn (vd Notion full database).
  4. 🔐 Yêu cầu Credentials riêng: Bật cho MCP có quyền cá nhân (GitHub OAuth, Slack user token). Tắt cho MCP system-wide (read-only API).
  5. 🛡️ Grants chi tiết: Agent client-facing → deny tool nguy hiểm (delete, write, payment). Agent dev → allow all.
  6. 🔄 Reconnect khi MCP lag: Nếu thấy tool calls timeout liên tục → bấm Kết nối lại.
  7. 📋 Xem tool sau khi tạo: Bấm Xem công cụ để biết MCP expose những tool nào, giúp viết description agent chính xác.
  8. 🔧 Stdio cho local, HTTP/SSE cho remote: Stdio đơn giản nhưng phải cài server local. HTTP linh hoạt nhưng cần endpoint public/private.
  9. 🧹 Xóa MCP không dùng: Mỗi MCP active = 1 connection + tool registration → tốn resource.
8

Menu Tác vụ định kỳ

Hãy hình dung: Tác vụ định kỳ giống như cài chuông báo thức cho agent. Đặt lịch xong, agent tự chạy theo giờ — báo cáo sáng 8h, backup 1h/lần, nhắc deadline cuối tháng... Không cần ai nhấn "chạy".

8.1 Hiểu nhanh: Tác vụ định kỳ là gì?

Mỗi Cron Job = 1 "lịch hẹn" để agent tự thực thi 1 việc cụ thể. Job có:

  • Lịch chạy — cron / mỗi N giây / một lần
  • Tin nhắn cho agent — "việc cần làm" gửi cho agent xử lý
  • Agent được giao việc (hoặc agent mặc định)
  • Trạng thái bật/tắt
  • Tùy chọn nâng cao: gửi kết quả qua kênh nào, múi giờ, tự xóa sau khi chạy...
Use case phổ biến(1) Báo cáo sáng tự động ("tổng hợp đơn hôm qua, gửi Telegram"). (2) Health check 5 phút/lần. (3) Backup database 1h. (4) Nhắc team deadline cuối tháng. (5) Tự động đăng bài social media giờ vàng.

8.2 Trang danh sách Tác vụ định kỳ — Có gì trên màn hình?

Click menu Tác vụ định kỳ → trang có tiêu đề "Tác vụ định kỳ" + dòng phụ "Lên lịch các tác vụ agent định kỳ".

  • Nút + Tác vụ mớiMở dialog tạo job mới.
  • Ô "Tìm kiếm cron..."Lọc theo tên job.
  • Bảng 6 cộtBật / Tên / Lịch / Tin nhắn / Agent / Thao tác

Trạng thái rỗng:

  • Chưa có: "Không có tác vụ định kỳ — Tạo tác vụ định kỳ để lên lịch các tác vụ agent định kỳ."
  • Search không khớp: "Không tìm thấy tác vụ — Thử từ khóa khác."

8.3 Bảng 6 cột — Hiểu từng cột

CộtHiển thị
BậtToggle bật/tắt nhanh
TênSlug job + thông tin "Tiếp: {{time}}" (lần chạy tiếp theo) hoặc "Không có lần chạy tiếp"
LịchHiển thị lịch (vd 0 9 * * *, every 5m, once)
Tin nhắnĐoạn ngắn nội dung gửi cho agent (truncate)
AgentTên agent xử lý, hoặc "Agent mặc định" nếu không gán cụ thể
Thao tác3 nút: Chạy ngay, Lịch sử chạy, Edit/Delete

8.4 Tạo Tác vụ định kỳ — Đi từng ô

Bấm + Tác vụ mới. Title: "Tạo tác vụ định kỳ".

  • TênPlaceholder: "my-daily-task". Hint: "Chỉ chữ thường, số và dấu gạch ngang". Ví dụ: sales-report-8am, backup-hourly.
  • Agent ID (tùy chọn)Placeholder: "mặc định". Để trống → dùng agent mặc định của workspace.
  • Loại lịch3 lựa chọn (xem mục 8.5)
  • Tin nhắnPlaceholder: "Agent cần làm gì?". Đây là input gửi cho agent — viết như chat thường. Vd: "Tổng hợp 5 đơn hàng mới nhất từ Nhanh.vn, gửi Telegram chat của tôi".

Cuối: Hủy / Tạo. Đang tạo: "Đang tạo...". Toast: "Đã tạo tác vụ định kỳ".

8.5 Loại lịch — 3 lựa chọn

Mỗi (Every)

Lặp định kỳ theo khoảng thời gian.
Field: Khoảng thời gian (giây).
Vd: 300 = mỗi 5 phút, 3600 = mỗi giờ.

Cron

Biểu thức cron 5 trường: phút giờ ngày tháng thứ.
Field: Biểu thức Cron.
Hint: "Cron 5 trường tiêu chuẩn: phút giờ ngày tháng thứ"

Một lần (Once)

Chạy đúng 1 lần.
Mô tả: "Tác vụ sẽ chạy một lần, khoảng 1 phút kể từ bây giờ."
Thường dùng kèm Tự động xóa.

Cú pháp Cron — 5 trường

┌────── phút (0-59)
│ ┌──── giờ (0-23)
│ │ ┌── ngày tháng (1-31)
│ │ │ ┌── tháng (1-12)
│ │ │ │ ┌── thứ (0-6, 0=Chủ nhật)
* * * * *

Ví dụ thực tế:

Biểu thứcÝ nghĩa
0 9 * * *9:00 sáng mỗi ngày
*/15 * * * *Mỗi 15 phút
0 8,17 * * 1-58:00 sáng và 5:00 chiều, Thứ 2-6
0 0 1 * *0:00 ngày 1 mỗi tháng
30 23 * * 023:30 mỗi Chủ nhật
MẹoTest cron expression tại crontab.guru trước khi điền — site hiển thị cron sẽ chạy lúc nào. Tránh sai cú pháp.

8.6 Trang chi tiết Cron Job — 2 tab

Click vào dòng job → vào trang chi tiết. Có 2 tab:

Tổng quan

Cấu hình và metadata của job (xem mục 8.7)

Lịch sử chạy

Danh sách các lần chạy, kết quả, lỗi nếu có

Header trang chi tiết — 3 nút action

  • Chạy ngay — kích hoạt job ngay lập tức (không đợi lịch). Đang chạy: "Đang chạy...". Toast: "Đã kích hoạt tác vụ định kỳ".
  • Bật/Tắt — toggle nhanh
  • Xóa — xóa vĩnh viễn (confirm dialog)

8.7 Tab "Tổng quan" — Các khối cấu hình

Khối "Lịch" + "Tin nhắn"

Hiển thị lịch hiện tại + tin nhắn nội dung. Bấm Sửa để chỉnh. Có nút Xem trước nếu muốn render trước.

Trạng thái rỗng: "Chưa có tin nhắn".

Khối "Agent & Trạng thái"

  • Agent đang gán
  • Trạng thái: "đã bật" / "đã tắt" / "đang chạy..."

Khối "Thông tin" (read-only)

  • LịchCron expression hoặc interval
  • Múi giờVd: Asia/Ho_Chi_Minh
  • Lần chạy tiếp theoTimestamp cụ thể
  • Lần chạy gần nhấtTimestamp lần cuối
  • Trạng tháiKết quả lần chạy gần nhất (success/failed)
  • Đã tạo + Đã cập nhậtTimestamps
  • Tự động xóa"Có (một lần)" nếu bật Xóa sau khi chạy
  • Lỗi gần nhấtHiện nếu lần chạy cuối fail

Khối "Tải trọng" (Payload)

Nếu job có payload kèm theo (advanced): hiển thị JSON. Trống: "(trống)".

Khối "Giao nhận" (Delivery)

Mô tả: "Chuyển kết quả công việc đến kênh hoặc người dùng". Cấu hình:

  • Toggle Gửi đến kênhKhi bật → kết quả job tự gửi qua channel
  • KênhPlaceholder: "#general". VD: telegram, slack, discord
  • Đến (người dùng)Placeholder: "user-id". ID nhóm/DM cụ thể nhận tin
  • Toggle Kích hoạt heartbeat khi chạyMô tả: "Kích hoạt heartbeat của agent khi công việc chạy"

Khi đã cấu hình: hiển thị "Gửi: trực tiếp", "Channel: {{name}}", "Đến: {{name}}".

Khối "Vòng đời" (Lifecycle)

Mô tả: "Cài đặt vòng đời công việc".

  • Toggle Xóa sau khi chạyMô tả: "Tự động xóa công việc sau lần chạy thành công đầu tiên". Bật cho job Một lần (one-shot reminder).
  • Toggle Không trạng thái (stateless)Hint: "Bỏ qua lưu session. Mỗi lần chạy bắt đầu mới. Tiết kiệm token cho các cron không cần context cũ.". Bật cho cron chạy thường xuyên (5p/lần) để không phình runlog.

Khối "Lên lịch" (Scheduling)

Mô tả: "Cấu hình múi giờ".

  • Múi giờMô tả: "Múi giờ cho biểu thức cron". Vd: Asia/Ho_Chi_Minh hoặc UTC.
QUAN TRỌNG về múi giờMặc định là UTC. Nếu bạn ở Việt Nam mà để UTC, cron 0 9 * * * sẽ chạy lúc 16:00 (9h UTC = 16h VN). Luôn đặt Asia/Ho_Chi_Minh để tránh sai 7 tiếng.

Nút "Nâng cao"

Mở dialog cấu hình thêm các tùy chọn ít dùng (retry policy, max attempts...).

8.8 Tab "Lịch sử chạy" — Run History

Hiển thị danh sách tất cả lần chạy của job.

  • Mỗi lần chạy cóTimestamp, status (success/failed), thời gian chạy, kết quả/lỗi, tokens dùng "X vào / Y ra"
  • Trống"Chưa có lịch sử chạy nào."
  • Đang load"Đang tải..."
  • Nút Làm mớiReload lịch sử

Cũng có thể mở Lịch sử chạy nhanh từ trang danh sách bằng cách bấm icon ở cột Thao tác. Title dialog: "Lịch sử chạy: {{name}}".

8.9 Bật/Tắt + Xóa — Confirm dialogs

Bật job

  • Title: "Bật tác vụ định kỳ"
  • Mô tả: "Bật \"{{name}}\"? Tác vụ sẽ bắt đầu chạy theo lịch."
  • Nút: Bật

Toast: "Đã bật tác vụ định kỳ".

Tắt job

  • Title: "Tắt tác vụ định kỳ"
  • Mô tả: "Tắt \"{{name}}\"? Tác vụ sẽ dừng chạy cho đến khi được bật lại."
  • Nút: Tắt

Toast: "Đã tắt tác vụ định kỳ".

Xóa job

  • Title: "Xóa tác vụ định kỳ"
  • Mô tả: "Xóa \"{{name}}\"? Hành động này không thể hoàn tác."
  • Nút: Xóa (đỏ)

Toast: "Đã xóa tác vụ định kỳ".

8.10 Best practices khi quản trị Cron

  1. 🌍 LUÔN đặt múi giờ Asia/Ho_Chi_Minh nếu bạn ở Việt Nam — tránh sai 7 tiếng.
  2. 🏷️ Tên job rõ ràng: sales-report-8am-vn, backup-hourly — sau 6 tháng vẫn hiểu.
  3. 🔁 Job Một lần bật Tự động xóa: Tránh job "rác" tích tụ.
  4. 📦 Job tần suất cao bật Không trạng thái: Health check 5p/lần → stateless để không phình runlog.
  5. 📡 Cấu hình Delivery cho job báo cáo: Để kết quả tự gửi Telegram/Slack — không phải vào trang Sessions xem thủ công.
  6. 🧪 Test cron tại crontab.guru: Verify expression đúng trước khi save.
  7. 🔍 Theo dõi Lịch sử chạy: Job thất bại liên tục → vào xem lỗi gần nhất, fix ngay.
  8. ⚠️ Đừng tạo nhiều job cùng giờ: 10 job cùng chạy 9:00 sáng → spike CPU + LLM rate limit.
  9. 🔄 Tận dụng Chạy ngay để test: Đừng đợi đến giờ — bấm Chạy ngay để verify ngay khi tạo.
  10. 🤖 Tin nhắn rõ ràng: Viết như chat với agent. Càng cụ thể càng đúng. Vd "Tổng hợp doanh thu từ Nhanh.vn ngày hôm qua. Format bảng. Gửi Telegram."
9

Menu Bộ nhớ

Hãy hình dung: Bộ nhớ là "ngăn não" của agent. Mỗi tài liệu (note, sản phẩm, hồ sơ khách...) được agent đọc và "nhớ" để dùng cho lần sau. Khác với Session (lịch sử chat), Memory là tri thức lâu dài, có thể tìm bằng câu hỏi.

9.1 Hiểu nhanh: Bộ nhớ là gì?

"Bộ nhớ" (Memory) là kho tài liệu dài hạn mà agent có thể tìm kiếm bằng semantic search (hiểu ý) — không cần khớp chính xác từ khóa.

Mỗi tài liệu memory:

  • đường dẫn (path) như file, vd: notes/q2-strategy.md
  • nội dung dạng text/markdown
  • Được chia thành chunks (đoạn nhỏ)
  • Mỗi chunk được embedding (chuyển thành vector số học)
  • scope (toàn cục / cá nhân)
So sánh nhanh: Memory vs Session vs Vault
  • Session = lịch sử chat 1 cuộc trò chuyện
  • Memory = tri thức lâu dài của 1 agent (gần với nó)
  • Vault = kho tài liệu chia sẻ team (xem mục 10)

9.2 Trang menu Bộ nhớ — Có gì trên màn hình?

Click menu Bộ nhớ → trang có tiêu đề "Bộ nhớ" + dòng phụ "Duyệt và quản lý tài liệu bộ nhớ, đoạn trích và nhúng của agent".

2 Tab top-level

Tài liệu

Quản lý tài liệu bộ nhớ — đọc/sửa/xóa, tìm kiếm semantic. Tab mặc định.

Đồ thị tri thức

Thực thể (Person, Company...) + quan hệ trích xuất từ memory. Xem chi tiết ở Menu 11 - Knowledge Graph.

Header — 4 nút action

  • Nút Tìm kiếmMở dialog semantic search (xem mục 9.6)
  • Nút + TạoTạo tài liệu memory mới (xem mục 9.5)
  • Nút Lập chỉ mục tất cảRe-index toàn bộ — tính lại embedding cho mọi document. Đang chạy: "Đang lập chỉ mục...". Toast: "Đã lập chỉ mục tất cả tài liệu".
  • Nút RefreshReload danh sách

Bộ lọc

  • AgentDropdown: "Chọn agent" hoặc "Tất cả agent"
  • Phạm viDropdown: "Tất cả (toàn cục + cá nhân)", "Toàn cục", "Cá nhân"

Trạng thái rỗng:

  • Lọc theo agent: "Không có tài liệu bộ nhớ — Agent này chưa có tài liệu bộ nhớ."
  • Toàn cục: "Không tìm thấy tài liệu bộ nhớ trên bất kỳ agent nào."

9.3 Bảng Tài liệu — 6 cột

CộtHiển thị
Đường dẫnPath file của document, vd: notes/project-overview.md. Click để mở chi tiết.
AgentAgent sở hữu tài liệu này
Phạm viBadge: Toàn cục hoặc Cá nhân
Mã bămHash ngắn của content — đổi khi nội dung thay đổi
Cập nhậtTimestamp lần sửa cuối
Thao tácEdit / Delete / Re-index

9.4 Hai phạm vi — Toàn cục vs Cá nhân

Toàn cục (Global)

Tài liệu agent dùng cho mọi user. Vd: catalog sản phẩm, FAQ chung, policy công ty.

Cá nhân (Personal)

Tài liệu chỉ dành cho 1 user/nhóm chat cụ thể. Vd: ghi chú khách hàng A, lịch sử mua hàng user X.

9.5 Dialog "Tạo tài liệu bộ nhớ" — Đi từng ô

Bấm + Tạo. Title: "Tạo tài liệu bộ nhớ".

  • Đường dẫn *Placeholder: "vd. notes/project-overview.md". Format file path. Lỗi: "Đường dẫn là bắt buộc".
  • Nội dung *Textarea lớn, placeholder: "Nội dung tài liệu...". Hỗ trợ markdown. Lỗi: "Nội dung là bắt buộc".
  • Agent *Combobox: "Chọn agent...". Lỗi: "Vui lòng chọn agent".
  • Phạm vi 2 lựa chọn:
    • Phạm vi hiện có: chọn từ danh sách user/group đã có
    • Tùy chỉnh: nhập custom scope
    Hint: "Toàn cục = chia sẻ với mọi người dùng. Cá nhân = giới hạn cho người dùng hoặc chat nhóm cụ thể."
    Combobox: "Chọn nhóm/người dùng..."
  • Toggle Tự động lập chỉ mục sau khi tạoBật để tính embedding ngay sau khi save. Khuyên BẬT.

Cuối: Hủy / Tạo. Đang tạo: "Đang tạo...". Toast: "Đã tạo tài liệu bộ nhớ".

9.6 Dialog "Tìm kiếm bộ nhớ" — Semantic Search

Bấm Tìm kiếm. Title: "Tìm kiếm bộ nhớ".

  • Truy vấn tìm kiếmPlaceholder: "Nhập truy vấn tìm kiếm...". Đây là câu hỏi tự nhiên — không cần keyword chính xác.
  • Agent IDPlaceholder: "Lọc theo agent...". Tùy chọn để giới hạn search trong 1 agent.
  • Giới hạnSố kết quả tối đa trả về

Bấm Tìm kiếm. Đang tìm: "Đang tìm kiếm...". Khu vực Kết quả:

  • Mỗi kết quả: chunk text + score "tương đồng" (0-1) + "Đường dẫn:" document gốc
  • Trống: "Không tìm thấy kết quả"
  • Lỗi: "Tìm kiếm thất bại"

Cách dùng: Test xem agent có "nhớ" đúng thông tin không. Vd hỏi "Chính sách hoàn trả của công ty?" → xem có trả về đoạn từ document policy.

9.7 Dialog "Tài liệu bộ nhớ" — Xem chi tiết

Click vào dòng document → mở dialog xem chi tiết. Title: "Tài liệu bộ nhớ".

Phần thông tin

  • Đường dẫn:Full path
  • Agent:Agent sở hữu
  • Phạm vi:Toàn cục/Cá nhân
  • Mã băm:Hash content
  • Cập nhật:Timestamp

Phần "Nội dung"

Hiển thị toàn bộ markdown content. Có thể edit nếu có quyền.

Phần "Đoạn trích" (Chunks)

Hiển thị số đoạn: "Đoạn trích ({{count}})". Mỗi chunk:

  • Tiêu đề "Đoạn {{index}}" — vd "Đoạn 1", "Đoạn 2"...
  • Nội dung chunk
  • Trạng thái: Đã nhúng hoặc Chưa nhúng

Trống: "Không có đoạn trích".

Tại sao có chunks?Document dài bị chia nhỏ thành chunks (~1000 chars) để embedding chính xác hơn. Khi search, hệ thống match từng chunk — chunk nào gần nghĩa nhất trả lên đầu.

9.8 Xóa document

Confirm dialog:

  • Title: "Xóa tài liệu bộ nhớ"
  • Mô tả: "Bạn có chắc muốn xóa \"{{path}}\"? Tất cả đoạn trích và nhúng liên quan cũng sẽ bị xóa."
  • Nút: Xóa (đỏ)

Toast: "Đã xóa tài liệu bộ nhớ".

9.9 Best practices khi quản trị Bộ nhớ

  1. 📂 Đặt path có tổ chức: notes/strategy.md, products/laptop.md, customers/abc-corp.md — sau dễ tìm và xóa hàng loạt.
  2. 🌐 Toàn cục cho thông tin chung: catalog sản phẩm, FAQ, policy. Cá nhân cho data per-user (ghi chú khách hàng).
  3. 🔄 Luôn bật Tự động lập chỉ mục khi tạo. Document chưa indexed thì search không thấy.
  4. 🧪 Test bằng dialog Tìm kiếm: Sau khi tạo doc → search vài câu hỏi liên quan → xem có trả về đúng không.
  5. 📏 Doc ngắn-vừa thay vì dài: 1 doc = 1 chủ đề. Doc 10.000 từ về mọi thứ → embedding kém chính xác.
  6. 🗑️ Xóa doc cũ/sai: Tránh agent "nhớ" thông tin lỗi thời (vd giá cũ, policy đã đổi).
  7. 🔄 Re-index sau khi đổi embedding model: Bấm "Lập chỉ mục tất cả" để tính lại với model mới.
  8. 👀 Định kỳ review chunks: Mở doc xem chunks có chia hợp lý không. Doc chia tệ → kết quả search tệ.
  9. 🏷️ Dùng metadata trong path: v2/products/laptop.md để biết version, bỏ v1/ khi không dùng.
  10. 🛡️ Bảo mật cá nhân: Đặt scope đúng — không để PII (số CMND, password) ở Toàn cục.
10

Menu Vault — Kho Tri Thức

Hãy hình dung: Vault là "thư viện" tài liệu của cả team — agent và người đều dùng chung. Khác với Memory (riêng từng agent), Vault có wikilinks giữa các tài liệu, hỗ trợ nhiều loại doc (note, skill, media...) và scope theo team.

10.1 Hiểu nhanh: Vault là gì?

"Vault" (Kho Tri Thức) = kho tài liệu chia sẻ theo cá nhân/team/cross-team với:

  • 7 loại document (Context, Memory, Note, Skill, Episodic, Media, Document)
  • Wikilinks [[link]] giữa tài liệu — agent và user follow link như Notion
  • Hybrid search = full-text + semantic (vector)
  • Auto sync workspace folder → vault
Memory vs Vault
  • Memory: tài liệu riêng của 1 agent, chỉ semantic search, không có links
  • Vault: tài liệu team-wide, có wikilinks giữa doc, 7 loại, có metadata phong phú

10.2 Trang Vault — Có gì trên màn hình?

Click menu Vault → trang có tiêu đề "Kho Tri Thức" + dòng phụ "Kho tài liệu với wikilinks và tìm kiếm ngữ nghĩa".

  • Nút + Tạo mớiTạo VaultDocument mới
  • Nút Tải lên Kho Tri ThứcUpload nhiều file .md/.txt/.json/.yaml/.csv... cùng lúc
  • Nút Tìm kiếmHybrid search — semantic + keyword
  • Nút Quét lại workspaceTooltip: "Quét lại workspace". Sync folder workspace → vault, tự thêm doc mới hoặc update doc đã đổi.
  • Ô "Tìm tài liệu..."Lọc nhanh trên danh sách

Bộ lọc

  • Agent: dropdown "Tất cả agent" hoặc agent cụ thể
  • Loại: "Tất cả" hoặc 1 trong 7 loại doc (xem mục 10.5)

Trạng thái rỗng:

  • Vault rỗng: "Không có tài liệu trong kho"
  • Search không khớp: "Không có kết quả"
  • Lỗi search: "Tìm kiếm thất bại"

10.3 Bảng tài liệu — 6 cột

CộtHiển thị
Tiêu đềTitle của doc (click để xem chi tiết)
AgentAgent sở hữu (nếu có)
Đường dẫnPath file: notes/strategy.md
LoạiBadge 1 trong 7 loại
Phạm viBadge: Cá nhân / Nhóm / Chia sẻ
Cập nhậtTimestamp lần sửa cuối

10.4 3 Phạm vi (Scope)

Cá nhân

Doc của 1 user. Người khác không thấy.

Nhóm

Doc của 1 Team — mọi member của team đó truy cập được.

Chia sẻ

Doc dùng chung toàn workspace — mọi user/agent thấy.

10.5 7 Loại tài liệu (DocType)

LoạiMô tảKhi dùng
Ngữ cảnh (context)Tài liệu nền cho agentBackground, công ty info, brand voice
Bộ nhớ (memory)Memory document import từ Memory menuSynced từ Memory store
Ghi chú (note)Note tự doNote họp, idea, todo dài hạn
Kỹ năng (skill)Skill SKILL.mdSynced từ Skill
Giai thoại (episodic)Episodic memory tự động ghiAuto generated khi consolidation chạy
Media (media)Ảnh, audio, videoAsset, screenshot, recording
Tài liệu (document)Doc text genericDefault cho mọi doc khác

10.6 Tạo / Sửa Tài Liệu

Bấm + Tạo mới. Form gồm:

  • Tiêu đềPlaceholder: "Tiêu đề tài liệu"
  • Đường dẫnPlaceholder: "vd. notes/tai-lieu.md"
  • LoạiDropdown 7 loại doc
  • Phạm viDropdown 3 scope (Cá nhân / Nhóm / Chia sẻ)

Toast: "Đã tạo tài liệu". Lỗi: "Tạo tài liệu thất bại".

10.7 Dialog "Tải lên Kho Tri Thức" — Bulk upload

Bấm Tải lên. Title: "Tải lên Kho Tri Thức".

Khối "Đích đến" — chọn nơi lưu

  • Radio Chia sẻUpload vào shared scope
  • Radio AgentCombobox "Chọn agent..."
  • Radio NhómCombobox "Chọn nhóm..."

Khối "Dropzone"

"Kéo thả file vào đây hoặc nhấn để chọn". Hint: "Chỉ file văn bản (.md, .txt, .json, .yaml, .csv, ...)".

Sau khi chọn: hiển thị "File ({{count}})" + danh sách file. Bấm Tải lên hoặc Hủy.

Đang upload: "Đang tải lên...". Toast: "Đã tải lên {{N}} file". Lỗi: "Tải lên thất bại".

10.8 Dialog xem chi tiết tài liệu

Click vào dòng → mở chi tiết. Có các phần:

Khối "Siêu dữ liệu" (Metadata)

Title, Path, Type, Scope, Agent, Updated.

Khối "Liên kết đi" (Outlinks)

Các tài liệu mà doc này tham chiếu đến (dạng [[other-doc]]). Trống: "Không có liên kết".

Khối "Liên kết ngược" (Backlinks)

Các tài liệu khác tham chiếu đến doc này. Trống: "Không có liên kết".

Khối "Xem nội dung" (Content Preview)

Render markdown. Trạng thái đặc biệt:

  • "Không tìm thấy tệp"
  • "Không có nội dung"
  • "Tệp nhị phân — không thể xem trước" (cho ảnh/video/audio)

Có nút Chỉnh sửa, Lưu / Hủy. Đang lưu: "Đang lưu...".

10.9 Tạo Liên Kết — Wikilinks

Bấm + Thêm Liên Kết trong dialog xem chi tiết. Form:

  • Từ (fromDoc)Doc hiện tại (read-only)
  • Đến tài liệu (toDoc)Combobox "Chọn tài liệu..."
  • Loại liên kếtVd: reference / extends / depends_on / supersedes / contradicts / wikilink
  • Ngữ cảnhPlaceholder: "Ngữ cảnh tùy chọn cho liên kết này". Mô tả ngắn vì sao link 2 doc này.

Toast: "Đã tạo liên kết". Lỗi: "Tạo liên kết thất bại".

Xóa link: "Đã xóa liên kết" hoặc lỗi "Xóa liên kết thất bại".

10.10 Quét lại workspace — Sync

Bấm icon Quét lại workspace ở header. Hệ thống quét folder workspace của agent → tự thêm doc mới + update doc đã đổi.

Trạng thái

  • Đang chạy"Đang xử lý". Có nút Dừng xử lý.
  • Confirm dừng"Bạn có chắc muốn dừng quá trình xử lý? Các tài liệu đã xử lý sẽ giữ nguyên.". Nút Dừng.
  • Hoàn tất"Xử lý hoàn tất"
  • Lỗi"Lỗi xử lý" + count "{{N}} lỗi"
  • Đã dừng"Đã dừng xử lý"

Kết quả quét

  • "{{N}} mới" — file mới thêm vào
  • "{{N}} cập nhật" — file đã update
  • "{{N}} đang xử lý lại"
  • "{{N}} không đổi"
  • "Quét bị cắt (đạt giới hạn)" — quá nhiều file
  • "Không tìm thấy file mới"
  • "Đang quét, vui lòng đợi" — đã có quét chạy
  • "Quét thất bại"

10.11 Xóa

Confirm: "Xóa tài liệu này?". Nút / Không.

Toast: "Đã xóa tài liệu". Lỗi: "Xóa tài liệu thất bại".

10.12 Best practices khi quản trị Vault

  1. 📁 Tổ chức path theo nghiệp vụ: brand/voice.md, products/specs/laptop.md, policies/refund.md — agent dễ tìm và filter.
  2. 🏷️ Đặt đúng DocType: Note ≠ Skill ≠ Context — giúp filter và agent xử lý đúng cách.
  3. 👥 Scope phù hợp: Chia sẻ cho info công ty, Nhóm cho team-specific, Cá nhân cho note riêng.
  4. 🔗 Tận dụng Wikilinks: Link giữa các doc liên quan để agent follow context. Vd: "Strategy Q2" link tới "Marketing Plan".
  5. ⬆️ Bulk upload thay vì tạo từng doc: Có 50 file md? Dùng dropzone upload 1 lần.
  6. 🔄 Quét workspace định kỳ: Nếu agent edit file trong workspace, cần quét để Vault thấy update.
  7. 🧪 Test bằng Search: Sau khi upload doc → search keyword/câu hỏi để verify hiển thị đúng.
  8. 🛑 Dừng quét nếu phát hiện sai: Đang sync mà thấy nhiều file rác → dừng, fix folder rồi quét lại.
  9. 🔍 Xem Backlinks để hiểu phụ thuộc: Doc có nhiều backlinks = "tài sản trung tâm", cẩn thận khi xóa/sửa.
  10. 📂 Loại bỏ DocType Episodic khi quá nhiều: Episodic auto-gen có thể tích tụ nhanh — định kỳ filter và xóa cũ.
11

Menu Knowledge Graph — Đồ thị tri thức

Hãy hình dung: Knowledge Graph là "bản đồ quan hệ" của agent. Nó biết: "Chị Lan là khách VIP, làm ở Công ty X, vừa mua sản phẩm Y, có liên hệ qua Telegram" — không phải chỉ nhớ chữ, mà nhớ thực thểcách họ kết nối.

11.1 Hiểu nhanh: Knowledge Graph là gì?

Knowledge Graph (đồ thị tri thức) lưu 2 loại thông tin:

Thực thể (Entity)

"Cái gì" — Người (Lan), Công ty (TechCorp), Sản phẩm (Laptop X1), Địa điểm, Sự kiện...

Quan hệ (Relation)

"Liên kết thế nào" — Lan làm việc tại TechCorp, TechCorp mua Laptop X1, Lan là khách hàng của HCM Office...

Agent có KG sẽ trả lời chính xác hơn câu hỏi như: "Khách hàng nào mua laptop và làm ở TechCorp?" — vì nó truy đồ thị thay vì search text mù.

KG được tạo từ đâu?(1) Tự động trích xuất từ Memory documents khi cấu hình KG (xem mục 6.5). (2) Trích xuất thủ công từ text qua nút Trích xuất. (3) Thực thể tự sinh khi agent hội thoại với khách hàng (consolidation).

11.2 Trang Knowledge Graph — Có gì trên màn hình?

Click menu Knowledge Graph (hoặc tab "Đồ thị tri thức" trong Menu Bộ nhớ). Title: "Knowledge Graph". Description: "Khám phá các thực thể và quan hệ được trích xuất từ bộ nhớ agent."

Bước 1 — Chọn agent

Trống ban đầu: "Chọn agent — Chọn agent để xem đồ thị tri thức.". Sau khi chọn → hiển thị KG của agent đó.

Header sau khi chọn agent

  • Stats"Thực thể: {{N}}" + "Quan hệ: {{N}}"
  • Ô "Tìm kiếm thực thể..."+ Nút Tìm kiếm + nút Xóa để clear
  • Nút Làm mớiReload KG
  • Nút Trích xuấtMở dialog trích xuất từ text (xem mục 11.5)
  • Nút Gộp trùngMở dialog dedup — gộp thực thể trùng lặp (xem mục 11.6)

Trạng thái rỗng:

  • Agent chưa có KG: "Không có thực thể — Chưa có thực thể đồ thị tri thức nào cho agent này."
  • Search không khớp: "Không có thực thể nào khớp với tìm kiếm của bạn."

11.3 Bảng thực thể — 5 cột

CộtHiển thị
TênTên thực thể (vd "Lan Nguyen", "TechCorp", "Laptop X1"). Click để xem chi tiết.
LoạiPerson / Company / Product / Location / Event...
Mô tảĐoạn ngắn mô tả
Độ tin cậyScore 0-1 — độ tin cậy LLM khi trích xuất
Thao tácEdit / Delete / View detail

Có thể có thêm cột Quan sátQuan hệ hiển thị số liệu liên quan.

11.4 Dialog xem chi tiết Thực thể

Click vào tên thực thể → mở dialog. Hiển thị:

  • ID ngoài:External ID nếu có (vd: customer ID từ CRM)
  • Độ tin cậy:Score 0-1
  • Mô tả:Mô tả chi tiết thực thể
  • Nguồn:Tài liệu/conversation gốc trích xuất
  • Thuộc tính:Properties dạng key-value (vd email, phone, role...)

Phần "Quan hệ" + nút "Duyệt"

Hiển thị các quan hệ liên quan thực thể. Có nút Duyệt + dropdown "{{depth}} bước" (1, 2, 3 bước) để khám phá đồ thị sâu hơn.

Đang chạy: "Đang duyệt...". Trống: "Không tìm thấy quan hệ."

2 Tab "Bảng" / "Đồ thị"

Bảng

List dạng bảng — dễ scan, dễ filter

Đồ thị

Visualization dạng node-edge — trực quan, kéo zoom

Bảng Quan hệ — 4 cột

CộtHiển thị
Chiều"→ đi ra" (entity này là source) hoặc "← đi vào" (entity này là target)
Quan hệTên relation (works_at, owns, located_in...)
ĐíchEntity ở đầu kia của relation
Độ tin cậyScore

Khi traverse: hiển thị "Kết quả duyệt ({{count}})". Có nút Hiện tất cả để mở rộng kết quả.

Đồ thị view (graphView)

  • Đang load: "Đang tải đồ thị..."
  • Trống: "Không có thực thể nào để hiển thị"
  • Stats: "{{N}} nút", "{{N}} cạnh"
  • Selected: "Đã chọn: {{name}}"
  • Khi quá nhiều entity: "Hiển thị {{limit}}/{{total}} thực thể" + Hint: "Đồ thị giới hạn {{limit}} thực thể để đảm bảo hiệu năng. Dùng chế độ bảng để xem tất cả {{total}} thực thể."

11.5 Dialog "Trích xuất thực thể từ văn bản"

Bấm Trích xuất. Title: "Trích xuất thực thể từ văn bản".

  • Provider trích xuấtChọn LLM provider
  • Mô hình trích xuấtModel có hỗ trợ JSON structured output
  • Văn bản để trích xuấtTextarea lớn. Placeholder: "Dán nội dung hội thoại, ghi chú hoặc bất kỳ văn bản nào để trích xuất thực thể và quan hệ..."
  • Agent IDPlaceholder: "Để trống cho toàn cục". Gán entity vào agent cụ thể hoặc để global.

Cuối: Hủy / Trích xuất. Đang chạy: "Đang trích xuất...". Toast: "Trích xuất hoàn tất". Lỗi: "Trích xuất thất bại".

Use caseSau cuộc gặp khách hàng, dán transcript vào → KG tự sinh entities (khách hàng, công ty họ, sản phẩm họ quan tâm) + quan hệ → agent dùng cho lần chat sau.

11.6 Dialog "Gộp trùng" — Dedup

Bấm Gộp trùng. Title: "Thực thể trùng lặp". Description: "Xem và gộp các thực thể có thể trùng lặp dựa trên độ tương đồng embedding."

Khu vực ứng viên

  • Hiển thị "{{count}} ứng viên"
  • Mỗi ứng viên: 2 entity giống nhau + score "tương đồng" (vd 0.92)
  • Trống: "Không tìm thấy ứng viên trùng lặp."

Action mỗi cặp

  • Nút GộpHợp nhất 2 entity thành 1 (giữ entity "tốt hơn", merge data). Toast: "Đã gộp thực thể thành công.". Lỗi: "Gộp thực thể thất bại."
  • Nút Bỏ quaĐánh dấu cặp này không phải trùng (vd 2 người tên giống nhau nhưng khác). Toast: "Đã bỏ qua ứng viên.". Lỗi: "Bỏ qua ứng viên thất bại."

Nút "Quét tất cả"

Force scan toàn bộ entity tìm cặp trùng. Đang chạy: "Đang quét...". Hoàn tất: "Quét hoàn tất.". Lỗi: "Quét thất bại."

11.7 Xóa thực thể

Confirm dialog:

  • Title: "Xóa thực thể"
  • Mô tả: "Xóa \"{{name}}\"? Tất cả quan hệ liên quan cũng sẽ bị xóa."
  • Nút: Xóa (đỏ)

Toast: "Đã xóa thực thể". Lỗi: "Không thể xóa thực thể".

11.8 Best practices khi quản trị Knowledge Graph

  1. 🤖 Bật auto-extract trong Built-in Tools KG settings: KG tự update khi agent ghi memory mới.
  2. 🎯 Min confidence 0.7-0.8: Quá thấp (0.5) → KG nhiễu. Quá cao (0.95) → bỏ sót entity.
  3. 🧪 Test trích xuất bằng dialog Trích xuất: Dán 1 đoạn text → xem entity/relation có chính xác không. Nếu sai → đổi model trích xuất.
  4. 🔄 Gộp trùng định kỳ: Mở dialog Dedup mỗi tuần — KG nhiều dễ trùng (vd "Lan", "Lan Nguyen", "Nguyen Lan" cùng người).
  5. 🔍 Dùng Đồ thị view để khám phá pattern bất ngờ. Bảng để search/filter.
  6. 🌐 Traverse 1-2 bước là đủ: 3+ bước thường rộng quá, kết quả nhiễu.
  7. 🗑️ Xóa entity sai: KG sai có thể gây agent trả lời sai. Kiểm tra confidence thấp + Source để verify.
  8. 📊 Theo dõi stats: Số entity tăng đều = dấu hiệu hệ thống học. Tăng đột biến = có thể auto-extract nhiễu.
  9. 🔗 External ID quan trọng: Khi trích xuất từ CRM, set external_id = customer ID → liên kết KG ↔ database thực.
  10. 🛡️ Cẩn thận PII: KG lưu thông tin cá nhân (tên, email, phone). Xóa entity khi user yêu cầu (GDPR/Quy định bảo vệ dữ liệu).

Sơ đồ dòng chảy tổng thể

Hình dung mối quan hệ giữa 11 menu qua một sơ đồ duy nhất.
┌──────────────┐ User ──▶ │ Channel │ (Telegram, Discord, Slack…) └──────┬───────┘ │ message ▼ ┌──────────────┐ │ Agent │ (Identity, Model, Personality, Tool Policy) └──────┬───────┘ │ ┌─────────┼──────────┬──────────────┐ ▼ ▼ ▼ ▼ ┌────────┐ ┌──────┐ ┌────────┐ ┌──────────┐ │ Skill │ │Tools │ │ MCP │ │ Cron │ │ (docs) │ │(exec)│ │(bridge)│ │(schedule)│ └────────┘ └──────┘ └────────┘ └──────────┘ │ ▼ ┌──────────────┐ │ Session │ ←── tất cả lịch sử lưu ở đây └──────┬───────┘ │ session.completed event ▼ ┌────────────────────────┐ │ Memory L0: Documents │ ←── Working memory (chunks + embedding) │ Memory L1: Episodic │ ←── Summary of sessions (auto) └──────┬─────────────────┘ │ Dreaming worker (nightly) ▼ ┌────────────────────────┐ │ Memory L2: Knowledge │ ←── Entities + Relations (consolidated) │ Graph │ └────────────────────────┘ │ ▼ ┌────────────────────────┐ │ Vault (team-wide) │ ←── Documents + [[wikilinks]] + FS sync └────────────────────────┘ Team ──▶ chứa nhiều Agent có role (lead/member/reviewer) Agent Link ──▶ cho phép Agent A delegate cho Agent B

Kết luận

Nền tảng GoClaw có 11 menu chính, chia thành 3 nhóm.

Thực thể AI & cộng tác

Agent, Agent Link & Team → cấu hình bộ não.

Giao tiếp & lịch sử

Session, Channel → tiếp xúc với thế giới.

Năng lực & tri thức

Skill, Built-in Tools, MCP, Cron, Memory, Vault, Knowledge Graph — cho agent biết nhiềulàm được nhiều.

3 KHÔNG

  • Không bật mọi tool/skill cho mọi agent
  • Không để channel open trên production
  • Không bỏ qua Budget Monthly

3 CÓ

  • Có Description rõ ràng cho mọi thực thể
  • Có monitoring (Diagnostics, Run history, Audit logs)
  • Có backup (export KG, snapshot DB định kỳ)
Bước tiếp theoĐọc từ đầu tới đây, bạn đã có bản đồ đầy đủ. Giờ thực hành: tạo agent đầu tiên, cấp 1 channel, thử 1 skill, quan sát Session và Memory tự build. Chúc bạn quản trị GoClaw hiệu quả!