Chuyển đến nội dung chính

Skill và Workflow là gì?

Khi sử dụng Antigravity để làm việc với AI Agent, hai khái niệm Skill và Workflow rất dễ gây nhầm lẫn.

Có thể hiểu đơn giản:

Skill = AI biết làm việc như thế nào.

Workflow = AI phải thực hiện quy trình nào.


1. Skill là gì?

Skill là một tập instruction giúp Agent biết cách thực hiện một loại công việc.

Ví dụ, chúng ta muốn AI biết cách phân tích một screenshot UI.

Ta tạo:

.agent/
└── skills/
    └── ui-analysis/
        └── SKILL.md

SKILL.md có thể viết:

---
name: ui-analysis
description: Analyze UI screenshots and create a UI specification.
---

# UI Analysis

When analyzing a UI screenshot:

1. Identify the page structure.
2. Identify layout regions.
3. Identify UI components.
4. Identify visible fields.
5. Identify visible states.
6. Distinguish visible information from assumptions.
7. Check whether similar components already exist.
8. Do not invent business rules.
9. Do not implement code.

The result should be a structured UI specification.

Skill này nói cho AI biết:

"Nếu phân tích UI thì hãy làm theo cách này."

Nó không nhất thiết phải là một command mà developer trực tiếp gọi.


2. Workflow là gì?

Workflow là một quy trình được đóng gói để Agent thực hiện.

Ví dụ, thay vì mỗi lần phải nói:

Đọc screenshot này.
Phân tích layout.
Kiểm tra component hiện tại.
Tạo ui-spec.md.
Không được implement code.
...

ta tạo một workflow:

.agent/
└── workflows/
    └── analyze-ui-image.md

Workflow có thể chứa:

---
description: Analyze a UI image and create a UI specification.
---

## Steps

1. Ask for the UI image path.
2. Read the UI image.
3. Use the UI analysis skill.
4. Inspect existing UI components.
5. Create or update:

docs/ui/ui-spec.md

6. Report the result.

Sau đó developer chỉ cần gọi workflow:

/analyze-ui-image

3. Ví dụ dễ hiểu

Hãy tưởng tượng bạn có một nhân viên.

Skill

Bạn dạy nhân viên:

"Đây là cách phân tích UI."

Nhân viên biết:

Screenshot
   ↓
Layout
   ↓
Components
   ↓
Fields
   ↓
States
   ↓
UI Specification

Đó là Skill.

Workflow

Bạn nói:

"Mỗi khi tôi yêu cầu phân tích UI, hãy thực hiện các bước này."

/analyze-ui-image

    ↓

Đọc image

    ↓

Phân tích UI

    ↓

Kiểm tra code hiện tại

    ↓

Tạo ui-spec.md

Đó là Workflow.


4. Skill và Workflow có thể kết hợp

Đây mới là cách sử dụng tốt khi project lớn.

Ví dụ:

.agent/
├── skills/
│   └── ui-analysis/
│       └── SKILL.md
│
└── workflows/
    └── analyze-ui-image.md

Workflow:

/analyze-ui-image

sẽ sử dụng:

ui-analysis Skill

Có thể hình dung:

flowchart LR A["/analyze-ui-image"] --> B["UI Analysis Skill"] B --> C["Analyze Image"] C --> D["ui-spec.md"]

Workflow quyết định làm gì.

Skill quyết định làm như thế nào.


5. Khi nào chỉ cần Workflow?

Nếu project nhỏ, bạn có thể chỉ dùng Workflow.

Ví dụ:

.agent/
└── workflows/
    └── analyze-ui-image.md

Trong file này chứa luôn:

  • Input

  • Rules

  • Steps

  • Output

Bạn không cần tạo Skill riêng.

Đây là cách đơn giản nhất để bắt đầu.


6. Khi nào nên dùng Skill?

Skill hữu ích khi nhiều Workflow cần cùng một kiến thức hoặc methodology.

Ví dụ project có:

/analyze-ui-image
/review-ui
/create-feature

Cả ba đều cần biết UI convention của project.

Thay vì copy cùng một prompt vào ba workflow:

UI Analysis Rules
UI Components
UI Conventions
...

ta đưa phần dùng chung vào:

.agent/
└── skills/
    └── ui-analysis/
        └── SKILL.md

Sau đó các Workflow có thể sử dụng Skill này.

flowchart TD S["UI Analysis Skill"] A["/analyze-ui-image"] --> S B["/review-ui"] --> S C["/create-feature"] --> S S --> D["Shared UI Methodology"]

Như vậy chỉ cần sửa Skill một lần.


7. Ví dụ thực tế với Spec-Kit

Nếu project đang sử dụng Spec-Kit, ta có thể kết hợp cả ba:

Skill
    +
Workflow
    +
Spec-Kit

Ví dụ:

/analyze-ui-image

tạo:

docs/ui/ui-spec.md

Sau đó:

/speckit.specify

tạo:

spec.md

Cuối cùng:

/speckit.plan

sử dụng:

spec.md
+
ui-spec.md
+
existing code

Có thể hình dung:

flowchart TD A["UI Screenshot"] --> B["/analyze-ui-image"] B --> C["UI Analysis Skill"] C --> D["ui-spec.md"] D --> E["/speckit.plan"] F["spec.md"] --> E G["Existing Code"] --> E E --> H["plan.md"]

Ở đây:

  • Skill: cách phân tích UI.

  • Workflow: quy trình /analyze-ui-image.

  • Spec-Kit: quy trình Specification → Plan → Tasks → Implementation.


8. Một cách nhớ rất đơn giản

Chỉ cần nhớ hai câu:

Skill
= "AI biết làm việc này như thế nào?"

và:

Workflow
= "Tôi muốn AI thực hiện những bước nào?"

Ví dụ:

Skill:
"Đây là cách phân tích UI."

Workflow:
/analyze-ui-image

"Đọc image → phân tích → kiểm tra code → tạo ui-spec.md"

Nếu project còn nhỏ, bắt đầu bằng Workflow là đủ.

Khi có nhiều workflow sử dụng chung một methodology, hãy tách phần đó thành Skill.

Đây là cách giữ cho các prompt của AI không bị copy-paste và dễ quản lý khi project phát triển.

Tham khảo

How to Write Workflow Skills: Patterns and Best Practices Distilled from 7 Top Projects

Nhận xét

Bài đăng phổ biến từ blog này

[ASP.NET MVC] Authentication và Authorize

Một trong những vấn đề bảo mật cơ bản nhất là đảm bảo những người dùng hợp lệ truy cập vào hệ thống. ASP.NET đưa ra 2 khái niệm: Authentication và Authorize Authentication xác nhận bạn là ai. Ví dụ: Bạn có thể đăng nhập vào hệ thống bằng username và password hoặc bằng ssh. Authorization xác nhận những gì bạn có thể làm. Ví dụ: Bạn được phép truy cập vào website, đăng thông tin lên diễn đàn nhưng bạn không được phép truy cập vào trang mod và admin.

Tổng hợp một số kiến thức lập trình về Amibroker

Giới thiệu về Amibroker Amibroker theo developer Tomasz Janeczko được xây dựng dựa trên ngôn ngữ C. Vì vậy bộ code Amibroker Formula Language sử dụng có syntax khá tương đồng với C, ví dụ như câu lệnh #include để import hay cách gói các object, hàm trong các block {} và kết thúc câu lệnh bằng dấu “;”. AFL trong Amibroker là ngôn ngữ xử lý mảng (an array processing language). Nó hoạt động dựa trên các mảng (các dòng/vector) số liệu, khá giống với cách hoạt động của spreadsheet trên excel.

ASP.NET MVC: Cơ bản về Validation

Validation (chứng thực) là một tính năng quan trọng trong ASP.NET MVC và được phát triển trong một thời gian dài. Validation vắng mặt trong phiên bản đầu tiên của asp.net mvc và thật khó để tích hợp 1 framework validation của một bên thứ 3 vì không có khả năng mở rộng. ASP.NET MVC2 đã hỗ trợ framework validation do Microsoft phát triển, tên là Data Annotations. Và trong phiên bản 3, framework validation đã hỗ trợ tốt hơn việc xác thực phía máy khách, và đây là một xu hướng của việc phát triển ứng dụng web ngày nay.