Home

Google ADK: 可观测性

1. 何时需要可观测性 智能体交互变慢了,是调用工具还是查询知识库变慢了?工具调用了第三方的 API,估计是网络波动。哦不,知识库底层的 Milvus 没有做存算隔离,可能是这里的性能瓶颈?或者是系统缺少隔离,其他用户影响了当前用户? 当你开始考虑这个问题时,就说明系统缺少可观测的能力了。 得益于微服务架构的发展,智能体技术从构建之初,就可以基于成熟的可观测的能力。该能力,是解决智能体从有用到可用的关键点。 注:除了 CodeAgent 以外,为何大部分的智能体都只是 demo 而没有用,就是另外一个话题了。 从架构角度,需要提前考虑如何让智能体变得可用。无论系统设计的如何健壮,SRE 如何运维和弹性伸缩资源,系统长时间运行,总会出问题,而哪里会出问题则是不可预测的。 可观...

Read more

Google ADK: 又一款 Agent 框架?

1. Google ADK:轻量级智能体框架介绍 Agent Development Kit (ADK) 是 Google 去年推出的一款智能体框架,从我的测试情况看1,还是比较好用的。 相比 LangChain,主要的优点是轻量级的设计及简洁代码、对 Agent 效果迭代过程的实用设计。前者方便快速原型开发,后者则关注到了 Agent 效果而不是仅仅搭建出来。 LangChain 初始印象是功能强大,比如支持了不同的 LLM、不同的向量库等。但是实际使用下来,发现这种支持的代价就是深层次的抽象、反射。而对于简单的业务场景,比如代码定位、个性化的功能开发等,反而会更加复杂耗时。 之前也简单的看过CAMEL 和 AutoGEN,方便性上不如 ADK. 更合理的智能体框架形式,或...

Read more

基于Mem0的几款记忆框架&平台的调研

1. Mem0 是什么 mem0ai/mem01的官网介绍: Mem0 (“mem-zero”) enhances AI assistants and agents with an intelligent memory layer, enabling personalized AI interactions. It remembers user preferences, adapts to individual needs, and continuously learns over time—ideal for customer support chatbots, AI assistants, and autonomous systems. 现在看,记忆层已是智能体的基础...

Read more

任务队列 Celery 实践

上一篇介绍了 Celery 架构,这篇我们实战看看。 1. 例子 文章从基础、重试、ack、周期任务等几个方面说明,完整的运行例子放在了 github 上 1.1. Hello World 入门例子使用非常简洁,分为两步: 启动Worker: 从 Redis 读取任务,执行add方法,将结果写回 Redis run_simple_task -> add.delay: 写入任务,通过app分发到 default 队列(存储到 Redis),并等待读取结果 1.1.1. 消费者-Worker 先从启动 Worker 开始,定义app/celery_app.py: #!/usr/bin/env python # coding=utf-8 from celer...

Read more

任务队列 Celery 架构

1. 定位:Celery 是什么? Celery 是一个分布式任务队列系统,用于在多个工作进程和机器之间异步执行任务。 异步任务的需求很多,特别是耗时且需要平滑处理的场景。比如文件格式转换、数据统计、调用第三方耗时的 api 等,就需要任务入队,然后逐批出队处理。 有些情况下,异步任务还往往伴随着延迟或者周期处理的需求,例如统计网站使用量、文件个数大小等,Celery 也还支持了周期及延迟任务。 2. 思考:如果自己实现 实现任务队列,基础是链条上参与的三个角色:生产者、队列、消费者 首先是生产者:需要支持用户自定义任务,能够方便的提交到任务队列,队列里存储的应当是任务的元信息。这块需要提供代码框架或者接口实现。 其次是队列:任务不丢的基础是持久化。我的第一个想法是采用消...

Read more