尧图网络科技YAOTU DIGITAL 获取报价
获取报价
首页 / 资讯中心 / 文章详情

OpenJarvis Scheduled Monitor 实战:用 Operative 常驻智能体打造定时监控工作流

发布时间:2026/9/24 14:44:47

资讯中心
01
ARTICLE

OpenJarvis Scheduled Monitor 实战:用 Operative 常驻智能体打造定时监控工作流

OpenJarvis Scheduled Monitor 实战:用 Operative 常驻智能体打造定时监控工作流
【免费下载链接】OpenJarvisPersonal AI, On Personal Devices项目地址https://gitcode.com/gh_mirrors/op/OpenJarvis点击查看免费下载Scheduled Monitor 是 OpenJarvis 内置的一套定时运行 跨轮次记忆的常驻智能体operative agent方案它通过 cron 表达式驱动独立 Agent 会话周期性执行任务并借助记忆后端在多次运行之间维持状态适合日常收件箱监控、周期性状态检查与长期研究跟踪等场景。读完本文你将掌握从初始化、数据索引、定时任务创建到状态持久化原理的完整落地路径并能在本地完全离线地运行这套工作流。一、Scheduled Monitor 是什么Scheduled Monitor 由三部分组成调度器Scheduler一个后台轮询守护进程按 cron 表达式触发 Agent 运行核心实现在 src/openjarvis/scheduler/scheduler.pyOperative 常驻智能体在标准工具调用循环之上叠加会话加载、状态回调和自动持久化能力实现在 src/openjarvis/agents/operative.py记忆与知识库以 SQLite 为默认后端的本地记忆存储让每次运行都能引用上次的结论。官方预设配置位于 configs/openjarvis/examples/scheduled-monitor.tomljarvis init --preset scheduled-monitor会将其写入用户配置文件该 preset 已在 src/openjarvis/cli/init_cmd.py 中注册为合法选项。二、五分钟快速上手1. 安装并初始化git clone https://github.com/open-jarvis/OpenJarvis.git cd OpenJarvis uv sync --extra dev jarvis init --preset scheduled-monitor --force--force表示覆盖已有配置。此命令会写入一份预配置好的~/.openjarvis/config.toml注意预设使用的是旧式--schedule参数写法见下文CLI 命令参考中关于参数演进的说明默认启用调度与 Operative 智能体。2. 通过 Ollama 启动本地 LLM# 安装 Ollama 后拉取推理模型 ollama pull qwen3.5:9bOperative 智能体的默认模型即为qwen3.5:9b本地推理保证数据不出设备。3. 索引你的数据jarvis memory index ~/Documents/Operative 智能体依赖记忆来跨运行跟踪状态索引数据为其首次运行提供上下文。从 src/openjarvis/cli/memory_cmd.py 的源码看index命令支持--backend覆盖默认记忆后端、--chunk-size默认 512 token、--chunk-overlap默认 64 token等参数完成索引后会打印 chunk 数量与耗时。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 智能体会检索已索引数据、处理新信息并把笔记存入记忆供下次运行使用。三、调度机制是如何工作的调度器使用 cron 表达式在指定时间间隔触发 Agent 运行。每次运行都是一个独立的 Agent 会话但 Operative 智能体会在会话之间持久化状态。从 scheduler.py 的实现看TaskScheduler维护一个后台守护线程_poll_loop默认每 60 秒poll_interval60轮询一次到期任务对每个到期任务执行_execute_task发布scheduler_task_start事件、调用system.ask(prompt, agent..., tools...)执行、记录运行日志、发布scheduler_task_end事件最后更新next_run。任务类型由ScheduledTask.schedule_type决定支持三种类型schedule_value 含义说明croncron 表达式如0 9 * * 1-5按 croniter 计算下一次运行时间interval秒数如3600固定间隔循环onceISO 8601 时间单次运行运行后next_run置空并标记为 completedcron 的解析依赖croniter库缺失时会直接抛错而不是静默改变语义见 scheduler.py 与测试test_cron_without_dependency_fails_loudly同时支持通过任务 metadata 中的timezone指定 IANA 时区在本地时区计算后统一以 UTC 持久化scheduler.py。Cron 表达式参考.------------ minute (0-59) | .---------- hour (0-23) | | .-------- day of month (1-31) | | | .------ month (1-12) | | | | .---- day of week (0-6, 0Sunday) | | | | | * * * * *常用示例表达式含义0 9 * * 1-5周一至周五上午 9 点0 6 * * *每天凌晨 6 点*/30 * * * *每 30 分钟0 9,17 * * *每天上午 9 点和下午 5 点0 8 1 * *每月 1 日上午 8 点四、CLI 命令全参考调度相关命令定义在 src/openjarvis/cli/scheduler_cmd.py说明如下命令签名以当前仓库源码为准# 启动调度器守护进程前台运行CtrlC 停止可调轮询间隔 jarvis scheduler start --poll-interval 60 # 创建定时任务源码当前要求显式指定类型与取值 jarvis scheduler create Summarize any new research papers in my library \ --type cron --value 0 8 * * * \ --agent operative # 列表查看所有任务可按状态过滤 jarvis scheduler list --status active # 查看某任务详细运行历史 jarvis scheduler logs task-id -n 10 # 暂停 / 恢复 / 取消任务 jarvis scheduler pause task-id jarvis scheduler resume task-id jarvis scheduler cancel task-id # 立即运行某个 Agent 的活跃任务launchd/systemd 场景 jarvis scheduler run-task operative --dry-run几点需要说明的差异与细节文档中jarvis scheduler create --prompt ... --schedule 0 9 * * 1-5的写法对应源码中的--type cron --value 0 9 * * 1-5--type可选cron、interval、once--value分别是 cron 表达式、间隔秒数或 ISO 时间见 scheduler_cmd.pystatus task-id对应现版本的logs task-id展示每次运行的起止时间、成功与否、结果摘要与错误信息run task-id对应run-task agent_name它会查找该 Agent 的第一个 active 任务并立即执行专门用于在 OpenJarvis 未作为常驻守护进程运行时由 launchd 等外部机制调用任务状态包括active、paused、completed、cancelled四种list与--status过滤一一对应。任务与运行日志持久化在用户配置目录下的scheduler.db默认路径见 scheduler_cmd.py运行记录可追溯。五、配置参考jarvis init --preset scheduled-monitor写入~/.openjarvis/config.toml的内容与仓库中的 scheduled-monitor.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_modelqwen3.5:9b用于推理的模型intelligence.temperature0.3低温度保证多次运行间输出稳定、事实性强agent.default_agentoperative在会话之间维持状态的常驻智能体agent.max_turns20高轮次上限用于充分处理累积数据agent.context_from_memorytrue自动把相关记忆块注入智能体上下文tools.enabled7 个工具用于读写知识库的检索、存储、扫描与推理工具tools.storage.default_backendsqlite记忆与状态存储后端其中context_from_memory在jarvis ask/jarvis chat等入口中均有实际接线见 src/openjarvis/cli/ask.py开启后每次会话都会从记忆后端检索相关片段注入上下文。六、工具详解tools.enabled中 7 个工具的源码实现分布在 src/openjarvis/tools 目录下工具作用源码位置knowledge_search对已索引文档做语义检索knowledge_search.pyknowledge_sql对文档库做结构化查询knowledge_sql.pyscan_chunks按顺序浏览文档分块scan_chunks.pymemory_store向知识库写入新事实与笔记storage_tools.pymemory_search检索此前存储的 Agent 笔记storage_tools.pythink内部推理草稿用于规划think.pyweb_search联网搜索补充信息web_search.py从源码结构看这 7 个工具被设计为可组合的能力集knowledge_*系列负责读已索引文档语义检索、SQL 查询、顺序浏览memory_*系列负责写/读Agent 自身积累的笔记think提供推理中间态web_search负责外部信息补充。在 src/openjarvis/tools/storage_tools.py 中还提供了memory_retrievememory_search的检索底层与memory_index运行时增量索引等扩展工具。七、实战用例1. 每日收件箱监控jarvis scheduler create \ --prompt Review my recent emails. Flag anything urgent and summarize the rest. Store a daily summary. \ --type cron --value 0 9 * * 1-5 \ --agent operative \ --tools knowledge_search,memory_store,think2. 研究跟踪器jarvis scheduler create \ --prompt Search for new papers related to efficient transformers. Compare with papers Ive already indexed and note whats new. \ --type cron --value 0 8 * * 1 \ --agent operative \ --tools knowledge_search,web_search,memory_store,think3. 状态汇报器jarvis scheduler create \ --prompt Check the project status documents and generate a weekly progress summary. Note any blockers. \ --type cron --value 0 17 * * 5 \ --agent operative \ --tools knowledge_search,knowledge_sql,memory_store,think三个用例分别对应监控收件箱、追踪研究进展、汇报项目状态体现了read → reason → write的通用模式先用检索类工具读取数据经think推理最后用memory_store沉淀结论。八、状态持久化原理Operative 智能体与普通 Agent 的核心区别在于跨运行维护状态。从 operative.py 的run方法可以看到其完整生命周期状态回召State recall运行开始前从记忆后端读取键operator:{operator_id}:state的上一轮状态注入系统提示词的## Previous State段落operative.py会话加载Session loading从会话存储加载该 operator 最近 10 条消息作为历史上下文避免上下文溢出operative.py标准工具循环与 Orchestrator 相同的 function-calling 循环受max_turns默认 20约束并有 Loop Guard 防止失控调用operative.py会话保存把本轮 prompt 与响应写入会话存储operative.py状态自动持久化如果 Agent 没有显式通过memory_store写入状态框架会把本轮回答的前 1000 字符自动摘要写入状态键保证每次 tick 结束后状态一定落地operative.py。由此得到状态持久化的四个关键结论记忆存储Agent 通过memory_store保存笔记、摘要与观察持久化在本地 SQLite 数据库中未来运行可用上下文注入context_from_memory true时新会话自动获得此前运行的相关上下文知识累积随时间推移Agent 对数据的理解逐步加深——周一的运行可以引用上周五的笔记数据全程本地所有状态存放在~/.openjarvis/使用配置的记忆后端数据不会离开你的设备。九、故障排查Scheduler not running调度器未运行—— 用jarvis scheduler start启动调度器守护进程定时任务执行必须依赖它在运行。任务没有按时执行—— 检查 Ollama 是否在运行ollama serve。调度器只负责触发 AgentAgent 需要推理引擎才能工作同时用jarvis scheduler logs task-id核对任务的实际调度与运行记录。Agent 输出结果不稳定—— 定时任务请保持temperature为 0.3 或更低。更高温度会引入随机性且这种随机性会跨轮次累积放大。记忆增长过快—— 定期用jarvis memory stats检查规模用jarvis memory clear --before 2026-01-01清理旧条目。Agent 运行时间过长—— 降低agent.max_turns或精简 prompt。Operative 智能体追求详尽处理可能用满全部轮次在 tests/scheduler/test_scheduler.py 中也可以看到对暂停、恢复、取消、cron 时区计算与轮询触发等行为的完整测试覆盖可作为排查预期行为的参考。十、延伸阅读官方预设配置模板configs/openjarvis/examples/scheduled-monitor.toml调度器核心实现src/openjarvis/scheduler/scheduler.py、src/openjarvis/scheduler/store.pyCLI 命令实现src/openjarvis/cli/scheduler_cmd.py、src/openjarvis/cli/memory_cmd.pyOperative 智能体src/openjarvis/agents/operative.py调度器测试tests/scheduler/test_scheduler.py相关概念Operative 状态管理也可与 docs/user-guide/agents.md 中的 Agent 体系、docs/user-guide/memory.md 中的记忆机制配合理解。赞分享【免费下载链接】OpenJarvisPersonal AI, On Personal Devices项目地址https://gitcode.com/gh_mirrors/op/OpenJarvis点击查看免费下载相关推荐Aspire 定时工作流故障监视器monitor-scheduled-workflows 的设计、配置与源码解析Aspire 定时工作流故障监视器monitor scheduled workflows 的设计、配置与源码解析 Aspire 仓库中有大量无人值守的定时 G云原生后端微服务可观测性开发工具RepVGG_b2.rvgg_in1k核心解析BYOBNet架构如何重塑卷积神经网络RepVGG_b2.rvgg_in1k核心解析BYOBNet架构如何重塑卷积神经网络 RepVGG_b2.rvgg_in1k是基于RepVGG架构的图像分类模Portkey全监控CrewAI多智能体工作流追踪实战指南Portkey全监控CrewAI多智能体工作流追踪实战指南 你是否还在为多智能体系统的工作流监控而烦恼当你的CrewAI智能体团队在执行复杂任务时是否难以LLM 网关API网关后端负载均衡人工智能上一篇Serve v14.2.5深度测评Node.js静态文件服务的性能王者 下一篇2025年nlp_chinese_corpus数据集贡献奖励计划详解从语料到奖励全攻略创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
02
RELATED NEWS

相关资讯

更多网站建设与数字化升级内容

03
WHY YAOTU

想打造同款高转化官网?

懂行业、懂生意,从建站到增长一站式陪跑

场景化定制

不做模板站,围绕你的业务场景量身设计,小众不撞款。

营销型架构

以转化目标组织内容与路径,让官网真正带来询盘。

全周期服务

设计、开发、运营、运维一体,上线只是开始。

免费获取你的建站方案

留下需求,专属顾问 24 小时内为你输出方案建议。