DEV Community

Cover image for Tại sao khả năng tương thích CI/CD là điều kiện bắt buộc cho các công cụ Agent
Sebastian Petrus
Sebastian Petrus

Posted on • Originally published at apidog.com

Tại sao khả năng tương thích CI/CD là điều kiện bắt buộc cho các công cụ Agent

Đây là phần 8 trong loạt 10 bài về cách Apidog phát triển Apidog CLI: công cụ dòng lệnh để kiểm thử API và quản lý vòng đời API. Bạn có thể đọc tuần tự hoặc mở trực tiếp phần phù hợp với nhu cầu triển khai của mình.

Dùng thử Apidog ngay hôm nay


Khả năng thân thiện với Agent nên được xây dựng trên nền tảng đã phục vụ tốt cho CI/CD. Trong bài này, chúng ta xem cách apidog run phục vụ cùng lúc CI pipelines, scripts, con người và AI Agents.

Vấn đề: một CLI phải phục vụ nhiều đối tượng

Khi xây dựng công cụ cho AI Agent, rất dễ chỉ tối ưu cho trải nghiệm đàm thoại: Agent gọi lệnh, đọc kết quả, rồi quyết định bước tiếp theo.

Nhưng với một CLI kỹ thuật, đó chưa đủ.

Apidog CLI vẫn phải phục vụ một đối tượng quan trọng: CI/CD.

Đối tượng ban đầu Đối tượng mới
CI/CD pipelines AI Agents
Hệ thống lập lịch bên ngoài Quy trình làm việc đàm thoại
Scripts và tự động hóa Các tác vụ do người dùng điều khiển

Nhiều nhóm đã dùng Apidog trong pipeline để:

  • Chạy kiểm thử API tự động
  • Tạo báo cáo kiểm thử
  • Duy trì cổng chất lượng trước khi triển khai

Các kịch bản này cần CLI có hành vi ổn định:

Yêu cầu Tại sao quan trọng
Đầu ra ổn định Script có thể phân tích kết quả dự đoán được
Lệnh có thể lập trình Có thể chạy tự động trong CI
Mã thoát rõ ràng Pipeline biết khi nào pass/fail
Tham số có thể cấu hình Chạy theo môi trường, scenario, báo cáo khác nhau

Tự động hóa CI không nên bị phá vỡ chỉ để thêm hỗ trợ cho Agents.


Nguyên tắc thiết kế

Khả năng thân thiện với Agent phải được xây dựng trên nền tảng khả năng thân thiện với CI/CD.

Thay vì tạo một giao thức riêng chỉ dành cho AI, Apidog CLI mở rộng nền tảng CLI hiện có bằng:

  • Đầu ra có cấu trúc
  • Schema để xác thực
  • Gợi ý bước tiếp theo cho Agent
  • Cùng một cơ chế chạy kiểm thử đã dùng trong CI

Một CLI tốt trong kỷ nguyên Agent nên phục vụ được bốn nhóm người dùng:

Người dùng Họ cần gì
Con người Output dễ đọc, help text, tương tác trực tiếp
Scripts Output ổn định, tham số rõ ràng
CI pipelines Mã thoát, báo cáo, cấu hình môi trường
AI Agents JSON có cấu trúc, lỗi có ngữ cảnh, hướng dẫn bước tiếp theo

Lệnh cốt lõi: apidog run

Nền tảng của quy trình là lệnh:

apidog run --project <projectId> \
  --test-scenario <scenarioId> \
  --environment <environmentId> \
  -r "cli,html,junit" \
  --out-dir ./apidog-reports
Enter fullscreen mode Exit fullscreen mode

Lệnh này có thể được dùng trong:

  • Terminal của developer
  • GitHub Actions
  • Jenkins/GitLab CI/CircleCI/Azure DevOps
  • Script nội bộ
  • Workflow do AI Agent điều khiển

Điểm quan trọng là: không cần một lệnh riêng cho Agent và một lệnh riêng cho CI.


Cách dùng trong CI/CD

Trong CI, điều quan trọng không phải là output “đẹp”, mà là output có thể tự động xử lý.

Yêu cầu CI Cách CLI đáp ứng
Mã thoát 0 cho pass, 1 cho fail
Tệp báo cáo HTML, JUnit, JSON trong --out-dir
Tham số ổn định Các option nhất quán giữa các lần chạy
Chạy theo cấu hình Scenario, environment, số lần lặp, độ trễ request

Ví dụ GitHub Actions:

# GitHub Actions
- name: Chạy Kiểm thử API
  run: |
    apidog run --project $PROJECT_ID \
      --test-scenario $SCENARIO_ID \
      --environment $ENV_ID \
      -r "junit" \
      --out-dir ./reports
  env:
    PROJECT_ID: ${{ secrets.APIDOG_PROJECT_ID }}
    SCENARIO_ID: ${{ secrets.APIDOG_SCENARIO_ID }}
    ENV_ID: production

- name: Công bố Báo cáo Kiểm thử
  uses: mikepenz/action-junit-report@v3
  with:
    report_paths: './reports/junit.xml'
Enter fullscreen mode Exit fullscreen mode

Quy trình xử lý trong CI thường là:

  1. Pipeline gọi apidog run
  2. CLI chạy scenario kiểm thử API
  3. CLI ghi báo cáo vào ./reports
  4. Pipeline đọc mã thoát
  5. Nếu fail, pipeline dừng hoặc đánh dấu build thất bại
  6. Báo cáo JUnit được công bố để developer kiểm tra

CI chỉ cần một hợp đồng rõ ràng: mã thoát + báo cáo.


Cách dùng trong workflow của Agent

Agent cần nhiều ngữ cảnh hơn CI. Một pipeline chỉ cần biết pass/fail, nhưng Agent cần biết:

  • Bước nào thất bại
  • Lỗi cụ thể là gì
  • Response liên quan là gì
  • Nên làm gì tiếp theo
Yêu cầu của Agent Cách CLI đáp ứng
Kết quả có cấu trúc Output JSON với đối tượng dữ liệu rõ ràng
Lý do thất bại Chi tiết lỗi trong object error hoặc danh sách failure
Gợi ý bước tiếp theo agentHints.nextSteps
Xác thực trước khi ghi cli-schema validate

Ví dụ output mà Agent có thể đọc:

{
  "success": true,
  "stats": {
    "total": 10,
    "passed": 8,
    "failed": 2
  },
  "failures": [
    {
      "step": "Xử lý thanh toán",
      "error": "Xác nhận thất bại: status != 'success'",
      "response": {
        "status": "failed",
        "message": "Payment provider rejected request"
      }
    }
  ],
  "agentHints": {
    "summary": "2 bài kiểm thử thất bại. Xem lại chi tiết lỗi.",
    "nextSteps": [
      "Gỡ lỗi bước 'Xử lý thanh toán' bị lỗi.",
      "Kiểm tra xác nhận: trạng thái mong muốn là 'success'.",
      "Cập nhật trường hợp kiểm thử hoặc endpoint sau khi sửa lỗi."
    ]
  }
}
Enter fullscreen mode Exit fullscreen mode

Một Agent có thể xử lý output này theo luồng:

  1. Parse JSON từ CLI
  2. Kiểm tra success
  3. Nếu có failure, đọc failures
  4. Đọc agentHints.nextSteps
  5. Sửa test case, endpoint hoặc dữ liệu kiểm thử
  6. Chạy lại apidog run để xác minh

Agent không chỉ cần biết kiểm thử thất bại. Nó cần biết nên điều tra ở đâu.


Cùng một lệnh, nhiều cách tiêu thụ kết quả

Ví dụ lệnh tối giản:

apidog run --project <projectId> --out-dir ./apidog-reports
Enter fullscreen mode Exit fullscreen mode

Các đối tượng khác nhau sẽ lấy thông tin khác nhau từ cùng một lần chạy:

Người dùng Điều họ trích xuất
CI pipeline Mã thoát 0/1, đường dẫn báo cáo
Agent JSON output, agentHints, chi tiết lỗi
Con người Console output, báo cáo HTML
Script Stdout/stderr, file output, format cấu hình được

Điểm thiết kế quan trọng: CLI không cần đoán ai đang gọi nó.

Thay vào đó, CLI cung cấp các primitive ổn định:

  • Lệnh rõ ràng
  • Tham số rõ ràng
  • Exit code rõ ràng
  • Report file rõ ràng
  • Output có thể đọc bởi máy

Điểm tích hợp CI/CD

Apidog CLI có thể tích hợp với các hệ thống CI phổ biến bằng cùng một nền tảng apidog run.

Công cụ CI Cách tích hợp
Jenkins Pipeline steps, công bố báo cáo
GitLab CI YAML config, artifacts
GitHub Actions Workflow steps, secrets
CircleCI Workflow config
Azure DevOps Pipeline tasks, test results

Ví dụ cấu trúc chung trong hầu hết CI:

apidog run --project "$PROJECT_ID" \
  --test-scenario "$SCENARIO_ID" \
  --environment "$ENV_ID" \
  -r "junit,html" \
  --out-dir ./apidog-reports
Enter fullscreen mode Exit fullscreen mode

Sau đó CI có thể:

  • Upload ./apidog-reports làm artifact
  • Đọc JUnit report
  • Dừng deployment nếu exit code khác 0
  • Gửi notification cho team

Cổng chất lượng CI và xác minh của Agent

Cùng một lệnh có thể phục vụ hai mục đích khác nhau.

Trường hợp sử dụng Ý nghĩa
Cổng chất lượng CI Pass/fail quyết định pipeline có được đi tiếp hay không
Xác minh Agent Chạy sau khi Agent tạo hoặc sửa kiểm thử để xác nhận kết quả
Ngữ cảnh Khi sử dụng Mục đích
CI Sau khi push code Ngăn mã lỗi được triển khai
Agent Sau khi tạo/sửa kiểm thử Xác nhận công việc của Agent là đúng

Ví dụ:

# CI dùng để chặn deployment nếu API test fail
apidog run --project "$PROJECT_ID" \
  --test-scenario "$SCENARIO_ID" \
  --environment production \
  -r "junit" \
  --out-dir ./reports
Enter fullscreen mode Exit fullscreen mode
# Agent dùng để xác minh sau khi chỉnh sửa test scenario
apidog run --project "$PROJECT_ID" \
  --test-scenario "$SCENARIO_ID" \
  --environment staging \
  -r "cli,json" \
  --out-dir ./agent-verification
Enter fullscreen mode Exit fullscreen mode

Cả hai đều dùng apidog run, nhưng mục tiêu vận hành khác nhau:

  • CI bảo vệ pipeline
  • Agent xác minh hành động vừa thực hiện

Kiến trúc nền tảng

Các tính năng dành cho Agent như cli-schema, agentHints, SKILL không thay thế nền tảng CI/CD. Chúng được xây trên nền đó.

┌─────────────────────────────────────────┐
│          Tính năng của Agent             │
│  (cli-schema, agentHints, SKILL)        │
├─────────────────────────────────────────┤
│          Nền tảng CI/CD                 │
│  (apidog run, mã thoát, báo cáo)        │
├─────────────────────────────────────────┤
│          CLI cốt lõi                    │
│  (lệnh, tham số, thực thi)              │
└─────────────────────────────────────────┘
Enter fullscreen mode Exit fullscreen mode

Cách nhìn thực tế:

  1. CLI cốt lõi cung cấp lệnh và tham số
  2. CI/CD dựa vào exit code và report
  3. Agent dùng thêm output có cấu trúc và hint
  4. Tất cả cùng dùng một execution path

Tính năng Agent nên mở rộng tính năng CI, không phá vỡ hoặc thay thế chúng.


Checklist khi thiết kế CLI thân thiện với CI và Agent

Nếu bạn đang xây CLI cho workflow tương tự, hãy kiểm tra các điểm sau:

  • [ ] Lệnh có thể chạy không cần tương tác không?
  • [ ] Có exit code rõ ràng cho pass/fail không?
  • [ ] Có thể ghi báo cáo ra thư mục được chỉ định không?
  • [ ] Có format output dành cho máy đọc không?
  • [ ] Có giữ ổn định tên option giữa các phiên bản không?
  • [ ] Có thể chạy theo environment khác nhau không?
  • [ ] Agent có đủ thông tin để hiểu lỗi không?
  • [ ] Agent có biết bước tiếp theo nên làm gì không?
  • [ ] CI có thể dùng cùng lệnh mà không cần logic đặc biệt không?

Nếu câu trả lời là “có”, CLI của bạn không chỉ thân thiện với Agent mà còn đủ chắc chắn cho tự động hóa sản xuất.


Tiếp theo là gì

Chúng ta đã đi từ phát hiện vấn đề, thiết kế kiến trúc, output có cấu trúc, SKILL, đến workflow thực tế và nền tảng CI/CD.

Phần tiếp theo là một lớp quan trọng khác: bảo mật.

Khi Agents có thể sửa đổi tài nguyên dự án, làm thế nào để ngăn chúng ảnh hưởng trực tiếp đến nhánh chính?

Trong Phần 9, Nhánh AI: Thay đổi dự án an toàn hơn với AI Agents, chúng ta sẽ xem cách Nhánh AI tạo môi trường chỉnh sửa biệt lập: thay đổi nằm trong một nhánh riêng cho đến khi được con người xem xét.


Những điểm chính

  • Khả năng tương thích CI/CD là nền tảng, không phải tính năng phụ.
  • Khả năng thân thiện với Agent nên được xây trên nền tảng thân thiện với CI.
  • Cùng một lệnh apidog run có thể phục vụ CI, Agents, con người và scripts.
  • CI cần exit code, báo cáo và tham số ổn định.
  • Agents cần output có cấu trúc, chi tiết lỗi và gợi ý bước tiếp theo.
  • Cổng chất lượng CI và xác minh Agent là hai ngữ cảnh khác nhau của cùng một cơ chế chạy.

Tải xuống Apidog để thiết kế, giả lập, kiểm thửtài liệu hóa API trong một không gian làm việc. Tìm hiểu thêm về Apidog CLI để kiểm thử API bằng dòng lệnh, tự động hóa CI và xây dựng workflow cho AI Agent.

Top comments (0)