สร้าง AI Agent จัดลำดับความสำคัญของงานรายวัน: เปลี่ยนโน้ตดิบเป็น Daily Agenda ด้วย Python + Ollama

เบื่อไหมกับการเปิดดู Todo List ที่ยาวเหยียดในแต่ละวันโดยไม่รู้จะเริ่มทำอะไรก่อน? มาสร้าง AI Agent ส่วนตัวเพื่อวิเคราะห์รายการงานและจัดลำดับความสำคัญให้พร้อมเสร็จสับแบบ Local 100% กัน

Share
สร้าง AI Agent จัดลำดับความสำคัญของงานรายวัน: เปลี่ยนโน้ตดิบเป็น Daily Agenda ด้วย Python + Ollama

ในแต่ละวันที่มีภารกิจรุมเร้าเข้ามามากมาย ตั้งแต่การตอบข้อความของลูกค้า การซื้อของใช้เข้าบ้าน ไปจนถึงการประชุมทีมและการเรียนรู้ทักษะใหม่ๆ ปัญหาที่พวกเราส่วนใหญ่มักประสบไม่ได้เกิดจากการขาดแคลนงานที่จะทำ แต่เกิดจาก "ความเหนื่อยล้าในการเลือกว่าจะทำอะไรก่อนดี" (Decision Fatigue)

การจดโน้ตรายการสิ่งที่คุณต้องทำทั้งหมดไว้ในที่เดียวนั้นเป็นจุดเริ่มต้นของระบบจดบันทึกที่ดี แต่มันมักจะกลายเป็นความเครียดทางอ้อมเมื่อเห็นรายการเหล่านั้นพอกพูนขึ้นเรื่อยๆ โดยปราศจากการแบ่งโครงสร้างและลำดับความสำคัญที่ชัดเจน

นี่จึงเป็นบทบาทที่สำคัญของ Cognitive Automation หรือการเปลี่ยนกระบวนการคิดวิเคราะห์พื้นฐานให้ทำงานได้โดยอัตนัย ในบทความนี้ เราจะมาร่วมกันสร้าง AI Agent ส่วนตัวที่ประมวลผลภายในเครื่องแบบ Local 100% เพื่อทำหน้าที่อ่านงานดิบทั้งหมดของคุณ วิเคราะห์ลำดับความสำคัญตามโครงสร้าง Eisenhower Matrix และเปลี่ยนให้เป็น แผนงานรายวัน (Daily Agenda) ที่พร้อมสำหรับเช้าวันทำงานใหม่ทันที


ทำไมต้องเป็น Local AI ในการจัดการแผนงาน?

แม้จะมีเครื่องมือบริหารจัดการงานระดับ Cloud มากมาย แต่การพัฒนาขึ้นมาใช้งานเองภายในเครื่องแบบ Local-first มีความสำคัญอย่างยิ่งในแง่ของ:

  1. ความเป็นส่วนตัวขั้นสูงสุด (Absolute Privacy): รายการงานส่วนตัว แผนธุรกิจ หรือกำหนดการต่างๆ เป็นข้อมูลสำคัญที่คุณไม่ควรส่งมอบให้คลาวด์ภายนอก การใช้งาน Ollama ทำหน้าที่ประมวลผลออฟไลน์ช่วยป้องกันไม่ให้ข้อมูลรั่วไหลได้อย่างเด็ดขาด
  2. ปรับแต่งให้เข้ากับความต้องการเฉพาะตัว (Tailored System): คุณสามารถสั่งการให้ AI เขียนสรุป จัดหมวดหมู่ หรือกระจายตารางงานตามความชอบและจังหวะชีวิต (Circadian Rhythm) ของคุณเองได้อย่างอิสระ
  3. ประหยัดค่าใช้จ่ายและเข้าถึงได้ไม่จำกัด (No Monthly Fees): รันกี่ครั้ง คัดแยกงานบ่อยแค่ไหนก็ได้ โดยไม่มีค่าบริการ API มาเป็นข้อจำกัด

ขั้นตอนการไหลของข้อมูลในระบบ

แผนงานและการออกแบบของ AI Agent ตัวนี้ถูกวางโครงสร้างไว้ให้เรียบง่ายและเป็นระบบ: 1. การอ่านข้อมูล (Read): ดึงเนื้อหารายการงานทั้งหมดจากไฟล์ inbox-todo.md ใน Obsidian Vault 2. การวิเคราะห์ (Analyze): ส่งลิสต์ทั้งหมดไปยัง Ollama โดยแนบคำสั่ง (Prompt) ที่กำหนดแนวทางและความถูกต้องตามกรอบบริหารเวลา 3. การบันทึก (Write): นำแผนงานที่ประมวลผลเสร็จสิ้นมาอัปเดตเป็นไฟล์แผนรายวัน daily-agenda.md ที่เชื่อมโยงง่ายใน Second Brain ของคุณ


การเตรียมความพร้อมก่อนเริ่มต้น

โปรดตรวจสอบให้แน่ใจว่าคุณติดตั้งสิ่งต่อไปนี้ในคอมพิวเตอร์เรียบร้อยแล้ว: * Python 3: เพื่อเขียนสคริปต์ควบคุม * Ollama: ตัวขับเคลื่อนโมเดลออฟไลน์ (ดาวน์โหลดที่ ollama.com) * Obsidian: เพื่อเปิดใช้ระบบจดโน้ต Markdown หรือคุณอาจประยุกต์ใช้กับโฟลเดอร์ไฟล์ทั่วไปก็ได้

จากนั้น ดึงโมเดลภาษาที่จะมาเป็นหัวใจของ Agent ครั้งนี้ด้วยการพิมพ์คำสั่งใน Terminal:

ollama pull gemma2

เขียนสคริปต์ Python สำหรับ AI Task Agent

ให้สร้างไฟล์ชื่อ task_prioritizer.py และคัดลอกโค้ด Python ด้านล่างนี้ไปใส่ไว้ โดยตัวสคริปต์นี้จะอาศัยเพียงไลบรารีมาตรฐานของระบบเพื่อความสะดวกและรวดเร็วในการติดตั้ง:

import urllib.request
import json
import os
from datetime import datetime

# ตั้งค่าตำแหน่งพาร์ทของโฟลเดอร์ Obsidian หรือโฟลเดอร์ที่คุณต้องการใช้งาน
OBSIDIAN_VAULT_PATH = "/home/linn/notes"
INBOX_FILE = os.path.join(OBSIDIAN_VAULT_PATH, "inbox-todo.md")
AGENDA_FILE = os.path.join(OBSIDIAN_VAULT_PATH, "daily-agenda.md")
LLM_MODEL = "gemma2"  # สามารถเปลี่ยนเป็น llama3 หรือโมเดลอื่นที่มีใน Ollama ได้

def check_and_read_inbox():
    # สร้างไฟล์ตัวอย่างในครั้งแรกที่เปิดรันหากไม่พบไฟล์ในระบบ
    if not os.path.exists(INBOX_FILE):
        os.makedirs(OBSIDIAN_VAULT_PATH, exist_ok=True)
        with open(INBOX_FILE, "w", encoding="utf-8") as f:
            f.write("# Inbox Tasks\n")
            f.write("- เตรียมสไลด์สรุปยอดขายโปรเจกต์ X สำหรับประชุมบ่ายนี้ (ด่วน)\n")
            f.write("- ออกกำลังกายคาดิโอ 30 นาที\n")
            f.write("- ซื้อของใช้วัตถุดิบทำอาหารเย็น\n")
            f.write("- อ่านบทความวิชาการที่เซฟไว้เมื่อวาน\n")
            f.write("- ตอบกลับอีเมลลูกค้าเรื่องขอใบเสนอราคาใหม่\n")
            f.write("- คิดโครงร่างหัวข้อวิดีโอถัดไปสำหรับช่องคอนเทนต์\n")
        print(f"สร้างไฟล์ตัวอย่างสำเร็จแล้วที่: {INBOX_FILE}")
        print("โปรดเพิ่มรายการงานจริงของคุณลงในไฟล์นี้และรันสคริปต์อีกครั้ง")
        return None

    with open(INBOX_FILE, "r", encoding="utf-8") as f:
        return f.read()

def process_with_ollama(raw_text):
    prompt = f"""
คุณคือเลขาส่วนตัวและผู้เชี่ยวชาญด้าน Productivity ระดับสากล
จงอ่านรายการภารกิจและสิ่งที่จะต้องทำ (Todo Items) ต่อไปนี้ และทำการวิเคราะห์ตามขั้นตอนอย่างมีแบบแผน:

รายการงานดิบ:
{raw_text}

ขั้นตอนและสิ่งที่คุณต้องสร้างส่งคืน:
1. กำหนดเป้าหมายหลัก 3 อย่างประจำวัน (Top 3 Focus Areas) ที่สำคัญที่สุดของวัน
2. คัดแยกงานทั้งหมดลงในตาราง Eisenhower Matrix (4 กล่อง):
   - ด่วนและสำคัญ (ต้องทำทันที)
   - สำคัญแต่ไม่ด่วน (ต้องวางแผนทำ)
   - ด่วนแต่ไม่สำคัญ (ควรมอบหมายหรือทำให้เร็วที่สุด)
   - ไม่สำคัญและไม่ด่วน (สามารถรอหรือตัดออกได้)
3. ร่างแผนเวลากิจกรรมคร่าวๆ ของวัน (Daily Schedule) โดยคำนึงถึงระดับพลังงานสมอง (เช่น ช่วงเช้าสำหรับคิดงานสร้างสรรค์/งานยาก, ช่วงบ่ายสำหรับตอบเมล/ธุรการ)
4. เขียนเนื้อหาตอบกลับเป็นรูปแบบ Markdown ที่สะอาด สวยงาม เหมาะสำหรับการบันทึกลงในระบบ Second Brain อย่าง Obsidian
5. ใช้ภาษาไทยที่เข้าใจง่าย มีสไตล์ที่เป็นมิตรและเป็นมืออาชีพ
"""

    url = "http://localhost:11434/api/generate"
    payload = {
        "model": LLM_MODEL,
        "prompt": prompt,
        "stream": False
    }

    req = urllib.request.Request(
        url,
        data=json.dumps(payload).encode("utf-8"),
        headers={"Content-Type": "application/json"}
    )

    try:
        print("กำลังส่งข้อมูลให้ Ollama ประมวลผลและแบ่งลำดับความสำคัญ...")
        with urllib.request.urlopen(req) as response:
            res_data = json.loads(response.read().decode("utf-8"))
            return res_data.get("response", "ไม่สามารถอ่านผลลัพธ์ได้")
    except Exception as e:
        return f"พบความขัดข้องในการเชื่อมต่อระบบ Ollama: {str(e)}"

def main():
    raw_tasks = check_and_read_inbox()
    if not raw_tasks:
        return

    # คัดกรองข้อมูลดิบว่ามีปริมาณงานเหมาะสมหรือไม่
    clean_tasks = raw_tasks.strip()
    if len(clean_tasks) < 15:
        print("รายการภารกิจน้อยเกินไป โปรดกรอกข้อมูลเพิ่มเติม")
        return

    ai_analysis = process_with_ollama(clean_tasks)

    date_today = datetime.now().strftime("%Y-%m-%d")
    document_data = f"---\ntitle: Daily Agenda {date_today}\ndate: {date_today}\ntags: [productivity, daily-agenda, local-ai]\n---\n\n"
    document_data += f"# 📅 Daily Plan & Priorities - ประจำวันที่ {date_today}\n\n"
    document_data += f"{ai_analysis}\n\n"
    document_data += "---\n*บันทึกแผนงานนี้สร้างขึ้นอัตโนมัติด้วย AI Agent ออฟไลน์ส่วนตัว*"

    with open(AGENDA_FILE, "w", encoding="utf-8") as f:
        f.write(document_data)

    print(f"จัดหมวดหมู่งานสำเร็จ! แผนงานบันทึกอยู่ที่: {AGENDA_FILE}")

if __name__ == "__main__":
    main()

วิธีการเรียกใช้อย่างต่อเนื่อง

เพื่อให้สคริปต์นี้สอดคล้องกับแนวคิด Cognitive Automation อย่างสมบูรณ์ การสั่งรันด้วยมือทุกวันอาจไม่สะดวกรวดเร็วพอ คุณสามารถเชื่อมระบบให้รันอัตโนมัติในตอนเช้า:

  • บน Windows (Task Scheduler): สร้าง Task สั่งรันคำสั่ง python task_prioritizer.py ทันทีหลังจากคุณ Log-in เข้าเครื่องคอมพิวเตอร์ในตอนเช้า
  • บน Linux และ macOS (Cron Job): เปิด Crontab และตั้งค่าให้เริ่มระบบจัดระเบียบตารางงานทุกวันเวลา 8:00 น. ก่อนที่คุณจะเริ่มเวลาทำงานหลัก

บทสรุป

การเปลี่ยนกระบวนการบริหารเวลาจากที่ต้องใช้พลังสมองเลือกและกังวล มาเป็นการมองเห็นภาพแผนงานที่ถูกวิเคราะห์ไว้ล่วงหน้า จะช่วยเพิ่มอัตราการเข้าสู่สภาวะ Deep Work หรือการทำงานที่มีประสิทธิภาพสูงได้รวดเร็วขึ้น

เมื่อนำระบบนี้ไปรวมเข้ากับ Obsidian คุณจะสามารถสร้างสรรค์ระบบงานและสร้างการเชื่อมโยงความรู้ที่สมบูรณ์ขึ้นได้ในทุกเช้าโดยปราศจากความกังวลว่าความเป็นส่วนตัวของบันทึกส่วนบุคคลจะถูกแบ่งปันออกไป ลองนำไปประยุกต์ปรับแต่งรูปแบบ Prompts ให้เหมาะเจาะกับตัวเองกันครับ!

Read more

สร้าง AI Agent สกัด Knowledge Graph จากโน้ตส่วนตัว: เปลี่ยนข้อความกระจัดกระจายให้เป็นเครือข่ายความรู้ออฟไลน์ 100% ด้วย Python

สร้าง AI Agent สกัด Knowledge Graph จากโน้ตส่วนตัว: เปลี่ยนข้อความกระจัดกระจายให้เป็นเครือข่ายความรู้ออฟไลน์ 100% ด้วย Python + Ollama

เปลี่ยนเอกสารและโน้ตข้อความร้อยแก้วให้เป็น Knowledge Graph แบบโครงสร้าง (Subject-Predicate-Object) โดยอัตโนมัติ ด้วยสคริปต์ Python ร่วมกับ Local LLM ในเครื่อง ช่วยสกัดความสัมพันธ์ระหว่างความคิด เทคโนโลยี และบุคคลอย่างเป็นระบบออฟไลน์ 100%

By Linn
บอกลา Audible: คู่มือติดตั้ง Audiobookshelf เซิร์ฟเวอร์หนังสือเสียงและ eBook ส่วนตัวบน Home Server ด้วย Docker

บอกลา Audible: คู่มือติดตั้ง Audiobookshelf เซิร์ฟเวอร์หนังสือเสียงและ eBook ส่วนตัวบน Home Server ด้วย Docker

เปลี่ยนคลังหนังสือเสียงและดิจิทัลไฟล์ของคุณให้กลายเป็นเซิร์ฟเวอร์สตรีมมิ่งส่วนตัว ด้วย Audiobookshelf บน Home Server ผ่าน Docker พร้อมวิธีซิงค์ความคืบหน้าการฟังข้ามอุปกรณ์แบบเรียลไทม์

By Linn
สร้าง AI Agent สกัดและสังเคราะห์ Book Highlights: เปลี่ยนโน้ตอ่านหนังสือเป็น Book Summary อัจฉริยะใน Obsidian ด้วย Python + O

สร้าง AI Agent สกัดและสังเคราะห์ Book Highlights: เปลี่ยนโน้ตอ่านหนังสือเป็น Book Summary อัจฉริยะใน Obsidian ด้วย Python + Ollama

เปลี่ยนไฮไลต์และโน้ตย่อยจากการอ่านหนังสือให้กลายเป็น Book Summary ที่ทรงคุณค่าด้วย AI Agent ออฟไลน์ส่วนตัวที่จะสกัด Core Key Takeaways, Actionable Insights และเชื่อมโยงเข้ากับระบบ Second Brain แบบ Local 100%

By Linn
สร้าง Private AI Router ในเครื่องตัวเอง: คู่มือตั้งค่า LiteLLM สลับโมเดลอัจฉริยะตามประเภทงานแบบออฟไลน์ 100%

สร้าง Private AI Router ในเครื่องตัวเอง: คู่มือตั้งค่า LiteLLM สลับโมเดลอัจฉริยะตามประเภทงานแบบออฟไลน์ 100%

เรียนรู้วิธีตั้งค่า LiteLLM เป็น AI Gateway และ Router ในเครื่องตัวเอง เพื่อสลับรันโมเดล Ollama อัตโนมัติ ทั้งโมเดลเน้นความเร็ว โมเดลคิดวิเคราะห์เชิงลึก และโมเดลวิเคราะห์ภาพ ปลอดภัย 100% ไม่ต้องพึ่งคลาวด์

By Linn