Commit Graph

7955 Commits

Author SHA1 Message Date
copilot-swe-agent[bot]
db49fbd471 Initial plan 2025-12-04 01:23:11 +00:00
Windpicker-owo
4e0012dba9 fix(config): 更新版本号为 0.13.0 2025-12-04 09:11:21 +08:00
Windpicker-owo
9084a123ce Merge branch 'dev' of https://github.com/MoFox-Studio/MoFox-Core into dev 2025-12-04 09:09:14 +08:00
Windpicker-owo
d12a5745d5 feat(requirements): 添加 sqlalchemy 依赖以支持数据库操作 2025-12-04 09:09:06 +08:00
拾风
3293e2601f Merge pull request #22 from MoFox-Studio/copilot/sub-pr-21
fix(bot): address ruff linting warnings for code quality
2025-12-04 09:06:46 +08:00
copilot-swe-agent[bot]
9e9a7c6237 fix(bot): improve code quality by addressing ruff linting warnings
Co-authored-by: Windpicker-owo <221029311+Windpicker-owo@users.noreply.github.com>
2025-12-04 01:04:40 +00:00
copilot-swe-agent[bot]
77a10e5484 Initial plan 2025-12-04 00:57:07 +00:00
tt-P607
22767ce234 feat(context): 为大语言模型提供过去网页搜索的上下文记忆
此更改使聊天机器人能够记住并引用过去网页搜索的相关信息,从而显著提高响应质量和连贯性。

系统不再将每个查询视为孤立事件,而是在生成新响应之前,对之前的 `web_search` 结果缓存进行向量相似度搜索。如果发现过去的相关信息,会自动作为“相关历史搜索结果”注入到大语言模型的提示中。

这使模型能够立即访问相关背景信息,避免对已经讨论过的主题重复搜索。

为了支持这一新功能:
- 对 `web_search` 工具的提示进行了改写,以通过确保结果被高效缓存和调用,鼓励大语言模型更频繁地使用它。
- 重要工具结果(如网页搜索)的预览长度已增加
2025-12-04 04:12:36 +08:00
tt-P607
f519f87884 Merge branch 'dev' of https://github.com/MoFox-Studio/MoFox-Core into dev 2025-12-04 03:19:59 +08:00
tt-P607
d466ddaec8 refactor(search): 将 Exa 引擎迁移到 search_and_contents API
此提交将 Exa 搜索引擎更新为使用 `search_and_contents` 方法,而不是之前的 `search` 方法。

`search_and_contents` 端点更高效,并且可以直接提供高亮片段。此更改用更具上下文感知的高亮替代了对摘要的依赖,从而显著提高了搜索结果的质量和相关性。
2025-12-04 03:19:52 +08:00
Windpicker-owo
4a75b3c0ea feat(notice): 增加消息摘要提取功能并优化表情回复处理 2025-12-03 23:35:59 +08:00
Windpicker-owo
d59946ce48 fix(config): 调整缓存和思考时间配置以优化性能 2025-12-03 21:30:47 +08:00
tt-P607
7c35c0a0f5 refactor(profile): 重构用户分析工具以实现更严格的现实分析
用户分析工具的内部逻辑和提示已显著优化,以生成更准确的长期用户印象并更真实地计算情感变化。

- 工具描述现在鼓励更频繁使用以实现实时更新,而不仅仅是重大事件。
- 印象生成提示增强以区分用户实际性格和讨论的虚构内容(如游戏剧情)。
- 写作指南严格要求创建长期抽象印象,避免短期对话记录。
- 情感变化规则变得极其严格,将变化范围缩小到±0.02,并强调大多数互动应导致零变化以反映关系建立的缓慢性。
- `history_ttl`减少为1,符合新理念的更频繁、轻量级更新。
2025-12-03 19:39:35 +08:00
tt-P607
973d1ad66d perf(memory): 微调了一下记忆裁判的提示词 2025-12-03 17:31:51 +08:00
tt-P607
2c8ec89546 文档忘记删了 2025-12-03 17:05:44 +08:00
tt-P607
cba6d34197 Merge branch 'dev' of https://github.com/MoFox-Studio/MoFox-Core into dev 2025-12-03 17:02:39 +08:00
tt-P607
2671a6e7e5 feat(profile):对用户关系和分析系统进行重构,采用结构化数据和异步更新
此提交完全重写了用户关系和分析系统,创建了一个更强大、详细和响应式的框架。旧系统已被弃用,取而代之的是一个集中式的`UserRelationships`模型。

主要变更:

1.  &zwnj;**增强数据库模型(`UserRelationships`):**&zwnj;
    - 添加`impression_text`用于长期、叙述式印象。
    - 引入`key_facts`(JSON)存储结构化数据如生日、工作和位置。
    - 添加`relationship_stage`跟踪关系进展(如陌生人、朋友、挚友)。
    - 添加`first_met_time`和`last_impression_update`的时间戳。

2.  &zwnj;**重设计`UserProfileTool`:**&zwnj;
    - 工具的用途被限定为仅捕捉重要新信息,防止用于小聊。
    - 更新现在在后台异步处理,确保机器人回复不被延迟。
    - 引入`key_info_type`和`key_info_value`参数供LLM提交结构化事实。

3.  &zwnj;**复杂的印象和情感逻辑:**&zwnj;
    - 关系追踪LLM现在分析最近聊天历史生成更丰富、更上下文的印象。
    - 用渐进的`affection_change`(最大±0.03)取代直接情感分数设置,使关系发展更真实。

4.  &zwnj;**数据源整合:**&zwnj;
    - `RelationshipFetcher`重构为仅依赖`UserRelationships`表作为唯一数据源。
    - 简化`get_user_relationship` API并移除其缓存,确保分析的实时数据访问。

破坏性变更:`UserProfileTool`已重设计,新增参数(`key_info_type`、`key_info_value`)并改变用途。移除`affection_score`参数。此外,`get_user_relationship`数据库API签名简化为仅接受`user_id`。
2025-12-03 16:53:40 +08:00
Windpicker-owo
55919f90db feat(context_builder): 更新记忆块构建逻辑,添加查询文本获取策略以提升记忆检索效果
feat(prompt_builder): 扩展上下文数据构建,支持会话和情况类型参数以优化提示词生成
2025-12-03 14:30:40 +08:00
tt-P607
39c52490d9 feat(chatter): 整合工具使用并增强主聊天流程中的上下文
此提交为聊天系统引入了若干重大增强,以提高回应质量、上下文感知能力和角色一致性。

**Kokoro 流程中的工具整合:**
- 在主聊天提示中新增了一个 `tool_info` 上下文块。
- `KFCContextBuilder` 现在通过 `ToolExecutor` 执行工具后再生成回复,使聊天模型能够感知实时信息和操作。

**以角色为驱动的用户画像:**
- `update_user_profile` 工具被重构为两阶段过程。工具使用模型提供一个简单的“印象提示”,专门的 `relationship_tracker` 模型将其扩展为丰富且符合角色的一致印象。
- 工具使用提示已更新,明确指示模型在生成工具参数时保持机器人的角色。

**记忆系统改进:**
- 记忆检索判定提示已更新,更加主动地获取长期记忆,目标是为了提供更丰富的上下文。- 记忆查询现在从最近的一组消息中生成,而不是单条消息,从而提高检索的相关性。**其他更改:** - 在上下文构建过程中添加了性能时间日志,以识别瓶颈。- 在响应过滤中进行了小修复,以清理特定前缀,如“,说:”。
2025-12-03 14:04:29 +08:00
Windpicker-owo
a36e2fdf92 feat(set_emoji_like): 添加群聊检查,确保表情回应动作仅在群聊中有效 2025-12-03 13:55:37 +08:00
Windpicker-owo
6233e27d46 fix(message_handler): 修复全局封禁用户列表的用户ID处理方式,确保ID为字符串格式 2025-12-03 13:48:15 +08:00
Windpicker-owo
fe48b8cc71 feat(prompt): 添加安全互动准则块以增强用户交互安全性 2025-12-03 13:33:43 +08:00
Windpicker-owo
c1da7452d6 feat(interest): 增加LLM兴趣标签生成时的超时设置,确保初始化阶段不因超时失败 2025-12-03 13:22:07 +08:00
Windpicker-owo
16afd8f6ff feat(filter): 添加无意义消息过滤功能以优化表达学习效果 2025-12-03 13:13:41 +08:00
Windpicker-owo
a9fc842287 feat(expression): 添加解析聊天流配置和获取相关聊天ID的功能以支持共享组训练 2025-12-03 12:48:31 +08:00
Windpicker-owo
1acead1f9d feat(cache): 添加 LRU 淘汰机制和缓存大小限制以优化内存使用 2025-12-03 11:42:38 +08:00
Windpicker-owo
d5e6746a21 fix(stream): 修复 Chatter 处理标志的假死状态并增强并发保护 2025-12-02 23:11:29 +08:00
tt-P607
9a5ae357b5 fix(chatter): 防止 Chatter 和 ProactiveThinker 之间的竞争条件
可能会发生竞争条件,即 ProactiveThinker 在用户发送消息的同时选择一个会话进行主动操作。这将导致 Chatter 和 ProactiveThinker 同时处理该会话,从而产生重复或冲突的响应。

该提交引入了两部分修复:
1. Chatter 现在在接收到消息后会立即更新会话的 `last_activity_at`。这相当于一个软锁,表明该会话正在被主动处理。
2. ProactiveThinker 会在执行操作前对会话状态进行最终检查。如果会话不再处于 `WAITING` 状态,它会中止操作,让位给 Chatter。
2025-12-02 16:38:42 +08:00
tt-P607
03f27be2cd Merge branch 'dev' of https://github.com/MoFox-Studio/MoFox-Core into dev 2025-12-02 14:41:10 +08:00
tt-P607
659a8e0d78 refactor(api, chat): 改进异步处理并解决并发问题
内存可视化器 API 端点之前在异步路由中执行同步的阻塞操作(文件 I/O、数据处理)。在处理大型图文件时,这可能导致服务器冻结。现在,这些任务已被移至 ThreadPoolExecutor,从而使 API 非阻塞并显著提高响应速度。

在聊天消息管理器中,竞争条件可能导致消息处理重叠或中断后数据流停滞。此提交引入了:
- 并发锁(`is_chatter_processing`)以防止流循环同时运行多个 chatter 实例。
- 故障保护机制,在中断时重置处理状态,确保数据流能够恢复并正确继续。
2025-12-02 14:40:58 +08:00
Windpicker-owo
143302065b Merge branch 'dev' of https://github.com/MoFox-Studio/MoFox-Core into dev 2025-12-02 13:05:19 +08:00
Windpicker-owo
bcdd987e4c feat(statistic): 优化内存使用,添加分批查询和统计处理上限
feat(typo_generator): 实现单例模式以复用拼音字典和字频数据
feat(query): 添加分批迭代获取结果的功能,优化内存使用
2025-12-02 12:45:10 +08:00
Windpicker-owo
8f4b846630 feat(mem-monitor): 添加内存监控模块,支持内存使用追踪和日志记录 2025-12-02 12:20:21 +08:00
tt-P607
1027c5abf7 feat(chat): 添加群组静音功能并提升私聊响应速度
此提交引入了消息处理的两个主要增强功能:

1. **群组静音功能**:
新增的 `mute_group_list` 配置允许指定机器人默认保持沉默的群组。仅在被明确提及(通过@、回复或使用其名称/别名)时,它才会在这些群组中响应,从而减少繁忙频道的噪音。

2. **私聊响应能力**:
消息分发循环现在会动态调整轮询间隔。对于私聊,它使用更短的间隔,从而实现显著更快、接近实时的响应。

此外,此次提交还包括 Kokoro Flow 聊天器的若干改进:
- refactor(kokoro-flow):系统提示进行了大幅修订,以强制执行单个 `kfc_reply` 动作,引导 LLM 生成更可靠且格式正确的输出。
- fix(kokoro-flow):在执行动作时使用 `action.params.copy()`,以防止潜在的副作用来自下游的修改。
2025-12-02 01:40:39 +08:00
Windpicker-owo
aa1afc093b Merge branch 'dev' of https://github.com/MoFox-Studio/MoFox-Core into dev 2025-12-01 20:21:25 +08:00
Windpicker-owo
2ed11ad1a8 refactor(database-messages): 移除数据库自增主键字段 id 2025-12-01 20:21:14 +08:00
tt-P607
6b3d185742 Merge branch 'dev' of https://github.com/MoFox-Studio/MoFox-Core into dev 2025-12-01 20:14:39 +08:00
tt-P607
8bb7f39641 feat(kokoro-flow): 添加 PyYAML 依赖并增强 kfc_reply 提示
添加 PyYAML 作为依赖,以支持未来在 Kokoro Flow Chatter 插件中基于 YAML 的配置和功能。

`kfc_reply` 动作的提示已更新,明确指示模型将其完整响应整合为单个动作调用,防止出现分散或多条回复。
2025-12-01 20:14:33 +08:00
Windpicker-owo
943c2a6566 feat(data-models): 使用 __slots__ 优化内存占用和属性访问性能,更新多个数据模型 2025-12-01 19:57:33 +08:00
Windpicker-owo
e72f39c42b Merge branch 'dev' of https://github.com/MoFox-Studio/MoFox-Core into dev 2025-12-01 18:44:41 +08:00
Windpicker-owo
b46ad71d20 feat(emoji): 添加提取精炼描述的辅助函数并优化表情包发送信息 2025-12-01 18:44:31 +08:00
tt-P607
048ce37c63 refactor(kokoro-flow): 增强对 max_wait_seconds 和超时决策的提示指导
此提交重构了 Kokoro Flow Chatter 插件中的提示,以提供更清晰、更接近人类的指导,帮助设置 `max_wait_seconds` 并处理对话超时问题。目标是改善 LLM 的决策能力,使对话节奏更自然。

主要更改包括:
- 在所有相关提示中统一并详细说明 `max_wait_seconds` 的使用,鼓励根据上下文设置,而不是默认使用 0。
- 重新设计了超时决策提示 (`kfc_SITUATION_TIMEOUT`),提供结构化的“决策指导”和“决策选项”,帮助 LLM 在等待、重新参与或结束等待之间做出更细致的选择。
- 在 NapCat 适配器中添加修复,确保 `reply` 消息段始终优先位于消息列表开头,防止潜在的发送错误。
- 对日志输出进行了小幅格式调整,以提高可读性。
2025-12-01 18:20:53 +08:00
Windpicker-owo
18906826d4 chore(config): 更新 MMC_VERSION 至 0.13.0-alpha.5 2025-12-01 16:20:29 +08:00
拾风
273576c97e Merge pull request #17 from MoFox-Studio/feature/kfc
Feature/kfc
2025-12-01 16:07:05 +08:00
拾风
28c54dbec6 Merge branch 'dev' into feature/kfc 2025-12-01 16:06:47 +08:00
tt-P607
faae4849a8 chore(logging): 将 get_node 错误日志降级为调试级别
在 `get_node` 操作期间出现对不存在节点的错误日志是正常且预期的情况,而不是实际错误。此更改将日志级别从 `error` 降低到 `debug`,以避免例行检查污染错误日志。
2025-12-01 15:39:29 +08:00
tt-P607
85efff4e7a chore(logging): 调整流处理的日志级别
在流循环管理器中降低非关键事件的日志级别,以减少生产环境日志的噪音。

- 将任务处理失败消息从 `warning` 改为 `debug`,因为在某些情况下这是可恢复和预期的状态。
- 将并发保护消息从 `warning` 改为 `debug`,因为这是流控中的正常且预期的部分,而不是错误。
2025-12-01 15:28:34 +08:00
tt-P607
5ceef537d0 Merge branch 'feature/kfc' of https://github.com/MoFox-Studio/MoFox-Core into feature/kfc 2025-12-01 14:45:46 +08:00
tt-P607
127d0e039e refactor(kfc): 移除 kfc_reply 回复分段逻辑及相关提示
移除 `kfc_reply` 动作的 `enable_splitter` 强制禁用逻辑,并简化了统一模式下的提示词,不再指导模型如何进行消息分段。

此次重构旨在将消息分段的决策权完全交还给大语言模型,使其能够根据对话上下文和自身判断,更自然地决定回复的格式(单条或多条消息)。这简化了处理逻辑,并有望提升模型回复的流畅度和拟人化程度。
2025-12-01 14:45:41 +08:00
Windpicker-owo
cef52ce963 Merge branch 'feature/kfc' of https://github.com/MoFox-Studio/MoFox-Core into feature/kfc 2025-12-01 10:27:57 +08:00