← Back to Blog
EN中文

Nighthawks项目揭秘:构建下一代AI智能任务调度系统

  • 🤖 AI驱动的调度:集成OpenAI GPT和Graphiti知识图谱,实现从自然语言到Cron表达式的智能转换。
  • 🧠 上下文感知执行:任务执行不再是孤立的,系统能够记忆历史执行模式,并根据上下文进行优化。
  • 🏗️ 企业级架构:基于FastAPI构建,采用微服务设计,支持Docker和Kubernetes进行高可用、可扩展的生产环境部署。
  • 📊 全面可观测性:深度集成Prometheus和Grafana,提供从应用到系统的全方位监控。
  • 🔒 多层安全防护:提供JWT、API密钥、角色权限控制等全面的安全机制。

系统架构深度剖析

Nighthawks的架构设计遵循高可用、可扩展、安全可靠的原则。下面是其分层架构的概览。


+--------------------------------+
|      用户界面与接入层          |
|  +-----------+   +-----------+ |
|  | Web界面   |-->| RESTful API | |
|  +-----------+   +-----------+ |
+--------------------------------+
                 |
                 v
+--------------------------------+
|      应用服务层 (FastAPI)      |
|  +-----------+                 |
|  |  主应用   |-----------------+
|  +-----------+                 |
|   | |   |   |                  |
|   v v   v   v                  |
| [认证][调度器][NLP][指标]      |
+--------------------------------+
    |      |      |      |
    |      |      |      +------>[Prometheus]-->[Grafana]
    |      |      |
    |      |      +------------->[AI智能层: OpenAI, Graphiti]
    |      |
    |      +--------------------->[AI Agent]
    |      +--------------------->[执行日志]
    |
    +---------------------------->[数据存储: PostgreSQL, Redis]

关键模块解析

  1. 自然语言处理模块 (NLP) 这是系统的“大脑”。当用户输入 "每周五下午5点生成并发送销售报告" 时,该模块会调用OpenAI GPT模型,不仅解析出Cron表达式 0 17 * * 5,还会提取出核心任务 生成并发送销售报告 作为AI Agent的执行指令。我们通过精心设计的Prompt Engineering,使其解析准确率达到了95%以上。

  2. AI Agent与知识图谱 每个任务都由一个独立的AI Agent负责执行。这个Agent在执行前会查询Graphiti知识图谱,获取与该任务相关的历史信息、用户偏好或上下文数据。例如,如果之前的报告因数据源延迟而失败,Agent可能会自动学习到在执行前先检查数据源状态。这种机制使得Nighthawks具备了持续学习和进化的能力。

  3. 任务调度器 (APScheduler) 我们选择APScheduler作为底层的执行引擎,它提供了稳定可靠的分布式任务调度能力。AI层负责“决定做什么和什么时候做”,而调度器则负责“准时执行”。

  4. 数据模型 (SQLModel) 我们使用SQLModel来定义数据结构,它结合了Pydantic和SQLAlchemy的优点,提供了类型安全的ORM操作,极大地提升了开发效率和代码健壮性。

技术栈亮点

层级 技术选型 说明
Web框架 FastAPI 提供了无与伦比的性能和异步支持,是构建高性能API的理想选择。
AI引擎 OpenAI GPT + Graphiti GPT负责理解意图,Graphiti负责沉淀知识,二者结合构成了强大的智能核心。
任务调度 APScheduler 成熟、稳定,支持多种触发器和分布式部署。
容器化 Docker + Kubernetes 实现了标准化的部署和管理,通过HPA可以轻松实现自动水平扩展。
监控 Prometheus + Grafana 提供了强大的可观测性,使我们能够实时洞察系统状态和性能瓶颈。

从想法到现实:一个使用示例

让我们通过一个具体的例子,看看Nighthawks是如何工作的。

1. 用户输入自然语言指令:

curl -X POST http://localhost:9527/api/v1/nlp/parse \
  -d '{"text": "每个工作日的早上9点,检查服务器健康状况并发送邮件通知"}'

2. Nighthawks的AI进行解析:

系统返回结构化的任务定义:

{
  "success": true,
  "task_name": "服务器健康检查",
  "cron_expression": "0 9 * * 1-5",
  "agent_prompt": "检查服务器健康状况,并将结果通过邮件发送给管理员。",
  "confidence": 0.98
}

3. 创建并调度任务:

用户确认后,该任务被持久化到数据库,并由APScheduler进行调度。

4. 任务执行:

在每个工作日的早上9点,调度器触发对应的AI Agent。Agent首先查询知识图谱,可能会发现“上周的服务器B在9点时CPU占用率很高”,于是它会优先检查服务器B。执行完健康检查后,它会生成报告并通过邮件发送。所有执行的细节,包括Token消耗、执行时长等,都会被记录下来用于未来的优化。

结语

Nighthawks项目不仅仅是一次技术上的探索,更是我们对于未来自动化工作模式的一次思考。它证明了通过将大型语言模型、知识图谱与传统软件工程相结合,我们能够创造出远比以往更智能、更人性化的工具。

我们相信,未来的软件将不再仅仅是冰冷的指令执行者,而是能够理解、学习并与人类高效协作的智能伙伴。Nighthawks正是朝着这个方向迈出的坚实一步。