ข้ามไปที่เนื้อหา

Scheduled Monitor

เอเจนต์ operative แบบต่อเนื่องที่รันตามตาราง cron คงสถานะข้ามการรัน และใช้ memory เพื่อติดตามการเปลี่ยนแปลงตามเวลา เหมาะสำหรับการมอนิเตอร์กล่องข้อความ รายวัน, การตรวจสถานะที่เกิดซ้ำ และโปรเจกต์วิจัยระยะยาว

Quickstart (5 นาที)

1. ติดตั้งและเริ่มต้น

git clone https://github.com/open-jarvis/OpenJarvis.git
cd OpenJarvis
uv sync --extra dev
jarvis init --preset scheduled-monitor

คำสั่งนี้จะเขียน ~/.openjarvis/config.toml ที่ตั้งค่าไว้ล่วงหน้าสำหรับเอเจนต์ operative พร้อมรองรับการตั้งเวลา

2. เริ่ม LLM ในเครื่องผ่าน Ollama

# Install Ollama: https://ollama.com
ollama pull qwen3.5:9b

3. Index ข้อมูลของคุณ

jarvis memory index ~/Documents/

เอเจนต์ operative ใช้ memory เพื่อติดตาม state ข้ามการรัน การ index ข้อมูลของคุณจึงให้บริบทสำหรับการรันครั้งแรก

4. สร้างงานที่ตั้งเวลาไว้

jarvis scheduler start

jarvis scheduler create \
  --prompt "Check for new emails about Project X and update your notes" \
  --schedule "0 9 * * 1-5" \
  --agent operative \
  --tools "knowledge_search,knowledge_sql,memory_store,think"

คำสั่งนี้สร้างงานที่รันตอน 9 โมงเช้าทุกวันธรรมดา เอเจนต์ operative จะค้นหาข้อมูลที่ index ไว้ ประมวลผลข้อมูลใหม่ และเก็บโน้ตไว้ใน memory สำหรับการรันครั้งถัดไป

การตั้งเวลาทำงานอย่างไร

Scheduler ใช้นิพจน์ cron เพื่อ trigger การรันของเอเจนต์ตามช่วงเวลาที่กำหนด แต่ละการรันเป็น session ของเอเจนต์ที่เป็นอิสระ แต่เอเจนต์ operative คงสถานะไว้ข้าม session

เอกสารอ้างอิงนิพจน์ Cron

 .------------ minute (0-59)
 | .---------- hour (0-23)
 | | .-------- day of month (1-31)
 | | | .------ month (1-12)
 | | | | .---- day of week (0-6, 0=Sunday)
 | | | | |
 * * * * *

ตัวอย่างที่พบบ่อย:

นิพจน์ ความหมาย
0 9 * * 1-5 9 โมงเช้า จันทร์ถึงศุกร์
0 6 * * * 6 โมงเช้าทุกวัน
*/30 * * * * ทุก 30 นาที
0 9,17 * * * 9 โมงเช้าและ 5 โมงเย็นทุกวัน
0 8 1 * * 8 โมงเช้า วันที่ 1 ของทุกเดือน

คำสั่ง CLI

# Start the scheduler daemon
jarvis scheduler start

# Create a new scheduled task
jarvis scheduler create \
  --prompt "Summarize any new research papers in my library" \
  --schedule "0 8 * * *" \
  --agent operative

# List all scheduled tasks
jarvis scheduler list

# View task details and run history
jarvis scheduler status <task-id>

# Pause / resume / delete a task
jarvis scheduler pause <task-id>
jarvis scheduler resume <task-id>
jarvis scheduler delete <task-id>

# Run a task immediately (outside its schedule)
jarvis scheduler run <task-id>

# Stop the scheduler daemon
jarvis scheduler stop

เอกสารอ้างอิง Configuration

preset นี้จะเขียนสิ่งนี้ลงใน ~/.openjarvis/config.toml:

[engine]
default = "ollama"

[intelligence]
default_model = "qwen3.5:9b"
temperature = 0.3

[agent]
default_agent = "operative"
max_turns = 20
context_from_memory = true          # Inject relevant memory into context

[tools]
enabled = ["knowledge_search", "knowledge_sql", "scan_chunks", "memory_store", "memory_search", "think", "web_search"]

[tools.storage]
default_backend = "sqlite"

การตั้งค่าหลัก

การตั้งค่า ค่าเริ่มต้น คำอธิบาย
intelligence.default_model qwen3.5:9b โมเดลที่ใช้ให้เหตุผล
intelligence.temperature 0.3 Temperature ต่ำเพื่อผลลัพธ์ที่สม่ำเสมอและยึดข้อเท็จจริงในทุกการรัน
agent.default_agent operative เอเจนต์แบบต่อเนื่องที่คงสถานะข้าม session
agent.max_turns 20 จำนวนรอบสูงสุดที่สูง สำหรับการประมวลผลข้อมูลที่สะสมไว้อย่างละเอียด
agent.context_from_memory true แทรก chunk memory ที่เกี่ยวข้องเข้าไปในบริบทของเอเจนต์โดยอัตโนมัติ
tools.enabled 7 tools Tool สำหรับค้นหา, เก็บ, สแกน และให้เหตุผล เพื่ออ่านและเขียนฐานความรู้

อธิบาย Tools

Tool สิ่งที่มันทำ
knowledge_search ค้นหาแบบ semantic ข้ามเอกสารที่ index ไว้
knowledge_sql Query แบบมีโครงสร้างต่อ document store
scan_chunks เรียกดู chunk เอกสารตามลำดับ
memory_store เขียนข้อเท็จจริงและโน้ตใหม่ลงฐานความรู้
memory_search ค้นหาโน้ตที่เอเจนต์เก็บไว้ก่อนหน้า
think พื้นที่ร่างความคิดภายในสำหรับวางแผน
web_search ค้นหาเว็บหาข้อมูลเสริม

ตัวอย่างกรณีใช้งาน

มอนิเตอร์กล่องข้อความรายวัน

jarvis scheduler create \
  --prompt "Review my recent emails. Flag anything urgent and summarize the rest. Store a daily summary." \
  --schedule "0 9 * * 1-5" \
  --agent operative \
  --tools "knowledge_search,memory_store,think"

ตัวติดตามงานวิจัย

jarvis scheduler create \
  --prompt "Search for new papers related to 'efficient transformers'. Compare with papers I've already indexed and note what's new." \
  --schedule "0 8 * * 1" \
  --agent operative \
  --tools "knowledge_search,web_search,memory_store,think"

ตัวรายงานสถานะ

jarvis scheduler create \
  --prompt "Check the project status documents and generate a weekly progress summary. Note any blockers." \
  --schedule "0 17 * * 5" \
  --agent operative \
  --tools "knowledge_search,knowledge_sql,memory_store,think"

การคงสถานะทำงานอย่างไร

เอเจนต์ operative แตกต่างจากเอเจนต์อื่นตรงที่มันคงสถานะข้ามการรัน:

  • การเก็บ Memory: เอเจนต์ใช้ tool memory_store เพื่อบันทึกโน้ต, สรุป และข้อสังเกต สิ่งเหล่านี้คงอยู่ในฐานข้อมูล SQLite ในเครื่อง และพร้อมใช้งานในการรันครั้งถัดไป
  • การแทรกบริบท: เมื่อ context_from_memory = true เอเจนต์จะได้รับบริบทที่เกี่ยวข้องจากการรันครั้งก่อนโดยอัตโนมัติเมื่อเริ่ม session ใหม่
  • ความรู้ที่สะสม: เมื่อเวลาผ่านไป เอเจนต์จะสร้างความเข้าใจข้อมูลของคุณที่ลึกซึ้งขึ้นเรื่อยๆ การรันในวันจันทร์อ้างอิงโน้ตจากวันศุกร์ก่อนหน้าได้
  • ข้อมูลทั้งหมดอยู่ในเครื่อง: State ถูกเก็บไว้ใน ~/.openjarvis/ โดยใช้ memory backend ที่ตั้งค่าไว้ ไม่มีอะไรออกจากเครื่องของคุณเลย

การแก้ปัญหา

"Scheduler not running" -- เริ่ม scheduler daemon ด้วย jarvis scheduler start มันต้องกำลังรันอยู่ งานที่ตั้งเวลาไว้ถึงจะทำงานได้

งานไม่รันตรงเวลา -- ตรวจสอบว่า Ollama กำลังรันอยู่ (ollama serve) scheduler จะ trigger เอเจนต์ แต่เอเจนต์ต้องการ inference engine ตรวจสอบตารางด้วย jarvis scheduler status <task-id>

เอเจนต์ให้ผลลัพธ์ไม่สม่ำเสมอ -- คง temperature ไว้ที่ 0.3 หรือต่ำกว่าสำหรับงานที่ตั้งเวลาไว้ Temperature ที่สูงกว่านำความสุ่มมาซึ่งจะสะสมข้ามการรัน

Memory ใหญ่เกินไป -- ตรวจสอบเป็นระยะด้วย jarvis memory stats ล้าง entry เก่าด้วย jarvis memory clear --before 2026-01-01 หากจำเป็น

เอเจนต์รันนานเกินไป -- ลด max_turns หรือลดความซับซ้อนของ prompt เอเจนต์ operative ทำงานอย่างละเอียดและอาจใช้รอบที่มีอยู่ทั้งหมด