![]()
在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助力您的未来发展。
特别声明:以上内容(如有图片或视频亦包括在内)为自媒体平台“网易号”用户上传并发布,本平台仅提供信息存储服务。
Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.