
在2025年11月22日,agno发布了v2.3.2版本,本次更新主要围绕数据库内存管理、SQLite查询优化、测试流程完善等方面进行了改进和修复。本文将基于更新日志和具体代码变更,从多个角度详细解析本次版本的技术更新。
一、测试与工作流改进在.github/workflows/test_on_release.yml中新增了AgentOS集成测试任务:
• 新增test-agent-os任务,使用Python 3.12运行。
• 集成测试忽略部分接口目录(a2a、agui),只运行指定的os相关测试内容。
• 增加了uv的安装步骤与dev_setup.sh脚本执行,确保开发环境一致性。
这一改动主要是为了加强AgentOS模块的稳定性验证,提升发布前测试覆盖率。
二、API参数与兼容性调整在agent.py与team.py中,针对run与arun方法的参数进行了优化:
• yield_run_response参数由原来的bool类型改为可选的Optional[bool],并保留向后兼容逻辑。
• 调用时使用bool(yield_run_output or yield_run_response)来确保布尔类型,避免None带来的潜在逻辑错误。
此改动明确了参数类型和兼容逻辑,减少了运行时的类型问题。
三、内存管理优化在memory.py与manager.py中,用户内存数据结构与时间字段处理方式进行了统一优化:
• created_at与updated_at字段由datetime类型改为UNIX秒级时间戳(int),提升存储与比较的效率。
• 当未提供时间戳时,使用now_epoch_s()生成当前时间。
• 在to_dict方法中,时间戳会优先转为datetime格式后输出ISO 8601字符串,确保API输出的可读性。
内存排序逻辑也进行了调整:
• 如果updated_at为空,则在最后或最前进行排序。
• 排序时统一使用整数时间戳,避免混用datetime对象。
这些改动显著提高了内存数据在数据库与程序内的一致性,也优化了排序性能。
四、SQLite查询改进在sqlite.py与async_sqlite.py中,查询逻辑优化了按主题(topics)检索用户内存:
• 原有方式使用topics::text LIKE语法改为func.cast(table.c.topics, String).like(...),提高了SQLite兼容性和查询可读性。
• 支持多主题条件循环添加where过滤,提升精准检索能力。
此外,在sqlite.py的get_user_memory_stats方法中:
• total_count如果查询结果为None则返回0,避免统计为空时报错。
这些改动提升了在SQLite上的跨版本兼容性,避免因SQL语法不同导致的查询失败。
五、接口调用参数校验在os/routers/memory/memory.py中,用户内存统计接口新增了分页参数类型校验:
• limit与page参数在进入数据库查询前强制转为整数。
• 默认值调整为limit=20、page=1,提高了接口的健壮性。
六、其他小修正在os/router.py的migrate_database中,删除了多余的空行与不必要的缩进,使代码更简洁。
七、总结agno v2.3.2版本的更新重点集中在:
1. 测试工作流增强,增加AgentOS集成测试。
2. 参数类型优化,减少潜在的类型错误。
3. 内存时间戳统一化,提升性能与一致性。
4. SQLite查询语法优化,增强兼容性。
5. 接口参数校验,保证调用安全性。
本次版本的改动,既有底层的数据结构与存储优化,也有上层接口和测试体系的完善,为后续功能的稳定运行打下了坚实基础。
我们相信人工智能为普通人提供了一种“增强工具”,并致力于分享全方位的AI知识。在这里,您可以找到最新的AI科普文章、工具评测、提升效率的秘籍以及行业洞察。
欢迎关注“福大大架构师每日一题”,发消息可获得面试资料,让AI助力您的未来发展。
转载请注明来自海坡下载,本文标题:《数据存储优化(agno v232版本更新详细解读内存管理优化与SQLite查询改进)》
京公网安备11000000000001号
京ICP备11000001号
还没有评论,来说两句吧...