12 Commits

Author SHA1 Message Date
guo zebin 713124ac39 feat: 记忆流加 tags + 新增 core/memory_service + MCP 暴露记忆工具
- ConceptNode/MemoryStream 增加 tags 字段,retrieve 支持 AND/OR tag 过滤
- reflect() 从源节点继承业务 tag,自动打 kind:insight / source:fay_reflection
- 新增 core/memory_service.py 作为记忆操作唯一权威入口,规范 kind 枚举与命名空间
- faymcp/mcp_server.py 暴露 7 个 memory_* 工具,进程内直调服务层
- 画像分析 prompt 新增"与 Fay 的关系"维度,字数上限 800→1000
2026-04-24 16:37:00 +08:00
guo zebin 552176b5d3 fix: 修复反思 KeyError 和用户画像表不存在错误
1. reflect() 中 retrieve 返回空字典时安全处理,避免记忆为空时 KeyError
2. get_all_users() 查询前确保 T_Member 表存在,防御数据库被清空的情况

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-04-15 11:36:37 +08:00
guo zebin bf6de49f7c feat: 大小模型协作架构 + MCP Resources + embedding 自愈
1. 增加大小模型支持,交互用小模型、执行用大模型
2. Fay 的 MCP 体系支持 Resources 协议,课程知识的目录结构自动注入 LLM prompt
3. OpenAI 兼容接口透传 context_length
4. 增强运行过程的 embedding 的自愈机制

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-04-14 17:07:21 +08:00
guo zebin 2cc7b720eb fix: 修复记忆线程持锁阻塞导致的对话死锁
记录对话/观察记忆的后台线程在 agent_lock 内调用了 LLM 评分与
embedding 网络请求;一旦上游 OpenAI 客户端因 chunked/keep-alive
不发字节而永久挂起(无 timeout 配置),agent_lock 永远不会释放,
后续 question() 在 create_agent() 处获取同一把锁时即被锁死,整个
对话流程会卡死(曾观察到 release 机器 5 小时无响应)。

修复:
- memory_stream.append_prepared_node:新增纯内存写入入口,由调用方
  传入预先算好的 importance 与 embedding。
- remember_conversation_thread / remember_observation_thread:将
  generate_importance_score 与 get_text_embedding 移出 agent_lock,
  失败时回退默认值/空向量,仅在写 seq_nodes 时短暂持锁。
- simulation_engine.gpt_structure:openai.OpenAI() 显式配置
  httpx Timeout(60s, connect=10s) 与 max_retries=1,避免无限挂起。
- nlp_cognitive_stream.ChatOpenAI:补充 timeout=60、max_retries=1。
- save_agent_memory:节流判断与标记文件检查移出锁,先短暂持锁拿
  用户名快照,再逐用户独立持锁保存,避免长时间锁住整个 agents。

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-04-12 10:13:01 +08:00
guo zebin 36ee265c92 移除仿生记忆模块(bionicmemory)及相关引用
删除内容:
- llm/nlp_bionicmemory_stream.py
- bionicmemory/ 整个目录

清理引用:
- core/fay_core.py: 移除 bionic memory 分支,统一使用 cognitive stream
- gui/flask_server.py: 移除仿生记忆清除逻辑和人格克隆限制检查
- genagents/genagents_flask.py: 移除仿生记忆清除逻辑
- main.py: 清空 __check_and_clear_chroma_db 中的仿生记忆检查
- fay_booter.py: 移除 use_bionic_memory 条件判断,直接执行认知记忆逻辑
- utils/api_embedding_service.py: 将 bionicmemory 日志导入替换为标准 logging

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-25 15:35:37 +08:00
guo zebin eecbb931a9 交互模块
1. [增加]embedding维度检查自动修正逻辑。
2026-01-29 15:09:37 +08:00
guo zebin 2ee6a387fa 记忆模块升级
1、把记忆节点明确区分成对话记忆、观察记忆和反思记忆;
2、修复</think>标签错误输出的问题。
2026-01-22 15:36:05 +08:00
guo zebin 7567fd4248 自然进化
1.优化记忆清除机制;
2.优化prompt。
2025-11-12 22:29:08 +08:00
guo zebin da05cd73e6 自然进化
1.加入仿生记忆功能。
2025-11-11 14:45:49 +08:00
xszyou 2de80dcb02 紧急修复
1、修复mcp工具获取于调用的线程同步问题;
2、修复因记忆反思而导致的记忆混乱,无法多伦对话问题;
3、更换镜像服务商。
2025-05-29 10:22:05 +08:00
xszyou 2a204a13ed fay进化
1、支持mcp sse服务管理及动态功具调用
--对摩搭社区提供的sse对接的mcp工具做过兼容测试
2、llm模块统一
--严格匹配openai兼容接口范式,包括token计算及流式控制等
--把认知模式作为llm对接的方式,并对认知模型进行了优化升级,可控制各用户聊天认知是否隔离
--使用qwen3-4b作为默认llm,可以平衡速度、角色模拟与MCP工具调用
3、提供配置管理中心,便于多个fay做配置管理
--当根目录中system.conf或config.json不存在,启动时会自动载入config_uitl.py中指定的配置
--配置中心代码支持多项目管理,单项目也支持多fay对接,源码地址:https://github.com/xszyou/fay_config_server
4、多个bug修复
--修复重复反思和重复保存的问题
--修正认知模型的反思和检索算法
--处理pygame报错程序不继续执行问题
--表情不进行tts
--运行时再判断加载qt5
--修复文字交互接口流式输出时不会结束问题
--修复文字交互接口流式输出qa不输出问题
2025-05-17 01:25:45 +08:00
xszyou 11e115b228 fay自然进化
1. 增加清除记忆功能;
2. 增加克隆性格功能;
3. 增加认知模型(专属的记忆逻辑、反思逻辑);
4. 修复自动播报bug;
5. fay_url配置响修正;
6. 修复流式输出前置换行问题;
7. 修复没有用户聊天记录前端反复添加默认用户问题;
8. 更新dockerfile;
9. 重构util.py代码。
1. Fay ai编程指南:https://qqk9ntwbcit.feishu.cn/wiki/FKFywXWaeiBH28k4Q67c3eF7njC
2.Fay认知模型:https://qqk9ntwbcit.feishu.cn/wiki/BSW3wSsMdikiHUkiCJYcSp2lnio
2025-04-02 23:31:46 +08:00