{/* Trang này được tạo tự động từ SKILL.md của kỹ năng bởi website/scripts/generate-skill-docs.py. Chỉnh sửa nguồn SKILL.md, không phải trang này. */}
Thẻ nhớ lưu niệm
Hệ thống flashcard lặp đi lặp lại có khoảng cách. Tạo thẻ từ dữ kiện hoặc văn bản, trò chuyện bằng thẻ ghi chú bằng cách sử dụng các câu trả lời bằng văn bản tự do do nhân viên phân loại, tạo câu đố từ bản ghi YouTube, xem lại thẻ đến hạn với lịch trình thích ứng và xuất/nhập bộ tài liệu dưới dạng CSV.
Siêu dữ liệu kỹ năng
| Nguồn | Tùy chọn — cài đặt với |
| `Hermes skills install official/productivity/memento-flashcards | |
| ` | |
| Đường dẫn |
optional-skills/productivity/memento-flashcards ` | | Phiên bản |
1.0.0 ` | | Tác giả | Trí nhớ AI | | Giấy phép | MIT | | Nền tảng | macOS, Linux | | Thẻ |
Education
, `Flashcards
, `Spaced Repetition
, `Learning
, `Quiz
,
YouTube |
Tham khảo: đầy đủ SKILL.md
Sau đây là định nghĩa kỹ năng đầy đủ mà Hermes tải khi kỹ năng này được kích hoạt. Đây là những gì tác nhân coi là hướng dẫn khi kỹ năng được kích hoạt.
Thẻ nhớ lưu niệm — Kỹ năng thẻ nhớ lặp lại cách quãng
Tổng quan
Memento cung cấp cho bạn một hệ thống flashcard cục bộ, dựa trên tệp với lịch trình lặp lại cách đều nhau. Người dùng có thể trò chuyện bằng thẻ ghi chú của họ bằng cách trả lời bằng văn bản miễn phí và yêu cầu nhân viên chấm điểm phản hồi trước khi lên lịch đánh giá tiếp theo. Sử dụng nó bất cứ khi nào người dùng muốn:
- Ghi nhớ một sự thật — biến bất kỳ câu phát biểu nào thành thẻ ghi nhớ Q/A
- Nghiên cứu với sự lặp lại cách đều nhau — xem lại các thẻ đến hạn với các khoảng thời gian thích ứng và các câu trả lời bằng văn bản tự do do tác nhân phân loại
- Bài kiểm tra từ video trên YouTube — lấy bản ghi và tạo bài kiểm tra gồm 5 câu hỏi
- Quản lý bộ bài — sắp xếp các thẻ thành các bộ sưu tập, xuất/nhập CSV
Tất cả dữ liệu thẻ đều tồn tại trong một tệp JSON. Không yêu cầu khóa API bên ngoài - bạn (đại lý) trực tiếp tạo nội dung flashcard và câu hỏi trắc nghiệm.
Kiểu phản hồi hướng tới người dùng cho Memento Flashcards:
- Chỉ sử dụng văn bản thuần túy. Không sử dụng định dạng Markdown trong thư trả lời cho người dùng.
- Giữ phản hồi đánh giá và bài kiểm tra ngắn gọn và trung lập. Tránh khen ngợi, động viên hoặc giải thích dài dòng.
Khi nào nên sử dụng
Sử dụng kỹ năng này khi người dùng muốn:
- Lưu dữ kiện dưới dạng flashcards để xem lại sau
- Xem lại các thẻ đến hạn với sự lặp lại cách đều nhau
- Tạo câu đố từ bản ghi video YouTube
- Nhập, xuất, kiểm tra hoặc xóa dữ liệu flashcard
Không sử dụng kỹ năng này cho Hỏi & Đáp chung, trợ giúp về mã hóa hoặc các tác vụ không liên quan đến bộ nhớ.
Tham khảo nhanh
| Ý định của người dùng | Hành động |
|---|---|
| "Hãy nhớ X" / "lưu cái này dưới dạng flashcard" | Tạo thẻ Q/A, gọi |
| `memento_cards.py add | |
| ` | |
| Gửi một sự thật mà không đề cập đến flashcards | Hỏi "Muốn tôi lưu cái này làm thẻ nhớ Memento không?" — chỉ tạo nếu được xác nhận |
| "Tạo flashcard" | Yêu cầu Q, A, thu tiền; gọi |
| `memento_cards.py add | |
| ` | |
| "Xem lại thẻ của tôi" | Gọi |
| `memento_cards.py due |
, tặng từng thẻ một | | "Đố tôi trên [URL YouTube]" | Gọi `youtube_quiz.py fetch VIDEO_ID
, tạo 5 câu hỏi, gọi
memento_cards.py add-quiz |
| "Xuất thẻ của tôi" | Gọi
memento_cards.py export --output PATH |
| "Nhập thẻ từ CSV" | Gọi
memento_cards.py import --file PATH --collection NAME |
| "Hiển thị số liệu thống kê của tôi" | Gọi
memento_cards.py stats |
| "Xóa thẻ" | Gọi
memento_cards.py delete --id ID |
| "Xóa bộ sưu tập" | Gọi
memento_cards.py delete-collection --collection NAME |
Lưu trữ thẻ
Thẻ được lưu trữ trong tệp JSON tại:
` ~/.Hermes/skills/productivity/memento-flashcards/data/cards.JSON
``**Không bao giờ chỉnh sửa trực tiếp tệp này.** Luôn sử dụng các lệnh phụ memento_cards.py
. Tập lệnh xử lý việc ghi nguyên tử (ghi vào tệp tạm thời, sau đó đổi tên) để ngăn ngừa hỏng hóc.
Tệp được tạo tự động trong lần sử dụng đầu tiên.
Thủ tục
Tạo thẻ từ sự kiện
Quy tắc kích hoạt
Không phải mọi tuyên bố thực tế đều nên trở thành một tấm thẻ ghi nhớ. Sử dụng kiểm tra ba tầng này:
- Mục đích rõ ràng — người dùng đề cập đến "memento", "flashcard", "hãy nhớ điều này", "lưu thẻ này", "thêm thẻ" hoặc cụm từ tương tự yêu cầu rõ ràng thẻ flashcard → tạo thẻ trực tiếp, không cần xác nhận.
- Ý định ngầm — người dùng gửi một tuyên bố thực tế mà không đề cập đến thẻ ghi chú (ví dụ: "Tốc độ ánh sáng là 299.792 km/s") → ** hỏi trước**: "Muốn tôi lưu thẻ này làm thẻ nhớ Memento không?" Chỉ tạo thẻ nếu người dùng xác nhận.
- Không có mục đích — tin nhắn là một nhiệm vụ mã hóa, một câu hỏi, hướng dẫn, cuộc trò chuyện thông thường hoặc bất kỳ điều gì rõ ràng không phải là thông tin thực tế cần ghi nhớ → KHÔNG kích hoạt kỹ năng này. Hãy để các kỹ năng khác hoặc hành vi mặc định xử lý nó.
Khi kích hoạt được xác nhận (trực tiếp cấp 1, cấp 2 sau khi xác nhận), hãy tạo flashcard:Bước 1: Chuyển câu phát biểu thành một cặp câu Hỏi/Đáp. Sử dụng định dạng này trong nội bộ:
` Turn the factual statement into a front-back pair. Return exactly two lines: Q: <question text A: <answer text
Statement: "{statement}"
` ``Quy tắc:
- Câu hỏi nên kiểm tra khả năng nhớ lại sự kiện quan trọng
- Câu trả lời phải ngắn gọn, trực tiếp`Bước 2: Gọi script lưu trữ thẻ:
Python3 ~/.Hermes/skills/productivity/memento-flashcards/scripts/memento_cards.py add \
--question "What year did World War 2 end?" \
--answer "1945" \
--collection "History"
`
``Nếu người dùng không chỉ định bộ sưu tập, hãy sử dụng
"General"
` làm mặc định.
Tập lệnh xuất ra JSON xác nhận thẻ đã tạo.
### Tạo thẻ thủ công
Khi người dùng yêu cầu tạo flashcard một cách rõ ràng, hãy yêu cầu họ:
1. Câu hỏi (mặt trước thẻ)
2. Đáp án (mặt sau thẻ)
3. Tên bộ sưu tập (tùy chọn — mặc định là
"General"
)
Sau đó gọi
`memento_cards.py add
` như trên.
### Xem lại thẻ đến hạn
Khi người dùng muốn xem lại, lấy tất cả các thẻ đến hạn:
``` bash
Python3 ~/.Hermes/skills/productivity/memento-flashcards/scripts/memento_cards.py due
`
``Điều này trả về một mảng thẻ JSON trong đó
`next_review_at <= now
. Nếu cần bộ lọc bộ sưu tập:
`bash
Python3 ~/.Hermes/skills/productivity/memento-flashcards/scripts/memento_cards.py due --collection "History"
`
``**Quy trình đánh giá (chấm điểm văn bản tự do):**
Đây là ví dụ về mẫu tương tác CHÍNH XÁC mà bạn phải tuân theo. Người dùng trả lời, bạn chấm điểm cho họ, cho họ biết câu trả lời đúng, sau đó xếp hạng thẻ.
**Ví dụ về tương tác:**`> **Đặc vụ:** Bức tường Berlin sụp đổ vào năm nào?
>
> **Người dùng:** 1991
>
> **Đặc vụ:** Không hẳn. Bức tường Berlin sụp đổ năm 1989. Buổi đánh giá tiếp theo sẽ diễn ra vào ngày mai.
> *(các cuộc gọi của nhân viên: memento_cards.py rate --id ABC --rated hard --user-answer "1991")*
>
> Câu hỏi tiếp theo: Ai là người đầu tiên đi bộ trên mặt trăng?
**Quy tắc:**
1. Chỉ hiển thị câu hỏi. Chờ người dùng trả lời.
2. Sau khi nhận được câu trả lời của họ, hãy so sánh nó với câu trả lời dự kiến và chấm điểm:
- **đúng** → người dùng hiểu đúng thông tin chính (ngay cả khi được diễn đạt khác)
- **một phần** → đúng hướng nhưng thiếu chi tiết cốt lõi
- **không chính xác** → sai hoặc lạc đề
3. **Bạn PHẢI cho người dùng biết câu trả lời đúng và cách họ làm.** Giữ câu trả lời ngắn gọn và đơn giản. Sử dụng định dạng này:
- đúng: "Đúng. Trả lời: {câu trả lời}. Đánh giá tiếp theo sau 7 ngày."
- một phần: "Đóng. Trả lời: {câu trả lời}. {những gì họ đã bỏ lỡ}. Xem xét tiếp theo sau 3 ngày."
- không chính xác: "Không hẳn. Trả lời: {câu trả lời}. Ngày mai sẽ xem xét tiếp."
4. Sau đó gọi lệnh tỷ lệ: đúng→dễ, một phần→tốt, sai→khó.
5. Sau đó chiếu câu hỏi tiếp theo.
``` bash
Python3 ~/.Hermes/skills/productivity/memento-flashcards/scripts/memento_cards.py rate \
--id CARD_ID --rating easy --user-answer "what the user said"
`
``**Không bao giờ bỏ qua bước 3.** Người dùng phải luôn xem câu trả lời và phản hồi chính xác trước khi tiếp tục.
Nếu không có thẻ nào đến hạn, hãy thông báo cho người dùng: "Hiện không có thẻ nào cần xem xét. Hãy kiểm tra lại sau!"`**Gỡ bỏ thẻ này:** Tại bất kỳ thời điểm nào, người dùng có thể nói "gỡ bỏ thẻ này" để xóa vĩnh viễn thẻ đó khỏi các bài đánh giá. Sử dụng
--rating retire
` cho việc này.
### Thuật toán lặp lại cách nhau
Đánh giá xác định khoảng thời gian xem xét tiếp theo:
| Đánh giá | Khoảng thời gian | sự dễ dàng_streak | Thay đổi trạng thái |
|---|---|---|---|
| **khó** | +1 ngày | đặt lại về 0 | tiếp tục học tập |
| **tốt** | +3 ngày | đặt lại về 0 | tiếp tục học tập |
| **dễ dàng** | +7 ngày | +1 | if easy_streak >= 3 → đã nghỉ hưu |
| **nghỉ hưu** | vĩnh viễn | đặt lại về 0 | → đã nghỉ hưu |
- **học**: thẻ đang được luân chuyển tích cực
- **đã ngừng sử dụng**: thẻ sẽ không xuất hiện trong phần đánh giá (người dùng đã sử dụng thành thạo thẻ này hoặc đã gỡ bỏ thẻ theo cách thủ công)
- Ba lần xếp hạng “dễ” liên tiếp sẽ tự động rút một thẻ
### Tạo câu đố trên YouTube
Khi người dùng gửi URL YouTube và muốn làm bài kiểm tra:
**Bước 1:** Trích xuất ID video từ URL (ví dụ:
`dQw4w9WgXcQ
` từ
`https://www.youtube.com/watch?v=dQw4w9WgXcQ
).
**Bước 2:** Lấy bản ghi:
``` bash
Python3 ~/.Hermes/skills/productivity/memento-flashcards/scripts/youtube_quiz.py fetch VIDEO_ID
`
``Điều này trả về
\{"title": "...", "transcript": "..."}
` hoặc có lỗi.
Nếu tập lệnh báo cáo
`missing_dependency
, hãy yêu cầu người dùng cài đặt nó:
`
`bash
pip install youtube-transcript-API
`
``**Bước 3:** Tạo 5 câu hỏi trắc nghiệm từ bản chép lời. Sử dụng các quy tắc sau:
`
You are creating a 5-question quiz for a podcast episode.
Return ONLY a JSON array with exactly 5 objects.
Each object must contain keys 'question' and 'answer'.
Selection criteria:
- Prioritize important, surprising, or foundational facts.
- Skip filler, obvious details, and facts that require heavy context.
- Never return true/false questions.
- Never ask only for a date.
Question rules:
- Each question must test exactly one discrete fact.
- Use clear, unambiguous wording.
- Prefer What, Who, How many, Which.
- Avoid open-ended Describe or Explain prompts.
Answer rules:
- Each answer must be under 240 characters.
- Lead with the answer itself, not preamble.
- Add only minimal clarifying detail if needed.
`
``Sử dụng 15.000 ký tự đầu tiên của bản ghi làm ngữ cảnh. Tự tạo câu hỏi (bạn là LLM).
**Bước 4:** Xác thực đầu ra là JSON hợp lệ với chính xác 5 mục, mỗi mục có các chuỗi
`question
` và
`answer
` không trống. Nếu xác thực không thành công, hãy thử lại một lần.
**Bước 5:** Lưu trữ thẻ bài kiểm tra:
``` bash
Python3 ~/.Hermes/skills/productivity/memento-flashcards/scripts/memento_cards.py add-quiz \
--video-id "VIDEO_ID" \
--questions '[\{"question":"...","answer":"..."},...]' \
--collection "Quiz - Episode Title"
`
``Tập lệnh sẽ loại bỏ các bản sao trùng lặp của
`video_id
` — nếu thẻ cho video đó đã tồn tại, nó sẽ bỏ qua quá trình tạo và báo cáo các thẻ hiện có.**Bước 6:** Trình bày từng câu hỏi một bằng cách sử dụng cùng một quy trình chấm điểm văn bản tự do:
1. Hiển thị “Câu hỏi 1/5: …” và chờ câu trả lời của người dùng. Không bao giờ bao gồm câu trả lời hoặc bất kỳ gợi ý nào về việc tiết lộ nó.
2. Đợi người dùng trả lời bằng lời của họ
3. Chấm điểm câu trả lời của họ bằng cách sử dụng gợi ý chấm điểm (xem phần "Xem lại thẻ đến hạn")
4. **QUAN TRỌNG: Bạn PHẢI trả lời phản hồi cho người dùng trước khi làm bất cứ điều gì khác.** Hiển thị điểm, câu trả lời đúng và thời điểm đến hạn thẻ tiếp theo. KHÔNG im lặng chuyển sang câu hỏi tiếp theo. Giữ nó ngắn và văn bản đơn giản. Ví dụ: "Không hẳn. Trả lời: {câu trả lời}. Bài đánh giá tiếp theo vào ngày mai."
5. **Sau khi hiển thị phản hồi**, hãy gọi lệnh đánh giá và sau đó hiển thị câu hỏi tiếp theo trong cùng một thông báo:
`
``` bash
Python3 ~/.Hermes/skills/productivity/memento-flashcards/scripts/memento_cards.py rate \
--id CARD_ID --rating easy --user-answer "what the user said"
`
6. Lặp lại. Mỗi câu trả lời PHẢI nhận được phản hồi rõ ràng trước câu hỏi tiếp theo.
### Xuất/Nhập CSV`**Xuất khẩu:**
`
``` bash
Python3 ~/.Hermes/skills/productivity/memento-flashcards/scripts/memento_cards.py export \
--output ~/flashcards.csv
`
``Tạo CSV 3 cột:
`question,answer,collection
` (không có hàng tiêu đề).
**Nhập khẩu:**
`
``` bash
Python3 ~/.Hermes/skills/productivity/memento-flashcards/scripts/memento_cards.py import \
--file ~/flashcards.csv \
--collection "Imported"
`
``Đọc CSV có các cột: câu hỏi, câu trả lời và bộ sưu tập tùy chọn (cột 3). Nếu cột bộ sưu tập bị thiếu, hãy sử dụng đối số
--collection
.
### Thống kê
``` bash
Python3 ~/.Hermes/skills/productivity/memento-flashcards/scripts/memento_cards.py stats
`
``Trả về JSON với:
-
`total
: tổng số thẻ
-
`learning
: thẻ đang hoạt động xoay vòng
-
`retired
: thẻ mastered
-
`due_now
: thẻ sắp được xem xét ngay bây giờ
-
`collections
: phân tích theo tên bộ sưu tập
## Cạm bẫy
- **Không bao giờ chỉnh sửa trực tiếp
`cards.JSON
** — luôn sử dụng các lệnh con của tập lệnh để tránh bị hỏng
- **Lỗi ghi âm** — một số video trên YouTube không có bản ghi tiếng Anh hoặc đã tắt bản ghi; thông báo cho người dùng và đề xuất video khác
- **Phụ thuộc tùy chọn** —
`youtube_quiz.py
` cần
`youtube-transcript-API
; nếu thiếu, hãy yêu cầu người dùng chạy
`pip install youtube-transcript-API
- **Nhập lớn** — Nhập CSV với hàng nghìn hàng hoạt động tốt nhưng đầu ra JSON có thể dài dòng; tóm tắt kết quả cho người dùng
- **Trích xuất ID video** — hỗ trợ cả định dạng URL
`youtube.com/watch?v=ID
` và
`youtu.be/ID
## Xác minh
Xác minh trực tiếp các tập lệnh trợ giúp:
``` bash
Python3 ~/.Hermes/skills/productivity/memento-flashcards/scripts/memento_cards.py stats
Python3 ~/.Hermes/skills/productivity/memento-flashcards/scripts/memento_cards.py add --question "CAPItal of France?" --answer "Paris" --collection "General"
Python3 ~/.Hermes/skills/productivity/memento-flashcards/scripts/memento_cards.py due
`
``Nếu bạn đang kiểm tra từ thanh toán repo, hãy chạy:
`bash
pytest tests/skills/test_memento_cards.py tests/skills/test_youtube_quiz.py -q
`
``Xác minh cấp đại lý:
- Bắt đầu đánh giá và xác nhận phản hồi là văn bản đơn giản, ngắn gọn và luôn bao gồm câu trả lời đúng trước thẻ tiếp theo
- Chạy luồng bài kiểm tra trên YouTube và xác nhận rằng mỗi câu trả lời sẽ nhận được phản hồi rõ ràng trước câu hỏi tiếp theo