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¶
3. Index ข้อมูลของคุณ¶
เอเจนต์ 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 ทำงานอย่างละเอียดและอาจใช้รอบที่มีอยู่ทั้งหมด