ARTICLE DETAIL

资讯详情

深耕郑州网站建设与运营推广的一线实战洞察。

Agno Team 学习能力全指南:让多智能体团队自动记忆用户、实体与决策

Agno Team 学习能力全指南:让多智能体团队自动记忆用户、实体与决策 Agno Team 学习能力全指南让多智能体团队自动记忆用户、实体与决策【免费下载链接】agnoBuild, run, and manage agent platforms.项目地址: https://gitcode.com/GitHub_Trending/ag/agno导读本指南围绕 Agno 仓库中 cookbook/03_teams/12_learning/README.md 展开系统讲解Team的自动学习Learning机制。Agno 的团队学习让多个 Agent 在对话过程中自动捕获用户画像User Profile、用户记忆User Memory、实体信息Entity Memory、会话上下文Session Context、经验知识Learned Knowledge与决策日志Decision Log并跨会话持久化复用。读完本文你将掌握learningTrue快速接入、LearningMachine细粒度配置、ALWAYS / AGENTIC 两种学习模式的区别以及如何在 PostgreSQL 上落地一套可审计、可追溯的团队记忆体系。前置条件在运行任何学习示例前需要准备两样东西PostgreSQL 数据库团队学习的所有 Store画像、记忆、实体、知识、决策都依赖持久化存储仓库提供了启动脚本./cookbook/scripts/run_pgvector.sh该脚本会启动一个带 pgvector 扩展的 PostgreSQL 实例示例代码默认连接地址为postgresqlpsycopg://ai:ailocalhost:5532/ai见各示例中的PostgresDb(db_url...)。OpenAI API Key示例统一使用OpenAIResponses(idgpt-5.2)作为模型并通过OpenAIEmbedder(idtext-embedding-3-small)生成向量。需要设置环境变量OPENAI_API_KEY。运行示例的命令格式如下以第一个示例为例.venvs/demo/bin/python cookbook/03_teams/12_learning/01_team_always_learn.py团队学习的核心机制LearningMachine 与 LearningMode什么是 LearningMachine从源码看团队学习由 libs/agno/agno/learn/machine.py 中的LearningMachine统一编排。它聚合了六类可独立启停的学习存储学习类型配置类存储内容作用域用户画像UserProfileConfig结构化的长期用户字段姓名、偏好等USER按 user_id用户记忆UserMemoryConfig非结构化的用户观察、上下文、行为模式USER按 user_id会话上下文SessionContextConfig当前会话目标、计划步骤、进度SESSION按 session_id实体记忆EntityMemoryConfig人员、项目、公司等实体的事实与关系USER按 user_id经验知识LearnedKnowledgeConfig最佳实践、事故教训、设计模式共享知识库向量库决策日志DecisionLogConfig决策内容、推理过程、备选方案、结果SESSION按 session_id学习模式 LearningModelibs/agno/agno/learn/config.py 定义了LearningMode枚举它决定何时、如何进行知识提取class LearningMode(Enum): How learning is extracted and saved. ALWAYS: Automatic extraction after each response. AGENTIC: Agent decides when to learn via tools. PROPOSE: Agent proposes, human confirms (learned_knowledge only). HITL: Reserved for future use; unsupported by every store. ALWAYS always AGENTIC agentic PROPOSE propose HITL hitl两种核心模式的取舍ALWAYS默认每次响应后自动并行提取并落库零干预、最简单但会消耗额外的模型调用需要模型执行提取任务因此 ALWAYS 模式下model是必填项。AGENTIC学习不是自动进行的而是由团队通过工具tool显式决定何时保存/更新/检索。控制粒度更细、成本更低适合需要审慎记录的场景。PROPOSE仅用于learned_knowledgeAgent 先提出候选知识、由人确认后再入库。HITL为未来保留当前所有 Store 均不支持。LearningMachine的默认配置可以在 config.py 中查看UserProfileConfig、UserMemoryConfig、SessionContextConfig的默认模式均为ALWAYS而EntityMemoryConfig与DecisionLogConfig默认就是AGENTIC实体记忆明确是 AGENTIC-onlyAgent 通过四个工具记录实体决策日志同样依赖 Agent 显式调用log_decision工具。一、最简接入learningTrue 自动学习对应示例01_team_always_learn.py。这是给团队加记忆的最简单方式——在Team上设置learningTrue团队就会在每次响应后自动捕获用户画像与用户记忆且提取过程在响应结束后并行执行from agno.agent import Agent from agno.db.postgres import PostgresDb from agno.models.openai import OpenAIResponses from agno.team import Team db PostgresDb(db_urlpostgresqlpsycopg://ai:ailocalhost:5532/ai) researcher Agent( nameResearcher, modelOpenAIResponses(idgpt-5.2), roleResearch topics and provide detailed information., ) writer Agent( nameWriter, modelOpenAIResponses(idgpt-5.2), roleWrite clear, concise content based on research., ) team Team( nameResearch Team, modelOpenAIResponses(idgpt-5.2), members[researcher, writer], dbdb, learningTrue, markdownTrue, show_members_responsesTrue, )关键点解析learningTrue等价于使用一个默认配置的LearningMachine默认启用用户画像ALWAYS与用户记忆ALWAYS两个 Store。dbdb是学习的持久化后端所有捕获结果写入 PostgreSQL不传 db 则无法跨会话持久化。每次对话需显式传入user_id与session_id学习结果按user_id组织跨会话复用。演示逻辑分两个 SessionSession 1用户自然说出自己的身份与偏好我是 Alice机器学习工程师喜欢带代码示例的技术解释随后通过team.learning_machine查看已学到的内容lm team.learning_machine lm.user_profile_store.print(user_iduser_id) # 打印已学到的用户画像 lm.user_memory_store.print(user_iduser_id) # 打印已学到的用户记忆Session 2换一个全新的session_id团队因为读取了同user_id下的画像与记忆能够记住用户并给出个性化回答。这就是团队级记忆的核心价值——知识属于团队而非单个 Agent跨会话、跨成员共享。二、细粒度配置LearningMachine 按需启用各 Store对应示例02_team_configured_learning.py。当默认的learningTrue不够用可以构造一个LearningMachine实例传入learning参数为每个 Store独立配置模式from agno.learn import ( LearningMachine, LearningMode, SessionContextConfig, UserMemoryConfig, UserProfileConfig, ) team Team( nameAdvisory Team, modelOpenAIResponses(idgpt-5.2), members[analyst, advisor], dbdb, learningLearningMachine( user_profileUserProfileConfig( modeLearningMode.ALWAYS, ), user_memoryUserMemoryConfig( modeLearningMode.AGENTIC, # 团队用工具显式保存观察 ), session_contextSessionContextConfig( modeLearningMode.ALWAYS, # 追踪会话目标与进度 ), ), markdownTrue, show_members_responsesTrue, )本例的三种组合代表三种典型用法UserProfileConfig(modeALWAYS)自动提取结构化的用户画像字段姓名、角色、偏好。UserMemoryConfig(modeAGENTIC)不自动记忆团队拥有工具仅在认为值得记录时显式保存观察。SessionContextConfig(modeALWAYS)自动跟踪会话目标、进度等上下文。演示中Session 1 用户自报家门我是 BobB 轮创业公司 VP of Engineering50 名工程师要扩到 100 人Session 2 直接追问基于你对我的了解招聘策略应该是什么——团队因保留了会话上下文与画像能给出贴合用户处境的回答。查看学习结果同样是走team.learning_machine的各 Storelm.user_profile_store.print(user_iduser_id) lm.user_memory_store.print(user_iduser_id) lm.session_context_store.print(session_idsession_1) # 注意会话上下文按 session_id 组织三、实体记忆跟踪人、项目与关系对应示例03_team_entity_memory.py。面向项目协作、CRM、研究协调等复杂多实体场景EntityMemoryConfig让团队跟踪实体人员、项目、公司的事实、事件与关系。实体记忆是 AGENTIC-only 模式——Agent 通过四个工具记录实体源码注释见 config.pyteam Team( nameEngineering Leadership, modelOpenAIResponses(idgpt-5.2), members[project_manager, technical_lead], dbdb, learningLearningMachine( user_profileUserProfileConfig( modeLearningMode.ALWAYS, ), entity_memoryEntityMemoryConfig(), # AGENTIC-onlyAgent 通过四个工具记录 ), markdownTrue, show_members_responsesTrue, )注意EntityMemoryConfig()的mode默认即为LearningMode.AGENTIC若显式传其他模式会直接报错源码中通过assert校验见 config.py。演示中 Session 1 用户一次性抛出三个项目Atlas / Beacon / Compass及各自的负责人Dave / Eve / Frank与状态Session 2 用户更新状态Atlas 砍范围后回归正轨Eve 休医疗假谁来接管 Beacon。团队通过search找到相关实体并打印详情entities lm.entity_memory_store.search(queryproject, user_iduser_id) for entity in entities: lm.entity_memory_store.print( entity_identity.entity_id, entity_typeentity.entity_type, user_iduser_id, )对比两次输出可以看到实体状态被增量更新——这正是实体记忆区别于普通会话历史的价值以实体为中心组织知识而不是以对话轮次为单位。四、会话上下文 规划模式多步骤目标跟踪对应示例04_team_session_planning.py。对部署流水线、项目规划、onboarding 等多步骤任务SessionContextConfig(enable_planningTrue)开启规划模式捕获当前目标与子任务、带完成状态的计划步骤、以及多轮对话间的进度标记team Team( nameRelease Team, modelOpenAIResponses(idgpt-5.2), members[devops_engineer, security_reviewer], dbdb, learningLearningMachine( user_profileUserProfileConfig( modeLearningMode.ALWAYS, ), session_contextSessionContextConfig( enable_planningTrue, ), ), markdownTrue, show_members_responsesTrue, )演示用同一个session_idrelease_v2连续推进三轮Turn 1定义目标——我们需要把 v2.0 部署到生产给出一份涵盖基础设施、安全、上线的三步发布清单随后打印会话上下文。Turn 2宣布基础设施就绪staging 测试通过团队更新计划状态继续追问安全项。Turn 3宣布安全审查通过追问推荐的上线策略再次打印会话上下文对比计划完成度。规划模式的价值在于团队不是无状态地每次重新理解而是把目标拆解、完成状态作为结构化上下文长期维护适合需要逐步推进、可随时校验进度的长期任务。五、经验知识构建团队共享知识库对应示例05_team_learned_knowledge.py。LearnedKnowledgeConfig让团队把对话中沉淀的最佳实践、事故教训、设计模式写入共享知识库后续遇到新问题可检索复用。它依赖向量数据库本示例用 PgVector OpenAIEmbedderhybrid 检索from agno.knowledge import Knowledge from agno.knowledge.embedder.openai import OpenAIEmbedder from agno.vectordb.pgvector import PgVector, SearchType db_url postgresqlpsycopg://ai:ailocalhost:5532/ai db PostgresDb(db_urldb_url) knowledge Knowledge( vector_dbPgVector( db_urldb_url, table_nameteam_learnings, search_typeSearchType.hybrid, embedderOpenAIEmbedder(idtext-embedding-3-small), ), ) team Team( namePlatform Team, modelOpenAIResponses(idgpt-5.2), members[sre_engineer, platform_engineer], dbdb, learningLearningMachine( knowledgeknowledge, learned_knowledgeLearnedKnowledgeConfig( modeLearningMode.AGENTIC, # 团队使用工具保存/检索知识 ), ), markdownTrue, show_members_responsesTrue, )团队通过两个工具维护知识save_learning保存可复用的洞见、最佳实践与教训。search_learnings检索既有知识并应用到新问题。演示流程三连击Session 1用户描述一次生产事故连接池耗尽要求保存关键教训始终使用 PgBouncer 连接池、按服务设置 max_connections。Session 2保存另一条最佳实践Kubernetes 部署必须设置资源 requests/limits。Session 3用户提出新问题——我们要上线一个连 PostgreSQL 并跑在 Kubernetes 上的新微服务需要注意什么团队通过检索之前保存的知识给出针对性提醒实现机构知识的跨会话沉淀与复用。查看存储内容lm.learned_knowledge_store.print(queryconnection pool) lm.learned_knowledge_store.print(querykubernetes)该模式特别适合工程最佳实践沉淀、事故复盘、设计模式库等组织记忆场景。注意启用 learned_knowledge 时knowledge含向量库需要显式注入因为知识检索依赖向量相似度而非普通数据库。六、决策日志审计与可追溯性对应示例06_team_decision_log.py。面向架构评审、安全审查、合规等需要可追溯性的场景DecisionLogConfig记录做出了什么决策、推理过程与备选方案、上下文与结果。team Team( nameArchitecture Review Board, modelOpenAIResponses(idgpt-5.2), members[architect, cost_analyst], dbdb, learningLearningMachine( decision_logDecisionLogConfig( modeLearningMode.AGENTIC, enable_agent_toolsTrue, # 向团队暴露决策日志工具 agent_can_saveTrue, # 允许保存决策 agent_can_searchTrue, # 允许检索决策 ), ), instructions[ You are an architecture review board., When making significant technical decisions, use the log_decision tool to record them., Include your reasoning and any alternatives you considered., ], markdownTrue, show_members_responsesTrue, )决策日志同样是 AGENTIC 模式团队只有在instructions的引导下遇到重大技术决策时才调用log_decision工具落库。enable_agent_toolsTrue是必须的否则团队没有可用的日志工具。演示场景Session 1新实时分析服务选型PostgreSQLTimescaleDB / ClickHouse / Apache Druid10 万事件/秒、亚秒级查询延迟团队评估并记录决策。Session 2同一服务的缓存层选型Redis / Memcached / Caffeine再次记录。查看决策日志lm.decision_log_store.print(session_idsession_1, limit5) lm.decision_log_store.print(limit5) # 不传 session_id 查看全部这让AI 团队的每个重要决定都有据可查适合对接内部审计流程。七、更多示例画像回想、用户记忆、异步与 Agentic 学习目录下还有 4 个 README 未逐一列出的示例但它们在实战中同样重要07 用户画像跨会话回想07_team_user_profile.py 专门验证Team.add_learnings_to_context的正确性Session 1 提取画像我是 Marcusfintech 创业公司 DevOps偏好实战例子主要用 KubernetesSession 2 使用不同的 session_id提问你知道关于我的什么团队能完整回想画像。这证明画像的回忆不依赖同一会话而是按user_id全局生效。08 用户记忆的观察与模式08_team_user_memory.py 展示非结构化记忆Session 1 用户分享公司现状正在准备 A 轮MRR 5 万美元、月增 15%主要挑战是 CAC 相对 LTV 偏高Session 2 团队基于记忆给出针对性建议。09 异步学习09_team_async_learning.py 使用AsyncPostgresDb实现非阻塞数据库访问配合await team.aprint_response(...)与asyncio.run(main())适合高并发 Web 服务等异步场景。10 Agentic 模式的另一种写法10_team_agentic_learning.py 演示两种等价配置写法既可以用UserMemoryConfig(modeLearningMode.AGENTIC)也可以直接传LearningMachine(dbdb, user_profileTrue, user_memoryLearningMode.AGENTIC)。用户让团队保存这些关键日期beta 3 月 15 日、营销 3 月 20 日、GA 4 月 1 日团队显式调用工具保存Session 2 再问我接下来的发布里程碑是什么即可精确回想。运行与验证小结运行清单启动数据库./cookbook/scripts/run_pgvector.sh设置环境变量export OPENAI_API_KEYsk-...依次运行 10 个示例Python 解释器按仓库 cookbook_setup.sh 或各目录 requirements 安装.venvs/demo/bin/python cookbook/03_teams/12_learning/01_team_always_learn.py .venvs/demo/bin/python cookbook/03_teams/12_learning/02_team_configured_learning.py # ... 以此类推可逐个运行 03 ~ 10验证学习效果的三条路径打印 Store每个示例都通过lm.xxx_store.print(...)在终端直接输出已学内容是最快的验证方式。跨会话提问多数示例设计了Session 1 分享信息 → Session 2 提问的结构从回答中可直接判断团队是否记得。查库所有数据都落在 PostgreSQL 中学习类表 team_learnings向量表可直接用 SQL 检查持久化结果。模式选型速查场景推荐配置快速体验、默认兜底Team(learningTrue)需要控制记忆成本/内容按 Store 配LearningMode.AGENTIC多实体项目协作EntityMemoryConfig()AGENTIC-only多步骤任务进度跟踪SessionContextConfig(enable_planningTrue)机构知识沉淀LearnedKnowledgeConfigKnowledge(vector_db...)审计合规DecisionLogConfig(enable_agent_toolsTrue, ...)总结Agno 的团队学习机制把记忆从单 Agent 扩展到了整个团队learningTrue提供开箱即用的自动学习LearningMachine则允许按 Store 独立配置 ALWAYS / AGENTIC 模式覆盖用户画像、用户记忆、实体记忆、会话上下文、经验知识与决策日志六类知识。所有学习成果基于 PostgreSQL及可选的 pgvector 向量库持久化按user_id/session_id组织真正实现团队级、跨会话、可审计的记忆能力。想深入源码可继续阅读 libs/agno/agno/learn/machine.py 与 libs/agno/agno/learn/config.py想对比单 Agent 版本可参考 cookbook/08_learning 系列。【免费下载链接】agnoBuild, run, and manage agent platforms.项目地址: https://gitcode.com/GitHub_Trending/ag/agno创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表