Bản thiết kế quy trình, khung code, mục đích file, workflow vận hành và hướng phát triển tiếp theo
| Thông tin | Nội dung |
|---|---|
| Tên hệ thống | Agent AI – SecondBrain / LLM-Wiki-DUY |
| Mục tiêu | Xây dựng một kho tri thức y khoa có kiểm soát nguồn, có khả năng ingest tài liệu, audit claim, tổng hợp guideline/trial/lecture và hỗ trợ truy vấn lâm sàng – học thuật. |
| Định hướng sử dụng | Markdown-first, Git-tracked, có validator, có source note, có claim registry, có RAG cục bộ bằng Ollama/Cursor. |
| Đối tượng sử dụng | Bác sĩ, giảng viên, nghiên cứu viên y khoa cần một hệ thống tri thức cá nhân nhưng có kỷ luật nguồn và khả năng tự động hóa. |
Ghi chú: Tài liệu này được tổng hợp từ toàn bộ quy ước dự án LLM-Wiki-DUY đã xây dựng trong các trao đổi trước, nhằm dùng như tài liệu hướng dẫn nội bộ để tiếp tục phát triển hệ thống.
LLM-Wiki-DUY / SecondBrain-YKhoa nên được hiểu là một hệ thống tri thức y khoa cá nhân có kiểm soát nguồn, không chỉ là một thư mục ghi chú. Mục tiêu của hệ thống là biến tài liệu thô như guideline, bài giảng, textbook, trial, review và dataset thành các lớp tri thức có thể truy xuất, kiểm định và tái sử dụng cho lâm sàng, nghiên cứu, giảng dạy và viết học thuật.
Điểm khác biệt chính của hệ thống là: mọi kiến thức đi từ nguồn gốc rõ ràng, qua source note, sau đó được audit ở mức claim, rồi mới được đưa vào các trang tổng hợp như disease, drug, guideline, trial, concept, synthesis hoặc teaching note. Như vậy, Agent AI không trả lời dựa trên trí nhớ mơ hồ mà dựa trên wiki nội bộ đã được chuẩn hóa.
| Thành phần | Vai trò cốt lõi |
|---|---|
| raw/ | Kho chứa tài liệu gốc, không sửa trực tiếp sau khi đưa vào. |
| wiki/source-notes/ | Phiếu đọc nguồn riêng lẻ, trung thành với tài liệu gốc. |
| wiki/claim-registry/ | Danh bạ claim đã chuẩn hóa, giúp kiểm soát độ tin cậy. |
| wiki/diseases, drugs, trials, guidelines, concepts | Tầng tri thức đã tổ chức theo thực thể y khoa. |
| wiki/synthesis/ | Tầng trả lời câu hỏi lâm sàng/học thuật cụ thể dựa trên nhiều nguồn. |
| wiki/teaching-notes/ | Tầng đầu ra cho giảng dạy: slide outline, script, MCQ, CLO. |
| skills/ | Định nghĩa năng lực của Agent và chuẩn thao tác cho từng loại nhiệm vụ. |
| scripts/ | Bộ kiểm tra, tự động hóa, ingest, audit, validate. |
| local-ai/ | Tầng chạy cục bộ với Ollama, prompt hệ thống, RAG và audit. |
| logs/ | Nhật ký thay đổi, log ingest, log audit, log output của LLM. |
Hệ thống không nên được thiết kế như một chatbot y khoa thông thường. Nó nên được thiết kế như một kho tri thức có kiểm định bằng chứng, trong đó LLM đóng vai trò thủ thư, biên tập viên, kiểm toán viên claim và trợ lý tổng hợp. Vì vậy, mỗi câu trả lời quan trọng phải có đường truy vết về nguồn.
| Tầng | Thư mục | Ý nghĩa |
|---|---|---|
| Tầng nguồn | raw/ và wiki/source-notes/ | Bảo tồn tài liệu gốc và ghi chú trung thành theo từng nguồn. |
| Tầng kiểm soát bằng chứng | claim-registry, contradiction-notes, evidence-maps | Kiểm định claim, ghi nhận mâu thuẫn, lập bản đồ bằng chứng. |
| Tầng tri thức | diseases, drugs, concepts, guidelines, trials | Tổ chức kiến thức theo thực thể y khoa dùng lâu dài. |
| Tầng đầu ra | synthesis, teaching-notes | Trả lời câu hỏi cụ thể, tạo nội dung giảng dạy, MCQ, script, outline. |
Kiến trúc đề xuất của repo nên giữ nguyên logic Markdown-first. Markdown là định dạng chính để Agent dễ đọc, dễ diff bằng Git, dễ kiểm tra bằng script và dễ chuyển đổi sang Word/slide khi cần.
SecondBrain-YKhoa/
├── AGENTS.md
├── README.md
├── raw/
│ ├── guidelines/
│ │ ├── cardiology/
│ │ ├── endocrinology/
│ │ └── nephrology/
│ ├── lectures/
│ │ ├── vi/
│ │ └── en/
│ ├── textbooks/
│ ├── trials/
│ ├── articles/
│ └── datasets/
├── wiki/
│ ├── index.md
│ ├── source-notes/
│ ├── claim-registry/
│ ├── contradiction-notes/
│ ├── evidence-maps/
│ ├── concepts/
│ ├── diseases/
│ ├── drugs/
│ ├── guidelines/
│ ├── trials/
│ ├── synthesis/
│ ├── dataset-notes/
│ └── teaching-notes/
├── skills/
│ ├── execute/
│ ├── guide/
│ ├── ingest-source/
│ ├── write-source-note/
│ ├── citation-audit/
│ ├── guideline-update/
│ ├── write-synthesis/
│ ├── lint-wiki/
│ └── distill/
├── schema/
│ ├── citation-policy.md
│ ├── page-types.md
│ ├── taxonomy.md
│ └── style-guide.md
├── scripts/
│ ├── validate.py
│ ├── audit-source-notes.py
│ ├── auto-ingest.py
│ └── ingest-registry.json
├── local-ai/
│ ├── prompts/
│ │ └── secondbrain-system.md
│ ├── scripts/
│ │ ├── ingest-and-audit.sh
│ │ ├── ingest-lecture-and-audit.sh
│ │ ├── audit-source-note.sh
│ │ └── rag-audit.sh
│ └── rag/
│ └── simple_rag.py
└── logs/
├── log.md
└── llm-output/
| File | Mục đích | Ghi chú vận hành |
|---|---|---|
| AGENTS.md | Bản đồ điều phối Agent: định nghĩa intent, routing, skill nào được gọi, nguyên tắc không vượt quyền. | Đây là “hiến pháp điều phối” của hệ thống. Khi thêm skill mới hoặc workflow mới, cập nhật route ở đây. |
| README.md | Tài liệu giới thiệu repo, cách cài đặt, cách chạy validator, cách ingest, cách hỏi Agent. | Nên viết cho người dùng mới hoặc chính bạn sau vài tháng quay lại dự án. |
| wiki/index.md | Mục lục wiki, liên kết đến source note, synthesis, disease, drug, guideline, trial. | Cập nhật sau khi source note đã audit hoặc sau khi tạo trang tri thức chính thức. |
| logs/log.md | Nhật ký thao tác: ingest, audit, synthesis, update guideline, sửa validator. | Không dùng làm nơi ghi kiến thức lâm sàng; chỉ ghi lịch sử thay đổi. |
raw/ là nơi chứa file gốc. Nguyên tắc là không sửa tài liệu trong raw/. Nếu cần đổi tên, nên đổi tên theo convention rõ ràng rồi commit. Các source note phải có metadata original_file trỏ về file trong raw/.
| Nhánh raw/ | Nội dung | Ví dụ |
|---|---|---|
| raw/guidelines/ | Guideline hoặc consensus chính thức. | 2025_ACC_AHA_ACS_Guideline.pdf |
| raw/lectures/ | Bài giảng PPTX/PDF/DOCX dùng cho teaching source note. | Viemgiapthoangqua_baisoanDuy.pptx |
| raw/textbooks/ | Chương sách hoặc textbook reference. | Harrison, Braunwald, Oxford Handbook. |
| raw/trials/ | Bài báo thử nghiệm lâm sàng chính. | EMPEROR-Preserved, DELIVER, INVICTUS. |
| raw/articles/ | Review, meta-analysis, systematic review, observational study. | MAFLD review, HFpEF review. |
| raw/datasets/ | Dữ liệu nghiên cứu hoặc data dictionary. | HFpEF readmission dataset. |
| Thư mục | Mục đích | Khi nào dùng |
|---|---|---|
| source-notes | Phiếu đọc từng nguồn riêng lẻ. | Ngay sau khi ingest một guideline, lecture, textbook, trial hoặc article. |
| claim-registry | Danh bạ claim quan trọng đã kiểm định. | Khi một claim xuất hiện lặp lại hoặc ảnh hưởng quyết định lâm sàng. |
| contradiction-notes | Ghi nhận mâu thuẫn giữa nguồn. | Khi ESC khác ACC/AHA, trial khác textbook, lecture cũ khác guideline mới. |
| evidence-maps | Bản đồ hóa bằng chứng theo PICO/outcome. | Khi cần nhìn tổng thể evidence landscape của một câu hỏi. |
| concepts | Khái niệm nền tảng, score, định nghĩa, thuật ngữ. | HFpEF, NT-proBNP, PICO, NNT, likelihood ratio. |
| diseases | Trang bệnh học tổng hợp. | ACS, HFpEF, pulmonary embolism, toxic multinodular goiter. |
| drugs | Hồ sơ thuốc. | Warfarin, alteplase, empagliflozin, dapagliflozin. |
| guidelines | Trang guideline hoặc so sánh guideline. | ESC 2024 HTN, ACC/AHA 2025 ACS. |
| trials | Tóm tắt trial theo PICO/PICOS. | EMPEROR-Preserved, DELIVER, COAPT. |
| synthesis | Bài tổng hợp trả lời câu hỏi cụ thể. | Có nên dùng SGLT2i sau đợt mất bù HFpEF? |
| dataset-notes | Ghi chú dataset và biến nghiên cứu. | HFpEF 90-day readmission dataset. |
| teaching-notes | Đầu ra giảng dạy. | Slide outline, MCQ, OSCE, CLO mapping. |
Mỗi skill là một năng lực thao tác có hợp đồng rõ ràng. Một SKILL.md hợp lệ nên có YAML front matter và các mục: What, When, How, Examples, Pitfalls, Changelog. Bản tiếng Việt có thể dùng SKILL_vi.md để đảm bảo workflow song ngữ.
| Skill | Vai trò |
|---|---|
| execute | Meta-skill xử lý tác vụ chung, kiểm tra yêu cầu và gọi skill phù hợp. |
| guide | Chỉnh governance, AGENTS.md, README, quy trình tổng thể. |
| ingest-source | Đưa file gốc vào raw/, chuẩn hóa tên, ghi metadata nguồn. |
| write-source-note | Viết source note từ tài liệu đã ingest, tạo claim cards và citation anchors. |
| citation-audit | Kiểm tra claim, nguồn, citation, placeholder và mức chắc chắn. |
| guideline-update | Cập nhật trang wiki khi có guideline mới hoặc thay đổi thực hành. |
| write-synthesis | Tổng hợp nhiều source note thành bài trả lời câu hỏi cụ thể. |
| lint-wiki | Kiểm tra hygiene, cấu trúc, index, log, placeholder. |
| distill | Biến workflow lặp lại hoặc lỗi lặp lại thành skill hoặc rule mới. |
| File | Nội dung nên có |
|---|---|
| citation-policy.md | Quy tắc citation: claim nào cần nguồn, format citation anchor, cấm citation mơ hồ. |
| page-types.md | Định nghĩa các loại trang: source note, disease, drug, trial, synthesis, evidence map. |
| taxonomy.md | Chuẩn phân loại chuyên ngành: cardiology, endocrinology, nephrology, infectious disease, geriatrics. |
| style-guide.md | Chuẩn tiếng Việt học thuật, cách dùng thuật ngữ Anh-Việt, cách viết heading, bảng, claim. |
| File/script | Mục đích |
|---|---|
| scripts/validate.py | Kiểm tra hợp đồng repo: thư mục bắt buộc, skill contract, hygiene, title markdown, placeholder, index/log. |
| scripts/audit-source-notes.py | Audit hàng loạt source note: metadata, section bắt buộc, citation anchors, claim cards. |
| scripts/auto-ingest.py | Tự động match file raw với pipeline trong ingest-registry.json. |
| scripts/ingest-registry.json | Bảng cấu hình pipeline ingest theo loại file, path, regex filename, step cần chạy. |
| local-ai/prompts/secondbrain-system.md | System prompt cục bộ cho Ollama/RAG: luật không hallucinate, ưu tiên wiki, báo thiếu nguồn. |
| local-ai/scripts/ingest-and-audit.sh | Pipeline shell cho guideline/article: prepare → audit → optional index/log. |
| local-ai/scripts/ingest-lecture-and-audit.sh | Pipeline riêng cho lecture PPTX/PDF: tạo source note giảng dạy và audit. |
| local-ai/scripts/audit-source-note.sh | Audit một source note đơn lẻ. |
| local-ai/scripts/rag-audit.sh | Kết hợp retrieval từ wiki với Ollama để kiểm tra câu trả lời/claim. |
| local-ai/rag/simple_rag.py | RAG cục bộ đơn giản: index markdown và trả lời dựa trên retrieval. |
AGENTS.md nên giữ vai trò là router. Nó không chứa toàn bộ kiến thức y khoa, mà chỉ quyết định khi nào gọi skill nào và giới hạn quyền ghi file của mỗi workflow.
# AGENTS.md
## 1. Mission
LLM-Wiki-DUY is a source-grounded medical SecondBrain.
The agent must preserve source traceability, avoid unsupported claims,
and prefer audited wiki notes over unaudited memory.
## 2. Routing table
| User intent | Route | Allowed writes |
|---|---|---|
| Add new raw PDF/PPTX | ingest-source | raw/, logs/ |
| Write source note | write-source-note | wiki/source-notes/ |
| Audit source note | citation-audit | wiki/source-notes/, logs/ |
| Update disease page | write-synthesis or guideline-update | wiki/diseases/, wiki/synthesis/ |
| Compare guidelines | guideline-update | wiki/guidelines/, contradiction-notes/ |
| Lint repo | lint-wiki | logs/, no clinical content changes |
## 3. Core rules
- Do not edit raw/ content.
- Do not create clinical claims without source anchors.
- Do not update wiki/index.md before source note audit is clean.
- Do not use lecture as guideline unless the lecture cites its primary source.
- No placeholders: TODO, Citation needed, Pending, Chờ Agent.
---
name: write-source-note
version: 0.1.0
status: active
triggers:
- "write source note"
- "ingest guideline"
- "tạo source note"
dependencies:
- schema/citation-policy.md
- schema/page-types.md
owner: LLM-Wiki-DUY
updated: 2026-05-13
---
# write-source-note
## What
Create a source-grounded Markdown note from a raw source.
## When
Use after a file has been placed under raw/ and before synthesis.
## How
1. Read only the specified source.
2. Extract metadata.
3. Define scope.
4. Create teaching/clinical points.
5. Create claim cards with source anchors.
6. Run citation audit.
## Examples
...
## Pitfalls
- Do not treat lecture content as guideline-level evidence.
- Do not invent references.
## Changelog
- 0.1.0: Initial version.
# 2025 ACC/AHA ACS Guideline
---
source_type: guideline
official_title: "2025 ACC/AHA/... Guideline for ACS"
year: 2025
society_or_authors: "ACC/AHA/..."
journal_or_publisher: "Circulation"
doi: "..."
pmid: "..."
original_file: "raw/guidelines/cardiology/2025_ACC_AHA_ACS_Guideline.pdf"
accessed_date: "2026-05-13"
audit_status: "draft | audited | needs_review"
---
## Scope
## Why this source matters
## Key clinical messages
## Recommendations and evidence
## Claim cards
### ACS-ANTIPLATELET-001
Claim:
Source anchor:
Evidence type:
Certainty:
Clinical use:
Audit status:
## References
## Audit notes
# HFPEF-THER-001
Claim:
SGLT2 inhibitors reduce heart failure hospitalization in symptomatic HFpEF.
Canonical wording:
In adults with symptomatic HFpEF, SGLT2 inhibitors are recommended or should be considered to reduce heart failure hospitalization, unless contraindicated.
Supported by:
- wiki/source-notes/emperor-preserved-trial.md
- wiki/source-notes/deliver-trial.md
- wiki/source-notes/esc-heart-failure-guideline.md
- wiki/source-notes/aha-acc-hfsa-heart-failure-guideline.md
Evidence type:
Randomized controlled trials + guideline recommendations.
Certainty:
High.
Clinical caveats:
Assess eGFR, ketoacidosis risk, volume status, genital infection risk, and perioperative status.
Status:
Audited.
# SGLT2 inhibitor initiation after decompensated HFpEF
## Clinical question
In a patient hospitalized for decompensated HFpEF, should SGLT2 inhibitor be initiated after stabilization?
## PICO
- P:
- I:
- C:
- O:
## Bottom line
## Evidence summary
## Guideline alignment
## Patient selection
## Contraindications and cautions
## Practical checklist before prescribing
## Claim links
## Related source notes
## Last reviewed
{
"pipelines": [
{
"name": "guideline-pdf",
"match": {
"extensions": [".pdf"],
"path_contains": ["raw/guidelines"],
"filename_regex": "(ESC|ACC|AHA|KDIGO|ADA|EASL|AASLD)"
},
"steps": [
"prepare_source_note",
"citation_audit",
"update_index_optional",
"append_log"
]
},
{
"name": "lecture-pptx",
"match": {
"extensions": [".pptx", ".pdf"],
"path_contains": ["raw/lectures"]
},
"steps": [
"prepare_lecture_source_note",
"citation_audit"
]
}
]
}
validate.py không cần hiểu y khoa sâu; nó cần kiểm tra contract kỹ thuật và hygiene của repo. Những kiểm tra nên có:
Agent AI trong dự án này nên được hiểu như một nhóm vai trò phối hợp, không phải một Agent đơn lẻ. Mỗi vai trò có quyền đọc/ghi khác nhau để tránh tạo kiến thức không kiểm soát.
| Agent/Skill | Input | Output | Quyền ghi |
|---|---|---|---|
| Ingest Agent | File PDF/PPTX/DOCX/raw path | File đặt đúng raw/, metadata sơ bộ | raw/, logs/ |
| Source Note Agent | raw file + yêu cầu ingest | wiki/source-notes/*.md | wiki/source-notes/ |
| Citation Audit Agent | source note | audit report, sửa lỗi citation/section | wiki/source-notes/, logs/ |
| Claim Registry Agent | claim cards đã audit | claim-registry/*.md | wiki/claim-registry/ |
| Contradiction Agent | nhiều source note/guideline | contradiction-notes/*.md | wiki/contradiction-notes/ |
| Guideline Update Agent | guideline mới + guideline cũ | guidelines page, disease/drug update proposal | wiki/guidelines/, wiki/synthesis/ |
| Synthesis Agent | nhiều source note + câu hỏi PICO | synthesis/*.md | wiki/synthesis/ |
| Teaching Agent | synthesis/disease/source notes | teaching-notes/*.md | wiki/teaching-notes/ |
| Lint Agent | repo | báo lỗi hygiene/contract | logs/ hoặc không ghi |
User request
|
|-- "Tôi có file mới" / "ingest guideline" / "ingest lecture"
| -> ingest-source -> write-source-note -> citation-audit
|
|-- "Tạo disease page" / "Tổng quan bệnh"
| -> check source-notes -> write-synthesis/disease page
|
|-- "So sánh guideline" / "có gì mới"
| -> guideline-update -> contradiction-notes if needed
|
|-- "Hỏi câu lâm sàng"
| -> retrieve wiki -> synthesis answer -> cite source notes/claim registry
|
|-- "Tạo bài giảng/MCQ/slide"
| -> teaching-notes using audited synthesis/source notes
|
|-- "Bị lỗi validate/git/script"
-> lint-wiki or guide
git init
mkdir -p raw wiki/source-notes skills schema scripts logs local-ai/prompts local-ai/scripts local-ai/rag
python3 scripts/validate.py
git status --short
Bắt đầu từ các skills tối thiểu: execute, guide, ingest-source, write-source-note, citation-audit, write-synthesis, lint-wiki, distill. Mỗi skill phải có contract giống nhau để validator kiểm tra được.
skills/write-source-note/SKILL.md
skills/write-source-note/SKILL_vi.md
skills/citation-audit/SKILL.md
skills/citation-audit/SKILL_vi.md
skills/write-synthesis/SKILL.md
skills/lint-wiki/SKILL.md
Validator là hàng rào kỹ thuật quan trọng nhất. Nó không thay thế thẩm định y khoa nhưng giúp tránh lỗi cấu trúc. Sau mỗi lần sửa AGENTS, skills, schema hoặc wiki, phải chạy validate.
python3 scripts/validate.py
# Nếu có lỗi:
# 1. Đọc lỗi cụ thể.
# 2. Sửa đúng file.
# 3. Chạy lại validate.
# 4. Chỉ commit khi validate OK.
Không nên ingest hàng loạt ngay. Cần pilot với vài guideline chất lượng cao để kiểm tra template source note, audit rule, validator và index/log. Dự án đã đi theo hướng này với guideline tim mạch như ESC hypertension, ESC AF, ACC/AHA/HRS AF và ACS.
# Ví dụ guideline
raw/guidelines/cardiology/2025_ACC_AHA_ACS_Guideline.pdf
wiki/source-notes/2025-acc-aha-acs-guideline.md
local-ai/scripts/ingest-and-audit.sh prepare raw/guidelines/cardiology/2025_ACC_AHA_ACS_Guideline.pdf wiki/source-notes/2025-acc-aha-acs-guideline.md "2025 ACC/AHA ACS Guideline"
local-ai/scripts/ingest-and-audit.sh audit wiki/source-notes/2025-acc-aha-acs-guideline.md
Lecture cần workflow riêng vì bài giảng thường chứa nội dung diễn giải, hình ảnh, slide và nguồn tham khảo không đồng đều. Agent phải ghi rõ learning objectives, teaching points, references trên slide và không dùng lecture như guideline nếu không rõ nguồn gốc.
@raw/lectures/vi/endocrinology/Viemgiapthoangqua_baisoanDuy.pptx
@wiki/source-notes/lecture-endocrinology-viemgiapthoangqua-baisoanduy.md
Ingest lecture source note. Tiếng Việt học thuật.
1. Chỉ dùng file đính kèm.
2. Không sửa raw/.
3. Không cập nhật wiki/index.md và logs/log.md ở bước này.
4. Điền learning objectives, teaching points, references trên slide.
5. Không dùng lecture như guideline nếu không có nguồn gốc rõ.
6. Claims index + Claim cards.
7. Không placeholder: Citation needed, TODO, Pending, Chờ Agent.
Sau đó:
local-ai/scripts/ingest-lecture-and-audit.sh audit wiki/source-notes/lecture-endocrinology-viemgiapthoangqua-baisoanduy.md
RAG cục bộ dùng để truy xuất source note và synthesis khi hỏi Agent. Ở giai đoạn đầu, simple_rag.py có thể index toàn bộ Markdown trong wiki/ và trả về các đoạn liên quan. Giai đoạn sau có thể thay bằng vector database tốt hơn.
python3 local-ai/rag/simple_rag.py index wiki/
python3 local-ai/rag/simple_rag.py answer "Tiêu chuẩn chẩn đoán suy tim cấp là gì?"
python3 scripts/validate.py
git status --short
git add wiki/source-notes/2025-acc-aha-acs-guideline.md scripts/validate.py logs/log.md wiki/index.md
git commit -m "ingest and audit 2025 ACC AHA ACS guideline"
git push
1. Đưa file vào raw/ đúng thư mục.
2. Đổi tên file rõ ràng, không dấu hoặc có quy ước thống nhất.
3. Tạo source note trong wiki/source-notes/.
4. Chạy audit source note.
5. Sửa lỗi metadata, section, claim, citation.
6. Chạy validate toàn repo.
7. Nếu sạch, cập nhật wiki/index.md và logs/log.md.
8. Commit bằng Git.
Câu hỏi lâm sàng
-> kiểm tra wiki/synthesis có bài tương ứng chưa
-> nếu chưa, truy source-notes + trials + guidelines + claim-registry
-> tạo câu trả lời có cấu trúc PICO hoặc clinical reasoning
-> chỉ dùng claim có nguồn
-> nếu thiếu nguồn, báo thiếu và đề xuất ingest thêm
-> nếu có mâu thuẫn, ghi contradiction note hoặc cảnh báo
source-notes + synthesis + disease page
-> xác định đối tượng học: Y3/Y6/nội trú/bác sĩ
-> learning objectives K-S-A
-> outline slide
-> script giảng
-> MCQ/OSCE nếu cần
-> map CLO nếu là học phần
-> lưu wiki/teaching-notes/
python3 scripts/validate.py
# đọc lỗi
# sửa đúng file
python3 scripts/validate.py
# nếu OK:
git status --short
git add <files>
git commit -m "fix validator issues"
Trong hệ thống này, “claim” là một mệnh đề có thể đúng/sai hoặc cần bằng chứng, đặc biệt nếu ảnh hưởng đến chẩn đoán, điều trị, tiên lượng, phân tầng nguy cơ hoặc giáo dục y khoa. Audit claim là cách biến nội dung LLM từ văn bản trôi nổi thành tri thức có kiểm định.
| Loại claim | Ví dụ | Yêu cầu nguồn |
|---|---|---|
| Claim chẩn đoán | HFpEF cần triệu chứng suy tim, LVEF bảo tồn và bằng chứng tăng áp lực đổ đầy. | Guideline hoặc consensus. |
| Claim điều trị | SGLT2 inhibitor giảm nhập viện suy tim ở HFpEF. | Trial chính + guideline. |
| Claim chống chỉ định | DOAC không dùng trong hẹp hai lá trung bình-nặng do thấp. | Guideline + trial nếu có. |
| Claim liều thuốc | Alteplase low-dose slow infusion trong kẹt van cơ học. | Guideline, review chuyên sâu, registry/series nếu guideline hạn chế. |
| Claim dịch tễ | Tỷ lệ hiện mắc hoặc nguy cơ. | Review, registry, guideline, nguồn dữ liệu dịch tễ. |
Nếu phát hiện mâu thuẫn:
1. Không tự hòa giải bằng suy đoán.
2. Ghi rõ nguồn A nói gì, nguồn B nói gì.
3. Kiểm tra năm xuất bản và phạm vi áp dụng.
4. Nếu guideline mới hơn thay đổi thực hành, ưu tiên guideline mới nhưng vẫn ghi caveat.
5. Tạo wiki/contradiction-notes/<topic>.md nếu mâu thuẫn quan trọng.
# Heart failure with preserved ejection fraction
## Definition
## Epidemiology
## Pathophysiology
## Diagnostic approach
## Phenotypes
## Differential diagnosis
## Treatment
## Follow-up
## Special populations
## Key claims
## Evidence links
## Related source notes
## Last reviewed
# Empagliflozin
## Drug class
## Mechanism of action
## Indications
## Dose and administration
## Renal considerations
## Contraindications
## Adverse effects
## Monitoring
## Trial evidence
## Guideline recommendations
## Practical prescribing checklist
## Related claims
## Last reviewed
# EMPEROR-Preserved
## Full citation
## Clinical question
## PICOS
## Design
## Population
## Intervention and comparator
## Outcomes
## Results
## Safety
## Limitations
## Applicability
## Related guideline recommendations
## Related claims
Synthesis page nên trả lời một câu hỏi đủ hẹp. Đây là tầng gần nhất với câu trả lời cuối của Agent. Ví dụ tốt: “oxygen therapy in ACS with SpO2 > 90%”, “SGLT2i after decompensated HFpEF”, “DOAC in moderate-to-severe mitral stenosis”.
@raw/guidelines/cardiology/<file>.pdf
@wiki/source-notes/<out>.md
Ingest guideline source note. Tiếng Việt học thuật.
Yêu cầu:
1. Chỉ dùng file đính kèm.
2. Không sửa raw/.
3. Tạo metadata đầy đủ: title, society, year, DOI/PMID nếu có, original_file.
4. Viết Scope, Why this source matters, Key clinical messages.
5. Tạo Claim cards cho các khuyến cáo quan trọng.
6. Nếu guideline có COR/LOE, ghi đầy đủ.
7. Không dùng placeholder: TODO, Citation needed, Pending, Chờ Agent.
8. Không cập nhật wiki/index.md và logs/log.md trước khi audit sạch.
Sau đó chạy:
local-ai/scripts/ingest-and-audit.sh audit wiki/source-notes/<out>.md
Tạo disease note tại:
wiki/diseases/<disease>.md
Chỉ sử dụng các nguồn trong:
- wiki/source-notes/
- wiki/guidelines/
- wiki/trials/
- wiki/claim-registry/
Yêu cầu:
1. Không tạo claim mới nếu không có nguồn.
2. Mỗi khuyến cáo chẩn đoán/điều trị phải liên kết về source note hoặc claim registry.
3. Cấu trúc gồm Definition, Epidemiology, Pathophysiology, Diagnosis, Treatment, Follow-up, Key claims.
4. Nếu có khác biệt guideline, ghi vào mục Guideline differences và đề xuất contradiction-note.
5. Tiếng Việt học thuật, thuật ngữ Anh-Việt khi cần.
Audit file:
@wiki/source-notes/<file>.md
Yêu cầu:
1. Kiểm tra metadata, đặc biệt original_file.
2. Kiểm tra các section bắt buộc.
3. Kiểm tra claim cards: claim rõ, source anchor rõ, evidence type, certainty, audit status.
4. Tìm placeholder: TODO, Citation needed, Pending, Chờ Agent.
5. Không thêm claim mới nếu không có nguồn trong file.
6. Xuất danh sách lỗi và sửa trực tiếp nếu an toàn.
7. Sau audit, chạy scripts/validate.py.
Dựa trên wiki hiện có, trả lời câu hỏi:
<clinical question>
Yêu cầu:
1. Ưu tiên wiki/synthesis nếu có.
2. Nếu chưa có synthesis, truy wiki/source-notes, wiki/trials, wiki/guidelines, wiki/claim-registry.
3. Trả lời theo cấu trúc: Bottom line, Clinical reasoning, Evidence, Practical checklist, Caveats.
4. Nếu thiếu nguồn trong wiki, nói rõ thiếu nguồn và đề xuất file cần ingest.
5. Không dùng trí nhớ ngoài wiki để tạo khuyến cáo chắc chắn nếu không có nguồn.
Tôi đang gặp lỗi validate/git/script sau:
<paste terminal output>
Hãy phân tích:
1. Lỗi nằm ở file nào?
2. Nguyên nhân kỹ thuật là gì?
3. Sửa tối thiểu như thế nào?
4. Lệnh terminal cần chạy tiếp theo là gì?
5. Không thay đổi nội dung lâm sàng nếu không cần.
python3 scripts/validate.py
git status --short
grep -R "TODO\|Citation needed\|Pending\|Chờ Agent" wiki skills schema logs || true
find . -name .DS_Store -delete
rm -rf .tmp
find . -type d -name __pycache__ -prune -exec rm -rf {} +
local-ai/scripts/ingest-and-audit.sh prepare raw/guidelines/cardiology/<file>.pdf wiki/source-notes/<source-note>.md "<Official title>"
local-ai/scripts/ingest-and-audit.sh audit wiki/source-notes/<source-note>.md
local-ai/scripts/ingest-lecture-and-audit.sh prepare raw/lectures/vi/<specialty>/<file>.pptx wiki/source-notes/lecture-<specialty>-<topic>.md "<Lecture title>"
local-ai/scripts/ingest-lecture-and-audit.sh audit wiki/source-notes/lecture-<specialty>-<topic>.md
python3 scripts/validate.py
git status --short
git add AGENTS.md README.md schema/ skills/ scripts/ wiki/ logs/
git commit -m "<clear message>"
git push
ollama run llama3.2 "Dựa trên wiki/source-notes, hãy tóm tắt các claim chính về HFpEF. Không tạo claim không nguồn."
Hướng đúng của dự án là tiếp tục củng cố tầng nền: validator, source note template, audit claim, claim registry và RAG cục bộ. Chỉ khi tầng nguồn đã sạch, việc tạo disease page, drug page, synthesis page và teaching note mới có độ tin cậy cao. Với cấu trúc hiện tại, SecondBrain-YKhoa có thể phát triển thành một Agent AI y khoa cá nhân hóa, có khả năng trả lời dựa trên bằng chứng, hỗ trợ giảng dạy và nghiên cứu, đồng thời giảm đáng kể nguy cơ hallucination so với hỏi LLM trực tiếp không có kho nguồn.