1. Tổng quan
Trong lớp học lập trình này, bạn sẽ tìm hiểu cách sử dụng Agents CLI để quản lý toàn bộ vòng đời phát triển cục bộ của một tác nhân AI. Cho dù bạn đang bao bọc các mô hình Gemini hiện có hay xây dựng các tác nhân tuỳ chỉnh từ đầu bằng Bộ công cụ phát triển tác nhân (ADK 2.0), Agents CLI cung cấp các công cụ để tạo khung, xây dựng, tìm lỗi và kiểm thử các tác nhân của bạn tại chỗ.
Kiến thức bạn sẽ học được
- Cách cài đặt và thiết lập
agents-clicũng như các kỹ năng liên quan. - Cách tạo khung cho một dự án tác nhân mới.
- Cấu trúc và các tệp chính của một dự án tác nhân quy trình công việc đồ thị ADK 2.0.
- Cách chạy tính năng kiểm tra và dọn dẹp mã tự động.
- Cách chạy và sử dụng sân chơi web cục bộ để kiểm thử tương tác bằng tính năng tự động tải lại.
Bạn cần có
- Python 3.11 trở lên
- Trình quản lý gói uv
- Node.js 18 trở lên (nếu sử dụng các kỹ năng của tác nhân lập trình)
- Antigravity IDE (cài đặt và định cấu hình từ Google Antigravity)
Điều kiện tiên quyết
Lớp học lập trình này giả định rằng bạn đã quen với:
- Sử dụng một thiết bị đầu cuối và dòng lệnh.
Bạn không cần có kinh nghiệm sử dụng các tác nhân AI hoặc ADK 2.0!
2. Thiết lập tính năng xác thực và môi trường
Cung cấp thông tin xác thực để tác nhân gọi các mô hình Gemini.
Cách 1: Khoá Gemini API (Google AI Studio)
Nếu bạn đang sử dụng khoá Gemini API tiêu chuẩn (bạn có thể lấy khoá này từ Google AI Studio), hãy xuất khoá đó trong phiên thiết bị đầu cuối IDE:
export GEMINI_API_KEY="your_api_key_here"
export GOOGLE_GENAI_USE_ENTERPRISE=FALSE
Cách 2: Thông tin xác thực mặc định của ứng dụng Google Cloud
Nếu bạn đang sử dụng Vertex AI trên Google Cloud, hãy xác thực bằng Thông tin xác thực mặc định của ứng dụng Google Cloud (ADC) và đặt dự án trên đám mây Google Cloud đang hoạt động:
gcloud auth application-default login
gcloud config set project <YOUR_PROJECT_ID>
export GOOGLE_GENAI_USE_ENTERPRISE=TRUE
export GOOGLE_CLOUD_PROJECT=REPLACE-WITH-YOUR-PROJECT_ID # Replace with your project ID
export GOOGLE_CLOUD_LOCATION=REPLACE-WITH-LOCATION # Replace the location
3. Thiết lập CLI và Kỹ năng của Đặc vụ
Bước đầu tiên là cài đặt công cụ agents-cli. Công cụ này giúp bạn quản lý dự án tác nhân một cách dễ dàng.
Sau khi cài đặt Antigravity, hãy chạy lệnh thiết lập ngay trong thiết bị đầu cuối.
👉 Mở cửa sổ dòng lệnh rồi chạy:
uvx google-agents-cli setup
Lệnh này sẽ tự động cài đặt:
- Công cụ Agents CLI trên toàn hệ thống.
- 7 kỹ năng trợ lý lập trình theo từng lĩnh vực mà Antigravity có thể sử dụng để giúp bạn xây dựng, tạo khung, đánh giá và triển khai các tác nhân. Những kỹ năng này được cài đặt một lần trên toàn cầu vào
~/.agents/skills/và được Antigravity tự động phát hiện.
Lưu ý: Các kỹ năng được cài đặt vào ~/.agents/skills/ và được Antigravity tự động chọn. Bạn có thể xác minh điều này bằng lệnh /skills hoặc chế độ cài đặt Antigravity.
Kết quả đầu ra dự kiến (đã cắt bớt):
█▀█ █▀▀ █▀▀ █▄ █ ▀█▀ █▀ █▀▀ █ █`
`█▀█ █▄█ ██▄ █ ▀█ █ ▄█ █▄▄ █▄ █`
`Your coding agent just got an upgrade.`
`1. Authentication`
`─────────────────`
`✓ Authenticated with Google Cloud`
`2. CLI Installation`
`───────────────────`
`▸ uv tool install google-agents-cli`
`✓ Installed google-agents-cli`
`3. Skills Installation`
`──────────────────────`
`▸ npx -y skills add https://github.com/google/agents-cli -y --all -g`
`◇ Found 7 skills`
`~/.agents/skills/google-agents-cli-adk-code`
`~/.agents/skills/google-agents-cli-deploy`
`~/.agents/skills/google-agents-cli-eval`
`~/.agents/skills/google-agents-cli-observability`
`~/.agents/skills/google-agents-cli-publish`
`~/.agents/skills/google-agents-cli-scaffold`
`~/.agents/skills/google-agents-cli-workflow`
4. Tạo Dự án tác nhân
Trong phần này, bạn sẽ tạo một thư mục dự án có cấu trúc đầy đủ bằng mẫu nguyên mẫu.
👉 Lệnh Antigravity:
Use ADK 2.0 to create a new graph workflow agent project called
customer-support-agent. I don't want to deploy this agent, so you can skip
the deployment files. The workflow should act as a customer support
representative for a shipping company. It should first classify if the user
query is related to shipping (rates, tracking, delivery, returns) or
unrelated. If it is related to shipping, route to a shipping FAQ agent to
answer the question. If it is unrelated, route to a node that politely
declines to answer.
Antigravity sẽ tự động chạy lệnh tạo khung (agents-cli scaffold create customer-support-agent --prototype --yes) và thiết lập các tệp dự án cho bạn.
5. Khám phá mã tác nhân
👉 Yêu cầu Antigravity giải thích mã được tạo:
Read and explain the project structure of my new agent project. Walk me
through how `app/agent.py` is configured, highlighting the role of the
tools, nodes, edges, and the root Workflow.
Trong Antigravity IDE, các tệp và cấu phần phần mềm của dự án mới tạo sẽ xuất hiện ngay trong ngăn phụ (bên trái). Bạn có thể xem app/agent.py ở đó hoặc mở tệp này trong trình khám phá tệp IDE để khám phá mã được dàn xếp.
# app/agent.py
from __future__ import annotations
from typing import Any, Literal
from google.adk.agents.context import Context
from google.adk.apps.app import App
from google.adk.events.event import Event
from google.adk.workflow import Edge
from google.adk.workflow import Workflow
from google.adk.workflow.agents.llm_agent import LlmAgent
from google.adk.workflow.node import node
from pydantic import BaseModel
from pydantic import Field
class InquiryCategory(BaseModel):
category: Literal['shipping', 'unrelated'] = Field(
description=(
'Determine if the user query is related to shipping (rates, tracking,'
' delivery times, returns) or unrelated.'
)
)
def save_query(node_input: str):
"""Saves user query in state for downstream nodes."""
yield Event(data=node_input, state={'user_query': node_input})
categorize_agent = LlmAgent(
name='categorize',
model='gemini-3.1-flash-lite',
instruction='You are an expert classifier. Categorize the user query.',
output_key='inquiry_category',
output_schema=InquiryCategory,
)
@node
def route_inquiry(ctx: Context, node_input: Any):
"""Routes the workflow based on the classified category."""
category_data = ctx.state.get('inquiry_category', {})
category = category_data.get('category', 'unrelated')
query = ctx.state.get('user_query', '')
yield Event(data=query, route=category)
faq_agent = LlmAgent(
name='shipping_faq',
model='gemini-3.1-flash-lite'',
instruction="""You are a customer support representative for a shipping company. Answer user questions based ONLY on the shipping FAQ below. Do not answer questions outside of the FAQ.
SHIPPING FAQ:
- Rates: Standard shipping is $5.99. Express shipping is $12.99. Orders
over $50 qualify for free standard shipping.
- Tracking: You can track your order by entering your tracking number on
our website's tracking page.
- Delivery Times: Standard delivery takes 3-5 business days. Express
delivery takes 1-2 business days.
- Returns: We offer free returns within 30 days of delivery. Please make
sure the item is in its original condition.
""",
)
@node
def handle_unrelated(ctx: Context, node_input: Any):
"""Handles unrelated inquiries politely."""
yield Event(
data=(
'I am sorry, I am a shipping customer support assistant and can only'
' answer questions related to our shipping FAQ.'
)
)
root_agent = Workflow(
name='customer_support_workflow',
edges=[
*Edge.chain('START', save_query, categorize_agent, route_inquiry),
(route_inquiry, faq_agent, 'shipping'),
(route_inquiry, handle_unrelated, 'unrelated'),
],
)
app = App(
name='customer_support_agent',
root_agent=root_agent,
)
Khái niệm chính
- Quy trình và các cạnh: Trong ADK 2.0, các ứng dụng tác nhân được phối hợp dưới dạng một biểu đồ bằng cách sử dụng
Workflow. Danh sáchedgesxác định luồng thực thi, liên kết các nút với nhau từSTARTvà cho phép phân nhánh có điều kiện dựa trên các tuyến đường (ví dụ: định tuyến đếnfaq_agenttrên"shipping"hoặchandle_unrelatedtrên"unrelated"). - LlmAgent: Các nút khai báo xác định những tác vụ dựa trên LLM bằng các hướng dẫn, mô hình và đầu ra có cấu trúc cụ thể (
output_schema). - Nút và bối cảnh: Các hàm Python được trang trí bằng
@node(hoặc các hàm tiêu chuẩn) thực hiện logic, truy cập vào trạng thái thực thi thông quaContextvà tạo ra các đối tượngEventđể truyền dữ liệu và tín hiệu định tuyến dọc theo biểu đồ. - Mô hình: `gemini-3.1-flash-lite' được dùng làm mô hình suy luận nhanh mặc định.
- Trình bao bọc ứng dụng: Đối tượng
Appcấp cao nhất bao bọc quy trình công việc gốc. Các công cụ bên ngoài như sân chơi cục bộ, bộ khai thác đánh giá ADK và Agent Runtime sẽ khám phá và thực thi quy trình làm việc của bạn thông qua giao diệnappđược tiêu chuẩn hoá này.
6. Tự động kiểm tra lỗi
Trước khi chạy hoặc kiểm thử tác nhân, bạn nên đảm bảo mã của mình rõ ràng và được định dạng đúng cách.
👉 Lệnh Antigravity:
Run linting on my agent project to verify its health.
Antigravity sẽ thực thi agents-cli lint ở chế độ nền để chạy các quy trình kiểm tra được định cấu hình sẵn, xác minh tính nhất quán của nội dung nhập, cú pháp và định dạng trên các tệp của bạn.
7. Kiểm thử tương tác bằng Playground
Sân chơi web cục bộ là cách nhanh nhất để xác minh hành vi của nhân viên hỗ trợ. Đây là một giao diện trò chuyện tương tác, nơi bạn có thể trò chuyện với tác nhân và kiểm tra các lượt thực thi công cụ theo thời gian thực.
👉 Lệnh Antigravity:
Launch the local development playground for my agent.
Antigravity sẽ khởi động máy chủ phát triển cục bộ (agents-cli playground). Mở URL được cung cấp (thường là http://127.0.0.1:8080/dev-ui/?app=app) trong trình duyệt web, chọn thư mục app trong trình đơn thả xuống để bắt đầu trò chuyện với tác nhân.
Bắt đầu trò chuyện với nhân viên hỗ trợ trong giao diện web. Hãy thử đặt một câu hỏi liên quan đến việc vận chuyển:
How much is standard shipping?
Lưu ý cách quy trình công việc phân loại và định tuyến thành công đến faq_agent để trả lời. Ngoài ra, hãy thử đặt một câu hỏi không liên quan để xác minh rằng quy trình công việc chuyển đến handle_unrelated và từ chối trả lời một cách chính xác:
What is the weather like?
Thử nghiệm tính năng Tự động tải lại theo thời gian thực
Bạn có thể xem các nội dung chỉnh sửa theo thời gian thực đối với trợ lý ảo của mình được phản ánh trong Playground.
- Sửa đổi chỉ dẫn
faq_agenttrongapp/agent.pybằng cách yêu cầu Antigravity:Modify the faq_agent instruction in app/agent.py to make the shipping rates response more playful and enthusiastic. Add some emojis and highlight the free shipping threshold. - Gửi một tin nhắn mới cho trợ lý trong sân chơi để kiểm thử tính năng tự động tải lại:
Sân chơi sẽ tự động tải lại và thực thi mã đã cập nhật theo thời gian thực mà không cần khởi động lại máy chủ! Giờ đây, bạn sẽ thấy một số biểu tượng cảm xúc trong câu trả lời.How much is standard shipping?
8. Thực thi dòng lệnh
Để kiểm thử nhanh, tự động hoá hoặc viết kịch bản, bạn có thể yêu cầu Antigravity chạy tác nhân ngay từ thiết bị đầu cuối.
👉 Lệnh Antigravity:
Run a CLI query asking my agent how long standard delivery takes.
Antigravity sẽ thực thi lệnh truy vấn (agents-cli run "How long does standard delivery take?"). Lệnh này chạy một suy luận nhanh một lượt và in phản hồi cuối cùng của tác nhân cùng với thông tin chi tiết về việc thực thi công cụ.
9. Dọn dẹp
Để tránh để lại các tài nguyên không mong muốn trong môi trường cục bộ, hãy làm theo các bước dọn dẹp sau:
- Dừng máy chủ cục bộ: Nếu máy chủ
agents-cli playgroundvẫn đang chạy, hãy dừng máy chủ này trong thiết bị đầu cuối bằng cách nhấnCtrl + C. - Xoá tệp dự án cục bộ: Xoá thư mục dự án tác nhân được giàn giáo khỏi máy cục bộ.
rm -rf customer-support-agent
10. Tổng kết và các bước tiếp theo
Xin chúc mừng! Bạn đã quản lý thành công vòng đời phát triển cục bộ từ đầu đến cuối của một tác nhân AI bằng Agents CLI và ADK 2.0.
Kiến thức bạn học được
- Thiết lập các công cụ: Cài đặt Agents CLI và định cấu hình các kỹ năng quy trình làm việc theo miền cụ thể cho Antigravity.
- Tạo khung cho dự án: Tạo một dự án
customer-support-agentcó cấu trúc đầy đủ bằng các mẫu tiêu chuẩn. - Cấu trúc ADK 2.0 được phân tích: Khám phá quy trình công việc đồ thị, tác nhân LLM, nút, cạnh và định tuyến có điều kiện.
- Managed Local Health: Chạy quy trình kiểm tra chất lượng mã tự động bằng
agents-cli lint. - Hành vi đã xác minh: Đã kiểm thử tác nhân một cách tương tác bằng tính năng tải lại nóng theo thời gian thực thông qua sân chơi và chạy các kiểm thử nhanh trên dòng lệnh.
Tiếp theo là gì?
Giờ đây, khi đã nắm vững vòng lặp phát triển cục bộ, bạn có thể mở rộng và sản xuất tác nhân của mình theo cách sau:
- Đánh giá: Chấm điểm cho tác nhân dựa trên một evalset bằng cách sử dụng
agents-cli eval runđể đo lường độ chính xác và tìm ra các điểm hồi quy. - Quy mô đám mây doanh nghiệp: Triển khai và Khả năng quan sát: Đóng gói và triển khai tác nhân của bạn vào các môi trường sản xuất như Thời gian chạy tác nhân hoặc Cloud Run bằng
agents-cli deploy. Thiết lập đo từ xa trong quá trình sản xuất để truyền trực tuyến nhật ký và dấu vết thực thi đến Cloud Trace và BigQuery.