智能体编程中的模块与目标分解树模型
1. 模块在智能体编程中的应用
在智能体编程领域,模块的运用具有诸多优势。GOAL 模块与其他智能体编程语言中的计划存在相似之处。这些计划通常是智能体在设计阶段所拥有的计划库的一部分。模块和计划都指定了一个被称为上下文的条件,该条件规定了模块或计划能够发挥作用的情况,并且可通过替换机制绑定变量,从而实例化模块或计划体中的变量。
然而,GOAL 模块与计划在执行方式上存在差异。一旦激活,GOAL 模块会成为执行的焦点,而计划则被添加到智能体的计划库中,只是智能体尝试完成的当前“活跃”计划之一。例如,在处理多个订单交付目标时,3APL 或 AgentSpeak 智能体可能会面临相同的问题,多个计划会被引入计划库,可能导致类似的干扰效应。
另一种引入模块化的方法提出了一个应用于目标 φ 的运算符 m(φ),其目的是控制非确定性,也可用于解决示例智能体的问题。但与 GOAL 模块的上下文部分不同,该运算符引入了一种非声明性的模块激活机制。并且,GOAL 模块的终止条件基于一种承诺策略,即追求目标直至实现;而此方法中的模块终止则基于尝试各种计划一次,失败即退出的策略。此外,要激活多个模块,需要在计划中明确包含对这些模块的调用步骤。GOAL 模块在运行时既不会被其他模块调用,也不会被智能体的计划调用,而是由环境触发,使智能体将注意力集中在模块所提供策略的情况上。
使用模块在智能体编程中有诸多好处:
- 聚焦执行 :模块为聚焦智能体的执行提供了优雅的解决方案。它限制了智能体在特定上下文中考虑的目标以及需要选择的条件动作,从而减少了智能体程序中固有的非确定性。
-
超级会员免费看
订阅专栏 解锁全文

3916

被折叠的 条评论
为什么被折叠?



