Rendered at 22:37:04 GMT+0000 (Coordinated Universal Time) with Cloudflare Workers.
AYBABTME 17 hours ago [-]
In most of my multi-agent workflows, I always end up asking them to create a group-chat system to coordinate and post updates. I thought this was such an obvious day-0 discovery that I assumed it's a well known and understood pattern that wasn't worth talking about. I once again discover that what I take for obvious and granted, might not be.
I've found that similarly to how teams can degrade into spending more time bikeshedding and on the watercooler than on work, agents also tend to end up spending way too much time coordinating as opposed to doing the work. And so I rediscovered that it's better to have one agent that's the Manager (on a Manager Schedule) and the rests be builders (on a Builder's Schedule), where the manager might be interrupt driven, but the builders need to be able to focus for a while without interruption (context poisoning).
Thanks for writing this and demonstrating that writing about anything is useful to share knowledge and practices. In the end, I learned a lot from Martin Fowler and his gang and I guess I should pay back and write about my own discoveries, however trivial they seem to me.
windexh8er 11 hours ago [-]
I really didn't get the article. The author seemed to think that agent coordination/collaboration was some novel idea. I think I first saw it being used in CrewAI [0] almost 2 years ago, now.
From what I've experienced when you just let the agents figure it out, to your point, they collaborate awkwardly. If you define how/where in your initial spec of what's being built that seems to go a long way in resolving this. However, agents still seem to end up out of alignment with the demands of the spec. I was testing Astra yesterday on a new tool that should have been able to be completed in a couple hours. I let it go and had it simply use a Sol agent for coding and a Opus agent for review. Opus was explicitly asked to validate the progress between checkpoints, one of those being to keep watch for scope creep.
It was half a day later and basically only the scaffolding was done. I asked why and it literally told me it was working on things I had not directed it to, that it was spending too much time on things I hadn't asked for. WTF good are these uber LLMs when they are making decisions and dismissing the prompt? I'm finding the smaller models seem to be able to stay on track much better and I'm constantly wondering if the current SOTA models should really be used in the review and cleanup phase only. But that seems very backwards as when I first started leaning into building out the most complete spec for a given task - it worked really well. Something seems to be degrading that workflow, now.
I feel like it's becoming more and more of a chore to get things done efficiently. But I don't really find that using Astra/Fable makes anything better at this point. In fact the Kimi models work really well together in this workflow. K3 does a great job of orchestration and I'd say is the more reliable of the 3 for a spec driven outcome. Wondering if this is all intentional by OAI and Anthropic to prod the models under the cover to go off and do their own thing and dismiss the directive.
You jest, but a wiki with a voting system might be a good fit for agents?
conorcleary 13 hours ago [-]
Even this one's overrun with bots, and because I'm already a dick I don't have a downvote
iamandoni 19 hours ago [-]
The author’s core insight is to remove the blackboard from source control. Another insight I’ve found is to compact the agent state log. I typically do this by having plans and implementation docs written at commit time and checked into .docs/. This separates the activity communication stream from codified documentation. You can then “compact” the state log by just keeping the last N lines.
nextaccountic 18 hours ago [-]
> The author’s core insight is to remove the blackboard from source control.
That's only because of a deficiency in CI. If you get smarter CI that doesn't trip on files unrelated to the build, using the repo as a blackboard or wiki is probably fine
tonyarkles 17 hours ago [-]
Having somewhat accidentally also discovered this pattern, I do recommend figuring out some kind of compaction/deprecation method, potentially history-preserving, potentially just letting the git commit messages themselves serve as the canonical history.
The biggest problem I encountered using a similar setup for doing long-term and iterative data analysis is error propagation. My team and I are characterizing and modelling a physical system, there are real-world experiments that need to be run and then fed back into the analysis pipeline and then the next frontier of questions comes up. Any time there has been an erroneous analysis somewhere along the line, that error continues to be treated as a correct fact until it has been decisively eradicated. If one analysis script or document has the error written as a correct fact, that error will continue to pollute future analyses. Oh and these errors can also end up in the agents’ memory files as well. I have gotten very careful about making sure that every reference is corrected everywhere because it seems that the initial error is weighted heavier than the correction.
jauntywundrkind 18 hours ago [-]
Technical constraint I want to mention: I just switched off of using .design/ because it was just too frustrating how many things don't see hidden files. The hidden directory was a win like 5% of the time, and annoying the rest of the time.
corv 20 hours ago [-]
Very interesting!
I may have explored a related approach but as an append-only log riding on source-control to sync state between checkouts (git trailer metadata specifically)
Excited to see where such concepts can take "multiplayer" agentic systems
4b11b4 7 hours ago [-]
Interesting but at the commit level seems too coarse. I have a model which models decisions similar to QOC (questions options criteria) and requires line level coverage from accepted answers.
corv 6 hours ago [-]
One could also try to leverage git notes but those don’t sync by default which causes its own kind of friction
I’m interested to see if jujutsu changes the equation
vessenes 17 hours ago [-]
I built what I think is a pretty good library and set of tools for this earlier this year -- https://github.com/corpollc/qntm (or `uvx qntm --help`); it includes a cli, python and typescript libraries, and works out of the box aimed at either a public endpoint, or a private one, depending on environment.
It's end to end encrypted, and has group messaging support, so if you wanted to read what the agents are saying you'd just add them to groups you're in. It also has a web ui. Version 0.6.0 should get pushed this evening pacific time, with some additional agent specific features.
Bug reports welcome! If I did a good job on architecture, you should be able to have your blackboard up tonight.
metabrew 15 hours ago [-]
This is an interesting idea.. do you use agents with more adversarial / cynical prompts whose only job is approving api calls? "You are an API approval agent on the lookout for suspicious or unusual stripe api calls...."
vessenes 8 hours ago [-]
Thanks! It's just infra, so you could do what you wanted. The clients include a safety reminder, and the datastructures include "unsafe" in the name of the inputs passed around, but that's just a little hygiene.
There really aren't good messaging libraries that provide what I wanted, so I built it. Basically I started with "signal but no need to have a phone number." I've used it to build a group messaging iOS app for friends, and just pass it to an agent all the time if I want them to be able to direct message.
The group API approval is modeled off of multi signature approval mechanics from Ethereum - so, you could use it like you describe: "Only allow this call if it passes safety checks from n reviewers", or you could have human in the loop, or a program that checks business rules + an agent and a human, etc. etc. I just wanted something that let us control API calls properly.
ghshephard 18 hours ago [-]
This feels like a concept that keeps getting rediscovered over and over. Feels like giving Agents (and their humans) a repository to throw ideas at (along with maturity, gates, context, implementation status, etc...) is going to be one of the next Billion dollar opportunity...
I use a file "task.md" as blackboard. It is read/written by multiple agents, usually monitor agent, worker agent, judge agent and reflexion agent. Each work item is an open gate initially, after agent solves it, it appends on same line outcomes from that work. This means you can resume work easily or pass task.md around to other agents.
Another way to see the blackboard - it is like code, it executes, can be passed around like in higher-order programming, but this it even stranger - it can reflect on itself, not just execute. The task.md file is the agent.
maCDzP 19 hours ago [-]
I found this really interesting. You could probably prompt it to use a ”blackboard system” and reference the wiki. Maybe a place to store the data is as a GitHub discussion/issue or something similar. That way you can easily browse it and watch what’s happening.
dolmen 14 hours ago [-]
There is some value in a unified history (code and blackboard together) if you want to be able to review agents behavior (especially if that goes wrong).
mkly 17 hours ago [-]
I find RFC 5322 is well known and works well for a threaded messageboard/blackboard. It seems like agents with recent LLMs can use just about anything.
Sounds like https://github.com/gastownhall/beads to me. I prefer working solo, single-threaded on components to stay on top of agentic work, so it didn’t end up being a force multiplier for my workflows (and actually kinda got in the way from time to time due to me rebasing too much), but I can see its value when you have many agents working simultaneously.
saltypixel 7 hours ago [-]
[dead]
Phelinofist 18 hours ago [-]
I work for a company developing speech assistants. We use a blackboard as central component, driving the event based architecture. Agents can subscribe to files/folders on the blackboard (represented as URIs), thus enabling cooperation. Content is semantic. We used the pattern even before the AI boom and it's pretty cool to work with.
Traubenfuchs 16 hours ago [-]
Rediscovering Jira from first principles.
inanothertime 13 hours ago [-]
> This week, across Thoughtworks Europe, we took 10 engineers and put them in one room in our Barcelona office.
I hope you asked them beforehand :-)
blfr 13 hours ago [-]
If you ask them beforehand, you get a self-selecting sample, biasing your result. You get better results by not asking them.
inanothertime 13 hours ago [-]
Sure, you're right.
I was rather commenting on the tone that Thoughtworks decided to "take 10 engineers and put them in one room". I took that wording literally, imagining how they grabbed these 10 engineers with a big hand and dropped them off where they wanted them to develop their airline IROps system.
bronlund 16 hours ago [-]
So they didn't give the agents a way to cooperate, the agents figured it out anyway and now they call this a find.
At the same time people are building shared knowledge bases for agents left and right, like Trello alternatives and Wikis and whatnot.
That top engineers working on advanced problems together with agents without really understanding how they work, is exactly how the world is going to end :D
quietraster 15 hours ago [-]
fun read. did the blackboard pattern emerge from the agents themselves, or did the engineers put it in place once
Animats 20 hours ago [-]
Another example of a society of AI agents. The shape of this is starting to emerge. People on here laughed at Gas Town. Now it's clear that a group of agents with an organizational structure are more powerful than a single agent.
This is about the fourth example to hit HN. Note that the OpenAI sandbox breakout was done by a cooperating group of AIs, not a single one. They even self-organized their own organizational structure.
The future may be AI structured as a corporation, rather than AI as a human competitor.
>They even self-organized their own organizational structure.
The boulder, it even found a path down the mountain. on its own, by doing so-amazing path finding its own super amazing path finding algorithm, and all the boulders co-ordinated falling down, ON THEIR OWN! And they all reached the ground!
I tell you! The future may be these boulders washing your underpants and putting you to sleep. It is clear!
imthatsteve 9 hours ago [-]
That probably seems like a decent analogy if you shallow enough understanding. I think the analogy would fit better if the boulders created and followed traffic rules on the way down. You know like some kinda actual coordination. These systems are obviously much more than just rocks falling where they will. You could at least compare them to those falling marble machines where the marbles do jumps and interact with each other while traveling down the machine.
vee-kay 17 hours ago [-]
[dead]
jauntywundrkind 16 hours ago [-]
Blackboard Systems typically have a bit more formalism. There's a lot of different forms, but usually there's elements like Knowledge Sources, Triggers/Conditions, the Blackboard itself doing activation. It's a very interesting world, having some nice dataflow behaviors. There's similarity here & I'm glad to hear Blackboard Systems mentioned, but I want to encourage folks to look a little deeper at what typically is implied. https://en.wikipedia.org/wiki/Blackboard_system
dsecurity49 20 hours ago [-]
[dead]
jsmo 19 hours ago [-]
TLDR; Talwrn (Welsh) is aiming to be a blackboard for agentic engineering.
"My goal is a very simple to use tool that drops straight into your project and immediately offers a communication channel for agents to coordinate work. The first step is to get Talwrn to a point where it can support its own development. I’m planning to post about it regularly as I’m hoping to use it as a single, evolving example of how pure agentic engineering can proceed."
I've found that similarly to how teams can degrade into spending more time bikeshedding and on the watercooler than on work, agents also tend to end up spending way too much time coordinating as opposed to doing the work. And so I rediscovered that it's better to have one agent that's the Manager (on a Manager Schedule) and the rests be builders (on a Builder's Schedule), where the manager might be interrupt driven, but the builders need to be able to focus for a while without interruption (context poisoning).
Thanks for writing this and demonstrating that writing about anything is useful to share knowledge and practices. In the end, I learned a lot from Martin Fowler and his gang and I guess I should pay back and write about my own discoveries, however trivial they seem to me.
From what I've experienced when you just let the agents figure it out, to your point, they collaborate awkwardly. If you define how/where in your initial spec of what's being built that seems to go a long way in resolving this. However, agents still seem to end up out of alignment with the demands of the spec. I was testing Astra yesterday on a new tool that should have been able to be completed in a couple hours. I let it go and had it simply use a Sol agent for coding and a Opus agent for review. Opus was explicitly asked to validate the progress between checkpoints, one of those being to keep watch for scope creep.
It was half a day later and basically only the scaffolding was done. I asked why and it literally told me it was working on things I had not directed it to, that it was spending too much time on things I hadn't asked for. WTF good are these uber LLMs when they are making decisions and dismissing the prompt? I'm finding the smaller models seem to be able to stay on track much better and I'm constantly wondering if the current SOTA models should really be used in the review and cleanup phase only. But that seems very backwards as when I first started leaning into building out the most complete spec for a given task - it worked really well. Something seems to be degrading that workflow, now.
I feel like it's becoming more and more of a chore to get things done efficiently. But I don't really find that using Astra/Fable makes anything better at this point. In fact the Kimi models work really well together in this workflow. K3 does a great job of orchestration and I'd say is the more reliable of the 3 for a spec driven outcome. Wondering if this is all intentional by OAI and Anthropic to prod the models under the cover to go off and do their own thing and dismiss the directive.
[0] https://crewai.com/open-source
It rubs me like “Tom Clancy” novels not written by Tom.
Like we would likley never see them or care if it weren’t for the name.
Ed: for posterity
https://www.reuters.com/world/europe/openai-agents-hijacked-...
That's only because of a deficiency in CI. If you get smarter CI that doesn't trip on files unrelated to the build, using the repo as a blackboard or wiki is probably fine
The biggest problem I encountered using a similar setup for doing long-term and iterative data analysis is error propagation. My team and I are characterizing and modelling a physical system, there are real-world experiments that need to be run and then fed back into the analysis pipeline and then the next frontier of questions comes up. Any time there has been an erroneous analysis somewhere along the line, that error continues to be treated as a correct fact until it has been decisively eradicated. If one analysis script or document has the error written as a correct fact, that error will continue to pollute future analyses. Oh and these errors can also end up in the agents’ memory files as well. I have gotten very careful about making sure that every reference is corrected everywhere because it seems that the initial error is weighted heavier than the correction.
I may have explored a related approach but as an append-only log riding on source-control to sync state between checkouts (git trailer metadata specifically)
https://gist.github.com/corv89/c506780881b260f4c5a4618fe8d92...
Excited to see where such concepts can take "multiplayer" agentic systems
I’m interested to see if jujutsu changes the equation
It's end to end encrypted, and has group messaging support, so if you wanted to read what the agents are saying you'd just add them to groups you're in. It also has a web ui. Version 0.6.0 should get pushed this evening pacific time, with some additional agent specific features.
Bug reports welcome! If I did a good job on architecture, you should be able to have your blackboard up tonight.
There really aren't good messaging libraries that provide what I wanted, so I built it. Basically I started with "signal but no need to have a phone number." I've used it to build a group messaging iOS app for friends, and just pass it to an agent all the time if I want them to be able to direct message.
The group API approval is modeled off of multi signature approval mechanics from Ethereum - so, you could use it like you describe: "Only allow this call if it passes safety checks from n reviewers", or you could have human in the loop, or a program that checks business rules + an agent and a human, etc. etc. I just wanted something that let us control API calls properly.
Another Blackboard Example: https://github.com/halbritt/striatum/tree/main/docs/rfcs
(Useful to see how this compares to another Blackboard type platform - Gastown https://github.com/halbritt/striatum/blob/main/docs/records/...)
https://github.com/horiacristescu/playbook-harness
Another way to see the blackboard - it is like code, it executes, can be passed around like in higher-order programming, but this it even stranger - it can reflect on itself, not just execute. The task.md file is the agent.
I have a very vibe coded skill I use here: https://github.com/mkly/dev-skills/tree/main/dev-board
I hope you asked them beforehand :-)
I was rather commenting on the tone that Thoughtworks decided to "take 10 engineers and put them in one room". I took that wording literally, imagining how they grabbed these 10 engineers with a big hand and dropped them off where they wanted them to develop their airline IROps system.
At the same time people are building shared knowledge bases for agents left and right, like Trello alternatives and Wikis and whatnot.
That top engineers working on advanced problems together with agents without really understanding how they work, is exactly how the world is going to end :D
The future may be AI structured as a corporation, rather than AI as a human competitor.
The boulder, it even found a path down the mountain. on its own, by doing so-amazing path finding its own super amazing path finding algorithm, and all the boulders co-ordinated falling down, ON THEIR OWN! And they all reached the ground!
I tell you! The future may be these boulders washing your underpants and putting you to sleep. It is clear!
"My goal is a very simple to use tool that drops straight into your project and immediately offers a communication channel for agents to coordinate work. The first step is to get Talwrn to a point where it can support its own development. I’m planning to post about it regularly as I’m hoping to use it as a single, evolving example of how pure agentic engineering can proceed."
Term: "Blackboard" https://en.wikipedia.org/wiki/Blackboard_system