@mrtrinhvn/ag-kit 1.2.0 → 1.3.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/package.json +1 -1
- package/template/.agent/.version +1 -0
- package/template/.agent/agents/orchestrator.md +0 -2
- package/template/.agent/knowledge/ag-kit-elite.md +22 -0
- package/template/.agent/knowledge/model-switching-vfs.md +16 -16
- package/template/.agent/scripts/port_utils.sh +2 -1
- package/template/.agent/scripts/receptionist_down.sh +13 -7
- package/template/.agent/scripts/receptionist_up.sh +97 -26
- package/template/.agent/scripts/repomap.py +126 -0
- package/template/.agent/skills/ag-kit-core/SKILL.md +68 -0
- package/template/.agent/skills/codeact-executor/SKILL.md +41 -0
- package/template/.agent/skills/intelligent-routing/SKILL.md +38 -0
- package/template/.agent/skills/knowledge-management/SKILL.md +1 -1
- package/template/.agent/skills/lazy-gravity/SKILL.md +14 -11
- package/template/.agent/skills/llm-routing-quirks/SKILL.md +17 -6
- package/template/.agent/skills/remoat-integration/SKILL.md +37 -13
- package/template/.agent/skills/semantic-search/SKILL.md +24 -0
- package/template/.agent/skills/telegram-agentic-gateway/SKILL.md +77 -38
- package/template/.agent/skills/telegram-agentic-gateway/templates/CdpService.ts.template +514 -0
- package/template/.agent/skills/telegram-agentic-gateway/templates/ResponseMonitor.ts.template +102 -0
- package/template/.agent/skills/telegram-agentic-gateway/templates/start.sh.template +12 -0
- package/template/GEMINI.md +27 -18
- package/template/scripts/ag_deck/index.html +58 -0
- package/template/scripts/ag_heartbeat.js +46 -0
- package/template/scripts/ag_hud.js +87 -155
- package/template/scripts/ag_phantom.sh +50 -0
- package/template/scripts/ag_portal_bridge.js +139 -114
- package/template/.agent/.shared/ui-ux-pro-max/data/charts.csv +0 -26
- package/template/.agent/.shared/ui-ux-pro-max/data/colors.csv +0 -97
- package/template/.agent/.shared/ui-ux-pro-max/data/icons.csv +0 -101
- package/template/.agent/.shared/ui-ux-pro-max/data/landing.csv +0 -31
- package/template/.agent/.shared/ui-ux-pro-max/data/products.csv +0 -97
- package/template/.agent/.shared/ui-ux-pro-max/data/prompts.csv +0 -24
- package/template/.agent/.shared/ui-ux-pro-max/data/react-performance.csv +0 -45
- package/template/.agent/.shared/ui-ux-pro-max/data/stacks/flutter.csv +0 -53
- package/template/.agent/.shared/ui-ux-pro-max/data/stacks/html-tailwind.csv +0 -56
- package/template/.agent/.shared/ui-ux-pro-max/data/stacks/jetpack-compose.csv +0 -53
- package/template/.agent/.shared/ui-ux-pro-max/data/stacks/nextjs.csv +0 -53
- package/template/.agent/.shared/ui-ux-pro-max/data/stacks/nuxt-ui.csv +0 -51
- package/template/.agent/.shared/ui-ux-pro-max/data/stacks/nuxtjs.csv +0 -59
- package/template/.agent/.shared/ui-ux-pro-max/data/stacks/react-native.csv +0 -52
- package/template/.agent/.shared/ui-ux-pro-max/data/stacks/react.csv +0 -54
- package/template/.agent/.shared/ui-ux-pro-max/data/stacks/shadcn.csv +0 -61
- package/template/.agent/.shared/ui-ux-pro-max/data/stacks/svelte.csv +0 -54
- package/template/.agent/.shared/ui-ux-pro-max/data/stacks/swiftui.csv +0 -51
- package/template/.agent/.shared/ui-ux-pro-max/data/stacks/vue.csv +0 -50
- package/template/.agent/.shared/ui-ux-pro-max/data/styles.csv +0 -59
- package/template/.agent/.shared/ui-ux-pro-max/data/typography.csv +0 -58
- package/template/.agent/.shared/ui-ux-pro-max/data/ui-reasoning.csv +0 -101
- package/template/.agent/.shared/ui-ux-pro-max/data/ux-guidelines.csv +0 -100
- package/template/.agent/.shared/ui-ux-pro-max/data/web-interface.csv +0 -31
- package/template/.agent/.shared/ui-ux-pro-max/scripts/__pycache__/core.cpython-313.pyc +0 -0
- package/template/.agent/.shared/ui-ux-pro-max/scripts/__pycache__/design_system.cpython-313.pyc +0 -0
- package/template/.agent/.shared/ui-ux-pro-max/scripts/core.py +0 -258
- package/template/.agent/.shared/ui-ux-pro-max/scripts/design_system.py +0 -1067
- package/template/.agent/.shared/ui-ux-pro-max/scripts/search.py +0 -106
- package/template/.agent/ARCHITECTURE.md +0 -288
- package/template/.agent/knowledge/orchestrator_v3_protocol.md +0 -60
- package/template/.agent/knowledge/self_healing_logs.md +0 -22
- package/template/.agent/knowledge/tele-agentic-standard.md +0 -30
- package/template/.agent/mcp_config.json +0 -24
|
@@ -1,20 +1,23 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: lazy-gravity
|
|
3
|
-
description:
|
|
3
|
+
description: Cross-platform remote operation patterns for Antigravity, based on the LazyGravity project.
|
|
4
4
|
---
|
|
5
5
|
|
|
6
6
|
# Vận Hành Đa Nền Tảng (LazyGravity Patterns)
|
|
7
7
|
|
|
8
|
-
|
|
8
|
+
LazyGravity tập trung vào việc quản lý nhiều dự án và phiên làm việc từ xa một cách an toàn và linh hoạt.
|
|
9
9
|
|
|
10
|
-
##
|
|
11
|
-
- **Workspace Scanning**: Tự động duyệt qua `WORKSPACE_DIR` để liệt kê các thư mục dự án con.
|
|
12
|
-
- **Remote Switching**: Lệnh `/project` cho phép User chọn dự án mới. Bot sẽ cập nhật cấu hình và cảnh báo User khởi động lại flow tương ứng.
|
|
10
|
+
## Các Đặc Điểm Chính
|
|
13
11
|
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
12
|
+
1. **Project Discovery**: Tự động quét các thư mục trong Workspace để cho phép người dùng chuyển đổi dự án từ xa qua lệnh `/project`.
|
|
13
|
+
2. **Session Management**: Quản lý lịch sử hội thoại (Past Conversations), cho phép chọn lại phiên cũ để tiếp tục làm việc.
|
|
14
|
+
3. **Auto-Accept Flow**: Tích hợp cơ chế tự động nhấn "Accept" cho các file edit nếu người dùng bật chế độ `/autoaccept`.
|
|
17
15
|
|
|
18
|
-
##
|
|
19
|
-
|
|
20
|
-
- Sử dụng
|
|
16
|
+
## Quản Lý Dự Án (Remote Switching)
|
|
17
|
+
|
|
18
|
+
- Sử dụng `WorkspaceService` để liệt kê các thư mục con.
|
|
19
|
+
- Khi người dùng chọn dự án, bot sẽ cung cấp thông tin hoặc tự động restart target sang dự án mới (nếu được cấp quyền).
|
|
20
|
+
|
|
21
|
+
## Phân Loại Mô Hình (Model Categorization)
|
|
22
|
+
- Phân tách rõ ràng giữa **Cloud Models** (Google Gemini, Claude) và **Local Models** (Ollama).
|
|
23
|
+
- Ưu tiên Local Models cho các yêu cầu giải thích hoặc refactor nhỏ để tiết kiệm quota Cloud.
|
|
@@ -11,19 +11,28 @@ Nếu bạn đang viết Agent hoặc Script gọi LLM, **BẮT BUỘC ĐỌC**
|
|
|
11
11
|
|
|
12
12
|
---
|
|
13
13
|
|
|
14
|
-
## 1. 9Router & Gemini (Cloud Models -
|
|
14
|
+
## 1. 9Router & Gemini (Cloud Models - LEGACY / OPT-IN)
|
|
15
15
|
|
|
16
|
-
|
|
16
|
+
**⚠️ CẢNH BÁO QUAN TRỌNG:** Phương pháp dùng 9Router hiện tại được đánh dấu là **OPT-IN ONLY (Chỉ dùng khi được yêu cầu khẩn cấp)**.
|
|
17
|
+
- **Lý do:** Tuy tận dụng được luồng model xịn miễn phí, nhưng 9Router có rủi ro cực cao làm chết tài khoản (Die Account) hoặc bị chặn IP hàng loạt.
|
|
18
|
+
- **Định hướng mới:** Mặc định KHÔNG sử dụng `9router` và KHÔNG gọi `ag/gemini-pro-1.5` nữa. Kiến trúc mặc định hiện tại là sử dụng **Native Agent của Antigravity** kết hợp sức mạnh phân tích của **Ollama (Local Models)**.
|
|
19
|
+
|
|
20
|
+
**Mô hình áp dụng (Khi có lệnh cưỡng chế):** `ag/gemini-3-flash`, `ag/gemini-pro-1.5`, v.v.
|
|
17
21
|
|
|
18
22
|
### Các Quy tắc Vàng:
|
|
19
23
|
1. **JSON Format:** ĐƯỢC PHÉP (và nên) sử dụng `response_format: { type: 'json_object' }` để ép model trả về cục JSON chuẩn chỉ. Gemini xử lý JSON format tự nhiên rất tốt.
|
|
20
|
-
2. **Stream Override (Lỗi SSE):** Mặc dù truyền `stream: false`, 9Router đôi khi BỊ LỖI và vẫn trả về luồng Server-Sent Events (SSE) (các dòng `data: {...}\n\ndata: [DONE]`).
|
|
21
|
-
👉 **Cách Fix:** Code call API (`axios.post`)
|
|
24
|
+
2. **Stream Override (Lỗi SSE Chập Chờn):** Mặc dù truyền `stream: false`, 9Router hoặc API Cloud vì qua trung gian (Proxy) đôi khi BỊ LỖI và vẫn trả về luồng Server-Sent Events (SSE) thành từng chunk (các dòng `data: {...}\n\ndata: [DONE]`).
|
|
25
|
+
👉 **Cách Fix:** Code call API (`axios.post`) CHỚ BAO GIỜ chủ quan. Phải luôn viết một hàm try-catch để parse cả 2 trường hợp:
|
|
26
|
+
- Cố gắng `JSON.parse(res.data)` bình thường VÀ
|
|
27
|
+
- Dùng Regex tìm và nối các chuỗi `data: { chunk }` lại nếu JSON bình thường thất bại. (Xem kỹ thuật trong `OrchestratorBrain.callAI`).
|
|
22
28
|
3. **Timeout Threshold:** Bắt buộc đặt `timeout` cao (ví dụ: `120000ms` - 2 phút). Đừng set quá thấp (30s), vì proxy API Cloud thường xuyên bị trễ nhịp do routing.
|
|
23
29
|
|
|
24
30
|
---
|
|
25
31
|
|
|
26
|
-
## 2. Ollama &
|
|
32
|
+
## 2. Ollama & Antigravity Native Agent (PRIMARY DEFAULT - Chạy Offline & Xử Lý Nội Bộ)
|
|
33
|
+
|
|
34
|
+
**ĐỊNH HƯỚNG MẶC ĐỊNH:**
|
|
35
|
+
Đây là luồng xương sống của dự án. Thay vì out-source toàn bộ ra 9Router, ta giao phó logic điều khiển cho Antigravity Native Agent, và dùng Ollama (Local) làm reasoning engine cho các tác vụ tư duy logic/nhận diện.
|
|
27
36
|
|
|
28
37
|
**Mô hình áp dụng:** `hf.co/bartowski/nvidia_Orchestrator-8B-GGUF:Q4_K_M`, `DeepSeek-R1`, các model có thẻ `<think>`.
|
|
29
38
|
|
|
@@ -32,7 +41,9 @@ Nếu bạn đang viết Agent hoặc Script gọi LLM, **BẮT BUỘC ĐỌC**
|
|
|
32
41
|
- **Vì sao?** Các reasoning models cần viết tư duy vào thẻ `<think>...</think>` trước khi ra kết quả. Việc ép JSON sẽ làm hệ thống của Ollama cắt gọt thẻ suy nghĩ của nó, khiến model bị "ngăn não", sinh ra ảo giác (hallucination), trả về rác (token rác) hoặc phá hỏng format JSON cuối cùng.
|
|
33
42
|
2. **Xử lý Thẻ `<think>` Thủ Công:** Khi model trả về chuỗi text, ta phải chủ động dùng Regex để bóc mảng `<think>...</think>` ra rồi mới quăng phần còn lại vào `JSON.parse()`.
|
|
34
43
|
- Code mài giũa: `str.replace(/<think>[\s\S]*?<\/think>/g, '').trim()`
|
|
35
|
-
3. **Mở Hộp Sọ (Context Window - `num_ctx`):** Mặc định Ollama cấp `num_ctx` rất bé (2048 token) để tiết kiệm VRAM.
|
|
44
|
+
3. **Mở Hộp Sọ (Context Window - `num_ctx`):** Mặc định Ollama cấp `num_ctx` rất bé (2048 token) để tiết kiệm VRAM.
|
|
45
|
+
- Với các Task Orchestration quăng cả lịch sử chat và code, hoặc khi Bot gửi nguyên cục Accessibility Tree (AXTree) vào prompt, **BẮT BUỘC** phải truyền `"options": { "num_ctx": 8192 }` (hoặc cao hơn) vào `axios.post`.
|
|
46
|
+
- Nếu không truyền, Ollama sẽ ngắt đuôi JSON, hoặc Model trả lời lơ ngơ không đúng ngữ cảnh làm sập luồng điều khiển.
|
|
36
47
|
4. **Tên Model Mặc Định:** Chú ý khi tải model HuggingFace từ Ollama (ví dụ `ollama run hf.co/bartowski/...`), Ollama sẽ giữ NGHIÊM NGẶT toàn bộ đường dẫn làm `ID Model`. Luôn truyền full tên vào trường `model` (ví dụ `model: "hf.co/bartowski/nvidia_Orchestrator-8B-GGUF:Q4_K_M"`).
|
|
37
48
|
|
|
38
49
|
---
|
|
@@ -1,21 +1,45 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: remoat-integration
|
|
3
|
-
description:
|
|
3
|
+
description: Patterns for controlling AI code editors from Telegram, based on the Remoat project.
|
|
4
4
|
---
|
|
5
5
|
|
|
6
|
-
# Kỹ Thuật Điều Khiển Editor Từ Xa (Remoat
|
|
6
|
+
# Kỹ Thuật Điều Khiển Editor Từ Xa (Remoat Integration)
|
|
7
7
|
|
|
8
|
-
|
|
8
|
+
Kỹ thuật này cho phép điều khiển Antigravity hoặc bất kỳ Editor nào hỗ trợ CDP (Chrome DevTools Protocol) thông qua Telegram.
|
|
9
9
|
|
|
10
|
-
##
|
|
11
|
-
- **Cổng Debug**: Khởi động Editor với tham số `--remote-debugging-port=9555`.
|
|
12
|
-
- **WebSocket Discovery**: Quét danh sách `/json/list` trên localhost để tìm URL WebSocket của `workbench.html`.
|
|
10
|
+
## Nguyên Tắc Cốt Lõi (Remoat Strategy)
|
|
13
11
|
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
- **Visual Feedback**: Sử dụng `Page.captureScreenshot` để chụp lại giao diện IDE, giúp User quan sát code và lỗi trực quan qua Telegram.
|
|
18
|
-
- **Terminal Control**: Điều khiển terminal của Editor để chạy test hoặc deploy qua lệnh `/cmd`.
|
|
12
|
+
1. **Bridge qua CDP**: Không can thiệp vào mã nguồn của Editor. Sử dụng CDP để Inject Prompt và Monitor Response.
|
|
13
|
+
2. **Single Brain Architecture**: Bot Telegram chỉ đóng vai trò "lễ tân", nhận lệnh và chuyển tiếp cho Editor. Editor là "bộ não" thực hiện công việc.
|
|
14
|
+
3. **Wait for Generate**: Sử dụng DOM Observation hoặc AXTree để biết khi nào AI trong Editor đang suy nghĩ hoặc đã hoàn thành. Đặc biệt chú ý đến các thông báo như "Generating...", "Thinking..." hoặc icon Spinner.
|
|
19
15
|
|
|
20
|
-
##
|
|
21
|
-
|
|
16
|
+
## Chiến Lược Rút Trích Dữ Liệu (Response Extraction)
|
|
17
|
+
Nguyên tắc cực kỳ quan trọng để đảm bảo Bot không bắt nhầm UI Artifacts (rác từ giao diện) thay vì câu trả lời của AI.
|
|
18
|
+
|
|
19
|
+
1. **Kiến trúc Neural Echo (Ưu tiên Tuyệt đối):**
|
|
20
|
+
- **Tuyệt đối KHÔNG phụ thuộc vào cạo DOM (`.markdown-body`)** bằng JS Injection. Giao diện IDE liên tục thay đổi sinh ra rất nhiều thẻ ẩn gãy rập (Collapsed Thought Blocks, Spinner, v.v.).
|
|
21
|
+
- Khuyến khích Agent (trong IDE) chủ động viết file cấu trúc kết quả suy nghĩ (VD: `.last_response.json`). Telegram Bot chỉ cần đọc nội dung tĩnh của file này để lấy kết quả 100% tinh khiết.
|
|
22
|
+
2. **Native AXTree Extraction (Phương án Fallback):**
|
|
23
|
+
- Nếu không có file tĩnh, hãy dùng Accessibility Tree (AXTree) qua CDP (lệnh `Accessibility.getFullAXTree`) để trích xuất `StaticText`.
|
|
24
|
+
- Các text lấy từ AXTree có độ sạch cao hơn DOM vì nó bỏ qua các div ẩn hoặc div style.
|
|
25
|
+
- **Bộ lọc Rác (UI Artifacts Filter):** Cần quy định chuỗi Regex cắt bỏ các chuỗi UI thường gặp như: `"content_copy"`, `"Explored X pages"`, `"Running command"`, `"⚡ Planning"`.
|
|
26
|
+
|
|
27
|
+
## Các Tập Lệnh Đặc Trưng
|
|
28
|
+
|
|
29
|
+
- `/screenshot`: Chụp ảnh màn hình Editor để kiểm tra kết quả trực quan.
|
|
30
|
+
- `/stop`: Dừng khẩn cấp quá trình sinh code của AI.
|
|
31
|
+
- `/mode`: Chuyển đổi giữa chế độ `fast` (flash models) và `plan` (pro models).
|
|
32
|
+
|
|
33
|
+
## Cấu Hình Hạ Tầng (Quy Tắc 2 Dải Cổng Động - IDE & BRIDGE Strategy)
|
|
34
|
+
Để vận hành trơn tru nhiều Agentic Projects song song mà không bị dẫm chân lên nhau, BẮT BUỘC phải quy hoạch 2 dải mạng riêng biệt (Mỗi dải gồm khoảng 100 cổng):
|
|
35
|
+
|
|
36
|
+
1. **Dải Cổng 1: Điều Khiển IDE (IDE_PORT - Ví dụ: `9555-9655`)**:
|
|
37
|
+
- Yêu cầu Editor mở cổng debug sử dụng cờ `--remote-debugging-port=<port_động>`.
|
|
38
|
+
- Dùng để Kẻ điều phối (Gateway/Orchestrator) cắm ống truyền tín hiệu điều khiển Agent nhúng trong IDE (Bắn lệnh, Rút trích độ tỉnh táo).
|
|
39
|
+
- *Quy tắc cấp phát:* Mặc định bắt đầu dò từ `9555` đến `9655`.
|
|
40
|
+
|
|
41
|
+
2. **Dải Cổng 2: Trạm Trung Chuyển (BRIDGE_PORT - Ví dụ: `9656-9756`)**:
|
|
42
|
+
- Dùng để chạy Portal Bridge Server (`ag_portal_bridge.js`). Nơi đây có nhiệm vụ tạo cầu nối đồng bộ AI Responses và Broadcast các cảnh báo (Alert) lên thẳng giao diện IDE, hoặc lưu trạng thái xuống `.last_response.json`.
|
|
43
|
+
- *Quy tắc cấp phát:* Bắt buộc phải có độ lệch `BRIDGE_OFFSET = 101`. Nghĩa là nếu `IDE_PORT=9555` thì cổng Bridge đi kèm bắt buộc phải dò gán thành `9656`.
|
|
44
|
+
|
|
45
|
+
*Lưu ý:* Cả hai cổng này đều phải được script nội bộ (`port_utils.sh`) tự động dò tìm độ trống $\rightarrow$ gán cho Antigravity IDE & Bridge $\rightarrow$ ghi xuất ra file `.env` (`IDE_PORT=95xx` và `BRIDGE_PORT=96xx`) để đảm bảo các tiến trình thống nhất kết nối.
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
# Semantic Search Skill
|
|
2
|
+
|
|
3
|
+
> This skill extracts the "meaning" of code using AI embeddings, allowing for conceptual search (e.g., "how is auth handled?") instead of just keyword matching.
|
|
4
|
+
|
|
5
|
+
## Principles
|
|
6
|
+
|
|
7
|
+
1. **Local First**: Embeddings should be generated locally (using `transformers.js` or `ollama`) to ensure privacy and offline speed.
|
|
8
|
+
2. **Contextual Awareness**: Use `repomap.py` to identify important files to index first.
|
|
9
|
+
3. **Hybrid Search**: Combine semantic search with keyword search for maximum precision.
|
|
10
|
+
|
|
11
|
+
## Tools
|
|
12
|
+
|
|
13
|
+
### semantic_search(query)
|
|
14
|
+
- **Input**: Natural language query.
|
|
15
|
+
- **Output**: Top 5 relevant code snippets across the repository.
|
|
16
|
+
|
|
17
|
+
### semantic_index_update()
|
|
18
|
+
- **Action**: Triggers a re-scan of the codebase and updates the local embedding vector store.
|
|
19
|
+
|
|
20
|
+
## Best Practices
|
|
21
|
+
|
|
22
|
+
- Always run `semantic_index_update` after significant architectural changes.
|
|
23
|
+
- Use semantic search when you don't know the exact names of functions or classes.
|
|
24
|
+
- Combine with `vfs` to narrow down the search space.
|
|
@@ -1,67 +1,106 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: telegram-agentic-gateway
|
|
3
|
-
description: Tiêu chuẩn Giao tiếp Telegram (Telegram Gateway) cho các Agentic Projects.
|
|
3
|
+
description: Tiêu chuẩn Giao tiếp Telegram (Telegram Gateway) cho các Agentic Projects. Cung cấp bộ lệnh chuẩn mực (Core Commands) để Quản lý Agent, Quản lý Ký ức và Cấp phép Tự Chữa Lành (Self-Healing).
|
|
4
4
|
---
|
|
5
5
|
|
|
6
6
|
# KỸ NĂNG: XÂY DỰNG TRẠM ĐIỀU HÀNH TELEGRAM (Telegram Agentic Gateway)
|
|
7
7
|
|
|
8
|
-
Khi
|
|
8
|
+
Khi User yêu cầu "Tạo kênh giao tiếp Telegram" hoặc "Làm cho dự án này điều khiển được qua Telegram giống Quản Đốc", bạn (AI) phải thiết kế một `TelegramGateway` tuân thủ nghiêm ngặt **Tiêu chuẩn Giao tiếp lõi** dưới đây.
|
|
9
|
+
|
|
10
|
+
Một Telegram Gateway chuẩn mực không chỉ là bot chat lăng nhăng, mà phải là một **Trạm Chỉ Huy (Command Center)** với các lệnh System-level.
|
|
9
11
|
|
|
10
12
|
---
|
|
11
13
|
|
|
12
|
-
## PHẦN A: BỘ LỆNH QUẢN TRỊ
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
14
|
+
## PHẦN A: BỘ LỆNH QUẢN TRỊ CƠ BẢN (Core Management Commands)
|
|
15
|
+
Bất kỳ dự án Agentic nào cũng phải có 4 lệnh sinh tồn sau:
|
|
16
|
+
|
|
17
|
+
1. **`🚀 /start` (Ping Khởi Động)**
|
|
18
|
+
- **Tác dụng:** Kiểm tra kết nối xem Lõi AI của dự án có đang thức không. Trả về thông số môi trường hiện tại (Vd: "Bot đang chạy Port 20130, kết nối 9Router ổn định").
|
|
19
|
+
|
|
20
|
+
2. **`📊 /status` (Camera Giám Sát)**
|
|
21
|
+
- **Tác dụng:** Liệt kê toàn bộ các Agent (Đặc vụ/Sandbox) ĐANG CHẠY NGẦM trong hệ thống.
|
|
22
|
+
- **Giao diện:** Phải trả về Inline Keyboard (Nút bấm) ứng với từng Sandbox để User có thể chọc vào xem Log hoặc Tương tác trực tiếp với Agent đó.
|
|
23
|
+
|
|
24
|
+
3. **`🏭 /spawn <mô_tả>` (Sinh Trực Tiếp Đặc Vụ)**
|
|
25
|
+
- **Tác dụng:** Ép hệ thống tách 1 luồng độc lập, đẻ ra 1 Sandbox riêng biệt đi làm cái task `<mô_tả>` ở background, không làm kẹt luồng chat hiện tại của User.
|
|
26
|
+
|
|
27
|
+
4. **`💀 /kill <agent_id>` (Kill-Switch Lệnh Bài Tử thần)**
|
|
28
|
+
- **Tác dụng:** Lệnh Tối Cao. Nếu một Sandbox chạy tốn token, bị kẹt (loop), hoặc làm sai định hướng, User gõ lệnh này Hệ thống BẮT BUỘC phải force-kill Process/Thread của Agent đó ngay lập tức để giải phóng RAM.
|
|
19
29
|
|
|
20
30
|
---
|
|
21
31
|
|
|
22
|
-
## PHẦN B: TRÍ NHỚ PHÂN NHIỆM (
|
|
23
|
-
|
|
24
|
-
-
|
|
25
|
-
-
|
|
32
|
+
## PHẦN B: TRÍ NHỚ PHÂN NHIỆM (Topic-Based Memory Isolation)
|
|
33
|
+
Khác lập trình Bot thông thường chỉ lấy `chat.id`, một **Agentic Gateway** tiêu chuẩn BẮT BUỘC phải cô lập trí nhớ dựa trên Telegram Topics (Threads).
|
|
34
|
+
- Nếu User nhắn trong Group Telegram có tính năng Topics: Phải trích xuất `msg.message_thread_id` để làm định danh Ký ức (Vd: `topic-1234.json`).
|
|
35
|
+
- Nếu User nhắn Private: Dùng `chat.id` (Vd: `chat-5678.json`).
|
|
36
|
+
- Nhờ vậy, 1 Group Telegram có thể hoạt động hệt như 1 cái Trello/Kanban Board: Mỗi Topic là 1 Luồng Công Việc riêng biệt, Agent nhớ chính xác bối cảnh của từng file/lỗi đang thảo luận mà không bị chập cheng trí nhớ (Cross-Topic Hallucination).
|
|
26
37
|
|
|
27
38
|
---
|
|
28
39
|
|
|
29
|
-
## PHẦN C:
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
- **
|
|
40
|
+
## PHẦN C: BỘ LỆNH QUẢN LÝ KÝ ỨC (Cognitive Management)
|
|
41
|
+
Mỗi Topic/Chat trên Telegram sẽ sinh ra 1 File Ký ức lưu Context. Bắt buộc phải có lệnh dọn dẹp cống rãnh:
|
|
42
|
+
|
|
43
|
+
5. **`🧹 /forget` (Hỏa Thiêu Hồ Sơ)**
|
|
44
|
+
- **Tác dụng:** Xóa vĩnh viễn File JSON lịch sử chat (Ký ức ngắn hạn) của Topic/Thread hiện tại.
|
|
45
|
+
- **CẢNH BÁO TỐI THƯỢNG:** Chỉ được phép xóa file JSON Session. TUYỆT ĐỐI KHÔNG ĐƯỢC thiết kế lệnh `/forget` gọi các hàm xóa Vector Database (Ký ức dài hạn dùng chung của dự án) vì sẽ làm toàn bộ Hệ thống Đại Tướng bị mất trí nhớ!
|
|
46
|
+
- **Bảo mật:** Vì lệnh này mang tính phá hủy dữ liệu, **BẮT BUỘC** phải chặn lại bằng Máy Trạng Thái Cấp Phép (Auth-First) yêu cầu nhập `Password` mới được thi hành.
|
|
34
47
|
|
|
35
48
|
---
|
|
36
49
|
|
|
37
|
-
## PHẦN D:
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
50
|
+
## PHẦN D: BỘ LỆNH TIẾN HÓA VÀ CHỮA LÀNH (Self-Healing Mappers)
|
|
51
|
+
Để Dự án có thể tự vá lỗi source code của nó (cần kết hợp với skill `mini-antigravity-injection`), Telegram Gateway phải chứa 2 lệnh Cấp Phép Mổ:
|
|
52
|
+
|
|
53
|
+
6. **`🏥 /heal <triệu_chứng>` (Tiền Trảm Hậu Tấu)**
|
|
54
|
+
- **Tác dụng:** Bypass bước duyệt phác đồ.
|
|
55
|
+
- **Luồng hoạt động:** Nhận lệnh -> Trạng thái chờ Pass -> Nhập Pass đúng -> Cấp quyền (`hasMutationLicense = true`) -> Agent tự tìm Lỗi -> Tự Mổ code -> Tự Test Sandbox -> Tự Hot-reload -> Báo kết quả cuối cùng.
|
|
56
|
+
|
|
57
|
+
7. **`📋 /healplan <triệu_chứng>` (Khám Bệnh Kê Đơn - Tương Tác)**
|
|
58
|
+
- **Tác dụng:** Lập phác đồ, cấm chạm vào code thật.
|
|
59
|
+
- **Luồng hoạt động:** Nhận lệnh -> Trạng thái chờ Pass -> Nhập Pass đúng -> Agent đi khám bệnh -> Nhả ra Phác Đồ + 2 Nút Bấm `[✅ Proceed]` và `[❌ Cancel]`.
|
|
60
|
+
- User có thể chat qua lại để sửa bản Phác đồ ròng rã cả ngày. Lúc nào ưng ý bấm `Proceed`, Hệ thống bốc Context lôi Agent ra chém đè Code!
|
|
41
61
|
|
|
42
62
|
---
|
|
43
63
|
|
|
44
|
-
## PHẦN E:
|
|
45
|
-
|
|
46
|
-
1. **
|
|
47
|
-
2. **
|
|
48
|
-
3. **
|
|
64
|
+
## PHẦN E: GIAO DIỆN PREMIUM (awesome-grammY Aesthetics)
|
|
65
|
+
Một Gateway chuyên nghiệp phải có UI/UX tinh tế:
|
|
66
|
+
1. **Header & Divider**: Sử dụng các thẻ `<b>` và ký tự ngăn cách (e.g. `━━━━━`) để tạo khối thông tin rõ ràng.
|
|
67
|
+
2. **Status Mapping**: Sử dụng emoji trực quan cho trạng thái (✅ Online, 🚨 Offline, 🛡️ Protected).
|
|
68
|
+
3. **Categorized Menus**: Nhóm các nút bấm theo chức năng (Hệ thống, AI, Dự án).
|
|
69
|
+
4. **Short Callback Data**: Vì Telegram giới hạn callback data là 64 bytes, hãy sử dụng `shortIdMap` để lưu trữ Title dài và map chúng với một mã ngắn (e.g. `sess_a1b2`).
|
|
49
70
|
|
|
50
71
|
---
|
|
51
72
|
|
|
52
|
-
## PHẦN F:
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
73
|
+
## PHẦN F: KIẾN TẠO HẠ TẦNG & HƯỚNG DẪN (User Setup)
|
|
74
|
+
Khi triển khai, hãy hướng dẫn User:
|
|
75
|
+
1. **Tạo Nhóm (Group with Topics)**:
|
|
76
|
+
- Tạo Group Telegram. Thêm Bot làm Admin.
|
|
77
|
+
- Bật **"Topics"** trong cài đặt nhóm.
|
|
78
|
+
- Mỗi dự án hoặc tính năng lớn nên là 1 Topic riêng để cô lập ký ức.
|
|
79
|
+
2. **Cấu Hình Hạ Tầng Tự Động Phục Hồi (Auto-Restart & Process Handling)**:
|
|
80
|
+
- Khi triển khai Gateway kết nối với Antigravity IDE thông qua CDP, **BẮT BUỘC** script khởi động (`start.sh` hoặc tương đương) phải có khả năng kiểm tra xem tiến trình IDE bị treo (Freeze) hay không.
|
|
81
|
+
- Nếu `9555/9556` không phản hồi, Server phải Tự động `kill` Process cũ và nhấc Process mới lên trước khi Bot kết nối vào.
|
|
82
|
+
3. **Quản Lý Thời Gian Chờ (Timeout Handle)**:
|
|
83
|
+
- Khi Bot đợi Agent sinh code qua CDP (Có thể mất từ 30-120 giây), Bot **KHÔNG ĐƯỢC PHÉP** im lặng.
|
|
84
|
+
- Cần cấu hình Bot định kỳ (VD: mỗi 5-10 giây) cập nhật tin nhắn "Đang xử lý..." để User Telegram biết hệ thống vẫn đang sống. Tránh tình trạng User gửi lệnh liên tục làm Queue bị tràn.
|
|
85
|
+
4. **Quy Tắc Cấp Phát Cổng Động (Dynamic Port Allocation)**:
|
|
86
|
+
- **Tuyệt đối KHÔNG hardcode cổng cố định (như 9555).** Hạ tầng phải hỗ trợ Scale (sinh nhiều Agent song song).
|
|
87
|
+
- Hãy cấp một dải khoảng 100 cổng (Ví dụ: `9555-9655`).
|
|
88
|
+
- Script khởi động (`start.sh`) phải có logic tự dò cổng nào đang trống trong dải 100 cổng này $\rightarrow$ Gán cho tiến trình Antigravity IDE $\rightarrow$ Cập nhật `.env` (`IDE_PORT=95xx`) $\rightarrow$ Kẻ điều phối (Node.js) đọc file `.env` để kết nối vào đúng IDE đó.
|
|
56
89
|
|
|
57
90
|
---
|
|
58
91
|
|
|
59
|
-
## PHẦN G: NGUỒN
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
92
|
+
## PHẦN G: NGUỒN CODE MẪU (Templates) VÀ TRIỂN KHAI NHANH
|
|
93
|
+
Thay vì phải tự viết lại các logic mổ xẻ rườm rà (CDP, AXTree parsing, Regex filter), hệ thống đã cất sẵn bộ khung hoàn hảo nhất ở định dạng `.template`.
|
|
94
|
+
**Vị trí:** `.agent/skills/telegram-agentic-gateway/templates/`
|
|
95
|
+
|
|
96
|
+
Khi có yêu cầu triển khai kênh Telegram và CDP cho một dự án mới, hãy ĐỌC và COPY các file sau (đổi đuôi thành `.ts` hoặc `.sh`):
|
|
97
|
+
1. `CdpService.ts.template`: File thiết kế sẵn Class CDP Service chuẩn. Đã gồm code filter UI tags và Regex (`extractLastResponse`, `isGenerating`).
|
|
98
|
+
2. `ResponseMonitor.ts.template`: File luồng lắng nghe vòng lặp (Polling) để xoa dịu User và báo cáo trạng thái định kỳ.
|
|
99
|
+
3. `start.sh.template`: Script mẫu về quản lý PID bash tự động kill tiến trình IDE bị treo (chăm sóc cổng 9555/9556 chết).
|
|
100
|
+
|
|
101
|
+
*Lưu ý cho AI:* Chỉ cần copy 3 lõi này nhét vào dự án, bạn sẽ tiết kiệm được ít nhất 30 phút tự mò mẫm code cạo DOM.
|
|
65
102
|
|
|
66
103
|
---
|
|
67
|
-
|
|
104
|
+
|
|
105
|
+
## TỔNG KẾT TRIỂN KHAI
|
|
106
|
+
*(Ghi chú cho AI)*: Luôn tích hợp VFS (`GEMINI.md`) để tiết kiệm token khi thực hiện code discovery từ xa thông qua Bot.
|