多代理合作:角色
父子agent将主干逻辑(项目管理、思考路径规划)和死胡同探索(读文件、跑代码测试)分离。父智能体像个“项目经理”,当遇到具体杂活时(比如“去帮我看看用户登录相关的代码都在哪里并分析一下”),它启动一个子智能体.减少注意力分散”的问题 12345678910111213141516171819"""s04_subagent.py - SubagentsSpawn a child agent with fresh messages=[]. The child works in its owncontext, sharing the filesystem, then returns only a summary to the parent Parent agent Subagent +------------------+ +------------------+ | messages=[...] | | messages=[] |...
工具调用
1.异步调用事件处理机制一个 Agent 实例可能同时面对多个事件:用户发来了新消息,之前调用的工具返回了结果,定时器到期了,另一个 Agent 发来了协作请求。如何高效、正确地处理这些事件,直接影响系统的性能和用户体验。 任务独立性判断独立就可以并行,完成后立即返回给用户,历史会被加到主任务轨迹中 不独立:紧急事件最高优先级,立即取消当前操作,更新待处理队列。把更新的轨迹作为LLM输入常规事件直接放到队列末尾。等当前工具调用结束后,把队列事件作为LLM输入。 2.工具选择类似泛型,根据功能相似性和使用场景重叠度对skill...
记忆
用户记忆系统的本质是一个主动的、持续的学习过程,其目标是构建一个关于用户的、尽可能简洁而强大的预测模型。 工作记忆(working memory)容量有限但访问快速,用于当前任务的处理;长期记忆(long-term memory)容量巨大但提取较慢,存储过去的经验和知识。 轨迹(Trajectory)是 Agent 实例的工作记忆,记录了该实例从创建到当前时刻的所有事件,按时间顺序排列,形成一个完整的、不可变的事件序列。提供了 Agent 决策所需的即时上下文 用户长期记忆(User Long-Term Memory)是跨会话、跨实例的持久化存储,通常以键值对的形式存在。用户偏好,历史摘要。通过工具调用读取和更新。 业务状态(Business State)是开发者定义的高层状态抽象,用于表示任务的逻辑阶段(如“需要澄清”、“处理请求中”“等待付款”“请求完成”)。这不同于框架内部的实例生命周期状态(如“运行中”“等待中”),而是从业务逻辑角度对任务进度的总结。框架会将当前业务状态注入到 LLM 的输入上下文中,帮助 LLM 更好地理解任务进展。 记忆系统设计Advanced...
DevOps 意识
简单来说,DevOps 意识就是“不只管生,还要管养”的责任感。 学生思维(缺乏 DevOps 意识): 代码写完,在我本地跑通了,输出了正确结果,我的任务结束了。 工程师思维(具备 DevOps 意识): 代码上线后,它要在服务器上 24 小时跑。如果它挂了怎么办?如果它慢了怎么查?如果用户量暴增怎么扩容?我写的代码能帮运维(Ops)同学省心吗? 可观测性 (Observability) —— 别让系统成为黑盒这是我之前提到的重点。如果系统慢了,你能不能立刻知道是哪一步慢了? 没有意识的做法: 出了问题,你只能去服务器上 tail -f project.log,在一堆乱七八糟的文本里肉眼找报错。 有意识的做法(JSON Logs & Metrics): 你打出的日志是结构化的 JSON,可以直接被收集系统(如 ELK, Datadog)解析。 1234567891011# ❌ 普通日志logger.info(f"处理了 {len(papers)} 篇论文,耗时 5秒")# ✅ DevOps 意识日志 (JSON...
Eval
Ragas, TruLens。自动化评估流程,通过Faithfulness和Answer Relevancy两个指标,把回答准确率从60%提升到了85%。 自动评估环境构建自动化,可构建 工具调用型评估环境Verifiers框架可验证正确性的任务环境需要在每次工具调用后更新状态并反馈,环境要提供清晰错误信息。环境层次化设计并行执行 人机交互型评估环境另一个LLM扮演人最终检查数据库是否一致,在对话中是否输出关键信息 数据集设计奖励可观测性加速问题诊断,支持持续优化,成本管理,支持持续学习(成功失败轨迹作为训练样本) 客服1. Agent 工作流评价测试体系通常采用基准测试(Benchmark Testing)结合黄金数据集(Golden Dataset)。 测试驱动验证: 在你的项目中,test/resources/ 目录下存在 chat_test_data.json 和 classifier_handler_test_cases.json。这就是典型的测试驱动做法。通过向工作流(如 pipeline/ 中的处理链或 ClassifierHandler)批量输入预设的...
agent 工作流
学会让AI使用工具(Tools)。ReAct (Reasoning and Acting) 模式。能抗并发、有评估指标的产品 Agent 工作流 (Agentic Workflow): - 本质:有“大脑”的循环迭代过程。 - 逻辑:AI 不再只是一条路走到底,而是会思考、决策、反思。它会判断:“这一步做得好吗?不好我重做”或者“我需要去查一下百度再回答”。 - 特点:包含规划(Planning)、记忆(Memory)和工具使用(Tool Use)。 概念 关系定位 形象比喻 Dify / LangChain 开发框架 (Platform/Framework) 施工队和脚手架。它们是帮你更方便地搭建“工作流”和“Agent”的平台。 RAG (检索增强生成) 具体的技术流程 (Pattern/Skill) 翻书考试。它是工作流中的一个特定步骤(去数据库查资料 -> 喂给 AI -> 出答案)。 Agent 工作流 顶层架构逻辑...
langchain
LlamaIndex在数据索引和RAG方面比LangChain更专业。面试时说你精通LlamaIndex的数据管道,会显得你很懂“数据”。 LangChain 生态系统(langchain, langchain-community, langchain-core, langchain-openai)更新极快,版本号非常碎片化。且它们之间有严格的互相依赖关系(例如 community 0.2 必须配 core 0.2)。 只要你环境里有一个包锁死了旧版本的 langchain-core,Pip 就不得不把所有的新版本全部遍历一遍,直到降级到匹配为止。 但是我ragas必须用langchain,但是主环境因为其他安装了旧的版本不是很想改,必须保持纯净[[Ragas测试]]
性能
测试重点看这些 吞吐量:找到每个方案的性能临界点 吞吐量和延迟的关系 负载期间节点挂了之后的表现(错误率、延迟变化等) 过滤功能对延迟的影响 k8s 容器时代 (Docker): 容器共享宿主机内核,轻量级(MB 级别),秒级启动。 - 问题来了: 当你有 3 个容器时,你手动用 docker run 就能管理。但当微服务架构普及,你有 1000 个容器 分布在 50 台服务器 上时,谁来决定哪个容器跑在哪台机器?谁来监控它们死没死?谁来做负载均衡? K8s 就是为了解决这个问题而生的:它是一个容器编排(Orchestration)平台。 K8s 不直接管理容器,而是管理 Pod。被称为“操作系统”——它管理了计算(Pod)、网络(Service/Ingress)、存储(Volume/ConfigMap)以及最重要的生命周期。example: 你给 Auth Service 创建一个 K8s Service 对象,名字叫 auth-svc。 K8s 会分配一个固定的虚拟 IP 给它。 神奇之处: Order Service 的代码里根本不需要写死...

