Commit Graph

19 Commits

Author SHA1 Message Date
38c618a222 chore(gitignore): update gitignore 2026-02-20 16:30:22 +08:00
1685d148c4 chore(gitignore): update gitignore 2026-02-19 14:00:35 +08:00
9694a022c7 chore(gitignore): update gitignore 2026-01-12 19:35:41 +08:00
31968c7076 chore(gitignore): create AGENTS.md for codex, and add it to .gitignore 2026-01-12 14:25:20 +08:00
488246525f chore(gitignore): exclude runtime data directory from version control 2025-12-16 21:39:11 +08:00
6bfa941c35 更新 README 2025-10-31 21:24:46 +08:00
941943f696 Partner 主体与框架适配完成! 完整逻辑已达到适配框架之前的完成度。发现并修复了不少问题,以及更新了README
框架:
- 由于`Gateway`的启动属于`Agent`启动流程的子线程,而主线程可能由于逻辑执行结束时机早于`Gateway`创建完成时机而报错,故引入`CountDownLatch`进行阻塞
- 在`AgentRunningModule`与`AgentRunningSubModule`中添加日志hook,记录模块执行的起始与截止时机
- 修复了`AgentUtil`中收集继承链时遗忘起始类的错误
- 在`CapabilityCheckFactory`中针对`CoordinateManager`无参构造方法的实现检验
- 在`CapabilityRegisterFactory`中添加了收集模块之外的CapabilityHolder的逻辑,与`@InjectCapability`的校验与注入逻辑保持一致
- 修复了‘生成模块启用配置时,多余局部变量导致无法执行流正确读取启用情况’的错误
- 在GlobalExceptionHandler中添加了对于未知异常的处理逻辑,确保不会导致程序异常终止
- 发现`ModuleProxyFactory`中使用`record`类型会导致`ByteBuddy`无法正确创建代理类,已修复,替换成普通类

本体:
- `ActiveData`由于`CognationCore`的引用,也需要实现序列化,已修复
- 修复了`MemorySelectExtractor`中由于匹配到的主题列表为空导致的空指针异常
- 将后置模块的trigger判定抽取到新的父类中,统一判断
- 修复了`WebSocketServer`如果存在过ws连接,关闭后短时间再次启动内仍提示端口占用的情况,设置允许端口重用
- 在`WebSocketGateway`新增了断开ws客户端连接的逻辑
2025-09-30 15:46:05 +08:00
a7d54349e4 进行 框架-主题 的适配测试,发现了一些问题并进行了修复
框架:
- 去除了 ActivateModel 中 modelKey() 方法的默认实现,对于特殊的 AgentModule 继承者(CoreModule)而言,直接获取注解信息不可行,如果保持,则需要另加判断逻辑。这是没有必要的
- 发现 Agent 启动流程中,由于 Gateway 的启动可能依赖配置文件的加载,故将 AgentConfigManager 与 AgentGateway 的指定替换为类型指定,在合适的时机通过反射进行实例化
- 在 AgentUtil 中新增了链式判断指定类的注解链上是否存在指定注解的方法,目前用于 CapabilityHolder 的持有实例判定
- 发现 CapabilityFactoryContext 中 cores、capabilities 未赋值导致空指针异常,已修复
- 将 AgentConfigManager 中的检验逻辑进行抽离,放到了 ConfigLoaderFactory 中,避免职责混淆
- 发现 CoreModule 的注解使用错误,`@Retention(RetentionPolicy.RUNTIME)`元注解可以使得注解在代码运行时能够被反射扫描
- 在 ModuleCheckFactory 中添加了对于 Module 与 SubModule 的注解、继承使用是否匹配的检验
- 发现对于一个类来说,无法直接通过一层反射获取到‘注解的注解’,故在 ModuleRegisterFactory 中针对 CoreModule 的注册做了特殊处理

主体:
- 发现一些类缺少必要注解,已修复
- 发现存在有些必要的类未公开化无参构造函数,已修复,并在框架部分增加校验逻辑

其他:
- 由于项目的启动流程与完整的配置文件密不可分,所以开始尝试编写启动说明,目前只写了开头
2025-09-21 23:29:45 +08:00
10fb689c83 完善了框架层的完整执行流程,待进行demo测试并适配进Partner本体。
- 调整 runtime 目录结构, flow/ 归为 interaction/ 的子包
- 新增了 AgentGateway 以及 Gateway 对应的 Adapter 抽象类,下游必须实现这两者才能启动项目
- 调整 MetaModule 中的某些字段类别, 锁定为 AgentRunningModule 相关子类, 便于在执行流中执行模块
- 修复了 ModuleCheckFactory 中对于 @AgentModule 的错误检验逻辑
- 更新 Agent 启动器为step builder模式进行逐步构建,强制实现 AgentGateway 相关内容, 其余带有默认实现的部分也可自定义实现,只需实现对应的类或接口
2025-08-13 22:03:32 +08:00
86548903a0 完善配置工厂遗留问题; 初步完善 AgentRunningFlow 流程相关。
- 修复了 ActivateModel 中 model 实例化后却未赋值的问题
- 调整 Api 包下目录结构, 新增 runtime 包用于存放运行时相关类
- 完善 AgentConfigManager 基类以及对应的默认实现类中的加载、序列化以及更新逻辑
- 将异常类型分类为‘启动时异常’与‘运行时异常’,前者将直接导致启动停止,后者可通过异常回调实现进行处理
- 新增全局异常处理类以及默认的异常回调实现
- 新增几个异常类
- 完善 Agent 链式构建流程, 实际上只是做了一些方法转发,但毕竟那些可提供自定义实现的,不管是factory还是manager、handler, 它们都过于分散了。
2025-08-11 00:19:08 +08:00
dd10b00fb6 推进核心服务注册机制,并调整了Partner的模块结构
- 为了方便调试,将项目分为两个子模块,demo模块中进行新机制的开发工作,core模块为原来的Partner项目;
- 新增了多个注解,用于适配新的核心服务注册机制;
- 在`CapabilityRegisterFactory`中,将首先启动`statusCheck`,检查各个注解是否正常工作,包括以下内容:
   - `CapabilityCore`核心服务与`Capability`接口是否匹配
   - 核心服务中的`CapabilityMethod`是否与`Capability`接口中的方法匹配
   - 是否存在待协调方法`ToCoordinatedMethod`以及对应的存在于`BaseCognationManager`子类实现中
2025-07-15 16:48:27 +08:00
63840acf14 进行第二阶段调试修复:边聊边修挺有意思的
- 由于更改了上下文认知补充机制,所以将原来的CoreContext、ModuleContext从单一的jsonObject重构为了独立的类
- 移除了CoreModel中的baseMessageCache,当前消息分为三段,baseMessage固定,不再需要缓存
- 在CoreModel中添加了新的认知注入机制,并且模块状态也会显示给Partner(是否活跃)
- 在MemoryManager挑取记忆时,将在获取到MemoryResult后与dialogMap对比,去重切片,但还是有较多重复,单用户时应该可以去掉userDialogMap的展示?
- 在MemoryManager中添加了几个获取相应字符串的方法,为了适应新的上下文注入机制
- 调整对话列表更新为保留前1/3,确保防止上下文断裂,但应该改为1/4也行
- log.debug输出日志时将先包装为json对象,防止换行导致影响控制台效果
- 调整了MemoryUpdater中清理互动消息列表的逻辑
- PreprocessExecutor适配新的上下文注入机制
- InteractionContext的某些字段应提供默认值而非创建对象后手动赋值,已调整
- 移除了挺多目前用不到的注释,反正还有版本控制
2025-06-04 23:28:57 +08:00
b7cc0ab6d8 进行: 重构提示词
- 重设CoreModel的提示词,效果良好(人机助手、猫娘有什么意思,拟人智能体才是正道!)
- 加了一个interactionTest, 用于持续测试LLM的响应
2025-05-29 22:57:03 +08:00
550a5ee2b0 - 修复了 MemoryUpdater 中正则表达式提取问题,应先调用matcher.find()进行匹配
- 在 MemorySelector 和 CoreModel 中添加lod.debug()输出模块响应内容
- 修复了某些细节问题
- 调整了 CoreModel 对应的提示词,添加了输入输出示例
- MemoryGraph 中 dialogMap 和 dateIndex 的更新机制存在问题,需要修复
2025-05-10 00:21:12 +08:00
2dd58a71c3 记忆模块、主模块完成, 进行了一些小测试
- 完成了totalSummarizer、staticMemoryExtractor的提示词设计
- 更新了 coreModel 的提示词设计,使其聚焦于最新用户,同时做到不同用户的上下文语义隔离、知识共享
- 更新了 MemoryUpdater 中针对多人场景的记忆切片设置 involvedUserId 功能
- 在程序结束时将主动触发 MemoryGraph 的持久化
- 在Config中添加了对于StaticMemoryExtractor的适配
- PersistableObject 移动位置至common包
2025-05-08 22:26:24 +08:00
9e0af5e5aa 推进记忆模块
- 在 InteractionThreadPoolExecutor 中引入虚拟线程池 (newVirtualThreadPerTaskExecutor)
- 更新相关测试文件以适应新的线程池
- 优化 MemorySummarizer 中的单条目摘要逻辑
- 为 SingleSummarizer 、 MultiSummarizer 设计了提示词
- 还差两份提示词没有设计...
2025-05-07 21:38:41 +08:00
a83cf26f40 - 更新了WebSocket服务器的启动逻辑
- 发现了agent, websocket, interactionHub之间的循环引用导致IDEA调试出错问题,通过exclude解决
- 实现了CoreModel的execute执行逻辑,并且系统提示词将动态拼接以适应不同模块
- 移动EvaluatedSlice至shared/memory包下,避免层级混淆
- 提取清洗json方法至独立的工具类
- 将agent通过InputReceiver接口暴露至socketServer,而非直接交给其完整实例
- 调整模块加载时机->InteractionHub加载时进行加载
- 调整MemoryGraph中userDialogMap的结构,换用以用户id为主键
- 初步进行测试,记忆更新逻辑暂未实现
2025-04-25 23:08:01 +08:00
34c6b861c8 refactor(agent): 明确模块化设计流程,具体逻辑待实现
- 调整配置文件路径
- 新增 InteractionModulesLoader 用于动态加载交互模块,加载扩展模块待实现
- 修复 MemoryGraph 和 MemoryNode 的部分逻辑
- 改进 ModelConfig 类,支持单独配置文件, 用于动态加载模块
- 新增 PreprocessExecutor 和 TaskEvaluator模块, 待后续实现
2025-04-17 23:12:13 +08:00
cad3af346f 实现了MemoryGraph的序列化/反序列化;
实现了MemoryGraph的插入功能;
2025-04-08 22:31:48 +08:00