Files
hunzi/PLAN.md
T

5.4 KiB
Raw Blame History

Hunzi(混子/草鱼)自动化智能体框架 — 架构设计

概述

Hunzi 是一个轻量级、可扩展的自动化智能体框架,支持多 Agent 协作、工具调用、工作流编排和可视化操作界面。

技术栈

组件 技术
后端 Python 3.10+ / FastAPI
数据库 SQLite + SQLAlchemy ORM
前端 纯 HTML/CSS/JS (SPA, 由 FastAPI 静态服务)
任务队列 asyncio + APScheduler
LLM OpenAI 兼容 API (支持文本+图片)
部署 单进程,端口 16051

架构分层

┌─────────────────────────────────────────────────────┐
│                    前端 (SPA)                        │
│  Dashboard │ Agent管理 │ 对话 │ 工具 │ 工作流 │ 监控 │
├─────────────────────────────────────────────────────┤
│                  REST API (FastAPI)                  │
│  /api/agents  /api/chat  /api/tools  /api/workflows │
├─────────────────────────────────────────────────────┤
│                    业务层                             │
│  ┌──────────┐  ┌──────────┐  ┌──────────────┐      │
│  │ Agent    │  │ Workflow │  │  Scheduler   │      │
│  │ Engine   │  │ Engine   │  │              │      │
│  └──────────┘  └──────────┘  └──────────────┘      │
├─────────────────────────────────────────────────────┤
│                    核心层                             │
│  ┌──────────┐  ┌──────────┐  ┌──────────────┐      │
│  │ LLM      │  │ Tool     │  │ Memory       │      │
│  │ Client   │  │ System   │  │ System       │      │
│  └──────────┘  └──────────┘  └──────────────┘      │
├─────────────────────────────────────────────────────┤
│                  数据层 (SQLite + SQLAlchemy)         │
└─────────────────────────────────────────────────────┘

核心模块

1. Agent 引擎

  • Agent 定义:名称、系统提示词、模型、温度、关联工具
  • 工具系统:Python 函数注册,支持参数描述和自动调用
  • 记忆系统:对话历史、向量记忆(可扩展)
  • 多 Agent 协作Agent 间消息传递、角色分配

2. 工作流编排

  • 流程定义:YAML/JSON 定义步骤、条件、循环
  • 执行引擎:顺序执行、并行分支、条件路由
  • 状态管理:步骤状态持久化、断点恢复

3. LLM 客户端

  • OpenAI 兼容接口封装
  • 支持文本和图片输入(base64/URL)
  • 流式响应(SSE
  • 多模型配置管理

4. 调度系统

  • 定时任务(Cron
  • 事件触发
  • 任务队列管理

5. API 层

  • RESTful API
  • SSE 流式推送
  • WebSocket 实时通信

目录结构

hunzi/
├── app/
│   ├── __init__.py
│   ├── main.py              # FastAPI 入口
│   ├── config.py            # 配置管理
│   ├── database.py          # 数据库 (SQLAlchemy)
│   ├── models.py            # 数据模型
│   ├── llm/
│   │   ├── __init__.py
│   │   └── client.py        # LLM 客户端
│   ├── agent/
│   │   ├── __init__.py
│   │   ├── engine.py        # Agent 引擎
│   │   ├── tools.py         # 工具注册系统
│   │   └── memory.py        # 记忆系统
│   ├── workflow/
│   │   ├── __init__.py
│   │   ├── engine.py        # 工作流引擎
│   │   └── models.py        # 工作流模型
│   ├── scheduler/
│   │   ├── __init__.py
│   │   └── tasks.py         # 调度任务
│   ├── api/
│   │   ├── __init__.py
│   │   ├── agents.py
│   │   ├── chat.py
│   │   ├── tools.py
│   │   ├── workflows.py
│   │   └── health.py
│   └── utils/
│       ├── __init__.py
│       └── helpers.py
├── web/                     # 前端静态文件
│   ├── index.html
│   ├── css/
│   └── js/
├── config.yaml              # 配置文件
├── requirements.txt
└── run.py                   # 启动脚本

扩展点设计

  1. 工具扩展:装饰器注册 @tool(name, description) 即可新增工具
  2. Agent 扩展:继承 BaseAgent 类,自定义行为
  3. LLM 扩展:抽象 BaseLLMClient 接口,支持多后端
  4. 工作流扩展:自定义步骤类型
  5. 记忆扩展:抽象 BaseMemory 接口