เปลี่ยนบทความ งบการเงิน และ transcript ให้เป็นคลังความรู้การลงทุนที่ย้อนกลับไปดูหลักฐานได้
ใช้ Obsidian อ่านและเชื่อมโยงโน้ต ใช้ Dashboard ในเครื่อง (dashboard/) ดูโน้ตคู่กับกราฟราคาและปรับหน้าตาเองได้ ใช้ Claude Code ช่วยเก็บแหล่งข้อมูล เขียน Source Note และร่าง Investment Thesis ส่วนโน้ตเก็บเป็นไฟล์ Markdown ในเครื่อง คุณจึงเปิดอ่าน แก้ไข และย้ายไปใช้กับเครื่องมืออื่นได้
เริ่มใช้งาน · ดูขั้นตอน · คำสั่งที่ใช้บ่อย · โครงสร้างไฟล์ · คู่มือการใช้งาน · คู่มือผังการทำงาน · คู่มือเพิ่มเติม
เมื่ออ่านหลายบริษัทพร้อมกัน ข้อมูลมักกระจายอยู่ใน PDF แท็บเบราว์เซอร์ และบทสนทนากับ AI พอกลับมาทบทวน เราอาจจำข้อสรุปได้ แต่หาตัวเลขหรือคำพูดต้นทางไม่เจอ
Wiki นี้แยก หลักฐานที่เก็บมา ออกจาก ความเข้าใจที่เขียนขึ้น แล้วเชื่อมสองส่วนเข้าด้วยกัน ข้อมูลใหม่จึงเพิ่มลงในงานวิจัยเดิมได้ โดยยังย้อนดูที่มาของข้อสรุปแต่ละเรื่องได้
- Raw capture — เนื้อหาที่ดึงหรือแปลงมา พร้อม URL และ metadata ของแหล่งข้อมูล
- Source Note — สรุปที่อ่านต่อได้ พร้อมตารางแยก fact, interpretation และคำถามที่ยังไม่มีคำตอบ
- Entity และ Concept — โน้ตบริษัทหรือบุคคลที่เกี่ยวข้อง และแนวคิดที่ใช้ซ้ำได้ เช่น capital cycle หรือ pricing power เมื่อแหล่งข้อมูลมีเนื้อหารองรับ
เมื่อมีหลักฐานจากหลายแหล่งที่ผ่านการทบทวนเพียงพอ ใช้ /research <ticker> ช่วยร่าง Investment Thesis พร้อม base case, bear case และเงื่อนไขที่จะทำให้เปลี่ยนใจ ดูรูปแบบผลลัพธ์ได้ที่ Source Note template และ Thesis template
ช่วงแรกเก็บหลักฐานและเขียนโน้ตที่เชื่อมกัน ส่วนการร่าง Thesis ใช้หลักฐานหลายแหล่งที่ผ่านการทบทวนแล้ว:
แถวคือผู้ทำงาน คอลัมน์คือขั้นของงาน การนำเข้าไม่ได้หมายความว่าทุก claim ผ่าน review แล้ว และ Draft Thesis ยังต้องผ่าน Feynman กับ Reviewer ก่อนเปลี่ยนเป็น reviewed
อ่านขั้นตอนเป็นข้อความสำหรับหน้าจอเล็ก
- Sources → Capture → Raw: ใช้ Python ดึงหรือแปลงบทความ เอกสาร หรือ transcript เก็บเนื้อหาและข้อมูลที่มาของแหล่งข้อมูล
- Raw → Source Note: เขียนสรุป แยก fact, interpretation และ open question โดยเชื่อมกลับไปหา Raw พร้อมสร้างหรืออัปเดต Entity และ Concept เมื่อมีแนวคิดที่ใช้ซ้ำได้
- Review evidence: Feynman ตรวจตัวเลข Reviewer ตรวจเหตุผลและ bear case
- Draft Thesis: Leopold ร่าง base case, bear case และเงื่อนไขที่จะทำให้เปลี่ยนใจ เมื่อมีหลักฐานที่ผ่านการทบทวนพอ
- Monitor:
/delta-report,/anomaly-scanและ/earnings-scorecardเฝ้าดูว่าหลักฐานใหม่เปลี่ยน thesis หรือไม่ - Read: อ่านใน Obsidian หรือ dashboard ซึ่งอ่านไฟล์ชุดเดียวกัน
Quickstart นี้ใช้ Obsidian, Claude Code, Python 3.10+ และ Git ติดตั้งและลงชื่อเข้าใช้ Claude Code ตามคู่มือของผู้ให้บริการก่อนเริ่ม
กด Use this template → Create a new repository บน GitHub แล้วตั้งเป็น Private เพราะงานวิจัยและไฟล์ที่ capture มา (filing, transcript) จะอยู่ใน repo นี้ จากนั้น clone repo ของคุณเอง หรือถ้าแค่อยากลองดูก่อน clone template ตรงๆ ได้:
git clone https://github.com/Migchw/llm-wiki-starter.git
cd llm-wiki-starterหรือเลือก Code → Download ZIP บน GitHub แล้วแตกไฟล์ เปิด terminal ในโฟลเดอร์ที่แตกออกมา
ตัวอย่างนี้เก็บ virtual environment ไว้นอกโฟลเดอร์ vault และใช้ environment เดียวกันตลอด session
macOS / Linux
python3 --version
python3 -m venv ../.venv-llm-wiki
source ../.venv-llm-wiki/bin/activate
python -m pip install beautifulsoup4 PyYAMLWindows — Command Prompt
py -3 --version
py -3 -m venv ..\.venv-llm-wiki
..\.venv-llm-wiki\Scripts\activate.bat
python -m pip install beautifulsoup4 PyYAMLหากเลขเวอร์ชันที่แสดงต่ำกว่า 3.10 ให้ติดตั้ง Python รุ่นใหม่ก่อนสร้าง environment ส่วน PDF, Office, เว็บที่ใช้ JavaScript และ YouTube มีเครื่องมือเสริมอยู่ด้านล่าง
ใน Obsidian เลือก Open folder as vault แล้วเลือก llm-wiki-starter จากนั้นเปิด Home เป็นหน้าหลัก
ใน terminal ที่เปิด environment แล้ว และยังอยู่ในโฟลเดอร์ repo ให้รัน:
claudeคำสั่งที่ขึ้นต้นด้วย / ใน README นี้ใช้ใน Claude Code โปรเจกต์มี skills อยู่ใน .claude/skills/ ให้โหลดจากโฟลเดอร์นี้
ต้องมี Node.js 22.13 ขึ้นไป (ตาม engines ใน dashboard/package.json)
cd dashboard
npm install
npm run devเปิด http://localhost:3000 คำสั่ง dev สร้าง index จากโน้ตในวอลต์ให้ก่อนทุกครั้ง ถ้ายังไม่มี Python หรือเน็ต ส่วนราคาและ earnings จะว่างแต่หน้าเว็บยังเปิดได้ หลัง ingest โน้ตใหม่ให้รัน npm run index แล้ว refresh
ปรับแต่งเป็นของคุณเอง:
| อยากเปลี่ยน | แก้ที่ |
|---|---|
| หุ้นที่ติดตามและกราฟราคา | dashboard/config/watchlist.json (entity ต้องตรงกับชื่อไฟล์ใน 02-Wiki/Entities/) |
| สี ฟอนต์ ธีมสว่าง/มืด | ตัวแปร CSS ใน dashboard/app/globals.css |
| การ์ดและหน้าต่างๆ | dashboard/components/ และ dashboard/app/ |
Dashboard อ่านวอลต์อย่างเดียว ไม่เขียนกลับเข้า 01-Raw/ หรือ 02-Wiki/ รายละเอียดอยู่ใน dashboard/README.md
ส่งลิงก์บทความที่อ่านได้สาธารณะ โดยแทน <URL> ด้วยลิงก์จริง:
/ingest <URL>
ถ้าต้องการให้ agent พาทำทีละขั้น ใช้ /onboarding แทน ขั้นตอนนั้นจะถามหาแหล่งข้อมูลและนำเข้าให้ด้วย
เมื่อจบงาน เปิด Raw ใน 01-Raw/ เทียบกับต้นฉบับ แล้วอ่าน Source Note ใน 02-Wiki/Sources/ ตรวจว่าตาราง claim ชี้กลับไปยังหลักฐานได้ รายการงานอยู่ใน Ingest Queue และประวัติการทำงานอยู่ใน Log
เครื่องมือเสริมสำหรับ JavaScript, PDF / Office และ YouTube
รันเฉพาะชุดที่ต้องใช้ใน terminal ที่เปิด Python environment แล้ว
เว็บที่ต้องรอ JavaScript แสดงเนื้อหา
python -m pip install playwright
python -m playwright install chromiumFetcher จะลอง HTTP ก่อน และใช้ Playwright เป็น fallback เมื่อมีการติดตั้งไว้ การ render หน้าเว็บไม่ได้รับประกันว่าจะผ่านเว็บที่ต้อง login หรือบล็อก bot
PDF ที่มีข้อความ และไฟล์ DOCX / PPTX / XLSX
python -m pip install "markitdown[pdf,docx,pptx,xlsx]" pypdfYouTube ที่มี transcript ให้เข้าถึงได้
python -m pip install youtube-transcript-apiตัว fetcher ปัจจุบันยังไม่ได้ทำ OCR ให้ PDF สแกน หรือถอดเสียงวิดีโอที่ไม่มี transcript โดยอัตโนมัติ หากเนื้อหาที่ได้ว่างหรือขาดช่วง ให้หาแหล่งข้อมูลที่อ่านได้ก่อนนำไปสรุป
พิมพ์ในบทสนทนา Claude Code ที่เปิด repo นี้อยู่:
| คำสั่ง | ใช้เมื่อ | ผลลัพธ์ที่คาดหวัง |
|---|---|---|
/onboarding |
เพิ่งเริ่มใช้ vault | พาทำความรู้จักโครงสร้างและลองแหล่งข้อมูลแรก |
/ingest <URL หรือ path> |
มีบทความหรือเอกสารแล้ว | Raw → Source Note → Entity และ Concept เมื่อมีเนื้อหารองรับ |
/research <ticker> |
ต้องการรวบรวมงานวิจัยของบริษัท | หาและจัดลำดับแหล่งข้อมูล นำเข้า แล้วร่าง Thesis เมื่อหลักฐานเพียงพอ |
/wiki-health-check |
ต้องการทบทวนคุณภาพ Wiki | รายงานปัญหาโครงสร้างและเนื้อหาใน lint_pending/ เพื่อพิจารณาแก้ไข |
คำสั่งเสริมเมื่อมี thesis และ watchlist แล้ว:
| คำสั่ง | ใช้เมื่อ | ผลลัพธ์ที่คาดหวัง |
|---|---|---|
/delta-report |
ทบทวนรายสัปดาห์ | หลักฐานใหม่ทำให้ thesis แข็งขึ้น อ่อนลง หรือชน kill condition พร้อมข้อเสนอแก้เป็น checkbox |
/anomaly-scan |
หุ้นใน watchlist วิ่งแปลก | รายงานราคา/volume และภาษาในเอกสารที่เปลี่ยน แล้วเพิ่มงานในคิว |
/earnings-scorecard |
บริษัทเพิ่งประกาศงบ | beat/miss เทียบ consensus, guidance และการ์ดบน dashboard |
ผังของทุกคำสั่งอยู่ใน ผัง swimlane
ตัวอย่าง /research AAPL ใช้เริ่มค้นคว้าบริษัท ควรระบุตลาดด้วยเมื่อ ticker อาจซ้ำกัน
ผัง /ingest และ /research
งานหนึ่งแหล่งทำใน session หลัก คิว done หมายถึงมี Source Note แล้ว claim ที่ยังไม่ตรวจคง verification: pending
Peter Lynch ที่เรียกโดยตรงจะหยุดหลังเตรียมแหล่งข้อมูล ส่วน /research ทำต่อจนถึงร่าง Thesis เมื่อหลักฐานพอ ถ้ายังไม่พอให้ระบุสิ่งที่ขาด
ใช้ Python CLI เพื่อเก็บ Raw โดยตรง
รันจากโฟลเดอร์ repo ใน terminal โดยแทนค่าระหว่าง <...> ด้วย URL หรือ path จริง:
python scripts/fetch_source.py "<ARTICLE_URL>" --type article
python scripts/fetch_source.py "<DOCUMENT_URL>" --type filing
python scripts/fetch_source.py "<LOCAL_PDF_PATH>" --type filing
python scripts/fetch_source.py "<YOUTUBE_URL>" --type videoใช้ URL ที่ลงท้ายด้วย .pdf, .docx, .pptx หรือ .xlsx สำหรับเอกสารโดยตรง เพิ่ม --playwright เมื่อต้องการบังคับ render เว็บด้วย Chromium
CLI แสดง SAVED_RAW: <path> หลังบันทึกไฟล์ ทำเฉพาะขั้น Raw capture ส่วน Source Note และ Thesis เป็นงานของ agent ตรวจเนื้อหาในไฟล์ทุกครั้ง เพราะการบันทึกสำเร็จไม่ได้แปลว่าดึงเนื้อหาได้ครบ
สำหรับไฟล์ที่อยู่ในเครื่อง raw_file ยังชี้ไปยังตำแหน่งต้นฉบับ จึงต้องเก็บไฟล์นั้นไว้ และปรับ path หากย้ายไฟล์หรือย้าย vault ไปเครื่องอื่น
| โฟลเดอร์ | เก็บอะไร |
|---|---|
01-Raw/ |
หลักฐานที่ capture มา แยกตาม article, filing, book, video และ dataset |
02-Wiki/ |
Source Notes, Entities, Concepts, Theses และ Synthesis ที่เชื่อมหลายเรื่องเข้าด้วยกัน |
03-Logs/ |
ประวัติการนำเข้าและแก้ไข Wiki |
04-Schema/ |
Templates, workflow และเกณฑ์คุณภาพของโน้ต |
05-Index/ |
Home, คิวงาน และบันทึกสุขภาพ vault |
06-Assets/ |
รูปและไฟล์แนบที่ใช้ประกอบโน้ต |
scripts/ |
ตัวดึงข้อมูล ตัวบันทึก raw และ linter |
dashboard/ |
เว็บ dashboard ในเครื่อง อ่านโน้ตจากวอลต์ |
docs/ |
ผังการทำงานและตัวสร้างผัง |
tests/ |
ชุดทดสอบการเก็บ raw |
lint_pending/ |
รายงานตรวจ Wiki ที่รอพิจารณา |
กติกาของโปรเจกต์อยู่ใน .agents/AGENTS.md skills และ agents ต้นฉบับอยู่ใน .agents/ และ copy ไป .claude/ ให้ Claude Code ด้วย python scripts/wiki_tool.py --sync-agents (แก้ที่ .agents/ เท่านั้น) โน้ตเขียนเป็นภาษาไทยเป็นหลัก และคงศัพท์การเงิน เช่น moat, EBITDA และ DCF ตามบริบท
หน้าที่ของแต่ละ agent
Munger คือ session หลักที่คุยกับผู้ใช้ ทำงานนำเข้าทั่วไปโดยตรงและประสานงานวิจัยที่ซับซ้อน ส่วน subagents อีก 6 บทบาท มีหน้าที่ตามไฟล์กำหนดดังนี้:
| Agent | หน้าที่ |
|---|---|
| Peter Lynch | หา ตรวจลิงก์ และจัดลำดับแหล่งข้อมูล |
| Ingest Runner | ดูแลการนำเข้าหนึ่งแหล่งข้อมูลเมื่อ /research มีหลายแหล่ง |
| Feynman | ตรวจตัวเลข วันที่ และคำพูดอ้างอิง |
| Reviewer | ทบทวนเหตุผล bear case และช่องว่างของหลักฐาน |
| Darwin | สกัดแนวคิดที่ใช้ซ้ำได้และเชื่อม Entity |
| Leopold | ร่าง Thesis จากหลักฐานที่ผ่านการทบทวน |
ดูขั้นตอนและจุดส่งต่องานใน Project Workflow
เก็บ Raw เดิมไว้ — เมื่อนำเข้าแหล่งเดิมอีกครั้ง fetcher จะคงหลักฐานเดิมไว้ และสร้าง capture ใหม่เมื่อเนื้อหาหรือ metadata เปลี่ยน เช่น วันที่ capture ไฟล์ชื่อซ้ำไม่เขียนทับกัน ส่วนเอกสารที่ดาวน์โหลดมี raw_file ชี้กลับไปยังต้นฉบับของ capture นั้น
แยกสิ่งที่รู้กับสิ่งที่ตีความ — Source Note ต้องเชื่อมกลับไปหา Raw และแยก fact, interpretation และ open question ข้อที่ยังตรวจไม่ได้ให้คง verification: pending การมี agent สำหรับตรวจสอบไม่ได้ยืนยันว่าทุก claim ผ่านการตรวจแล้ว
เปิดดูหลักฐานก่อนใช้ข้อสรุป — ตัวดึงเว็บอาจตกหล่นตารางหรือข้อความบางส่วน และ metadata อาจคลาดเคลื่อน โดยเฉพาะวันที่กับงวดรายงาน ให้เทียบตัวเลขสำคัญกับเอกสารต้นทาง
รันตัวตรวจโครงสร้างและดูสถิติได้จาก terminal:
python scripts/wiki_tool.py --lint
python scripts/wiki_tool.py --statsLinter ปัจจุบันอาจนับลิงก์ตัวอย่างในคู่มือเป็นลิงก์เสีย และยังตรวจความเชื่อมโยงของหลักฐานได้ไม่ครบ ผล 100% HEALTHY จึงไม่ได้รับรองความถูกต้องของข้อสรุปการลงทุน
ผัง /wiki-health-check: รายงานก่อน แล้วจึงพิจารณาข้อที่อนุมัติให้แก้
คำสั่งตรวจสุขภาพสร้างรายงานพร้อมข้อเสนอ โดยยังไม่แก้โน้ต เมื่อผู้ใช้ขอให้นำข้อที่อนุมัติไปแก้จึงใช้เฉพาะรายการ [x] และคงรายงานที่ยังมีข้อรอตัดสินใจไว้
ไฟล์ vault เก็บในเครื่อง แต่เมื่อใช้งานผ่าน AI เนื้อหาที่ agent อ่านอาจถูกส่งไปยังผู้ให้บริการโมเดลตามการตั้งค่าที่ใช้ เลือกแหล่งข้อมูลที่คุณมีสิทธิ์นำมาใช้งานในบริบทนั้น
แจ้งปัญหาผ่าน Issues พร้อมคำสั่งที่ใช้ ผลที่คาดหวัง และตัวอย่างที่ทำซ้ำได้ หรือส่ง PR ที่แก้ปัญหาหนึ่งเรื่องต่อครั้ง สำหรับบั๊กการดึงข้อมูล ควรใช้ fixture ที่แบ่งปันได้แทนเอกสารส่วนตัว
ชุดทดสอบการเก็บ raw ใช้ Python standard library และรันแบบ offline:
python -m unittest discover -s tests -v- คู่มือการใช้งาน — ใช้คำสั่งไหนเมื่อไร หน้าที่ของ agent การปรับแต่ง dashboard และสิ่งที่เปลี่ยนจาก template เดิม
- คู่มือผังการทำงาน — pipeline, ชั้นข้อมูล, บทบาท agent และผัง swimlane ของทุกคำสั่ง พร้อมคำอธิบายภาษาไทย
- Project Blueprint — แนวคิดและภาพรวมของระบบ
- Project Workflow — บทบาท agent และเส้นทางการทำงาน
- Concept Checklist — เมื่อใดควรสร้าง Concept ใหม่
- Obsidian Fundamentals — frontmatter, links และการอ่าน vault
- DeepWiki — คำอธิบายระบบพร้อมลิงก์กลับไปยังโค้ด อาจอ้างอิง commit เก่ากว่า repo ปัจจุบัน
