Hướng dẫn sử dụng AI Agent Builder của Postman
24 Jan, 2025
Hướng nội
AuthorPostman AI Agent Builder là một công cụ giúp developers dễ dàng tạo, kiểm thử và triển khai AI Agent bằng cách tận dụng các API có sẵn

Mục Lục
1. Postman AI Agent Builder là gì?
Postman AI Agent Builder là một công cụ giúp developers dễ dàng tạo, kiểm thử và triển khai AI Agent bằng cách tận dụng các API có sẵn. Công cụ này giúp tự động hóa quy trình làm việc, tối ưu hiệu suất và giảm bớt công việc thủ công phức tạp.

Công dụng của Postman AI Agent Builder:
- Tích hợp API nhanh chóng: Giúp AI Agent kết nối và làm việc với các dịch vụ khác thông qua API, hỗ trợ các nền tảng như OpenAI, Gemini, Claude, v.v.
- Testing hiệu quả: Cung cấp các công cụ kiểm thử và đánh giá performance của AI agents để đảm bảo chúng hoạt động đúng như mong đợi.
- Giao diện trực quan: Sử dụng Postman Flows – một công cụ no-code cho phép kéo thả để thiết lập workflows một cách dễ dàng mà không cần code phức tạp.
Postman còn dự định cho ra mắt Agent Hosting, mình nghĩ cái này thì không còn xa lạ với anh em developer, chúng ta sẽ có thể tạo ra Agent trên hạ tầng của Postman luôn, không biết mức phí sẽ như thế nào đây.
Sau đây là cảm nhận cá nhân của mình khi sử dùng AI Agent Builder của Postman:
- Giao diện Flow khá thân thiện và dễ dùng, mình hoàn toàn có thể tự thực hành mà không cần nhiều chỉ dẫn.
- Postbot hầu như không thể tạo các bước trong Flow theo yêu cầu, mình nghĩ Postman sẽ phát triển mạnh Postbot trong tương lai, tạo ra flow hoàn chỉnh từ prompt của người dùng.
- Flow vẫn còn khá cơ bản, không cho phép upload dữ liệu document lên và cũng không có dịch vụ lưu trữ, mà phải gọi API của Vector Database, việc này rất quan trọng vì thường các Agent sẽ cần được train từ dữ liệu của tổ chức để có thể làm giàu knowledge base. Nhưng không sao trong Demo này mình sẽ hướng dẫn các bạn các bước đơn giản để tạo Vector Database với Docker.
- Điểm trừ lớn nhất là chỉ có 50 lượt Run miễn phí mà thôi, cái này chắc dùng được trong một project là hết rồi.
- Điểm cộng mà mình thấy là trước đây mình hay sử dụng LangChain hay LangGraph để build AI Agent, các câu lệnh khá đơn giản, chỉ với vài dòng code vì thư viện đã làm hết rồi, nhưng khi làm việc với Postman mình buộc phải convert tất cả sang REST API, tuy viết nhiều code hơn nhưng mình có thể dễ dàng giải thích nó cho các bạn Developer không có kiến thức về Machine Learning.
2. Hướng dẫn sử dụng AI Agent Builder
Truy cập vào trang chủ của Postman hoặc ứng dụng Postman trên máy tính và chọn workspace phù hợp, nếu bạn chưa có tài khoản hay workspace trước đó thì nhớ tạo mới nhé.
2.1 Kiểm thử và điều chỉnh phản hồi của LLM
Postman vừa giới thiệu AI Protocol, một protocol mới bên cạnh HTTP, gRPC, GraphQL, ... giúp developers dễ dàng tích hợp các mô hình ngôn ngữ lớn (LLMs) như GPT-4, Claude, và Gemini vào quy trình phát triển thông qua API.
- Bước 1: Chọn dấu
+
để tạo mới 1 request, sau đó chọn vào Icon ở phía bên trái ngoài cùng của request để điều chỉnh lại cho đúng là AI Protocol (hình 2).


- Bước 2: Nhập API Key của Open AI vào phần Auth credentials (hình 1 bên trên) nằm ở tab
Authorization
. - Bước 3: Chọn mô hình LLM mà bạn muốn test, ở đây mình sẽ dùng GPT-4o, sau đó mình nhập câu prompt và chọn
Send
request. Như các bạn cũng biết Open AI sẽ tính tổng số lượng token mà chúng ta sử dụng bằng số token Input + Output, số token này hiển thị ở góc bên phải của response như hình 1, tổng cộng mình dùng hết 156 token.


- Bước 4: Cài đặt các Setting cần thiết, để không muốn tốn quá nhiều token mình sẽ set lại
Max Tokens
của response lại là 50, các bạn có thể điều chỉnh các thông số khác cho phù hợp nhé.
2.2 Tạo Flow đơn giản trong Postman
Postman Flows giúp bạn tạo ra các chuỗi hành động tự động một cách dễ dàng. Bạn có thể hình dung nó như một trò chơi xếp hình, nơi bạn kết nối các khối lại với nhau để thực hiện các tác vụ liên quan đến API.
Nhưng điều đặt biệt của Flows là gì ?, đó chính là khả năng tích hợp với API của rất nhiều khách hàng, đối tác của họ và giao diện no-code/low-code, bạn chỉ cần kéo thả các template API có sẵn trong Postman, hoặc API từ workspace của mình và tạo ra một flow hoàn chỉnh chỉ với vài cú nhấp chuột.
Đơn giản đến mức Tester cũng có thể sử dụng nó dễ dàng, khi có một ý tưởng nảy ra trong đầu, bạn không cần phải code ngay lập tức mà có thể dùng Flows để kiểm tra tính khả thi hoặc demo.
Bây giờ hãy cùng mình thiết kế một Flow đơn giản là lấy về top headlines từ techcrunch nhé.
- Bước 1: Click vào Flow ở Menu bên trái và chọn
+
để tạo mới Flow, trên màn hình sẽ hiểu thị chúng ta được run 50 lược Flow (Free Plan).


- Bước 2: Sau khi tạo mới Flow, bạn sẽ thấy một giao diện giống hình 1, chỉ có một Trigger Start Step, đây là bước khởi điểm, bạn cứ để nguyên ấy nhé, kế đến bạn click vào
Send a request
. Ở khung API bạn có thể search bất kì API nào mà Postman có sẵn hoặc chọn API trong workspace, ở đây mình dùng API có tên như hình số 2 bên dưới nhé.



- Bước 3: Rê chuột đến góc bên phải chữ Success của bước thứ 2 (hình 3 bên trên) bạn sẽ thấy có một hình tròn màu xám xuất hiện, giữ chuột vào hình màu xám đó và kéo về phía bên phải, bất kì đâu trong màn hình flow. Gõ chữ
Display
vào khung và nhấn phím Enter (API trong hai màn hình dưới không chính xác, sẽ bị lỗi nên các bạn lưu ý chọn giống mình ở trên nha).


- Bước 4: Chọn nút Run màu cam ở bên dưới Flow và bạn sẽ thấy kết quả như hình bên dưới.

- Bước 5: Nếu bạn muốn kiểm tra API đang sử dụng được viết như thế nào thì chọn nút mũi tên đi lên ngay phải tên API ở bước số 2 trong Flow.

2.3 Tạo Flow Lưu trữ Dữ liệu vào Vector Database và Tạo câu trả lời với LLM của OpenAI
Các bạn cần chuẩn bị những gì cho phần này: Biết sử dụng Postman cơ bản như set biến môi trường, parameter, input variable, ở phần demo này các bạn dùng app Postman nhé, do cần phải gọi tới service local trên máy.
Trước khi bắt đầu chúng ta cần ôn lại kiến thức một chút xíu vì theo mình bài Lab này khá là khó, bài lab rất quen thuộc, mình có một tập dữ liệu của công ty và mình muốn hỏi các câu hỏi liên quan đến dữ liệu này:
- Vì sao lại cần Vector Database ? Chúng ta toàn toàn biết là "con chó" tương tự như "con cún" vậy máy có biết không, nó không biết, nhưng nó sẽ biết là vector chó và cún ở gần nhau tức là có tính tương đồng (similarity) cao. Đó chính là lí do vì sao chúng ta cần gọi API embedding của OpenAI hay các mô hình LLM khác để biến đoạn văn bản từ document của công ty thành vector và lưu chúng vào Vector Database.
- Các mô hình LLM này được train trên một tập dữ liệu khổng lồ nên nó sẽ có khả năng nhận biết điều này, còn mô hình train trên dữ liệu ít thì ... thôi nhé. Khi người dùng đặt câu hỏi, mình cần phải embedding câu hỏi đó thành vector và so khớp nó với vector database, việc so khớp này vector database sẽ làm nhé các bạn. Sau khi so khớp nó sẽ trả ra các đoạn text (original text) và OpenAI sẽ dùng các đoạn text này làm đầu vào và trả lời câu hỏi của chúng ta.
- Bước embedding giúp chúng ta không phải lăn tăn về bài toán so khớp từ, phở gà và phở bò không tương tự nhau vì nó có từ phở, vì thế trong không gian vector chúng sẽ không gần nhau.
Giờ thì bắt đầu luôn thôi, mình thấy bài lab này rất khó ấy các bạn, nhưng cố gắng nhé, vì nếu các bạn dùng Langchain, các bạn có thể sẽ không hiểu nó đang làm gì và không thể tự code lại bằng REST API được.
2.3.1 Tạo Flow lưu trữ Dữ liệu vào Vector Database

- Bước 1: Khởi chạy container chromadb bằng câu lệnh sau
docker run -d --name chromadb -p 8000:8000 chromadb/chroma
- Bước 2: Tạo biến đầu vào tên là document, để chứa thông tin tài liệu, để đơn giản mình làm 1 tài liệu demo thôi nhé. Sau đó click vào dấu mũi tên bên cạnh nút Run, điều chỉnh nội dung của biến document như đoạn text bên dưới, các bạn có thể tạo nhiều ngữ cảnh (input đầu vào) và chọn sẽ run ngữ cảnh nào nhé.


Hiện tại 200Lab có các khóa học sau: DevOps, Backend, Frontend với giá lần lượt là 10$, 20$, và 30$ ở hình thức học Online. Offline thì cộng thêm 10$ trên giá Online, Các hình thức thanh toán bao gồm: thẻ tín dụng, chuyển khoản và trả góp
- Bước 3: Tạo mới collection trên ChromaDB để lưu vector embedding nhận lại từ OpenAI, các bạn mở Terminal hoặc Postman và chạy câu lệnh sau. Lưu ý, giữ lại Collection ID ở phần response để dùng cho các bước tiếp theo.
curl --location 'http://localhost:8000/api/v1/collections' \
--header 'Content-Type: application/json' \
--data '{
"name": "200lab_courses",
"embedding_function": "openai",
"metadata": {
"description": "Courses at 200Lab Academy"
}
}
'
- Bước 4: Tạo Environment và thêm vào biến
openai_api_key=your_key
,embedding_model=text-embedding-ada-002
như hình.

- Bước 5: Tạo mới một request có nội dung như sau, các bạn chọn chức năng import request trên Postman nha. Như mình đã giải thích, đoạn API này có nhiệm vụ biến đoạn document thành một vector embedding.
curl --location 'https://api.openai.com/v1/embeddings' \
--header 'Content-Type: application/json' \
--header 'Authorization: {{openai_api_key}}' \
--data '{
"input": "{{textString}}",
"model": "{{embedding_model}}"
}'
- Bước 6: Nhấn giữ chuộc trái và kéo hình tròn màu xám bên cạnh input về bên phải, sau đó thả chuột ra, sẽ giúp các bạn setup Step số 2, chọn HTTP Request vừa mới tạo ở trên, chọn environment như đã tạo ở trên. Giữ chuột vào kéo document vào làm input cho variable
textString
như hình dưới.

- Bước 7: Tạo mới Request và lưu lại trong Postman như đoạn code bên dưới, các bạn thay đoạn uuid của mình bằng collection_id đã tạo ở bước trên nha.
curl --location 'http://localhost:8000/api/v1/collections/7b8ec967-a232-42fd-ac76-4e427efd143b/upsert' \
--header 'Content-Type: application/json' \
--data '{
"ids": ["1"],
"embeddings":
[{{input_embedding}}]
,
"metadatas": [],
"documents": [
"{{input_text}}"
]
}
'
- Bước 8: Tạo step tiếp theo từ Success của steo trước đó, các bạn chọn HTTP Request vừa mới tạo ở trên nha. Giữ chuột kéo Success vào nút Send và input_imbedding, quay trở lại step đầu tiên kéo document vào input_text, trên hình có bao nhiêu đoạn nối các bạn làm giống mình thì mới chạy được nhé, đoạn mapping dữ liệu tự Success của bước trước vào input_imbedding là
body.data.0.embedding
, phần này không khó hiểu, nó chính là dữ liệu trả về từ API embedding của OpenAI, mình map vào variable cho step này.

2.3.2 Tạo Flow hỏi đáp với LLM


Tạo Flow hỏi đáp với LLM
Trong bước này mình sẽ input câu hỏi sau vào ngữ cảnh (scenario) của nút Run, cái này mình hướng dẫn ở bước trước rồi nha.
Có những khoá học nào tại 200Lab
- Bước 1: Tạo 1 input đầu vào là question, kéo nó đến bước HTTP Request tiếp theo sao cho nó khớp với input textString như hình (bước này y chang flow trước đó), chúng ta cũng cần phải embedding câu hỏi lại và sau đó so lấy ra các document tương tự từ Vector Database.

- Bước 2: Tạo Request trong Postman để nhận input là vector câu hỏi và trả về Document tương tự trong ChromaDB
curl --location 'http://localhost:8000/api/v1/collections/7b8ec967-a232-42fd-ac76-4e427efd143b/query' \
--header 'Content-Type: application/json' \
--data '{
"query_embeddings":
[{{input_embedding}}],
"n_results": 5
}'
- Bước 3: Tạo Step thứ 3 từ Success của step trước và chọn HTTP Request vừa mới tại ở trên, kéo thêm 1 lần success nữa để map vào đầu vào cho input_imbedding, tổng cộng có 2 mối quan hệ như hình. Phần dữ liệu mapping các bạn vẫn chọn
body.data.0.embedding
.

- Bước 4: Tạo mới API hỏi đáp với OpenAI trong Postman như sau,
{{context}}
tương đương với document bằng text thông thường trả ra từ ChromaDB tương đồng với câu hỏi input đầu vào,{{query}}
là đoạn câu hỏi bằng text chúng ta đưa vào ban đầu của flow (question).
curl --location 'https://api.openai.com/v1/chat/completions' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer {{openai_api_key}}' \
--data '{
"model": "gpt-4",
"messages": [
{
"role": "system",
"content": "Bạn là trợ lý hỗ trợ thông tin khóa học tại 200Lab."
},
{
"role": "user",
"content": "Context: {{context}}\nUser: {{query}}"
}
],
"max_tokens": 500
}
'
- Bước 5: Tạo step mới từ Success của step trước và chọn API vừa mới tạo, kéo thêm một lần success nữa vào input
context
, quay trở lại bước đầu tiên, kéoquestion
nối vào làm input đầu vào cho query,openai_api_key
sẽ tự được fill vào từ environment.

- Bước 6: Run toàn bộ flow, và đây là kết quả mà mình đạt được.

3. Kết luận
Sau khi trả nghiệm AI Agent Builder của Postman mình khá là thích vì tất cả được quy chuẩn về REST API, một Protocol thông dụng mà mình nghĩ ai cũng có thể hiểu được, giúp kéo dần khoản cách giữa developer và kiến thức xung quanh AI. Tuy nhiên phần giới hạn 50 lượt chạy làm mình cảm thấy hơi hụt hẫng, nhưng không sao hy vọng Postman sẽ có thể tăng số lượng Run hoặc reset theo tháng trong tương lai.
Các bài viết liên quan:
Bài viết liên quan
Lập trình backend expressjs
xây dựng hệ thống microservices- Kiến trúc Hexagonal và ứng dụng
- TypeScript: OOP và nguyên lý SOLID
- Event-Driven Architecture, Queue & PubSub
- Basic scalable System Design