Skip to content

MoFox-bot 内置功能使用指南

MoFox-bot 内置了一系列强大的管理功能,帮助你更好地控制和扩展机器人的能力。本指南将详细介绍大部分内置插件的使用方法。

1. 内置 /system 命令

/system 是 MoFox-bot 内置的核心管理命令,它为管理员提供了一个统一的入口,用于管理机器人的核心功能,包括权限系统、插件系统和定时任务。

1.1. 命令概述

/system 命令也被称为 /sys/系统管理,其下分为三个主要的子命令模块:

  • permission (权限管理)
  • plugin (插件管理)
  • schedule (定时任务管理)
  • prompt (提示词管理)

你可以通过 /system help 来随时查看帮助信息。

1.2. 权限管理 (permission)

权限管理是确保机器人安全、稳定运行的关键。通过 /system permission 命令,你可以精细地控制每个用户可以使用的功能。

注意: 权限管理相关操作需要 system.permission.managesystem.permission.view 权限。

  • 授权 (grant)

    • 功能: 赋予用户某个特定的权限。
    • 用法: /system permission grant <@用户|QQ号> <权限节点>
    • 示例: /system permission grant @小明 plugin.manage
  • 撤销 (revoke)

    • 功能: 移除用户已有的某个权限。
    • 用法: /system permission revoke <@用户|QQ号> <权限节点>
    • 示例: /system permission revoke @小明 plugin.manage
  • 查看用户权限 (list)

    • 功能: 列出指定用户拥有的所有权限。如果未指定用户,则默认查看自己的权限。
    • 用法: /system permission list [@用户|QQ号]
    • 示例: /system permission list @小明
  • 检查权限 (check)

    • 功能: 检查指定用户是否拥有某个特定的权限。
    • 用法: /system permission check <@用户|QQ号> <权限节点>
    • 示例: /system permission check @小明 system.access
  • 查看权限节点 (nodes / allnodes)

    • 功能: 列出已注册的权限节点信息。
    • nodes [插件名]: 查看指定插件的权限节点。
    • allnodes: 查看所有插件的权限节点详情。
    • 用法: /system permission nodes [插件名]/system permission allnodes
    • 示例: /system permission nodes system_management

使用场景示例

场景: 你希望让你的朋友“小明”帮你管理机器人,但又不想给他所有权限。

  1. 授予权限: 你可以先授予他管理插件的权限。
    • /system permission grant @小明 plugin.manage
  2. 检查权限: 过了一段时间,你忘记了是否给过他这个权限,可以检查一下。
    • /system permission check @小明 plugin.manage
  3. 撤销权限: 后来,你觉得不再需要他帮忙了,就可以收回权限。
    • /system permission revoke @小明 plugin.manage
  4. 查看权限: 最后,你可以查看一下他现在还有哪些权限。
    • /system permission list @小明

1.3. 插件管理 (plugin)

插件是扩展机器人功能的核心。通过 /system plugin 命令,你可以方便地对插件进行安装、卸载和调试。

注意: 插件管理相关操作需要 plugin.manage 权限。

  • 加载 (load)

    • 功能: 加载一个已注册但未启用的插件。
    • 用法: /system plugin load <插件名>
  • 卸载 (unload)

    • 功能: 卸载一个已加载的插件。
    • 用法: /system plugin unload <插件名>
  • 重载 (reload / force_reload)

    • 功能: 重新加载一个插件,这在开发和调试插件时非常有用。
    • 用法: /system plugin reload <插件名>
  • 列出插件 (list / list_enabled)

    • list: 列出所有已注册的插件。
    • list_enabled: 仅列出已加载(启用)的插件。
    • 用法: /system plugin list/system plugin list_enabled
  • 重扫插件目录 (rescan)

    • 功能: 重新扫描插件文件夹,以发现新的插件。
    • 用法: /system plugin rescan

1.4. 定时任务管理 (schedule)

定时任务功能允许你设置在特定时间或按一定周期自动执行的任务。

注意: 定时任务管理需要 system.schedule.managesystem.schedule.view 权限。

  • 列出任务 (list)

    • 功能: 列出所有正在运行的定时任务。
    • 用法: /system schedule list [任务类型]
    • 示例: /system schedule list time
  • 查看任务详情 (info)

    • 功能: 查看指定定时任务的详细信息。
    • 用法: /system schedule info <任务ID>
  • 暂停任务 (pause)

    • 功能: 暂停一个正在运行的定时任务。
    • 用法: /system schedule pause <任务ID>
  • 恢复任务 (resume)

    • 功能: 恢复一个已暂停的定时任务。
    • 用法: /system schedule resume <任务ID>

1.5. 提示词管理 (prompt)

提示词管理是一项专为高级用户和开发者设计的强大功能。它允许你深入洞察和调试 MoFox-bot 内部的提示词(Prompt)注入系统,了解机器人最终生成的文本是如何构成的。

注意: 提示词管理相关操作需要 system.prompt.view 权限。

  • 查看注入关系图 (map)

    • 功能: 显示一个全局的提示词注入关系图,清晰地展示了哪些“提示词组件”注入到了哪个“核心提示词”中。
    • 用法: /system prompt map
  • 列出注入目标 (targets)

    • 功能: 列出所有可以被注入的“核心提示词”。这些是系统中定义的基础提示词模板。
    • 用法: /system prompt targets
  • 列出组件 (components)

    • 功能: 列出所有已注册的、可用于注入的“提示词组件”。
    • 用法: /system prompt components
  • 查看注入详情 (info)

    • 功能: 查看某个特定的核心提示词被注入的详细情况,包括来源、优先级等。
    • 用法: /system prompt info <目标名>
    • 示例: /system prompt info core_prompt
  • 查看组件信息 (component_info)

    • 功能: 查看某个特定提示词组件的详细信息,包括它定义的注入规则。
    • 用法: /system prompt component_info <组件名>
  • 查看原始内容 (raw)

    • 功能: 查看一个核心提示词在注入任何内容之前的原始模板。
    • 用法: /system prompt raw <目标名>
  • 预览最终效果 (preview)

    • 功能: 预览一个核心提示词在经过所有注入和变量替换后,最终生成的文本内容。这对于调试非常有用。
    • 用法: /system prompt preview <目标名>
    • 示例: 你也可以提供可选的参数来模拟真实情景,例如 /system prompt preview core_prompt '{"input": "你好"}'

2. 内置插件:MaiZone (麦麦空间)

MaiZone 是一个功能强大的内置插件,它能让你的机器人化身为 QQ 空间社交达人,实现自动发送、读取、监控和定时发表说说等功能。

2.1. 核心功能与命令

在使用前,请确保你拥有对应的权限节点 (maizonerefactored.send_feedmaizonerefactored.read_feed)。

小贴士: 除了使用斜杠命令,你也可以直接通过自然语言与机器人对话,例如“发个说说:今天天气真好”,机器人会自动识别并执行(如果机器人没有犯傻)。

  • 发送说说 (/send_feed)

    • 功能: 让机器人发表一条 QQ 空间说说。
    • 别名: /maizone, /空间
    • 用法:
      • /send_feed <说说内容>: 直接发表文字说说。
  • 读取说说 (/read_feed)

    • 功能: 读取好友的最新说说,并可能进行点赞或评论。
    • 用法: /read_feed

2.2. 使用场景示例

场景一:文思泉涌,想要求AI发一条说说

你:/send_feed 出来晒晒太阳,心情都变好了! 机器人:(成功发表说说)

场景四:看看好友们都在聊什么

你:/read_feed 机器人:(开始读取好友动态,并可能进行点赞或评论)

场景五:更自然的对话式交互

你:发个说说,今天也是元气满满的一天! 机器人:(成功发表文字说说)

2.3. 配置项详解

你可以在 config/plugins/MaiZoneRefactored/config.toml 文件中对插件进行详细配置。

  • [models]: 模型配置

    • text_model: 生成文本的模型名称。
    • vision_model: 识别图片的模型名称。
    • siliconflow_apikey: 硅基流动 AI 生图 API 密钥。
  • [send]: 发送功能配置

    • enable_image: 是否启用说说配图功能。
    • enable_ai_image: 是否启用 AI 生成配图功能。
    • image_number: 本地配图的数量 (1-9 张)。
    • image_directory: 本地图片存储目录。
  • [read]: 读取功能配置

    • read_number: 一次读取的说说数量。
    • like_possibility: 读取时点赞的概率 (0.0 - 1.0)。
    • comment_possibility: 读取时评论的概率 (0.0 - 1.0)。
  • [monitor]: 自动监控配置

    • enable_auto_monitor: 是否启用自动监控。
    • interval_minutes: 监控间隔的分钟数。
    • enable_auto_reply: 是否自动回复自己说说的评论。
  • [schedule]: 定时发送配置

    • enable_schedule: 是否启用定时发送。
    • random_interval_min_minutes: 随机间隔分钟数下限。
    • random_interval_max_minutes: 随机间隔分钟数上限。
    • forbidden_hours_start/end: 禁止发送的时间段。
  • [cookie]: Cookie 获取配置

    • http_fallback_host/port: 备用 Cookie 获取服务的主机和端口,需要你的NapCat有对应主机端口的HTTP服务器。

3. 内置插件:Web Search (联网搜索)

Web_Search 是一个强大的内置插件,它赋予了机器人连接互联网、获取实时信息的能力。当遇到它不认识的、或者需要最新信息的问题时,它就能像我们一样,“上网搜一下”来找到答案。

3.1. 核心功能

  • 实时信息检索: 解答关于新闻、事件、新知识等需要即时性的问题。
  • 知识边界扩展: 当机器人的内部知识库不足以回答问题时,可以从广阔的互联网中寻找答案。
  • 链接内容解读: 可以直接“阅读”你发给它的网页链接,并总结内容。

3.2. 如何开启和配置

要使用联网搜索功能,你需要在核心配置文件 config/bot_config.toml 中找到 [web_search] 部分,并进行相应的设置。

toml
[web_search]
# 是否启用网络搜索工具,这是总开关
enable_web_search_tool = true
# 是否启用URL阅读工具,让机器人可以直接“读”链接
enable_url_tool = true

# --- API密钥配置 ---
# 在下面填入你申请的第三方搜索服务API Key
# 每个服务都可以填多个Key,机器人会自动轮流使用
tavily_api_keys = ["tvly-xxxx"]
exa_api_keys = ["exa-xxxx"]
serper_api_keys = ["serper-xxxx"]
# 如果你自建了SearXNG,可以在这里填入实例地址和对应的Key
# 注意:SearXNG 是一个需要用户自行部署或寻找公共实例的搜索引擎,程序不自带。
searxng_instances = ["http://127.0.0.1:8888"]
searxng_api_keys = [""]

# --- 引擎与策略 ---
# 启用的搜索引擎,可以填入 "exa", "tavily", "ddg", "bing", "serper","searxng" 等
# 列表中的顺序也代表了它们的优先级
enabled_engines = ["ddg", "tavily"]
# 搜索策略
# "single": 只使用列表里的第一个可用引擎
# "fallback": 依次尝试列表里的引擎,直到成功为止
# "parallel": 同时使用所有引擎
search_strategy = "fallback"

警告

要使用 tavily, exa, serper 等搜索引擎,你必须前往它们各自的官网注册并获取 API Key,然后填入上面的配置文件中。否则,机器人将无法使用这些服务。ddg (DuckDuckGo)和bing(必应) 是无需 API Key 即可使用的选项。

3.3. 如何使用

配置完成后,联网搜索功能通常是自动触发的。你不需要输入特殊的命令。

当你向机器人提问时,它的“大脑”(大语言模型)会自己判断这个问题是否需要上网搜索。如果它觉得自己的知识不够回答,或者问题明显具有时效性,就会自动调用搜索工具。

使用场景示例:

: “最近有什么AI方面的新闻吗?” 机器人: (检测到这是一个时效性问题,自动上网搜索) “当然,最近最大的新闻是...”

: “给我介绍一下 ‘Llama 3’ 这个模型。” 机器人: (发现这是个新知识,自动上网搜索) “‘Llama 3’ 是由 Meta AI 发布的最新一代开源大语言模型...”

: “这篇文章讲了什么?https://www.example.com/some-news-article”机器人: (检测到链接,自动使用URL阅读工具) “这篇文章主要讨论了...”

通过这种智能化的设计,你几乎感觉不到“搜索”这个动作的存在,机器人就像一个知识渊博的人类朋友,自然地为你提供帮助。

4. 内置插件:Social Toolkit (社交工具包)

Social Toolkit 是一个旨在提升聊天互动趣味性的内置插件。它为机器人增添了一些“社交”小技能,让对话变得更加生动有趣。

4.1. 核心功能

  • 智能贴表情: 机器人可以像人一样,对某条消息进行“贴表情”回应,而不是呆板地发送新消息。
  • 戳一戳提醒: 需要找人?让机器人帮你去“戳一戳”,增添亿点点乐趣。

4.2. 功能详解

/systemMaiZone 不同,Social Toolkit 的功能通常由机器人自动触发。它会根据对话的上下文,智能判断是否应该使用这些社交技能。你只需要和它正常聊天,它就会在合适的时机给你带来惊喜。

4.2.1. 智能贴表情 (set_emoji_like)

当群聊中出现非常有趣、值得赞同或引发强烈情感共鸣的消息时,机器人可能会自动为这条消息“贴上”一个它认为最合适的表情。

  • 触发方式: 自动。机器人会自己分析消息内容和气氛。
  • 使用场景:
    • 有人发了很好笑的段子或图片。
    • 有人表达了非常值得赞同的观点。
    • 气氛热烈,需要机器人也参与互动时。

4.2.2. 戳一戳 (poke_user)

当你希望提醒某人,或者只是想和他开个玩笑时,可以尝试让机器人去“戳”他一下。

  • 触发方式: 自然语言。你可以直接说“去戳一下张三”或类似的话。

  • 使用场景:

    : “去戳一下李四,让他赶紧回消息!” 机器人: (执行戳一戳动作) “已向 李四 发送 1 次戳一戳。”

    : “戳戳王五,提醒他三遍” 机器人: (执行戳一戳动作) “已向 王五 发送 3 次戳一戳。”

4.3. 如何开启和配置

你可以在插件的配置文件 config/plugins/social_toolkit_plugin/config.toml 中,根据需要开启或关闭这些功能。

toml
[components]
# 是否启用设置表情回应功能
action_set_emoji_like = true
# 是否启用戳一戳功能
action_poke_enable = true
# 是否启用定时提醒功能 (当前版本暂不推荐使用)
action_set_reminder_enable = false

贡献者

The avatar of contributor named as minecraft1024a minecraft1024a

页面历史

Released under the GPL-3.0 License.