Chào mừng các bạn trở lại với series “AI Agent Roadmap”! Sau khi đã cùng nhau khám phá AI Agent là gì và Chúng Hoạt Động Như Thế Nào?, tìm hiểu sâu hơn về Vòng Lặp Agent, hay cách xây dựng Công cụ AI, và thảo luận về các trường hợp sử dụng thực tế, có thể bạn đang rất hào hứng muốn bắt tay vào xây dựng agent đầu tiên của mình. Tuy nhiên, trước khi đi sâu vào các mô hình ngôn ngữ lớn (LLM), kỹ thuật prompt, hay RAG (chúng ta đã nói về Embeddings và Tìm kiếm Vector và RAG cho Người mới bắt đầu), có hai công cụ nền tảng mà bất kỳ nhà phát triển phần mềm nào, kể cả nhà phát triển AI Agent, cũng cần phải nắm vững: Git và REST API.
Nghe có vẻ cơ bản? Đúng vậy, nhưng sự thật là việc hiểu và sử dụng hiệu quả hai công cụ này sẽ giúp bạn quản lý dự án agent của mình một cách chuyên nghiệp, cộng tác dễ dàng hơn và cho phép agent của bạn tương tác với thế giới bên ngoài một cách mạnh mẽ. Bài viết này sẽ cung cấp cho bạn những kiến thức cơ bản nhất về Git và REST API trong bối cảnh phát triển AI Agent.
Mục lục
Git: Người Bạn Đồng Hành Của Code và Thí Nghiệm
AI Agent là những hệ thống phức tạp, bao gồm code điều khiển agent, logic suy luận, tương tác với LLM, sử dụng công cụ, quản lý bộ nhớ, và có thể cả các thành phần học máy khác. Quá trình phát triển agent thường là một vòng lặp thử nghiệm, chỉnh sửa, và lặp lại. Làm thế nào để theo dõi tất cả những thay đổi này? Làm thế nào để quay lại phiên bản trước nếu có gì đó sai? Làm thế nào để làm việc nhóm hiệu quả?
Câu trả lời chính là Git.
Git Là Gì?
Git là một hệ thống kiểm soát phiên bản phân tán miễn phí và mã nguồn mở, được thiết kế để xử lý mọi thứ từ các dự án nhỏ đến rất lớn với tốc độ và hiệu quả.
Nói một cách đơn giản, Git giống như một “cỗ máy thời gian” cho code của bạn. Nó ghi lại các thay đổi bạn thực hiện theo từng “phiên” (gọi là commits), cho phép bạn xem lại lịch sử, so sánh các phiên bản, hoàn tác thay đổi và làm việc song song trên các tính năng khác nhau mà không ảnh hưởng đến phiên bản chính.
Tại Sao Git Cần Thiết Cho Phát Triển AI Agent?
- Theo Dõi Mã Nguồn: Ghi lại mọi thay đổi trong code của agent, từ logic vòng lặp agent đến cách nó sử dụng công cụ.
- Quản Lý Phiên Bản Mô Hình & Dữ Liệu: Mặc dù Git không lý tưởng cho các file rất lớn (như trọng số mô hình hàng GB), nhưng nó có thể theo dõi các script huấn luyện, cấu hình mô hình, và thậm chí là siêu dữ liệu về các tập dữ liệu đã sử dụng. Các công cụ như Git LFS (Large File Storage) có thể hỗ trợ quản lý các file lớn.
- Thử Nghiệm An Toàn: Bạn có thể tạo các “nhánh” (branches) để thử nghiệm các ý tưởng mới, tích hợp các công cụ khác nhau, hoặc tinh chỉnh prompt (Tinh chỉnh so với Kỹ thuật Prompt) mà không sợ làm hỏng code chính đang hoạt động.
- Cộng Tác Nhóm: Git cho phép nhiều nhà phát triển làm việc trên cùng một dự án một cách hiệu quả, hợp nhất các thay đổi một cách có cấu trúc và giải quyết xung đột.
- Triển Khai: Lịch sử Git giúp bạn dễ dàng triển khai các phiên bản agent cụ thể lên môi trường staging hoặc production.
Các Lệnh Git Cơ Bản
Đây là một số lệnh Git bạn sẽ sử dụng hàng ngày:
# Khởi tạo một kho lưu trữ Git mới trong thư mục hiện tại
git init
# Sao chép một kho lưu trữ hiện có từ xa
git clone <url>
# Thêm các thay đổi vào khu vực trung gian (staging area)
# Thêm một file cụ thể
git add <tên_file>
# Thêm tất cả các file đã thay đổi
git add .
# Ghi lại các thay đổi từ khu vực trung gian vào lịch sử
git commit -m "Lời nhắn mô tả thay đổi"
# Gửi các commit từ kho lưu trữ cục bộ lên kho lưu trữ từ xa (ví dụ: GitHub)
git push origin <tên_nhánh>
# Tải về các thay đổi từ kho lưu trữ từ xa và hợp nhất vào nhánh hiện tại
git pull origin <tên_nhánh>
# Tạo một nhánh mới
git branch <tên_nhánh_mới>
# Chuyển sang một nhánh khác
git checkout <tên_nhánh>
# (hoặc sử dụng `git switch <tên_nhánh>` trong các phiên bản Git mới hơn)
# Hợp nhất các thay đổi từ một nhánh khác vào nhánh hiện tại
git merge <tên_nhánh_cần_hợp_nhất>
# Xem trạng thái của kho lưu trữ (file nào đã thay đổi, đã thêm,...)
git status
# Xem lịch sử commit
git log
Học cách sử dụng thành thạo các lệnh này (và hiểu quy trình làm việc: Stage -> Commit -> Push/Pull) là bước đầu tiên quan trọng.
REST API: Cánh Cửa Để Agent Tương Tác Với Thế Giới
AI Agent không sống cô lập. Để trở nên thực sự hữu ích, chúng cần có khả năng truy cập thông tin từ bên ngoài, thực hiện các hành động trong thế giới thực (như gửi email, cập nhật cơ sở dữ liệu) hoặc giao tiếp với các dịch vụ khác. Đây chính là lúc API (Application Programming Interface) và cụ thể là REST API phát huy vai trò của mình.
Chúng ta đã nói về xây dựng công cụ cho agent. Rất nhiều “công cụ” mà agent sử dụng trên thực tế chính là việc gọi đến các API.
API Là Gì? REST API Là Gì?
API là một bộ quy tắc định nghĩa cách các ứng dụng phần mềm khác nhau giao tiếp với nhau. Nó giống như một “hợp đồng” giữa hai phần mềm.
REST (Representational State Transfer) là một tập hợp các nguyên tắc kiến trúc để thiết kế các API mạng, đặc biệt là qua giao thức HTTP. RESTful API là những API tuân thủ các nguyên tắc này. Chúng phổ biến vì tính đơn giản, khả năng mở rộng và dễ sử dụng.
Các Nguyên Tắc Chính Của REST (Trong Bối Cảnh Agent)
- Client-Server: Tách biệt giao diện người dùng (client – ở đây là agent của bạn) khỏi việc lưu trữ dữ liệu (server – dịch vụ mà agent tương tác).
- Stateless: Mỗi yêu cầu từ client đến server phải chứa tất cả thông tin cần thiết để server hiểu và xử lý yêu cầu đó. Server không lưu trữ trạng thái phiên của client giữa các yêu cầu. Điều này quan trọng cho agent, vì mỗi “lần gọi công cụ” thường là một tương tác độc lập.
- Cacheable: Phản hồi từ server có thể được đánh dấu là có thể cache được hoặc không, giúp cải thiện hiệu suất.
- Uniform Interface: Giao diện thống nhất giúp việc tương tác trở nên đơn giản và độc lập với từng dịch vụ cụ thể. Điều này bao gồm việc sử dụng các tài nguyên (resources) được xác định bằng URI (Uniform Resource Identifier) và sử dụng các phương thức HTTP chuẩn.
Các Thành Phần Chính Của REST API
- Resource (Tài Nguyên): Bất kỳ thứ gì có thể được truy cập thông qua API (ví dụ: người dùng, sản phẩm, bài viết, hoặc trong bối cảnh AI agent: thông tin thời tiết, kết quả tìm kiếm, trạng thái đơn hàng…). Tài nguyên được xác định bằng một URI duy nhất, ví dụ:
/users/{id}
,/products
,/weather?city=Hanoi
. - HTTP Methods (Phương Thức HTTP): Các hành động mà bạn có thể thực hiện trên tài nguyên. Các phương thức phổ biến nhất là:
GET
: Lấy dữ liệu từ tài nguyên. (Agent: Lấy thông tin thời tiết, truy xuất dữ liệu từ cơ sở kiến thức qua API)POST
: Tạo một tài nguyên mới hoặc gửi dữ liệu để xử lý. (Agent: Gửi yêu cầu tạo đơn hàng, gửi tin nhắn, upload dữ liệu)PUT
: Cập nhật toàn bộ tài nguyên. (Agent: Cập nhật profile người dùng, thay đổi cấu hình)DELETE
: Xóa tài nguyên. (Agent: Xóa một mục khỏi danh sách, hủy bỏ một tác vụ)
- Headers (Tiêu Đề): Cung cấp siêu dữ liệu về yêu cầu hoặc phản hồi (ví dụ: loại nội dung, thông tin xác thực – API key/Token, cache control).
- Body (Thân Yêu Cầu/Phản Hồi): Chứa dữ liệu thực tế được gửi trong yêu cầu (đối với POST/PUT) hoặc nhận được trong phản hồi. Định dạng dữ liệu phổ biến nhất hiện nay là JSON (JavaScript Object Notation).
- Status Codes (Mã Trạng Thái): Các mã số 3 chữ số trong phản hồi HTTP cho biết kết quả của yêu cầu (ví dụ: 200 OK, 404 Not Found, 500 Internal Server Error).
Ví dụ về cách một AI Agent có thể tương tác với REST API:
# Agent muốn lấy thông tin giá cổ phiếu của GOOG
GET /stocks/GOOG/price HTTP/1.1
Host: api.stockservice.com
Authorization: Bearer YOUR_API_KEY
Accept: application/json
# Server phản hồi
HTTP/1.1 200 OK
Content-Type: application/json
{
"symbol": "GOOG",
"price": 155.78,
"timestamp": 1678886400
}
Agent của bạn sẽ cần biết cách xây dựng các yêu cầu HTTP (URI, method, headers, body) và phân tích phản hồi (status code, headers, body – thường là JSON) để trích xuất thông tin cần thiết.
Bảng Tóm Tắt Cơ Bản
Để giúp bạn dễ hình dung hơn, đây là bảng tóm tắt nhanh về các lệnh Git cơ bản và phương thức REST HTTP:
Khái Niệm | Git Command (Mục Đích) | REST HTTP Method (Mục Đích) |
---|---|---|
Khởi tạo/Truy cập | git init (Bắt đầu theo dõi dự án)git clone (Lấy bản sao dự án) |
Không có lệnh tương đương trực tiếp, nhưng là điểm bắt đầu để gửi yêu cầu tới một dịch vụ |
Thêm/Ghi lại | git add (Đưa thay đổi vào “khu vực chuẩn bị”)git commit (Lưu lại các thay đổi đã chuẩn bị) |
POST (Thường dùng để tạo tài nguyên mới) |
Lấy dữ liệu | git pull (Tải về và hợp nhất thay đổi từ xa)git log (Xem lịch sử thay đổi) |
GET (Lấy thông tin về tài nguyên hiện có) |
Cập nhật | git merge (Hợp nhất thay đổi từ nhánh khác) |
PUT (Cập nhật toàn bộ tài nguyên hiện có)PATCH (Cập nhật một phần tài nguyên hiện có – ít phổ biến hơn cho người mới bắt đầu) |
Xóa | Không có lệnh Git cơ bản để “xóa commit” theo cách tương tự REST DELETE (có git revert hoặc git reset nhưng phức tạp hơn và mục đích khác) |
DELETE (Xóa tài nguyên) |
Phối hợp/Đồng bộ | git push (Gửi thay đổi lên kho lưu trữ từ xa)git pull (Tải về và hợp nhất thay đổi từ xa) |
Các API cho phép các hệ thống khác nhau trao đổi dữ liệu, tạo ra sự đồng bộ gián tiếp thông qua các hoạt động trên tài nguyên. |
Sử Dụng Git và REST API Trong Thực Tế Với AI Agent
Khi xây dựng AI Agent, bạn sẽ:
- Sử dụng Git để quản lý code Python (hoặc ngôn ngữ khác) của agent. Mỗi khi bạn thêm một công cụ mới, cải thiện logic suy luận, hoặc tích hợp một LLM khác (Lựa chọn LLM phù hợp), bạn sẽ sử dụng
git add
vàgit commit
để ghi lại thay đổi đó. Nếu làm việc nhóm,git pull
vàgit push
là không thể thiếu. Bạn sẽ tạo các nhánh mới (git branch
,git checkout
) để thử nghiệm các ý tưởng hoặc tính năng độc lập. - Agent của bạn sẽ sử dụng các thư viện HTTP (như
requests
trong Python) để gửi các yêu cầu REST API tới các dịch vụ bên ngoài. Ví dụ:- Gọi API thời tiết để lấy thông tin khí hậu hiện tại (
GET
). - Gọi API tìm kiếm để truy vấn web (
GET
). - Gọi API của một hệ thống quản lý dự án để tạo một task mới (
POST
). - Gọi API cơ sở dữ liệu vector để tìm kiếm thông tin liên quan (Giới thiệu về Embeddings và Tìm kiếm Vector, RAG) (thường là
POST
hoặcGET
tùy thiết kế API).
- Gọi API thời tiết để lấy thông tin khí hậu hiện tại (
- Nếu bạn đang xây dựng một dịch vụ mà các agent khác (hoặc người dùng) có thể tương tác, bạn sẽ cần thiết kế và triển khai REST API cho dịch vụ đó.
Ví Dụ Code Python Sử Dụng REST API
Đây là một ví dụ đơn giản về cách một agent (viết bằng Python) có thể sử dụng thư viện requests
để gọi một REST API dummy:
import requests
import json
# URL của API dummy (thay thế bằng API thật khi phát triển)
# Sử dụng một placeholder API công khai như JSONPlaceholder hoặc ReqRes để thử nghiệm
BASE_URL = "https://jsonplaceholder.typicode.com"
# Ví dụ 1: Lấy danh sách bài viết (GET)
def get_posts():
endpoint = f"{BASE_URL}/posts"
try:
response = requests.get(endpoint)
# Kiểm tra mã trạng thái HTTP
response.raise_for_status() # Ném ngoại lệ cho mã lỗi 4xx/5xx
print(f"GET {endpoint} - Status: {response.status_code}")
posts = response.json()
# Agent sẽ xử lý dữ liệu JSON nhận được
print(f"Fetched {len(posts)} posts. First post title: {posts[0]['title']}")
return posts
except requests.exceptions.RequestException as e:
print(f"Error fetching posts: {e}")
return None
# Ví dụ 2: Tạo một bài viết mới (POST)
def create_post(title, body, userId):
endpoint = f"{BASE_URL}/posts"
# Dữ liệu gửi đi thường dưới dạng dictionary Python, thư viện requests sẽ chuyển thành JSON
new_post_data = {
"title": title,
"body": body,
"userId": userId,
}
headers = {
"Content-Type": "application/json" # Thông báo cho server biết định dạng dữ liệu
}
try:
# Sử dụng json= thay vì data= để tự động serialize dictionary thành JSON
response = requests.post(endpoint, json=new_post_data, headers=headers)
response.raise_for_status()
print(f"POST {endpoint} - Status: {response.status_code}")
created_post = response.json()
print(f"Created post with ID: {created_post['id']}")
return created_post
except requests.exceptions.RequestException as e:
print(f"Error creating post: {e}")
return None
# Agent gọi các hàm này như các "công cụ"
if __name__ == "__main__":
print("--- Calling GET request ---")
all_posts = get_posts()
if all_posts:
# Agent có thể sử dụng thông tin này làm ngữ cảnh hoặc ra quyết định
pass # Do something with posts
print("\n--- Calling POST request ---")
new_article_title = "AI Agent Interaction Test"
new_article_body = "This is a test post created by an AI agent."
agent_user_id = 1 # Dummy user ID
created = create_post(new_article_title, new_article_body, agent_user_id)
if created:
# Agent biết rằng bài viết đã được tạo thành công
pass # Do something after successful creation
Trong ví dụ trên, agent sử dụng thư viện requests
để hoạt động như một REST client, gửi các yêu cầu GET
và POST
tới một dịch vụ web (dummy). Hiểu cách hoạt động của các yêu cầu/phản hồi HTTP và định dạng dữ liệu (JSON) là cực kỳ quan trọng để agent có thể sử dụng hiệu quả các công cụ dựa trên API.
Kết Luận
Mặc dù sự hấp dẫn của AI Agent thường nằm ở khả năng suy luận của LLM, bộ nhớ hay việc sử dụng công cụ, nhưng đừng quên những nền tảng cơ bản của phát triển phần mềm. Git giúp bạn quản lý sự phức tạp và cộng tác hiệu quả trong quá trình xây dựng agent, trong khi REST API mở ra cánh cửa để agent tương tác với thế giới kỹ thuật số rộng lớn. Nắm vững hai khái niệm này là bước đệm vững chắc trên con đường trở thành một nhà phát triển AI Agent chuyên nghiệp.
Hãy bắt đầu thực hành sử dụng Git ngay hôm nay cho các dự án code của bạn và làm quen với việc gọi các REST API công khai. Đây là những kỹ năng sẽ phục vụ bạn rất nhiều trong suốt hành trình khám phá AI Agent Roadmap. Hẹn gặp lại trong các bài viết tiếp theo khi chúng ta tiếp tục đi sâu vào thế giới thú vị của AI Agent!