Commit Graph

909 Commits

Author SHA1 Message Date
minecraft1024a
5b57d58db7 feat(chat): 增加调试日志输出
为了方便调试,在执行文本回复动作时,增加了一条详细的调试日志。这条日志会输出完整的 `action_message` 内容,并带有一个特殊的提示,方便在出现问题时快速定位和反馈。
2025-09-13 21:43:08 +08:00
tt-P607
9eccb7f04d Merge branch 'dev' of https://github.com/MoFox-Studio/MoFox_Bot into dev 2025-09-13 21:40:53 +08:00
tt-P607
a27639ea68 refactor(chat): 简化记忆激活方法的参数
更新 `activate_memory_with_chat_history` 的调用方式,使用 `target_message` 对象来替代独立的 `target_user` 和 `chat_id` 参数。

此举将相关上下文封装到单个对象中,使得接口更加清晰,提高了代码的可维护性。
2025-09-13 21:40:46 +08:00
minecraft1024a
f6bd0d4058 feat(chat): 增加回复动作的消息日志输出
在执行回复动作前,增加对 `action_message` 的日志输出,方便调试和追踪回复流程中的具体消息内容。
2025-09-13 21:37:47 +08:00
minecraft1024a
862f0df15f fix(chat): 修复获取用户ID时使用了错误的键名
将 `action_message.get("user_id", "")` 修改为 `action_message.get("chat_info_user_id", "")`,以确保从 `action_message` 字典中正确获取用户ID。

chore: 更新 .gitignore 文件

添加 `src/chat/planner_actions/新建 文本文档.txt` 到忽略列表,以避免将临时文件提交到版本库。
2025-09-13 21:10:49 +08:00
minecraft1024a
dbc6bb7562 fix(qzone): 修复加载本地图片时未配置图片目录导致的潜在异常
在 `_load_local_images` 方法中,如果 `image_dir` 为 `None` 或空字符串,`os.path.exists` 会抛出 `TypeError`。本次修改增加了对 `image_dir` 变量本身的检查,确保在路径有效时才进行存在性判断,从而避免了因未配置图片目录而导致的程序崩溃。
2025-09-13 20:30:13 +08:00
Windpicker-owo
b9fe4b793f 注释 2025-09-13 16:25:13 +08:00
minecraft1024a
5c1a7ab33b feat(db): add focus_energy to ChatStreams model
Adds a new `focus_energy` column to the `ChatStreams` table. This field will be used to track the user's focus level, defaulting to 1.0.
2025-09-13 15:21:00 +08:00
minecraft1024a
7ea769996c refactor(chat): 优化plan_filter中的回复动作处理逻辑
- 引入 `reply_action_added` 标志位,确保在一次处理中只添加一个回复类型的动作(如 `reply` 或 `proactive_reply`)。
- 优化了循环和条件判断逻辑,使代码更清晰、更健壮,防止因LLM返回多个回复动作而导致的意外行为。
2025-09-13 15:14:18 +08:00
minecraft1024a
2db6be9b5b fix(chat): 修复计划过滤器和消息构建器中的潜在空指针问题
- 在 `plan_filter.py` 中,当LLM未指定 `target_message_id` 时,明确将目标消息设置为最新的消息,避免后续操作因 `target_message_dict` 未定义而出错。
- 在 `chat_message_builder.py` 中,为 `replace_user_references_sync` 函数增加了对 `content` 为空的检查,防止后续处理引发异常。
- 将数据库查询从 `.scalar()` 改为 `.scalar_one_or_none()`,以更清晰地处理未找到结果的情况。
2025-09-13 14:46:50 +08:00
minecraft1024a
91d0ebf45d feat:一个能从对话中智能识别并设置定时提醒的动作。 2025-09-13 13:23:21 +08:00
minecraft1024a
befdb796b9 refactor(at_user): 优化插件描述并修复聊天流获取逻辑
- 更新了 `action_parameters` 和 `action_require` 的描述,使其更加清晰和准确,提升了LLM在不同场景下判断的准确性。
- 修复了 `chat_stream` 的获取逻辑,优先使用 `self.chat_stream`,确保在不同调用路径下都能正确获取到聊天流实例。
2025-09-13 12:59:44 +08:00
minecraft1024a
3edda25ae1 refactor(at_user): 优化艾特用户插件逻辑并移除模糊匹配
重构了艾特用户插件,主要改动如下:
- 移除 `fuzzywuzzy` 依赖和相关的模糊匹配逻辑,改为直接通过 `person_info_manager` 精确查找用户。
- 优化了 `AtAction` 的执行流程,现在通过调用 `DefaultReplyer` 生成更智能、更符合上下文的回复内容,而不是发送固定文本。
- 新增了 `/at` 命令,允许用户通过指令直接艾特指定用户并发送消息。
- 删除了 `proactive_thinker.py` 中不再使用的 `_get_reminder_context` 方法,以清理与旧提醒功能相关的代码。
2025-09-13 12:54:23 +08:00
minecraft1024a
b9984b81f1 Revert "feat(reminder): 增强定时提醒系统,实现智能用户识别与上下文感知回复"
This reverts commit e1ebf41f8d.
2025-09-13 12:52:00 +08:00
minecraft1024a
70c5c289fc refactor(heart_flow): 移除智能提醒分析逻辑
从消息处理流程中移除旧的智能提醒分析模块。

该功能已被一个新的、更可靠的提醒系统取代,因此旧的实现被移除以简化代码库并消除冗余。
2025-09-13 12:26:07 +08:00
雅诺狐
26ae481b88 Update README.md
推送测试
2025-09-13 12:24:02 +08:00
minecraft1024a
8fcb49a1bb 试图引爆定时提醒,我有一个更好的东西 2025-09-13 12:19:15 +08:00
minecraft1024a
490bf9e7cc chore(planner): 临时禁用执行器调用
为了调试规划器流程的其他部分,暂时注释掉了对 `self.executor.execute(filtered_plan)` 的调用。
2025-09-13 12:07:19 +08:00
minecraft1024a
f1c1a2081a docs(planner): 为规划器相关模块添加详细的文档字符串
为 `plan_executor`、`planner` 和 `planner_prompts` 模块中的类和函数补充了详细的文档字符串(docstrings)。

这提高了代码的可读性和可维护性,阐明了每个组件的职责、参数和返回值,使得其他开发者能更容易地理解和使用这些模块。
2025-09-13 12:04:34 +08:00
minecraft1024a
07f37323b2 修复了**AI写出来的虫子 2025-09-13 11:57:05 +08:00
minecraft1024a
e37ee46d59 refactor(planner): 重构动作规划器为模块化结构
将原有的 `ActionPlanner` 类拆分为三个独立的模块:`PlanGenerator`、`PlanFilter` 和 `PlanExecutor`。`ActionPlanner` 现在作为协调器,按顺序调用这三个模块,使规划流程更加清晰和模块化。

- **PlanGenerator**: 负责根据聊天模式和上下文生成初始规划。
- **PlanFilter**: 负责审查和筛选由生成器产生的动作。
- **PlanExecutor**: 负责执行最终确定的动作。

此重构简化了 `cycle_processor` 中的调用逻辑,并为未来的功能扩展(如更复杂的过滤规则)提供了更好的基础。同时,引入了新的 `Plan` 数据模型来统一规划过程中的数据传递。
2025-09-13 11:48:04 +08:00
minecraft1024a
8a8302ea3a Merge branch 'dev' of https://github.com/MoFox-Studio/MoFox_Bot into dev 2025-09-13 09:03:02 +08:00
minecraft1024a
bcd9955374 refactor(config): 移除工具历史记录相关配置
工具历史记录功能已被移除,因此相关的配置类 `ToolHistoryConfig` 及其在 `ToolConfig` 中的引用也一并删除,以简化代码库。
2025-09-13 09:03:00 +08:00
tt-P607
70511d3c26 fix(emoji): 优化表情包描述匹配并修复潜在错误
- 改进在描述模式下选择表情包的匹配算法,从精确匹配改为更灵活的包含匹配和关键词匹配,显著提高匹配成功率。
- 初始化 `chosen_emotion` 变量,以避免在某些逻辑分支下因变量未定义而引发错误。
- 统一并简化了发送表情包后记录到prompt中的提示语,使其更加通用和简洁。
2025-09-13 00:48:54 +08:00
tt-P607
fcda224767 Merge branch 'dev' of https://github.com/MoFox-Studio/MoFox_Bot into dev 2025-09-12 22:50:55 +08:00
tt-P607
5e3efd3148 根据提供的 git diff 分析,这是一个重构变更,主要是修改了异步内存包装器的导入和使用方式。以下是生成的常规提交消息:
refactor(prompt): 重构异步即时内存包装器的导入和使用方式

- 将 async_memory 导入更改为 get_async_instant_memory 函数
- 简化内存获取逻辑,通过工厂函数创建包装器实例
- 更新参数传递方式,使用 target 替代 sender 参数
- 减少代码行数,提高可读性
2025-09-12 22:50:37 +08:00
minecraft1024a
9b5eab9024 如果我不更新配置版本号,那我就会被其他开发草飞 2025-09-12 21:42:39 +08:00
minecraft1024a
956e2e70c4 Merge branch 'dev' of https://github.com/MoFox-Studio/MoFox_Bot into dev 2025-09-12 21:41:45 +08:00
minecraft1024a
46b3e795bc feat(emoji): 新增表情选择模式并重构选择逻辑
引入了两种表情选择模式,允许用户通过配置决定表情选择的行为:
- **emotion**: 基于情感标签进行选择,利用LLM根据对话上下文挑选最合适的情感。
- **description**: 基于表情的详细描述进行选择,让LLM从描述列表中挑选最匹配的表情。

此项重构将原有的单一选择逻辑拆分为两种独立的模式,并为每种模式优化了相应的提示词(Prompt)和处理流程,提高了表情选择的灵活性和准确性。同时,在配置文件中添加了`emoji_selection_mode`选项以支持此新功能。
2025-09-12 21:41:38 +08:00
BuildTools
34d0309d1f Merge branch 'dev' of https://github.com/MoFox-Studio/MoFox_Bot into dev 2025-09-12 21:39:11 +08:00
BuildTools
675bd4b75e 优化s4u提示词 2025-09-12 21:39:04 +08:00
minecraft1024a
fc5980a282 先添加一个数据模型你别管他用没用 2025-09-12 21:35:19 +08:00
minecraft1024a
48567072e9 Merge branch 'dev' of https://github.com/MoFox-Studio/MoFox_Bot into dev 2025-09-12 21:13:11 +08:00
minecraft1024a
9f084338dc refactor(core): 延迟初始化知识库并优化导入结构
将LPMM知识库的初始化逻辑封装到`initialize_lpmm_knowledge`函数中,并将其调用移至`main.py`,以实现延迟加载并改善启动流程。

为了解决循环导入问题,将`component_registry`的导入移至`BaseAction.call`方法内部。
2025-09-12 21:12:13 +08:00
tt-P607
de44023952 fix(plugin_system): 解决 base_action 中的循环导入问题
将 `component_registry` 的导入移至 `run` 方法内部,以避免在模块加载时产生循环依赖。
2025-09-12 21:08:13 +08:00
tt-P607
1912f7af17 Merge branch 'dev' of https://github.com/MoFox-Studio/MoFox_Bot into dev 2025-09-12 20:58:00 +08:00
tt-P607
35403678b2 feat(prompt): 添加安全准则参数并更新工具执行器
- 在PromptParameters类中添加safety_guidelines_block参数
- 更新ToolExecutor初始化,传入chat_id参数用于上下文追踪
- 在所有参数准备方法中集成安全准则配置
- 增强prompt系统的安全性和可追溯性
2025-09-12 20:57:56 +08:00
minecraft1024a
cd19e89528 refactor(config): 移除睡前消息群组配置
移除了 `pre_sleep_notification_groups` 配置项,因为该功能已通过新的插件事件和动作机制实现,不再需要硬编码的群组列表。现在可以通过插件来灵活地处理睡前通知的发送逻辑。
2025-09-12 20:47:52 +08:00
minecraft1024a
51643eb53a feat(config): 更改默认服务器端口为8000
将默认的服务器端口从8080更改为8000,以避免与其他常用应用程序的潜在端口冲突。
2025-09-12 20:43:51 +08:00
minecraft1024a
18220e4110 rrrrrrrrrrrrruuuuuuuuuuuuuuuffffffffffffffffffffffffffff x3 2025-09-12 20:42:02 +08:00
minecraft1024a
4fa2122c8d Merge branch 'dev' of https://github.com/MoFox-Studio/MoFox_Bot into dev 2025-09-12 20:39:25 +08:00
minecraft1024a
47e504e715 feat(plugin): 允许在Action内部调用其他Action
在`BaseAction`中新增`call_action`方法,使得一个Action可以方便地调用并执行另一个已注册的Action。

该方法会:
- 从组件注册中心查找并获取目标Action类。
- 复用当前Action的上下文信息(如`chat_stream`, `cycle_timers`等)来实例化目标Action。
- 执行目标Action并返回其执行结果。

这为创建更复杂、可组合的插件逻辑提供了基础,提高了代码的复用性和模块化程度。
2025-09-12 20:39:20 +08:00
tt-P607
c996bd28df Merge branch 'dev' of https://github.com/MoFox-Studio/MoFox_Bot into dev 2025-09-12 20:36:20 +08:00
BuildTools
5ea90cfe11 Merge branch 'dev' of https://github.com/MoFox-Studio/MoFox_Bot into dev 2025-09-12 20:34:41 +08:00
tt-P607
5f4fea8358 feat(prompt): 添加背景故事与安全准则
本次提交在人设配置中引入了“背景故事”和“安全准则”两个新字段,旨在增强 Bot 的角色深度和互动安全性。

- **背景故事 (`background_story`)**: 允许用户定义详细的世界观或角色背景。这部分内容将作为背景知识注入 Prompt,指导模型在不直接复述的情况下理解和运用,从而塑造更丰富的角色。

- **安全准则 (`safety_guidelines`)**: 用户可以明确定义 Bot 必须遵守的行为红线。这些准则会被整合进系统指令,为模型处理不当或敏感请求提供清晰的、可配置的指导方针,提升了交互的安全性。
2025-09-12 20:34:39 +08:00
BuildTools
69a1f60841 feat(chat): 增强prompt构建功能并优化回复逻辑
- 为HfcContext和ChatStream添加focus_energy配置支持
- 修复默认回复生成器中识别自身消息的逻辑
- 完整实现prompt构建中的表达习惯、记忆、工具信息和知识模块
- 优化错误处理,使用原生异常链式传递
- 确保数据库操作中focus_energy字段的持久化

这些改进提升了聊天系统的上下文感知能力和回复质量,同时增强了模块的健壮性和可维护性。
2025-09-12 20:34:31 +08:00
minecraft1024a
d658fd8eb0 feat(emoji): 记录表情包发送状态
在表情包发送成功或失败后,分别记录操作信息。这有助于更好地追踪和调试表情包功能的状态,两行就应该能解决重复发送的问题了,遥遥领先!
2025-09-12 19:54:13 +08:00
minecraft1024a
493cd2b837 refactor(emoji): 重构表情发送逻辑为基于情感标签选择
重构了`emoji`动作的实现,将原有的LLM选择表情描述的逻辑,改为先由LLM根据聊天内容和理由选择一个最匹配的“情感标签”,然后再从该标签下的表情库中随机选择一个进行发送。

主要变更:
- 移除原有的表情抽样、编号和LLM选择编号的复杂流程。
- 引入基于`emotion`元数据的情感标签映射。
- 更新LLM的Prompt,使其专注于选择情感标签而非具体表情。
- 简化了代码逻辑,移除了不再需要的历史记录队列和相关配置项。
- 如果表情没有情感标签或LLM调用失败,则回退到随机发送。
2025-09-12 19:50:20 +08:00
minecraft1024a
eb5011ada1 refactor(chat): 调整分段指令在提示词中的位置
将回复分割指令从注入到 "现在,你说:" 之前,改为直接添加到整个提示词的顶部。

这种调整简化了提示词的构建逻辑,并确保分割指令作为最高优先级的上下文被模型处理,从而提高其遵循指令的稳定性。
2025-09-12 19:08:16 +08:00
minecraft1024a
ebb575ec53 refactor(config): 移除.env依赖并引入服务器配置模型
将项目配置系统从依赖.env文件和环境变量迁移到使用Pydantic模型进行集中管理。此举通过移除`python-dotenv`库简化了环境设置,并提高了配置的类型安全性和可维护性。

主要变更包括:
- 移除`bot.py`中的.env加载逻辑。
- 新增`ServerConfig`模型来管理服务器的主机和端口。
- 更新`src/common/server.py`和`src/common/message/api.py`以从全局配置对象获取服务器设置,取代了`os.environ`。
- 从配置中移除了已废弃的`MaizoneIntercomConfig`。
- 在`bot_config_template.toml`中添加了新的`[server]`配置部分。
2025-09-12 19:04:27 +08:00