Commit Graph

71 Commits

Author SHA1 Message Date
minecraft1024a
2e1ca1ac78 ruff ci 2025-11-19 23:23:02 +08:00
Windpicker-owo
963bcd19e1 feat(action): 重构 Action 激活机制并添加 go_activate() 方法
引入新的 Action 激活机制,允许通过重写 go_activate() 方法来自定义激活逻辑。提供了三个工具函数:
- _random_activation(): 随机概率激活
- _keyword_match(): 关键词匹配激活
- _llm_judge_activation(): LLM 智能判断激活

主要变更:
- 在 BaseAction 中添加 go_activate() 抽象方法和相关工具函数
- 更新 ActionModifier 使用新的激活判断逻辑
- 在 hello_world_plugin 中添加新的激活方式示例
- 更新文档说明新的激活机制
- 保持向后兼容,旧的激活类型配置仍然可用

BREAKING CHANGE: Action 激活判断现在通过 go_activate() 方法进行,旧的激活类型字段已标记为废弃但仍然兼容
2025-11-19 23:22:46 +08:00
minecraft1024a
2a89efe47a ruff fix但指定了--unsafe-fixes 2025-11-19 23:19:42 +08:00
John Richard
b2d91aac3d 更改部分类型注解 2025-11-19 23:13:56 +08:00
John Richard
a79253c714 re-style: 格式化代码 2025-11-19 23:13:20 +08:00
John Richard
00ba07e0e1 style: 格式化代码 2025-11-19 23:12:18 +08:00
minecraft1024a
b8aa9fd7ee Revert "refactor(plugin_system): 重构 send_command 以对接适配器专用命令接口"
This reverts commit ba5e0b0eaf.
2025-11-19 23:11:50 +08:00
tt-P607
96093306e1 refactor(plugin_system): 重构 send_command 以对接适配器专用命令接口
BaseAction 中的 send_command 方法已重构,从使用通用的 `command_to_stream` API 切换到新的 `adapter_command_to_stream` API。

这一变更带来了以下改进:
- **接口统一**: 所有与平台适配器直接交互的命令现在都通过专用的接口,使得逻辑更清晰。
- **参数结构化**: 调用参数从旧的 `{"name": ..., "args": ...}` 格式更新为更明确的 `action`, `params` 和 `platform`。
- **健壮的响应处理**: 现在会解析 API 返回的结构化 JSON 响应(包含 status 和 message),以实现更精确的成功/失败判断和错误日志记录。

BREAKING CHANGE: `send_command` 调用的 `command_name` 现在需要与目标平台适配器定义的 `action` 名称完全匹配。例如,在 `social_toolkit_plugin` 中,`set_emoji_like` 已更新为 `set_msg_emoji_like`。所有使用此方法的插件可能需要更新其命令名称。
2025-11-19 23:11:31 +08:00
minecraft1024a
088b5bb43e 试图解决了call_action的类型报错 2025-11-19 23:11:18 +08:00
minecraft1024a
184cc7ffa2 加入了二走逻辑 2025-11-19 23:11:17 +08:00
雅诺狐
85c9ea6491 二步工具与action 2025-11-19 23:11:14 +08:00
Windpicker-owo
df3c616d09 ruff,私聊视为提及了bot 2025-11-19 23:07:30 +08:00
雅诺狐
883bf3a7ea Update base_action.py 2025-11-19 23:05:11 +08:00
tt-P607
5892ed1452 refactor(db): 重构数据库交互为异步模式
为了提升性能并与项目整体的异步架构保持一致,对核心数据库交互模块进行了异步化重构。

主要修改内容包括:
- 将 `PermissionManager` 中的所有数据库操作从同步改为异步,以避免阻塞事件循环。
- 使用 `async_sessionmaker` 和 `async with session` 替代原有的同步会话管理。
- 将 SQLAlchemy 查询语法更新为异步兼容的 `await session.execute(select(...))` 模式。
- 相应地,调用链中依赖数据库操作的多个方法也已更新为 `async` 函数。
2025-11-19 23:05:09 +08:00
tt-P607
65087b8c98 回退“feat: 实现KEYWORD_OR_LLM_JUDGE激活类型” 2025-11-19 23:01:17 +08:00
tt-P607
4890771a87 feat(planner): 引入双模动作激活机制与混合触发类型
为了更精细地控制动作在不同聊天模式下的行为,并提升决策效率,本次更新引入了全新的动作激活机制。

- **双模激活**: 为 Action 新增 `normal_activation_type` 和 `focus_activation_type` 属性,允许插件在 `NORMAL` 和 `FOCUS` 模式下拥有不同的激活策略,使行为更符合上下文。

- **混合触发**: 新增 `KEYWORD_OR_LLM_JUDGE` 激活类型。该类型会先进行快速的关键词匹配,若未匹配成功,则回退至 LLM 进行判断,兼顾了响应速度和智能化。

- **流程优化**: 重构了 `PlanGenerator` 的动作筛选逻辑,使其在生成计划前,就根据当前聊天模式和简单的激活规则进行预筛选,为后续的 LLM 决策提供更精准、更高效的候选动作列表。
2025-11-19 23:01:16 +08:00
tt-P607
b97d03da2a fix(plugin_system): 解决 base_action 中的循环导入问题
将 `component_registry` 的导入移至 `run` 方法内部,以避免在模块加载时产生循环依赖。
2025-11-19 23:00:19 +08:00
minecraft1024a
e607dcb36b refactor(core): 延迟初始化知识库并优化导入结构
将LPMM知识库的初始化逻辑封装到`initialize_lpmm_knowledge`函数中,并将其调用移至`main.py`,以实现延迟加载并改善启动流程。

为了解决循环导入问题,将`component_registry`的导入移至`BaseAction.call`方法内部。
2025-11-19 23:00:18 +08:00
minecraft1024a
fac83665da feat(plugin): 允许在Action内部调用其他Action
在`BaseAction`中新增`call_action`方法,使得一个Action可以方便地调用并执行另一个已注册的Action。

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

这为创建更复杂、可组合的插件逻辑提供了基础,提高了代码的复用性和模块化程度。
2025-11-19 23:00:10 +08:00
tt-P607
e374ed7166 refactor(plugin_system): 移除未使用的 ChatType 导入 2025-11-19 22:59:08 +08:00
minecraft1024a
474ab78002 refactor(planner): 移除大小脑规划器类型以简化决策流程
本次重构删除了`PlannerType`(大小脑规划器)的枚举及其在动作规划和组件定义中的相关逻辑。通过移除大小脑的概念,简化了`ActionPlanner`的决策过程,使其不再需要根据规划器类型来筛选可用动作。

这一变更统一了动作的处理方式,降低了系统的复杂性,使得未来的功能扩展和维护更加直接和清晰。
2025-11-19 22:59:06 +08:00
minecraft1024a
a30652b0bc feat(planner): 实现大小脑规划器分离以优化决策流程
将规划器(Planner)拆分为“大脑”和“小脑”两个部分,以实现更精细化的决策控制。

- **大脑(BIG_BRAIN)**: 负责宏观决策,如是否回复、是否需要@人等高层级意图。
- **小脑(SMALL_BRAIN)**: 负责具体的功能性动作执行。

此重构引入了 `PlannerType` 枚举,并更新了动作(Action)定义,允许将动作明确分配给大脑或小脑,从而提升了AI回复的逻辑性和条理性。同时,新增了 `no_action` 类型,用于在规划阶段明确表示“无动作”,提高了处理流程的清晰度。
2025-11-19 22:58:55 +08:00
Windpicker-owo
fe472dff60 修复代码格式和文件名大小写问题 2025-11-19 22:55:55 +08:00
minecraft1024a
38fed9b4cc 添加聊天类型限制功能,支持根据聊天类型过滤命令和动作,新增私聊和群聊专用命令及动作,优化相关日志记录。 2025-11-19 22:40:01 +08:00
SengokuCola
bad2be2bdc fix:全面移除reply_to,并且非必须 2025-08-11 20:25:13 +08:00
SengokuCola
6f49b3d99d 修复Action没有reply_to_message的问题 2025-08-11 14:55:23 +08:00
UnCLAS-Prommer
c0375f5dd9 合并utils_api 2025-07-28 12:37:37 +08:00
UnCLAS-Prommer
b3e8fa7058 让activation概率可以为0 2025-07-26 19:23:21 +08:00
UnCLAS-Prommer
a82de0a50e action文档 2025-07-25 00:08:00 +08:00
UnCLAS-Prommer
f4bc583c7d base action update 2025-07-24 09:58:48 +08:00
SengokuCola
6c9c94d719 better:优化一些颜色和Logger
better:优化logger
2025-07-24 04:04:03 +08:00
UnCLAS-Prommer
10bf424540 增加了组件的局部禁用方法 2025-07-23 00:41:31 +08:00
UnCLAS-Prommer
8d20134cbb 合并BaseEventPlugin到BasePlugin,重写了components_registry,修正了统计输出 2025-07-19 19:16:42 +08:00
UnCLAS-Prommer
1aa2734d62 typing fix 2025-07-17 00:10:41 +08:00
SengokuCola
e2ce6a14f4 fix:修正系数,正确处理reply——to,优化s4u的prompt 2025-07-16 12:06:24 +08:00
SengokuCola
8c492aa03d fix:处理没有提取到action message 2025-07-16 11:32:04 +08:00
SengokuCola
1b866c89b2 feat:不再需要reply_to,action现拥有 user_id和group_id等信息 2025-07-16 00:06:15 +08:00
UnCLASPrommer
6545a12b07 完善可乐的更改 2025-07-13 14:20:25 +08:00
SengokuCola
aafa4c688b fix:修正merge带来的问题 2025-07-13 13:46:12 +08:00
UnCLAS-Prommer
f890722c3d Merge branch 'dev' into plugin 2025-07-13 01:28:48 +08:00
UnCLAS-Prommer
b303a95f61 部分类型注解修复,优化import顺序,删除无用API文件 2025-07-12 00:34:49 +08:00
SengokuCola
0cdf53fb85 feat:进一步合并normal和focus模式,移除interest_dict(附带其他合理性修改) 2025-07-11 21:51:30 +08:00
UnCLAS-Prommer
ab61b1bb22 插件系统info修复,见changes.md 2025-07-10 16:46:37 +08:00
SengokuCola
1365099fd4 remove:冗余的sbhf代码和focus代码 2025-07-06 20:14:09 +08:00
SengokuCola
cec854cba2 fix:修复无法运行的bug 2025-07-01 14:49:37 +08:00
A0000Xz
8e927512e7 让base_action在群聊环境下也获取user_id和user_nickname 2025-06-26 23:33:31 +08:00
github-actions[bot]
99f36fca16 🤖 自动格式化代码 [skip ci] 2025-06-25 05:53:49 +00:00
A0000Xz
400fcb0f71 修复base_action中send_command指令未使用dispaly_name的错误 2025-06-25 13:22:37 +08:00
github-actions[bot]
5b641d7484 🤖 自动格式化代码 [skip ci] 2025-06-23 05:47:46 +00:00
UnCLAS-Prommer
8e2b7523e6 修复typing,但是保留疑问 2025-06-23 13:47:11 +08:00