Files
astrbot_plugin_njupt_suan/AGENTS.md
2026-04-02 23:16:08 +08:00

3.5 KiB
Raw Blame History

AGENTS.md

本文档面向 AI 编程助手,介绍本项目的结构、技术栈与开发约定。

项目概述

本项目是一个 AstrBot 插件,目录名为 astrbot_plugin_njupt_suan,但当前代码是基于 AstrBot 官方插件模板的初始状态。插件仅实现了一个简单的 helloworld 指令,用于演示 AstrBot 插件的基本写法。

  • 技术栈Python 3异步 asyncio
  • 运行方式:不能独立运行,必须由 AstrBot 主程序动态加载
  • 项目规模:极简单文件插件,目前仅包含一个入口模块

项目结构

.
├── main.py           # 插件主代码,注册指令与事件处理逻辑
├── metadata.yaml     # AstrBot 插件元数据(名称、版本、作者等)
├── README.md         # 面向用户的项目说明
├── LICENSE           # 许可证文件
├── .gitignore        # Python 通用 gitignore
└── AGENTS.md         # 本文档

注意:项目中不存在 pyproject.tomlsetup.pyrequirements.txtpackage.json 等常规构建配置文件,因为 AstrBot 插件是直接在宿主环境中运行的动态模块。

核心文件说明

main.py

  • 定义插件类 MyPlugin,继承自 astrbot.api.star.Star
  • 使用 @register(...) 装饰器向 AstrBot 注册插件
  • 使用 @filter.command("helloworld") 注册聊天指令 /helloworld
  • 实现了可选的生命周期方法 initialize()(初始化)和 terminate()(卸载)

metadata.yaml

  • AstrBot 识别插件的核心配置文件
  • 关键字段:name(唯一标识名)、versionauthordescrepo
  • 当前内容仍为模板默认值(helloworld),后续开发需根据实际功能更新

开发与修改约定

  1. 单文件扩展:当前所有逻辑集中在 main.py。若功能变复杂,可在同目录下新增 .py 模块并在 main.py 中导入。
  2. 命名规范
    • 插件唯一名(metadata.yaml 中的 name)建议以 astrbot_plugin_ 开头
    • 类名使用大驼峰(如 MyPlugin
    • 指令名使用小写英文+下划线
  3. 注释语言代码内注释以中文为主README 为中英混合。新增注释建议保持中文。
  4. 依赖管理:如需引入第三方 Python 包,请在 metadata.yaml 同级目录下创建 requirements.txtAstrBot 会在安装插件时尝试自动安装。但目前项目中尚未创建该文件。

构建与测试

  • 无独立构建步骤:插件无需编译或打包成 wheel。
  • 测试方式:需在本地部署 AstrBot 主程序,将本目录放入 AstrBot 的 plugins/ 文件夹(或通过 AstrBot 插件市场/控制台安装),然后启动 AstrBot 进行联调。
  • 目前无单元测试:目录内没有 tests/ 文件夹或测试框架配置。

部署流程

  1. 修改 metadata.yaml 中的 namedisplay_namedescversionauthorrepo 为实际信息。
  2. 修改 main.py 中的 @register(...) 参数与 metadata.yaml 保持一致。
  3. 如需额外依赖,添加 requirements.txt
  4. 将代码推送到远程仓库后,可在 AstrBot 插件市场提交或通过 Git 链接直接安装。

安全提示

  • 插件运行在 AstrBot 主程序的 Python 进程中,拥有与宿主相同的权限。
  • 避免在插件中执行不可信的外部命令或随意 eval 用户输入。
  • 若需存储持久化数据,建议使用 AstrBot 提供的配置/数据目录 API而不是随意写入当前工作目录。