最近我们刚发布了Bridgic v0.3.0b1版本,升级了长程自主性智能模块[1],并且完善了MCP集成能力[2]。今天我就来和大家介绍一下,如何组合这些底层能力来实现一些有意思的功能(具备高度自主性的),以及将自主性模块加入到Bridgic风格的编排体系中的背后的一些设计思考。
归零者想重新启动宇宙,回到田园时代。
—— 出自《三体》
今天我们讨论一个跟Python异步编程有关的问题。问题源于我们在开发Bridgic项目时碰到的一个基础编程问题:被调度执行的agent应该运行在一个什么样的线程环境上?
与传统的软件系统不同,智能体是天然具有「结构」的。
首先,单智能体内部,可以包含LLM、工作worker、工具等一系列内部模块。其次,多智能体是由多个子智能体组合而成的,不管是「agent as tool」还是其他的组合模式。第三,确定性的workflow和高自主性的agentic模块,在实际生产中是很可能出现在同一个系统中被组合使用的。这些都呈现出某种「结构」性信息。
今天,我以开源Bridgic 的链路追踪集成 (tracing) 为例,聊一聊AI时代的可观测性 (Observability) 相关的话题。
上篇文章发出来之后,不少朋友说想看看「动态拓扑」的代码长什么样子。当然,代码怎么写只是问题的一个方面,是一个表现形式。关键问题在于,上篇文章讨论的那些所谓的「思考」,是如何从抽象的概念变为实实在在的代码的,以及这些代码的结构是如何组织起来的。这是一个有趣的过程(相信你也会这么认为)。
有不少读者朋友发来私信询问,如果要开发AI Agent应该如何对AI框架进行选型。这确实不是一两句话能够说清楚的,因为我觉得也不好选🤦
一方面,虽然市面上选择很多,但各自的差异也比较大,没有能“包治百病”的。另一方面,在我看来各种方案都不够好:要么代码臃肿,概念堆砌;要么就是各种黑盒方案,在生产环境很不可控…
在上篇文章中,我们讨论了AI智能体开发中「人类在环 (human-in-the-loop)」机制的一些重要方面。今天,我给出一些示例代码来展示其中核心部分的实现过程及注意事项。文末附上源码下载链接。