Skip to content

Instantly share code, notes, and snippets.

@neolay

neolay/BDI.md Secret

Created July 25, 2023 01:48
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save neolay/075bb2afc9a037f2ff15746b9e6f6dce to your computer and use it in GitHub Desktop.
Save neolay/075bb2afc9a037f2ff15746b9e6f6dce to your computer and use it in GitHub Desktop.

BDI model

👇 推荐阅读,了解 BDI 非常好的资料,从一个非常简单的 agent 代码开始,然后逐步探索 Jason 的 BDI 功能

🔗 (BDI) Hello World ~ (BDI) 你好世界

We assume that the reader knows the basic concepts of the BDI model (an introduction and further references are found at the Wikipedia). It is important to know these concepts to be a good Jason programmer, in the same way that knowing the concepts of and objects and classes is important for a Java programmer. Very briefly, in the BDI model the agent has beliefs (based on what it perceives and communicates with other agents) that can produce desires (states of the world that the agent wants to achieve). The agent deliberates on its desires and decides to commit to some (desires to which the agent is committed become intentions). To satisfy its intentions, the agent executes plans that lead to action. The behaviour of the agent (i.e., its actions) is thus explained/caused by what it intends (i.e., the desires it decided to pursue). An important feature of architectures that implement the BDI model is that the agent should react to changes in its environment as soon as possible while keeping its pro-active (i.e., desires-oriented) behaviour. (Do not worry about all these high-level anthropomorphic concepts (in italics), we will try to keep the simplicity of usual hello world programs.)

我们假设读者了解 BDI 模型的基本概念(可以在维基百科上找到介绍和更多参考资料)。了解这些概念对于成为一名优秀的 Jason 程序员非常重要,就像了解对象和类的概念对于 Java 程序员很重要一样。简而言之,在 BDI 模型中,智能体拥有可以产生愿望(智能体想要实现的世界状态)的信念(基于它感知的内容以及与其他智能体的通信)。代理人仔细考虑其愿望并决定承诺某些愿望(代理人所承诺的愿望成为意图)。为了满足其意图,代理执行导致行动的计划。因此,主体的行为(即它的行动)是由它的意图(即它决定追求的愿望)来解释/引起的。实现 BDI 模型的体系结构的一个重要特征是代理应尽快对其环境的变化做出反应,同时保持其主动(即以期望为导向)的行为。 (不要担心所有这些高级拟人化概念(斜体),我们将尽力保持通常的 hello world 程序的简单性。)

👇 推荐阅读,了解并发 BDI 多 Agent 系统非常好的资料

🔗 LightJason — Knowledge Base ~ LightJason — 知识库

🔗 Jason Agent Cycle image

🔗 LightJason Agent Cycle image

AgentSpeak

AgentSpeak 是一种面向 BDI agent 的逻辑编程语言

wiki:AgentSpeak - Wikipedia

Jason

Jason 是 AgentSpeak 扩展版本的成熟解释器

repo:jason-lang/jason: Jason is a fully-fledged interpreter for an extended version of AgentSpeak, a BDI agent-oriented logic programming language.

📖 A framework that can be used to deploy multiple concurrent Jason agents in complex Second Life simulations is described in this paper. 本文描述了一个可用于在复杂的《第二人生》模拟中部署多个并发 Jason 代理的框架。

🔗 Interfacing a Cognitive Agent Platform with Second Life

spade

paper:SPADE 3: Supporting the New Generation of Multi-Agent Systems | IEEE Journals & Magazine | IEEE Xplore ~ SPADE 3:支持新一代多代理系统| IEEE 期刊和杂志 | IEEE探索

The paper has introduced SPADE 3, the new re-envisioning of the SPADE middleware based on those open issues. SPADE agents were conceived from the perspective of integrating them in a communication environment initially designed for humans only, as it is the XMPP protocol. This protocol is one of the cornerstones of SPADE. Not only it provides a natural human-in-the-loop integration, but also an open, decentralized, federated protocol that is extensible and offers some interesting utilities (e.g., the presence notification mechanism). SPADE makes full use of all these features in order to provide its support.

本文介绍了 SPADE 3,这是基于这些开放问题对 SPADE 中间件的新的重新构想。 SPADE 代理的构思是从将它们集成到最初仅为人类设计的通信环境中的角度出发的,因为它是 XMPP 协议。该协议是 SPADE 的基石之一。它不仅提供了自然的人机交互集成,而且还提供了一个开放的、去中心化的、可扩展的联合协议,并提供了一些有趣的实用程序(例如,存在通知机制)。 SPADE 充分利用所有这些功能来提供支持。

Using SPADE in this scenario has provided several advantages. First, the use of an extensible platform allows the system to be easily adapted to a sudden growth in the number of users. Second, the possibility of federalization when managing different groups of volunteers (or “fleets” in the implemented prototype) permits an elastic scaling of the system in the case of running large experiments in the simulator (or running the real system in big cities). Third, the dynamic registration and deregistration mechanism provided by the system ensures a completely open system, which is essential in a fully collaborative scenario as the one proposed here. Fourth, this case required a straightforward yet consistent synchronization technique in order to determine the availability of volunteers, which has been efficiently achieved by means of the presence notification mechanism. Fifth, the possibility of extending the communication protocol with standard add-ons allowed the system to easily incorporate new support, such as the publish-subscribe protocol which was used to receive the delivery requests by customers. And finally, it is also worth noting that by using a protocol that allows for the integration of people-to-people and people-to-agent communication, moving this application from the simulator to a real environment is quite simple. In this case, the communication protocol with the agents will be maintained, and only an app (maybe as simple as a chat app) will be needed for the humans to communicate with the agents. In scenarios like this one, where humans are an important component of the system, the integration of people-to-people communication in SPADE enables the incorporation of situations where communication between humans and agents, or even exclusively between humans, is required.

在这种情况下使用 SPADE 有几个优点。首先,可扩展平台的使用使得系统能够轻松适应用户数量的突然增长。其次,在管理不同的志愿者群体(或实现的原型中的“舰队”)时,联邦化的可能性允许在模拟器中运行大型实验(或在大城市运行真实系统)时对系统进行弹性扩展。第三,系统提供的动态注册和注销机制确保了系统的完全开放,这在本文提出的完全协作场景中至关重要。第四,这种情况需要一种简单而一致的同步技术来确定志愿者的可用性,这已经通过存在通知机制有效地实现了。第五,通过标准附加组件扩展通信协议的可能性使系统能够轻松地合并新的支持,例如用于接收客户的交付请求的发布-订阅协议。最后,还值得注意的是,通过使用允许集成人与人和人与代理通信的协议,将该应用程序从模拟器转移到真实环境非常简单。在这种情况下,将维持与代理的通信协议,并且仅需要一个应用程序(可能像聊天应用程序一样简单)来让人们与代理进行通信。在像这样的场景中,人类是系统的重要组成部分,SPADE 中人与人之间的通信集成可以纳入需要人类与代理之间甚至仅人类之间通信的情况。

repo:javipalanca/spade: Smart Python Agent Development Environment ~ javipalanca/spade:智能 Python 代理开发环境

其他

  • Deploying_embodied_AI_into_virtual_world20160617-5151-14y9hto-libre.pdf
  • log10.io 统一的 LLM 数据管理
  • Actors — Ray 2.6.0
  • Large Language Agents Modulating Behaviors in Decentralized Autonomous Organizations
    • 👇 推荐阅读这个项目的 README,对话式介绍如何设计 multi-agent LLM 架构
    • 🔗 shaman-ai/llambdao: Large Language Agents Modulating Behaviour in Decentralized Autonomous Organizations

      LLAMBDAO将多智能体系统重新构想为节点网络,通过消息进行通信。它是一种用于探索代理体系结构的语言。

      受这些项目和我们自己与Agent Actor合作的启发,LLAMBDAO是一个Python DSL,旨在促进超越当前架构的实验进入去中心化代理网络的设计空间。

      想象组建组织——GPT 或人力代理团队。使用 LLAMBDAO,您可以对高度连接的多智能体系统进行建模!

      听说过明斯基的思想社会吗?这是“心灵代理人”为集体智慧共同努力的想法。使用LLAMBDAO,您可以将其建模为节点网络 - 与他人和谐合作,创建精心编排的智能 🎼 交响曲

      通过这种方式,LLAMBDAO 可以成为创建 AGI 的 DSL,通过有组织的代理架构进行更大的实验。

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment