
agno 学习系统端到端验证实战基于 10_demo 的六类 Learning Store 与 /learnings API 测试全记录【免费下载链接】agnoBuild, run, and manage agent platforms.项目地址: https://gitcode.com/GitHub_Trending/ag/agno本篇技术指南以 cookbook/08_learning/10_demo 目录下的测试日志 TEST_LOG.md 为骨架系统讲解 agno 学习系统LearningMachine的端到端验证方案。你将掌握如何通过 seed 脚本用真实对话填充全部六个学习存储、如何用 AgentOS 的/learningsREST API 做完整的 CRUD 回归测试以及如何在离线环境下对 Agent 与学习存储做冒烟验证从而复现并扩展这套测试驱动的 Agent 学习能力验收流程。一、Demo 与测试日志概览一次覆盖全部学习能力的验收10_demo是一个小型的 AgentOS 应用目标是在一个 Agent 上启用全部六类学习存储用脚本化对话填充数据并通过 os.agno.com。测试日志记录了 2026-06-12 完成的三个验证场景全部标记为PASS场景验证对象验证方式结论seed.py 端到端六类学习存储的数据填充携带真实OPENAI_API_KEY对 pgvector 容器运行完整 seedPASSrun.py 在线服务/learningsREST API服务运行在 7777 端口全量 CRUD 轮询PASSagents.py / run.py 离线冒烟Agent 初始化与接口可用性导入 Agent、构建 AgentOS 应用、FastAPI TestClientPASS这三个场景恰好覆盖了数据层 → 接口层 → 构建层的完整验证链路下面逐层拆解。二、seed.py 端到端测试六类学习存储的数据填充验证2.1 测试目标与判定结果测试日志中对 seed.py 的判定为PASS验收标准如下所有脚本化对话全部完成全部存储被填充两位用户的 user profile 与 user memory、三个会话的 session context、7 条全局实体记忆、4 条决策日志、5 条 learned-knowledge 向量条目验证了知识跨用户迁移规则rehearse the cutover on a clone在克隆实例上预演割接这一规则由 Alice 教会 Agent随后被 Ben 复用。最终数据量为ai.agno_learnings表共18 行覆盖五种学习类型ai.learning_demo_knowledge向量表共5 条。测试结论明确指出 Knowledge transfer beat works知识迁移机制生效。2.2 种子脚本的设计两条用户线、三个会话seed.py 的核心是一个CONVERSATIONS元组列表每条记录为(user_id, session_id, message)Alicealicevantagelabs.dev会话alice-postgres-upgrade自我介绍与偏好 → 本周目标Postgres 15 到 17 零停机升级→ 补充团队上下文Marcus Lee 负责集群、Kubernetes us-east-1→ 请求推荐并记录决策 → 主动要求保存团队规则Benbennorthwind.io会话ben-design-system自我介绍与偏好喜欢讲权衡的详细回答→ 设计系统项目决策Ben 复用 Alice 的知识会话ben-postgres-question询问团队关于安全升级 Postgres 的经验验证 learned-knowledge 的跨用户语义检索。脚本通过ops_assistant.print_response(message, user_id..., session_id..., streamTrue)驱动对话最后输出WHAT THE AGENT LEARNED区块打印两位用户的 profile 与 memory、Alice 的会话上下文、ops-assistant的决策日志、learned-knowledge 检索结果以及按postgres/northwind/design查询得到的实体清单。2.3 六类学习存储与测试中出现的实体测试日志中列出的实体记忆Entity Memory共 7 条正好对应对话内容中的外部实体Postgres Cluster含 4 条 facts、Marcus Lee、Sarah Kim、Northwind、Vantage Labs、Design System、PostgreSQL。六类存储与对应学习页面/存储表的关系取自 README.mdLearning 页面Store种子数据User Profilesuser_profileAlice工程负责人与 Ben创始人User Memoriesuser_memoryshort, direct answers 等偏好Session Contextsession_contextAlice 升级会话的滚动摘要Entity Memoriesentity_memoryPostgres Cluster、Marcus Lee、Northwind、Design System 等Decision Logsdecision_logAgent 记录的带推理的推荐Learned Knowledgepgvector 向量表跨用户传递的升级规则注意第六类Learned Knowledge不在agno_learnings表中而是存放在 pgvector 向量库因此它不通过 Learning 页面展示而是通过 Agent 的save_learning/search_learnings工具调用在会话中显现——测试日志特别提醒关注 seed 输出中的这两类工具调用。三、run.py 在线测试/learnings REST API 的完整 CRUD 轮询3.1 测试范围服务运行在7777端口时测试日志对/learningsAPI 做了全量验证列表与分页list 接口的分页参数过滤learning_type与user_id两类过滤器GET /learnings/users两个用户均被索引按确定性 identity 获取通过user_profile_alicevantagelabs.dev这类确定性 ID 精确读取单条记录完整 CRUD 轮询以一条临时 decision_log 记录为例POST→ 201返回 UUID idPATCH→ 更新 content 与 metadataDELETE→ 204GET删除后→ 404。测试结论所有端点响应正确CRUD 轮询验证通过且种子数据不受影响临时记录用后即删。3.2 可复现的接口调用方式README.md 给出了同等的纯 HTTP 访问方式可直接复现测试中的列表与过滤场景curl http://localhost:7777/learnings?limit10 curl http://localhost:7777/learnings?learning_typeuser_profile curl http://localhost:7777/learnings/users交互式 API 文档位于http://localhost:7777/docs。完整的客户端 CRUD 走查可参考 cookbook/05_agent_os/11_learnings 目录。3.3 服务端实现AgentOS 应用run.py 的实现非常精简——核心只有三步from agents import ops_assistant from agno.os import AgentOS agent_os AgentOS( descriptionLearning demo: one agent with every learning store enabled, agents[ops_assistant], ) app agent_os.get_app() if __name__ __main__: agent_os.serve(apprun:app, reloadTrue)/learningsCRUD 端点即由AgentOS自动暴露底层直接读写agno_learnings表reloadTrue便于开发期热重载。四、agents.py / run.py 离线冒烟测试构建期验证4.1 测试内容与结论第三个场景是离线冒烟测试不需要真实网络请求在 Postgres pgvector 环境下导入 demo Agent确认全部六个存储正确初始化user_profile、user_memory、session_context、entity_memory、learned_knowledge、decision_log构建 AgentOS 应用用 FastAPITestClient调用 learnings 端点。结论应用构建成功/learnings端点返回分页结果。这一场景的价值在于无需真实 API Key 即可验证配置正确、依赖可解析、路由可挂载适合放进 CI 作为最快的回归信号。4.2 Agent 的源码级配置解读agents.py 是整套验证的基石它演示了如何用一份配置打开全部六类学习能力from agno.agent import Agent from agno.db.postgres import PostgresDb from agno.knowledge import Knowledge from agno.knowledge.embedder.openai import OpenAIEmbedder from agno.learn import LearningMachine from agno.models.openai import OpenAIResponses from agno.vectordb.pgvector import PgVector, SearchType db_url postgresqlpsycopg://ai:ailocalhost:5532/ai db PostgresDb(idlearning-demo-db, db_urldb_url) knowledge Knowledge( vector_dbPgVector( db_urldb_url, table_namelearning_demo_knowledge, search_typeSearchType.hybrid, embedderOpenAIEmbedder(idtext-embedding-3-small), ), ) learning LearningMachine( dbdb, modelOpenAIResponses(idgpt-5.5), knowledgeknowledge, user_profileTrue, user_memoryTrue, session_contextTrue, entity_memoryTrue, learned_knowledgeTrue, decision_logTrue, ) ops_assistant Agent( idops-assistant, nameOps Assistant, modelOpenAIResponses(idgpt-5.5), dbdb, learninglearning, instructions[ You are an engineering operations assistant., Keep answers short and practical., Search your learnings before answering substantive questions., When the user shares a team-wide insight or asks you to remember one, save it with the save_learning tool., When you make a significant recommendation, record it with the log_decision tool, including your reasoning and the alternatives you considered., ], markdownTrue, )几个值得注意的配置细节Learned Knowledge 必须配向量库它需要KnowledgePgVectortable_namelearning_demo_knowledgeSearchType.hybrid混合检索OpenAIEmbedder(idtext-embedding-3-small)负责语义嵌入。这也解释了为什么它独立于agno_learnings表存放单条消息可能触发大量记忆更新LearningMachine 的max_updates_per_run默认 10用于限制单次抽取的更新次数防止工具调用失控循环。如果提示词包含密集信息如大量实体可以调高该值——从 libs/agno/agno/learn/config.py 可以看到这个上限可以在LearningMachine全局设置也可以按存储如EntityMemoryConfig单独覆盖指令instructions与工具联动提示词中的save_learning对应 learned_knowledge 的 AGENTIC 工具与log_decision对应 decision_log 的工具必须依赖对应存储启用才会注册到 Agent 上数据模型使用 dataclass 而非 Pydantic从 libs/agno/agno/learn/config.py 源码注释可见这是为了规避运行期校验开销避免 Agent 运行中途因校验失败而中断。五、底层原理LearningMachine 如何编排六类存储从源码 libs/agno/agno/learn/machine.py 可以看出LearningMachine是统一的编排器每个学习类型既可传bool开/关也可传对应的Config如UserProfileConfig还可直接传入实现了LearningStore协议的自定义存储实例它协调 recall回忆、processing抽取处理、tool generation工具生成与 maintenance维护_filter_store_kwargs这类签名感知的分发逻辑保证第三方自定义存储签名较窄不会被新增上下文参数破坏内置存储则通过**kwargs接收全部上下文。六类存储的配置类与学习模式对照同见 libs/agno/agno/learn/config.py存储配置类默认模式说明User ProfileUserProfileConfigALWAYS结构化字段作用域 per userUser MemoryUserMemoryConfigALWAYS非结构化观察per userSession ContextSessionContextConfigALWAYS会话摘要/目标/计划/进度per sessionEntity MemoryEntityMemoryConfigAGENTIC事实/事件/关系三类通过四个工具记录Learned KnowledgeLearnedKnowledgeConfigAGENTIC跨用户复用需向量库Decision LogDecisionLogConfigAGENTIC带推理与备选方案的决策记录per agentLearningMode枚举定义了ALWAYS每次回复后自动抽取、AGENTICAgent 通过工具自主决定、PROPOSEAgent 提议、用户确认与HITL预留。Entity Memory 与 Decision Log 仅支持 AGENTIC 模式通过remember_about、link_entities、search_entities、forget以及log_decision等工具完成记录这也是种子对话中 Agent 会主动执行工具调用的原因。六、从零复现这套验证完整操作步骤测试环境为Postgres pgvector容器Agent 模型使用 OpenAI。完整复现步骤如下1. 设置 OpenAI Keyexport OPENAI_API_KEY...2. 启动 pgvector 容器./cookbook/scripts/run_pgvector.sh3. 填充学习存储对应 seed.py 端到端测试.venvs/demo/bin/python cookbook/08_learning/10_demo/seed.py脚本把对话逐条送入 Agent抽取自动发生结束后打印 Agent 学到的全部内容对应测试日志中18 行 learnings 5 条向量知识的预期数据。4. 启动 AgentOS 服务对应 run.py 在线测试.venvs/demo/bin/python cookbook/08_learning/10_demo/run.py随后即可用第三节的 curl 命令复测/learnings的列表、过滤、用户索引与 CRUD 轮询。5. 从 os.agno.com 接入UI 侧验证打开 os.agno.com 并登录Add OS → Local连接http://localhost:7777在侧边栏打开Learning区块各页面通过/learningsREST 端点读取agno_learnings表也可直接与 Ops Assistant 对话观察其回忆与持续学习。6. 重新开始清理数据学习数据位于ai.agno_learnings表与ai.learning_demo_knowledge向量表删除后重跑 seed.py 即可重置docker exec pgvector psql -U ai -d ai -c DROP TABLE IF EXISTS ai.agno_learnings, ai.learning_demo_knowledge;注意agno_learnings被该容器上的所有 cookbook 示例共享此操作会一并清除其他示例产生的学习数据。七、测试方法论提炼Agent 学习系统的三层验收从本次 TEST_LOG 可以提炼出一套可复用的 Agent 学习功能验收范式数据层seed 端到端用固定剧本 真实模型跑完整对话断言每个存储的行数与关键内容如跨用户知识迁移是否生效这是对学习能力本身的功能验收接口层在线 CRUD验证持久化数据能否通过标准 REST 暴露覆盖分页、过滤、确定性 ID 读取与建-改-删-查空的完整生命周期并确保种子数据不被测试污染构建层离线冒烟不依赖外部模型只验证存储初始化 → 应用构建 → 路由响应这条装配链路是最低成本的 CI 回归信号。三者叠加即可对Agent 会学习、学完存得住、存完查得到这一完整闭环建立可量化、可回归的验证体系。延伸阅读Demo 完整说明与运行指南cookbook/08_learning/10_demo/README.md学习系统总览与全部模式/配置详解cookbook/08_learning/README.md编排器实现libs/agno/agno/learn/machine.py配置类与学习模式定义libs/agno/agno/learn/config.py各学习存储实现libs/agno/agno/learn/stores/learnings客户端 CRUD 走查cookbook/05_agent_os/11_learnings【免费下载链接】agnoBuild, run, and manage agent platforms.项目地址: https://gitcode.com/GitHub_Trending/ag/agno创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考