Note: see the link below for the English version of this article.

https://duongnt.com/amp-custom-command

amp-custom-commands

Tôi có một đoạn prompt dài tầm 200 dòng, mỗi lần cần dùng đến nó, tôi phải copy paste đoạn prompt này vào Amp. Sau khi sử dụng phương pháp này một thời gian, tôi chuyển sang một giải pháp khác tiện dụng hơn, bằng cách chuyển đoạn prompt này thành custom command cho Amp.

Tái sử dụng prompt

Như chúng ta đã biết, một AI Agent hữu ích đến đâu phụ thuộc nhiều vào những đoạn prompt ta cung cấp cho nó. Khi thực hiện những task phức tạp, đoạn prompt cũng trở nên rất dài. Trong công việc hiện tại, tôi sử dụng một đoạn prompt tầm 200 dòng để review thiết kế hệ thống. Ban đầu, tôi lưu đoạn prompt này trong một file text và thay đổi đường dẫn tới file thiết kế mỗi khi sử dụng. Cách làm này tạm ổn, nhưng tôi phải chuyển đổi giữa các ứng dụng, điều này đôi khi khiến tôi mất tập trung.

Cải thiện đầu tiên tôi nghĩ tới đó là lưu đoạn prompt này thành rule file của Amp, với tên gọi AGENTS.md hoặc AGENT.md tuỳ theo phiên bản Amp tôi sử dụng. Rule file của tôi sẽ như thế này.

Thực hiện các bước sau mỗi khi review thiết kế hệ thống.
// đoạn prompt 200 dòng

Với cách này, tôi chỉ cần bảo Amp review thiết kế lưu ở <đường dẫn>, Amp sẽ tự động sử dụng đoạn prompt lưu trong rule file để sinh câu trả lời. Cách làm này giúp tôi không phải chuyển đổi giữa các ứng dụng nữa, nhưng nó lại tạo ra một số vấn đề mới.

  • Không có gì đảm bảo Amp sẽ sử dụng tất cả dữ liệu trong rule file. Đôi khi Amp quên mất một phần hay toàn bộ rule file (giống y như con người vậy).
  • Rule file được load khi tạo thread, dẫn tới đoạn prompt ở trên được lưu vào context dù ta có cần tới nó hay không. Và việc context có quá nhiều thông tin không liên quan sẽ làm giảm chất lượng câu trả lời của AI.

Custom command giúp ta giải quyết cả hai vấn đề trên. Prompt chỉ được load vào context khi ta thực sự cần đến. Và vì prompt được load ngay trước khi dùng nên Amp sẽ không quên mất thông tin trong đó.

Cách tạo custom command cho Amp

Amp command là gì

Amp command là chức năng cho phép ta nhanh chóng thực hiện một lệnh, cú pháp là / cộng với tên command. Một command mà phần lớn người dùng Amp đều biết tới là /compact. Nó cho phép ta tóm tắt context, thường được sử dụng khi kích thước context đã đạt tới giới hạn.

amp-custom-command-1.png

Tạo command mới

Trong phần này, ta sẽ tìm hiểu cách tự tạo command giống như command /compact vừa nhắc tới ở trên. Cách đơn giản nhất là lưu nội dung prompt vào trong một file Markdown và lưu file đó vào trong folder command của Amp (mặc định là ~/.config/amp/commands). Trong bài hôm nay, ta sẽ tạo một custom command để kiểm tra độ xác thực câu trả lời của Amp. Để làm điều đó, ta cần copy file này vào folder commands trong máy và khởi động lại Amp.

Sau đó, ta có thể chạy command bằng cách gõ /fact-check.

amp-custom-command-2.png

Khi ta ấn Enter, command sẽ tự động thêm nội dung của file fact-check.md như sau.

amp-custom-command-3.png

Dưới đây là kết quả.

amp-custom-command-4.png

Bằng cách sử dụng custom command, ta có thể nhanh chóng kiểm tra độ xác thực câu trả lời của Amp mà không sợ làm rối context. Nhưng cách làm này có một điểm bất tiện: ta phải ấn nút Enter hai lần, một lần để thêm prompt vào CLI, và một lần để Amp xử lý prompt. Ta sẽ tìm cách đơn giản hoá bước này.

Executable custom command

Như ta đã biết, các command sẵn có như /compact sẽ được thực hiện ngay khi ta ấn Enter lần thứ nhất. Ta có thể khiến custom command hoạt động giống thế không? Trong phần dưới đây, ta sẽ tìm hiểu về executable command. Đồng thời, ta sẽ cho phép command nhận argument từ terminal, argument đó là thông tin ta muốn kiểm chứng.

Bước đầu tiên cần làm là thay đổi file fact-check.md thành một bash script như sau. Ta có thể thấy là nội dung prompt không thay đổi nhiều, chỉ có một số điểm đáng chú ý dưới đây.

  • Ta thêm #!/bin/bash vào đầu file.
  • Đoạn prompt bây giờ nằm trong một heredoc.
  • Ở dòng 3, ta sử dụng $* để lấy dữ liệu từ tất cả argument truyền vào script. Sở dĩ ta cần dùng $* ở đây là vì Amp không tuân thủ shell quoting.

Sau đó, ta cần chạy lệnh dưới này để cho phép thực thi command: chmod +x ~/.config/amp/commands/fact-check.

Bây giờ ta có thể dùng command đó để kiểm chứng câu nói the Earth is flat.

/fact-check "the Earth is flat"

Ngay khi ta ấn Enter, command sẽ được chuyển thành prompt chứa câu nói ta muốn kiểm chứng.

amp-custom-command-5.png

Và Amp trả lời như sau.

amp-custom-command-6.png

Kết thúc

Custom command cho phép biến những prompt lặp đi lặp lại thành công cụ ta có thể tái sử dụng mà không làm rối context. Ta có thể bắt đầu từ những command đơn giản, rồi dần dần tăng độ phức tạp cho phù hợp với công việc của mình.

A software developer from Vietnam and is currently living in Japan.

One Thought on “Cách viết custom command cho Amp”

Leave a Reply