1. Giới thiệu
Google Antigravity là một nền tảng phát triển tác nhân, được thiết kế để giúp bạn phát triển trong kỷ nguyên của các tác nhân. Antigravity đóng vai trò là trung tâm điều khiển chính của các tác nhân AI, cung cấp một nền tảng hợp nhất để khởi chạy, giám sát và điều phối các hoạt động của các tác nhân này.
Trong lớp học lập trình này, trước tiên, chúng ta sẽ tìm hiểu về Kỹ năng của tác nhân, một định dạng mở, đơn giản để mở rộng khả năng của tác nhân AI bằng kiến thức và quy trình công việc chuyên biệt. Bạn sẽ có thể tìm hiểu về Kỹ năng của tác nhân, lợi ích và cách xây dựng các kỹ năng này. Sau đó, bạn sẽ tạo nhiều Kỹ năng của tác nhân, từ trình định dạng Git, trình tạo mẫu, trình tạo khung mã công cụ và nhiều kỹ năng khác, tất cả đều có thể sử dụng trong Antigravity.
Điều kiện tiên quyết:
- Đã cài đặt và định cấu hình Antigravity.
- Có kiến thức cơ bản về Google Antigravity. Bạn nên hoàn thành lớp học lập trình: Bắt đầu sử dụng Google Antigravity.
2. Lý do nên dùng Skills
Các tác nhân AI hiện đại đã phát triển từ những trình nghe đơn giản thành những trình suy luận phức tạp, tích hợp với hệ thống tệp cục bộ và các công cụ bên ngoài (thông qua máy chủ MCP). Tuy nhiên, việc tải một tác nhân với toàn bộ cơ sở mã và hàng trăm công cụ một cách bừa bãi sẽ dẫn đến tình trạng Bão hoà ngữ cảnh và "Công cụ phình to". Ngay cả khi có cửa sổ ngữ cảnh lớn, việc đổ 40–50 nghìn token của các công cụ không dùng đến vào bộ nhớ đang hoạt động sẽ gây ra độ trễ cao, lãng phí tài chính và "suy giảm ngữ cảnh", trong đó mô hình bị nhầm lẫn bởi dữ liệu không liên quan.
Giải pháp: Kỹ năng của nhân viên hỗ trợ
Để giải quyết vấn đề này, Anthropic đã giới thiệu Kỹ năng của tác nhân, chuyển đổi cấu trúc từ tải ngữ cảnh nguyên khối sang Tiết lộ từng bước. Thay vì buộc mô hình "ghi nhớ" mọi quy trình làm việc cụ thể (chẳng hạn như di chuyển cơ sở dữ liệu hoặc kiểm tra bảo mật) khi bắt đầu một phiên, những chức năng này được đóng gói thành các đơn vị mô-đun có thể khám phá.
Cách tính năng hoạt động
Ban đầu, mô hình này chỉ được cung cấp cho một "trình đơn" siêu dữ liệu đơn giản. Thao tác này chỉ tải kiến thức theo quy trình (hướng dẫn và tập lệnh) khi ý định của người dùng khớp với một kỹ năng cụ thể. Điều này đảm bảo rằng nhà phát triển yêu cầu tái cấu trúc phần mềm trung gian xác thực sẽ nhận được bối cảnh bảo mật mà không cần tải các quy trình CSS không liên quan, giúp bối cảnh tinh gọn, nhanh chóng và tiết kiệm chi phí.

3. Kỹ năng của tác nhân và Antigravity
Trong hệ sinh thái Antigravity, Kỹ năng đóng vai trò là các mô-đun huấn luyện chuyên biệt, giúp thu hẹp khoảng cách giữa các mô hình tổng quát và ngữ cảnh cụ thể của bạn. Các công cụ này cho phép tác nhân "trang bị" một bộ chỉ dẫn và giao thức xác định (chẳng hạn như các tiêu chuẩn di chuyển cơ sở dữ liệu hoặc kiểm tra bảo mật) chỉ khi có yêu cầu thực hiện một tác vụ liên quan. Bằng cách tải động các giao thức thực thi này, Skills sẽ biến AI từ một lập trình viên chung thành một chuyên gia tuân thủ nghiêm ngặt các phương pháp hay nhất và tiêu chuẩn an toàn đã được hệ thống hoá của một tổ chức.
Kỹ năng trong Antigravity là gì?
Trong bối cảnh của Google Antigravity, Kỹ năng là một gói dựa trên thư mục chứa tệp định nghĩa (SKILL.md) và các tài sản hỗ trợ không bắt buộc (tập lệnh, tài liệu tham khảo, mẫu).
Đây là một cơ chế để mở rộng khả năng theo yêu cầu.
- Theo yêu cầu: Không giống như Lệnh hệ thống (luôn được tải), Kỹ năng chỉ được tải vào ngữ cảnh của tác nhân khi tác nhân xác định rằng kỹ năng đó phù hợp với yêu cầu hiện tại của người dùng. Điều này giúp tối ưu hoá cửa sổ ngữ cảnh và ngăn tác nhân bị phân tâm bởi các chỉ dẫn không liên quan. Trong các dự án lớn có hàng chục công cụ, việc tải có chọn lọc này là yếu tố quan trọng đối với hiệu suất và độ chính xác của lý luận.
- Tiện ích mở rộng về khả năng: Các kỹ năng có thể làm được nhiều việc hơn là chỉ hướng dẫn; chúng có thể thực thi. Bằng cách kết hợp các tập lệnh Python hoặc Bash, một Kỹ năng có thể giúp tác nhân thực hiện các hành động phức tạp, nhiều bước trên máy cục bộ hoặc mạng bên ngoài mà người dùng không cần chạy lệnh theo cách thủ công. Điều này sẽ biến tác nhân từ một công cụ tạo văn bản thành một người dùng công cụ.
Kỹ năng so với Hệ sinh thái (Công cụ, Quy tắc và Quy trình công việc)
Trong khi Giao thức ngữ cảnh mô hình (MCP) hoạt động như "bàn tay" của tác nhân – cung cấp các kết nối bền vững, có độ tin cậy cao với các hệ thống bên ngoài như GitHub hoặc PostgreSQL – thì Kỹ năng đóng vai trò là "bộ não" chỉ đạo các kết nối đó.
MCP xử lý cơ sở hạ tầng có trạng thái, trong khi Skills là các định nghĩa về tác vụ tạm thời, đơn giản, đóng gói phương pháp sử dụng những công cụ đó. Phương pháp không cần máy chủ này cho phép các tác nhân thực thi các tác vụ đặc biệt (chẳng hạn như tạo nhật ký thay đổi hoặc di chuyển) mà không cần phải chạy các quy trình liên tục, chỉ tải bối cảnh khi tác vụ đang hoạt động và phát hành ngay sau đó.
Các kỹ năng được kích hoạt bởi tác nhân: mô hình tự động phát hiện ý định của người dùng và trang bị linh hoạt chuyên môn cụ thể cần thiết. Cấu trúc này cho phép khả năng kết hợp mạnh mẽ; ví dụ: một Quy tắc chung có thể thực thi việc sử dụng Kỹ năng "Di chuyển an toàn" trong quá trình thay đổi cơ sở dữ liệu hoặc một Quy trình duy nhất có thể điều phối nhiều Kỹ năng để xây dựng một quy trình triển khai mạnh mẽ.
4. Tạo kỹ năng
Việc tạo một Kỹ năng trong Antigravity tuân theo một cấu trúc thư mục và định dạng tệp cụ thể. Việc chuẩn hoá này đảm bảo rằng các kỹ năng có thể chuyển đổi và tác nhân có thể phân tích cú pháp cũng như thực thi các kỹ năng đó một cách đáng tin cậy. Thiết kế này cố ý đơn giản, dựa vào các định dạng được hiểu rộng rãi như Markdown và YAML, giúp giảm rào cản gia nhập cho những nhà phát triển muốn mở rộng các chức năng của IDE.
Cấu trúc thư mục
Một thư mục Kỹ năng điển hình có dạng như sau:
my-skill/
├── SKILL.md # The definition file
├── scripts/ # [Optional] Python, Bash, or Node scripts
├── run.py
└── util.sh
├── references/ # [Optional] Documentation or templates
└── api-docs.md
└── assets/ # [Optional] Static assets (images, logos)
Cấu trúc này tách biệt các mối lo ngại một cách hiệu quả. Logic (scripts) tách biệt với chỉ dẫn (SKILL.md) và kiến thức (references), phản ánh các phương pháp kỹ thuật phần mềm tiêu chuẩn.
Tệp định nghĩa SKILL.md
Tệp SKILL.md là bộ não của Kỹ năng. Tệp này cho tác nhân biết kỹ năng là gì, thời điểm sử dụng và cách thực hiện kỹ năng đó.
Nội dung này bao gồm 2 phần:
- YAML Frontmatter
- Nội dung Markdown.
YAML Frontmatter
Đây là lớp siêu dữ liệu. Đây là phần duy nhất của kỹ năng được bộ định tuyến cấp cao của nhân viên hỗ trợ lập chỉ mục. Khi người dùng gửi một câu lệnh, tác nhân sẽ so khớp câu lệnh đó theo ngữ nghĩa với các trường mô tả của tất cả kỹ năng hiện có.
---
name: database-inspector
description: Use this skill when the user asks to query the database, check table schemas, or inspect user data in the local PostgreSQL instance.
---
Trường khoá:
- name: Không bắt buộc. Phải là duy nhất trong phạm vi. Chữ thường, dấu gạch ngang được phép (ví dụ:
postgres-query,pr-reviewer). Nếu bạn không cung cấp, tên này sẽ mặc định là tên thư mục. - description: Đây là trường bắt buộc và quan trọng nhất. Đây là "cụm từ kích hoạt". Nội dung này phải có đủ thông tin mô tả để LLM nhận ra mức độ liên quan về ngữ nghĩa. Nội dung mô tả mơ hồ như "Công cụ cơ sở dữ liệu" là không đủ. Một nội dung mô tả chính xác như "Thực thi các truy vấn SQL chỉ đọc đối với cơ sở dữ liệu PostgreSQL cục bộ để truy xuất dữ liệu người dùng hoặc giao dịch. Sử dụng tính năng "Use this for debugging data states" (Sử dụng tính năng này để gỡ lỗi trạng thái dữ liệu) giúp đảm bảo kỹ năng được chọn đúng cách.
Nội dung Markdown
Phần nội dung chứa các hướng dẫn. Đây là "thiết kế câu lệnh" được lưu vào một tệp. Khi kỹ năng được kích hoạt, nội dung này sẽ được đưa vào cửa sổ ngữ cảnh của tác nhân.
Nội dung phải bao gồm:
- Mục tiêu: Nêu rõ những gì kỹ năng này đạt được.
- Hướng dẫn: Logic từng bước.
- Ví dụ: Một vài ví dụ về dữ liệu đầu vào và đầu ra để hướng dẫn hiệu suất của mô hình.
- Các quy tắc hạn chế: Quy tắc "Không" (ví dụ: "Không chạy truy vấn XÓA").
Ví dụ về nội dung tệp SKILL.md:
Database Inspector
Goal
To safely query the local database and provide insights on the current data state.
Instructions
- Analyze the user's natural language request to understand the data need.
- Formulate a valid SQL query.
- CRITICAL: Only SELECT statements are allowed.
- Use the script scripts/query_runner.py to execute the SQL.
- Command: python scripts/query_runner.py "SELECT * FROM..."
- Present the results in a Markdown table.
Constraints
- Never output raw user passwords or API keys.
- If the query returns > 50 rows, summarize the data instead of listing it all.
Tích hợp tập lệnh
Một trong những tính năng mạnh mẽ nhất của Skills là khả năng uỷ quyền thực thi cho các tập lệnh. Điều này cho phép tác nhân thực hiện những hành động mà LLM khó hoặc không thể thực hiện trực tiếp (chẳng hạn như thực thi tệp nhị phân, tính toán toán học phức tạp hoặc tương tác với các hệ thống cũ).
Các tập lệnh được đặt trong thư mục con scripts/. SKILL.md tham chiếu đến các tệp này theo đường dẫn tương đối.
5. Kỹ năng sáng tạo
Mục tiêu của phần này là xây dựng các Kỹ năng tích hợp vào Antigravity và dần dần giới thiệu nhiều tính năng như tài nguyên / tập lệnh / v.v.
Bạn có thể tải Các kỹ năng xuống từ kho lưu trữ Github tại đây: https://github.com/rominirani/antigravity-skills.
Trước khi tìm hiểu cách xây dựng từng kỹ năng này, hãy xem cách chúng ta định cấu hình và cung cấp các kỹ năng đó trong bộ sản phẩm Antigravity. Các thư mục bên dưới có thể áp dụng tại thời điểm xuất bản lớp học này.
Sử dụng Antigravity hoặc Antigravity CLI
Bạn có thể xác định kỹ năng ở hai phạm vi, cho phép cả kỹ năng dành riêng cho dự án và kỹ năng dành riêng cho người dùng, tức là kỹ năng toàn cầu.
- Phạm vi toàn cầu (
~/.gemini/config/skills/): Có sẵn trên tất cả các sản phẩm và dự án của Antigravity (Antigravity, Antigravity IDE, Antigravity CLI). Các kỹ năng này có sẵn trên tất cả các dự án trên máy của người dùng. Điều này phù hợp với các tiện ích chung như "Format JSON" (Định dạng JSON), "Generate UUIDs" (Tạo UUID), "Review Code Style" (Xem lại kiểu mã) hoặc tích hợp với các công cụ nâng cao hiệu suất cá nhân. - Phạm vi dự án/không gian làm việc (
<project-root>/.agents/skills/): Lựa chọn này sẽ chỉ cho phép sử dụng kỹ năng trong một dự án cụ thể. Điều này rất phù hợp với các tập lệnh dành riêng cho dự án, chẳng hạn như triển khai cho một môi trường cụ thể, quản lý cơ sở dữ liệu cho ứng dụng đó hoặc tạo mã nguyên mẫu cho một khung thuộc quyền sở hữu riêng.
Cài đặt Kỹ năng trong Antigravity hoặc Antigravity CLI
Trong hướng dẫn này, tất cả những gì chúng ta cần làm là thực hiện các bước sau (bạn cũng có thể làm theo cách của mình):
Bước 1: Thực hiện git clone của https://github.com/rominirani/antigravity-skills
Bước 2: Tuỳ thuộc vào việc bạn đang sử dụng Antigravity hay Antigravity CLI, bạn có thể chuyển đến thư mục antigravity-skills/skills_tutorial.
Bước 3: Bạn sẽ thấy một bộ kỹ năng được đóng gói vào các thư mục tương ứng. Sao chép 4 thư mục sau:
git-commit-formatterlicense-header-adderdatabase-schema-validatorjson-to-pydantic
vào thư mục kỹ năng mục tiêu cho sản phẩm (phạm vi dự án hoặc phạm vi toàn cầu).
Bước 4: Nếu bạn đang sử dụng Antigravity hoặc Antigravity CLI , hãy sao chép tệp này vào <project-root>/.agents/skills/ (phạm vi dự án).
Nếu đã khởi chạy Antigravity, bạn có thể đặt một câu hỏi đơn giản "What skills are available?" (Những kỹ năng nào có sẵn?) và Antigravity sẽ trả lời bằng câu hỏi tương tự. Bạn có thể thấy 4 kỹ năng được liệt kê tại đó. Bạn cũng có thể có thêm các kỹ năng nếu đã cài đặt chúng trong môi trường của mình.

Tương tự, nếu đang sử dụng Antigravity CLI, bạn có thể đưa ra lệnh /skills và lệnh này sẽ liệt kê 4 kỹ năng. Sau đây là một ví dụ:

Giờ đây, khi đã biết cách thiết lập các kỹ năng, hãy cùng tìm hiểu từng kỹ năng và cách chúng được xây dựng. Bạn cũng có thể sử dụng các mẫu này để tạo kỹ năng của riêng mình.
Cấp độ 1 : Bộ định tuyến cơ bản ( git-commit-formatter)
Hãy coi đây là "Hello World" của Skills.
Nhà phát triển thường viết tin nhắn cam kết một cách lười biếng, ví dụ: "wip", "fix bug", "updates". Việc thực thi "Conventional Commits" theo cách thủ công rất tẻ nhạt và thường bị quên. Hãy triển khai một Kỹ năng thực thi quy cách Conventional Commits. Bằng cách chỉ cần hướng dẫn cho tác nhân về các quy tắc, chúng ta cho phép tác nhân đóng vai trò là người thực thi.
git-commit-formatter/
└── SKILL.md (Instructions only)
Tệp SKILL.md được minh hoạ bên dưới:
---
name: git-commit-formatter
description: Formats git commit messages according to Conventional Commits specification. Use this when the user asks to commit changes or write a commit message.
---
Git Commit Formatter Skill
When writing a git commit message, you MUST follow the Conventional Commits specification.
Format
`<type>[optional scope]: <description>`
Allowed Types
- **feat**: A new feature
- **fix**: A bug fix
- **docs**: Documentation only changes
- **style**: Changes that do not affect the meaning of the code (white-space, formatting, etc)
- **refactor**: A code change that neither fixes a bug nor adds a feature
- **perf**: A code change that improves performance
- **test**: Adding missing tests or correcting existing tests
- **chore**: Changes to the build process or auxiliary tools and libraries such as documentation generation
Instructions
1. Analyze the changes to determine the primary `type`.
2. Identify the `scope` if applicable (e.g., specific component or file).
3. Write a concise `description` in an imperative mood (e.g., "add feature" not "added feature").
4. If there are breaking changes, add a footer starting with `BREAKING CHANGE:`.
Example
`feat(auth): implement login with google`
Cách chạy ví dụ này trong Antigravity
Các bước dưới đây giả định rằng bạn đã có Git trên máy cục bộ và thiết lập đúng cách.
Giả sử bạn đã chạy Antigravity hoặc Antigravity CLI, hãy làm theo các bước sau:
Bước 1: Thiết lập kho lưu trữ Git thử nghiệm
Yêu cầu tác nhân thiết lập một thư mục riêng biệt và không chứa dữ liệu để kiểm thử các thao tác Git.
Câu lệnh của bạn:
Create a folder named git_test in the workspace, initialize a git repository inside it, and create an initial file auth.py with def login(): pass. Stage this file and make an initial commit.
Tác nhân sẽ tạo thư mục, khởi tạo kho lưu trữ, dàn xếp tệp và xác nhận tệp đó bằng một thông báo như "initial commit".
Bước 2: Thực hiện thay đổi về mã
Yêu cầu trợ lý sửa đổi mã để có một thay đổi cần xác nhận.
Câu lệnh của bạn:
In the git_test folder, modify auth.py to add Google Login functionality.
Tác nhân sẽ chỉnh sửa tệp để thêm một tính năng mới, chuẩn bị cho giai đoạn xác nhận.
Bước 3: Staging và Commit các thay đổi
Kích hoạt kỹ năng git-commit-formatter bằng cách yêu cầu tác nhân dàn dựng các thay đổi và tạo một cam kết.
Câu lệnh của bạn:
Stage the changes in the git_test folder and commit them. Make sure to format the commit message using the Conventional Commits skill.
Tác nhân sẽ chạy git add auth.py, phân tích điểm khác biệt để xác định rằng một tính năng mới đã được thêm vào mô-đun auth và tạo một thông báo cam kết thông thường như feat(auth): implement google login trước khi chạy git commit.
Bước 4: Xác minh nhật ký Git
Yêu cầu nhân viên hỗ trợ truy xuất nhật ký git để bạn có thể xác nhận rằng cam kết đã định dạng được ghi lại thành công.
Câu lệnh của bạn:
Show me the git log in the git_test folder.
Tác nhân sẽ chạy git log -n 5 và trả về đầu ra cho thấy thông báo cam kết đã được định dạng.
Cấp 2: Sử dụng tài sản (license-header-adder)
Đây là mẫu "Tham chiếu".
Mọi tệp nguồn trong một dự án của công ty có thể cần một tiêu đề giấy phép Apache 2.0 cụ thể gồm 20 dòng. Việc đưa văn bản tĩnh này trực tiếp vào câu lệnh (hoặc SKILL.md) là không cần thiết. Công cụ này tiêu thụ mã thông báo mỗi khi kỹ năng được lập chỉ mục và mô hình có thể "ảo tưởng" lỗi chính tả trong văn bản pháp lý. Tốt nhất là bạn nên giảm tải văn bản tĩnh sang một tệp văn bản thuần tuý trong thư mục resources/. Kỹ năng này hướng dẫn nhân viên chỉ đọc tệp này khi cần.
Bạn sẽ tìm thấy các tệp này trong thư mục license-header-adder trong thư mục skills.
license-header-adder/
├── SKILL.md
└── resources/
└── HEADER_TEMPLATE.txt (The heavy text)
Tệp SKILL.md được minh hoạ bên dưới:
---
name: license-header-adder
description: Adds the standard open-source license header to new source files. Use involves creating new code files that require copyright attribution.
---
# License Header Adder Skill
This skill ensures that all new source files have the correct copyright header.
## Instructions
1. **Read the Template**:
First, read the content of the header template file located at `resources/HEADER_TEMPLATE.txt`.
2. **Prepend to File**:
When creating a new file (e.g., `.py`, `.java`, `.js`, `.ts`, `.go`), prepend the `target_file` content with the template content.
3. **Modify Comment Syntax**:
- For C-style languages (Java, JS, TS, C++), keep the `/* ... */` block as is.
- For Python, Shell, or YAML, convert the block to use `#` comments.
- For HTML/XML, use `<!-- ... -->`.
Cách chạy ví dụ này trong Antigravity
Giả sử bạn đã chạy Antigravity hoặc Antigravity CLI, hãy làm theo các bước sau:
Bước 1: Tạo tệp Python bằng mã mẫu
Câu lệnh của bạn:
Create a new file my_script.py with the following python code:
def hello():
print("Hello, World!")
Điều gì đã xảy ra (Giải thích): Trợ lý đã gọi một công cụ ghi tệp (write_to_file) để tạo một tệp mới có tên là my_script.py ngay trong thư mục không gian làm việc đang hoạt động của bạn và ghi hàm Python cơ bản vào tệp đó. Ngoài ra, câu lệnh này đã kích hoạt kỹ năng license-header-adder. Đại lý đã xác định vị trí và đọc tệp mẫu giấy phép (HEADER_TEMPLATE.txt), sửa đổi kiểu nhận xét từ nhận xét khối kiểu C (/* ... */) thành nhận xét kiểu Python (#) và thêm nhận xét đó vào đầu tệp bằng công cụ replace_file_content.
Bước 2: Xác minh nội dung tệp
Hãy xem tệp my_script.py. Tệp này sẽ chứa tiêu đề giấy phép ở trên cùng.
Cấp độ 3: Học qua ví dụ (json-to-pydantic)
Mẫu "Few-Shot".
Việc chuyển đổi dữ liệu rời rạc (chẳng hạn như phản hồi API JSON) thành mã nghiêm ngặt (chẳng hạn như các mô hình Pydantic) liên quan đến hàng chục quyết định. Chúng ta nên đặt tên cho các lớp như thế nào? Chúng ta có nên dùng Optional không? snake_case hoặc camelCase? Việc viết 50 quy tắc này bằng tiếng Anh rất tẻ nhạt và dễ xảy ra lỗi.
LLM là công cụ so khớp mẫu.
Việc tạo kỹ năng bằng một ví dụ mẫu (Input -> Output) thường hiệu quả hơn so với hướng dẫn dài dòng.
Chuyển đến thư mục json-to-pydantic/ chứa các tệp kỹ năng, như minh hoạ dưới đây:
json-to-pydantic/
├── SKILL.md
└── examples/
├── input_data.json (The Before State)
└── output_model.py (The After State)
Tệp SKILL.md được minh hoạ bên dưới:
---
name: json-to-pydantic
description: Converts JSON data snippets into Python Pydantic data models.
---
# JSON to Pydantic Skill
This skill helps convert raw JSON data or API responses into structured, strongly-typed Python classes using Pydantic.
Instructions
1. **Analyze the Input**: Look at the JSON object provided by the user.
2. **Infer Types**:
- `string` -> `str`
- `number` -> `int` or `float`
- `boolean` -> `bool`
- `array` -> `List[Type]`
- `null` -> `Optional[Type]`
- Nested Objects -> Create a separate sub-class.
3. **Follow the Example**:
Review `examples/` to see how to structure the output code. notice how nested dictionaries like `preferences` are extracted into their own class.
- Input: `examples/input_data.json`
- Output: `examples/output_model.py`
Style Guidelines
- Use `PascalCase` for class names.
- Use type hints (`List`, `Optional`) from `typing` module.
- If a field can be missing or null, default it to `None`.
Trong thư mục /examples, có tệp JSON và tệp đầu ra, tức là tệp Python. Cả hai đều được minh hoạ ở bên dưới:
input_data.json
{
"user_id": 12345,
"username": "jdoe_88",
"is_active": true,
"preferences": {
"theme": "dark",
"notifications": [
"email",
"push"
]
},
"last_login": "2024-03-15T10:30:00Z",
"meta_tags": null
}
output_model.py
from pydantic import BaseModel, Field
from typing import List, Optional
class Preferences(BaseModel):
theme: str
notifications: List[str]
class User(BaseModel):
user_id: int
username: str
is_active: bool
preferences: Preferences
last_login: Optional[str] = None
meta_tags: Optional[List[str]] = None
Cách chạy ví dụ này trong Antigravity
Giả sử bạn đã chạy Antigravity hoặc Antigravity CLI, hãy làm theo các bước sau:
Bước 1: Tạo tệp JSON có dữ liệu mẫu
Yêu cầu tác nhân tạo một tệp product.json mới chứa tải trọng JSON thô.
Câu lệnh của bạn:
Create a new file product.json with the following JSON:
{
"product": "Widget",
"cost": 10.99,
"stock": null
}
Bước 2: Chuyển đổi JSON thành Mô hình Pydantic
Kích hoạt kỹ năng json-to-pydantic để chuyển đổi dữ liệu JSON thành một lớp Pydantic có cấu trúc.
Câu lệnh của bạn:
Convert the JSON in product.json to a Pydantic model and save it to product_model.py.
Bước 3: Xác minh kết quả đầu ra
Hãy xem tệp product_model.py. Thư mục này sẽ chứa mô hình Pydantic đã hoàn tất.
Cấp 4: Logic theo quy trình (database-schema-validator)
Đây là Mẫu "Sử dụng công cụ".
Nếu bạn hỏi một LLM "Lược đồ này có an toàn không?", thì LLM có thể trả lời là mọi thứ đều ổn, ngay cả khi thiếu khoá chính quan trọng, chỉ đơn giản là vì SQL có vẻ chính xác.
Hãy uỷ quyền kiểm tra này cho một Tập lệnh xác định. Kỹ năng database-schema-validator sẽ định tuyến nhân viên hỗ trợ để chạy một tập lệnh Python mà chúng ta đã viết. Tập lệnh cung cấp thông tin thực tế nhị phân (Đúng/Sai).
database-schema-validator/
├── SKILL.md
└── scripts/
└── validate_schema.py (The Validator)
Tệp SKILL.md được minh hoạ bên dưới:
---
name: database-schema-validator
description: Validates SQL schema files for compliance with internal safety and naming policies.
---
# Database Schema Validator Skill
This skill ensures that all SQL files provided by the user comply with our strict database standards.
Policies Enforced
1. **Safety**: No `DROP TABLE` statements.
2. **Naming**: All tables must use `snake_case`.
3. **Structure**: Every table must have an `id` column as PRIMARY KEY.
Instructions
1. **Do not read the file manually** to check for errors. The rules are complex and easily missed by eye.
2. **Run the Validation Script**:
Use the `run_command` tool to execute the python script provided in the `scripts/` folder against the user's file.
`python scripts/validate_schema.py <path_to_user_file>`
3. **Interpret Output**:
- If the script returns **exit code 0**: Tell the user the schema looks good.
- If the script returns **exit code 1**: Report the specific error messages printed by the script to the user and suggest fixes.
Tệp validate_schema.py được minh hoạ bên dưới:
import sys
import re
def validate_schema(filename):
"""
Validates a SQL schema file against internal policy:
1. Table names must be snake_case.
2. Every table must have a primary key named 'id'.
3. No 'DROP TABLE' statements allowed (safety).
"""
try:
with open(filename, 'r') as f:
content = f.read()
lines = content.split('\n')
errors = []
# Check 1: No DROP TABLE
if re.search(r'DROP TABLE', content, re.IGNORECASE):
errors.append("ERROR: 'DROP TABLE' statements are forbidden.")
# Check 2 & 3: CREATE TABLE checks
table_defs = re.finditer(r'CREATE TABLE\s+(?P<name>\w+)\s*\((?P<body>.*?)\);', content, re.DOTALL | re.IGNORECASE)
for match in table_defs:
table_name = match.group('name')
body = match.group('body')
# Snake case check
if not re.match(r'^[a-z][a-z0-9_]*$', table_name):
errors.append(f"ERROR: Table '{table_name}' must be snake_case.")
# Primary key check
if not re.search(r'\bid\b.*PRIMARY KEY', body, re.IGNORECASE):
errors.append(f"ERROR: Table '{table_name}' is missing a primary key named 'id'.")
if errors:
for err in errors:
print(err)
sys.exit(1)
else:
print("Schema validation passed.")
sys.exit(0)
except FileNotFoundError:
print(f"Error: File '{filename}' not found.")
sys.exit(1)
if __name__ == "__main__":
if len(sys.argv) != 2:
print("Usage: python validate_schema.py <schema_file>")
sys.exit(1)
validate_schema(sys.argv[1])
Cách chạy ví dụ này trong Antigravity
Giả sử bạn đã chạy Antigravity hoặc Antigravity CLI, hãy làm theo các bước sau:
Bước 1: Tạo tệp JSON có dữ liệu mẫu
Yêu cầu tác nhân tạo một tệp mới bad_schema.sql chứa nhiều lỗi vi phạm chính sách.
Câu lệnh của bạn:
Create a new file bad_schema.sql with the following SQL:
DROP TABLE IF EXISTS legacy_users;
CREATE TABLE userProfile (
id INT PRIMARY KEY,
bio TEXT
);
CREATE TABLE posts (
title TEXT,
content TEXT,
created_at TIMESTAMP
);
CREATE TABLE comments (
id INT PRIMARY KEY,
post_id INT,
body TEXT
);
Tệp lược đồ ở trên vi phạm cả 3 chính sách: sử dụng câu lệnh DROP TABLE bị cấm, sử dụng camelCase cho tên bảng userProfile và quên khoá chính id trong bảng posts.
Bước 2: Xác thực lược đồ SQL
Kích hoạt kỹ năng database-schema-validator để chạy tập lệnh trình xác thực Python đối với tệp của bạn.
Câu lệnh của bạn:
Validate bad_schema.sql using the database-schema-validator skill.
Bước 3: Xác minh kết quả đầu ra
Trợ lý sẽ báo cáo lỗi và hiển thị các lỗi cụ thể mà tập lệnh tìm thấy ngay trong cuộc trò chuyện. Dưới đây là kết quả đầu ra mẫu:
Suggested Fixes:
Remove the line DROP TABLE IF EXISTS legacy_users; as dropping tables is forbidden by safety policy.
Rename the table userProfile to use snake_case (e.g., user_profile).
Add a primary key column named id to the posts table definition.
6. Bộ công cụ dành cho nhà phát triển (Các kỹ năng CLI của Agent)
Mẫu "Hành động và vòng đời".
Việc phát triển các tác nhân AI bao gồm các tác vụ lặp đi lặp lại trong vòng đời: giàn giáo các tệp soạn sẵn, định cấu hình môi trường thời gian chạy cục bộ, chạy các câu lệnh kiểm thử và bắt đầu các sân chơi tương tác.
Thay vì buộc trợ lý lập trình của bạn đoán cấu trúc thư mục hoặc viết cấu hình tác nhân chung từ đầu, Các kỹ năng CLI của tác nhân sẽ đóng gói kiến thức chuyên môn về vòng đời này thành các kỹ năng cụ thể của tác nhân.
Các kỹ năng của Agent CLI (Giao diện dòng lệnh) mang đến quy trình tự động hoá tinh giản, tập trung vào nhà phát triển ngay trên cửa sổ dòng lệnh, thu hẹp khoảng cách giữa mã thô và quá trình thực thi tự động. Trong khi Bộ công cụ phát triển tác nhân (ADK) tập trung vào khung lập trình, cung cấp cho bạn các SDK, API và bản thiết kế cấu trúc để xây dựng và điều phối các tác nhân AI, thì các kỹ năng CLI của tác nhân sẽ cung cấp sức mạnh vận hành. Công cụ này cho phép nhà phát triển tạo khung, kiểm thử và triển khai các tác nhân cục bộ với vòng hồi tiếp nhanh chóng, hoàn toàn bỏ qua chi phí giao diện người dùng lớn.
Ngoài ra, khi được liên kết với Google Cloud, các kỹ năng của Agent CLI sẽ đóng vai trò là một kênh trực tiếp đến cơ sở hạ tầng cấp doanh nghiệp. Thay vì nhấp vào các bảng điều khiển, bạn có thể sử dụng các lệnh CLI để đóng gói ngay quy trình làm việc của tác nhân, quản lý quyền truy cập và triển khai các quy trình đó vào hệ sinh thái Google Cloud (chẳng hạn như Vertex AI hoặc Cloud Run). Điều này giúp biến những tác vụ kiến trúc đám mây phức tạp trước đây thành các lệnh đơn giản, có thể tái tạo trên thiết bị đầu cuối, giúp việc tích hợp các tác nhân tự động vào các quy trình triển khai CI/CD hiện có trở nên dễ dàng hơn nhiều.
Cách cài đặt
Đảm bảo bạn đã cài đặt Python 3.11+, Node.js và trình quản lý gói uv. Sau đó, hãy chạy lệnh thiết lập trong cửa sổ dòng lệnh:
uvx google-agents-cli setup
Lệnh này sẽ cài đặt tệp nhị phân agents-cli và đăng ký các kỹ năng chuyên biệt của tệp này để tạo khung và đánh giá trong môi trường của trợ lý lập trình.
Lưu ý: Các kỹ năng sẽ được cài đặt trong thư mục ~/.agents/skills mà Antigravity có thể nhìn thấy. Nếu muốn xem các kỹ năng này trong Antigravity CLI, bạn sẽ phải di chuyển chúng vào thư mục ~/.gemini/antigravity-cli/skills (phạm vi toàn cầu).
Bạn có thể kiểm tra xem các Kỹ năng đã được tải trong Antigravity hay chưa bằng cách hỏi về những kỹ năng hiện có. Dưới đây là một phản hồi mẫu cho các Kỹ năng CLI của Agent mà chúng ta vừa cài đặt.

Hướng dẫn từng bước
Sau khi hoàn tất uvx google-agents-cli setup, bạn có thể khởi động, tương tác và kiểm thử một tác nhân AI hoàn toàn trên máy cục bộ.
Bước 1: Tạo khung và khởi động một Dự án tác nhân mới
Chạy lệnh tạo để tạo một bố cục chuẩn. Sau khi tạo, bạn phải cài đặt các phần phụ thuộc của dự án trước khi chạy bất kỳ tác vụ thực thi nào.
# 1. Create a lightweight prototype project structure
agents-cli create weather-assistant --prototype --yes
# 2. Move into the directory and install required ADK dependencies
cd weather-assistant
agents-cli install
Những gì diễn ra ở chế độ nền: Thao tác này sẽ tạo một không gian làm việc gọn gàng có app/agent.py (mã cốt lõi), pyproject.toml (siêu dữ liệu gói) và agents-cli-manifest.yaml (trình theo dõi dự án).
Bước 2: Chạy truy vấn kiểm thử cục bộ
Thực hiện một kiểm thử nhanh, trực tiếp qua dòng lệnh đối với tác nhân của bạn. Đảm bảo bạn đã xuất GEMINI_API_KEY trong thiết bị đầu cuối nếu bạn không sử dụng Thông tin xác thực mặc định của ứng dụng (ADC) của Google Cloud. Bạn có thể lấy Khoá Gemini API tại đây. Sau khi có khoá, hãy xuất khoá đó trong cửa sổ dòng lệnh bằng lệnh sau:
export GEMINI_API_KEY="YOUR_GEMINI_API_KEY"
Nhập lệnh sau trong cửa sổ dòng lệnh:
agents-cli run "How are you?"
Những gì diễn ra ở chế độ nền: CLI khởi động vòng đời của Bộ phát triển tác nhân (ADK) hoàn toàn trong bộ nhớ trên thiết bị đầu cuối của bạn. Công cụ này định tuyến câu lệnh một cách an toàn thông qua thông tin đăng nhập cục bộ của bạn và ghi lại phản hồi phát trực tiếp ngay vào dòng lệnh.
Bước 3: Bắt đầu Interactive Web Playground
Khởi chạy sân chơi dựa trên web cục bộ, được tích hợp sẵn để tương tác với tác nhân một cách trực quan.
agents-cli playground
Điều gì xảy ra ở chế độ nền: CLI khởi động một máy chủ giao diện người dùng web ADK, thường có thể truy cập tại http://localhost:8080 hoặc dự phòng http://127.0.0.1:8000, hoàn chỉnh với tính năng tải lại nhanh. Trên giao diện web, hãy chọn ứng dụng trong trình đơn thả xuống Chọn một ứng dụng ở trên cùng và tương tác với trợ lý trong giao diện đàm thoại ở bên phải của ứng dụng web.
7. Cài đặt Kỹ năng của tác nhân bằng npx skills
npx skills là một công cụ dòng lệnh do Vercel Labs phát triển, đóng vai trò là trình quản lý gói cho các tác nhân AI (chẳng hạn như Antigravity, Claude Code, GitHub Copilot, Cursor và Cline). Đây là CLI cho hệ sinh thái kỹ năng của tác nhân mở.
Nếu bạn muốn tải xuống và cài đặt Agent Skills bằng gói npx skills, hãy lưu ý rằng gói này sẽ đặt Skills vào thư mục ~/.agents/skills. Mặc dù có đề cập đến việc các công cụ như Antigravity sẽ lấy các kỹ năng từ thư mục này, nhưng xin lưu ý rằng tại thời điểm viết bài, Antigravity lấy các kỹ năng từ thư mục này nhưng Antigravity CLI thì không. Như đã đề cập trước đó, bạn sẽ cần sao chép những kỹ năng này được cài đặt trong thư mục ~/.agents/skills, vào phạm vi dự án hoặc phạm vi toàn cục cho các thư mục kỹ năng trong Antigravity CLI, tức là
- Phạm vi dự án: Nằm ở
<project-root>/.agent/skills/. - Phạm vi toàn cầu: Nằm ở
~/.gemini/antigravity-cli/skills/.
8. Xin chúc mừng
Xin chúc mừng! Bạn đã sử dụng thành công Google Antigravity để tạo, định cấu hình và thêm các chức năng tuỳ chỉnh cho Kỹ năng của Agent đầu tiên.
Bạn cũng đã thiết lập được một bộ Kỹ năng của trợ lý ảo ở cả phạm vi dự án và phạm vi toàn cầu, giúp các công cụ tuỳ chỉnh trở nên hữu ích!
Giờ đây, bạn đã sẵn sàng để Antigravity xử lý những công việc khó khăn trong các dự án của riêng mình và viết mã theo cách của bạn.
Nhận huy hiệu Tác nhân AI trong 5 ngày trên Kaggle
Bạn đã hoàn thành phòng thí nghiệm này trong khoá học 5-Day AI Agents: Intensive Vibe Coding Course with Google của Kaggle chưa? Nhận huy hiệu hoàn thành: Nhận huy hiệu Tác nhân AI trong 5 ngày.
9. Tài liệu tham khảo
- Lớp học lập trình : Bắt đầu sử dụng Google Antigravity
- Trang web chính thức : https://antigravity.google/
- Tài liệu: https://antigravity.google/docs
- Tải xuống : https://antigravity.google/download
- Tài liệu về Antigravity Skills: https://antigravity.google/docs/skills