熟悉 Bridgic 的朋友可能已经了解,在 Bridgic 的最底层,我们采用动态编排来统一调度确定性模块与自主性模块,旨在将各类智能组件整合到一个系统中无缝协作。
近期我们刚刚发布了 Bridgic v0.3.0b1 版本,不仅升级了长程自主智能模块,还完善了 MCP 集成能力。今天我就来和大家聊聊,如何组合这些底层能力来实现一些有趣的高自主性功能,以及将自主模块融入 Bridgic 风格编排体系背后的设计思路。
接下来的内容分为四个部分:
Bridgic 长程自主性模块的设计思路。一个案例:用自然语言控制浏览器实时查询金价。Agent Skills 出现之后,MCP 还有用吗?分享一些 MCP 资源。
Bridgic 长程自主性模块的设计思路
了解 Bridgic 的朋友可能知道,在其架构的最底层,我们通过动态编排来统一协调确定性模块与自主性模块,目的是让不同的智能组件能在一个系统里顺畅配合。
在 Bridgic 的上一个版本中,其实已经有一个基于 ReAct 的自主性模块(具体实现是 ReActAutoma 类)。但是,对于执行真正长程的自主性任务来说,ReActAutoma 存在一个问题:随着时间的推移,调用工具的结果会以 ToolMessage 的形式不断追加到上下文中,导致“上下文爆炸”和“目标漂移”。
因此,我们对自主性模块进行了重大升级,使其更适合执行长程的自主性任务。这个新模块的实现,叫做 ReCentAutoma。它是一个增强的 ReAct(Reasoning and Acting)循环,实现了一种称为 ReCENT(Recursive Compressed Episodic Node Tree)的记忆压缩算法。具体来说:
ReCENT 算法会在合适的时机对情景记忆进行压缩,在保留关键语义的前提下避免上下文窗口爆炸。ReCentAutoma 显式地提供了 goal 参数和 guidance 参数,允许开发者明确任务目标和任务指导信息。这些信息不会被 ReCENT 算法压缩,确保智能体在长时间运行时能够保持目标聚焦。
值得一提的是,ReCentAutoma 的内部实现也是基于 Bridgic 底层的动态编排来进行的。因此,ReCentAutoma 也能够享受到 Bridgic 框架底层提供的可观测性集成能力和 human-in-the-loop 的中断、恢复等能力。换句话说,在 Bridgic 的世界里,动态编排既用于编排确定性模块和自主性模块,将这两种类型的模块融合在一个系统中,也同时用于编排自主性模块的内部结构。底层是统一的。
另外,为了让这个自主性模块能够与市面上现有的工具更轻松地对齐,Bridgic 这个版本对 MCP 集成能力也进行了完善(引入了 ToolSetBuilder)。至此,Bridgic 的“工具架构”已自成体系,可以用下面的图来表达(点击看大图):

