Blackboard systems

A blackboard system is a shared workspace where multiple specialist agents contribute knowledge. A controller dynamically selects which agent should contribute next based on what's on the blackboard, enabling flexible, emergent collaboration rather than fixed pipelines.

Blackboard architecture

A communication hub routes point-to-point messages. A blackboard is shared memory that all agents can read and write to. The controller decides which agent contributes next based on what is already on the board, enabling emergent problem-solving.

patterns/36_blackboard.py
python
class Blackboard:
    def __init__(self):
        self.findings = []
        self.solutions = []

    def add_finding(self, agent_name, content):
        self.findings.append({"agent": agent_name, "content": content})

class BlackboardSystem:
    def solve(self, problem, max_iterations=5):
        self.blackboard.add_finding("system", problem)
        for i in range(max_iterations):
            agent = self.controller.select_agent(self.blackboard)
            if not agent:
                break
            contribution = agent.contribute(self.blackboard)
            self.blackboard.add_finding(agent.name, contribution)
            if self.controller.is_complete(self.blackboard):
                break
        return self.blackboard.solutions

Blackboard with controller-driven agent selection.

Use a blackboard when agents need to share partial results asynchronously, like multiple experts contributing to a diagnosis. Use multi-agent coordination when agents need to talk directly to each other and negotiate, like in a debate or auction scenario.

Quiz: Quiz

Loading practice…

Flashcards: Flashcards

Loading practice…

Blackboard systems enable flexible collaboration without rigid pipelines. Next, we explore how agents can build long-term memory using episodic and semantic memory architectures.