11 ms·
Apache Burr: Build reliable AI agents and applications
- Oras 4mo agoFirst time I hear about Burr, curious why it was incubated in Apache.
- elric 4mo agoWhy wouldn't it? The ASF has a long history of incubating new FOSS projects. Some graduate and become household names. Others fail and end up in the attic. The ASF can provide organisational support and generally fosters good communities.
- Oras 4mo agoMy point was this is a crowded market now, why would they pick a platform that is not known? I did search HN and this platform was only shown once 2 years ago, and from their releases, they are still 0.42 after two years. It might sounded that I’m against the move, but I’m just curious as what apache found in the platform to get incubated
- krawczstef 4mo agoCause I submitted it. Learning the Apache process and cranking on other things has been a slow process. But we've got some momentum and beginning more regular releases.
- mzaccari 4mo agoI couldn't find an explicit reference for the naming, but for anyone wondering there is a Hamilton example: https://github.com/apache/burr/tree/main/examples/multi-agent-collaboration/hamilton https://github.com/apache/burr/tree/main/examples/multi-agen...
- abirch 4mo agoBurr is named after Aaron Burr, founding father, third VP of the United States, and murderer/arch-nemesis of Alexander Hamilton. What's the connection with Hamilton? This is DAGWorks' second open-source library release after the Hamilton library We imagine a world in which Burr and Hamilton lived in harmony and saw through their differences to better the union. We originally built Burr as a harness to handle state between executions of Hamilton DAGs (because DAGs don't have cycles), but realized that it has a wide array of applications and decided to release it more broadly. https://pypi.org/project/burr/ https://pypi.org/project/burr/
- elijahbenizzy 4mo agoRight it was a bit of a joke. Originally stefan and I presented frameworks when we were at stitch fix -- stefan called his "hamilton" and I called mine "burr". His was better for the use-case. But then we wanted to build something for state machines as opposed to DAGs, so we called it Burr. I wanted the git tagline to be "make your agents go burr..."
- suction 4mo ago[dead]
- drchaim 4mo agoI just create a MVP chatbot for a client that has a Django app. I took the route to no frameworks. Claude/codex wrote the agent loop, the tools, the streaming..it’s working well for the MVP, we’ll see
- hmokiguess 4mo agoHow does this compare to https://strandsagents.com/ https://strandsagents.com/ ? I'm interested in tools in this space, right now I'm not attached to one, but Bedrock + Serverless on Agent Core feels like the "easy guided path" though I don't like the platform lock-in
- thedougd 4mo agoCurious about other experiences. I’ve been playing with this stack and left wondering if Strands provides any secret sauce with Agent Core. So far it doesn’t feel that way and sometimes they even feel at odds with each other.
- fnordpiglet 4mo agoI think strands and agentcore don’t have a ton of overlap but I have found agentcore makes running strands frameworks pretty easy and relatively inexpensive. I like strands in that it’s the most mature (IMO) that isn’t specific to a model provider - although I found using things like vertex to require a lot of custom work to get caching and other things to work properly, the maturity is all on bedrock. I’ll need to dig into burr - I’m not finding strands has an insurmountable maturity to it but it’s not carrying a lot of weird opinion (like some of the other OSS frameworks seem to be highly infected with) and is pretty practical in what it exposed and does, and is most like the agentic frameworks I’ve worked with inside FAANG. If burr can meet that and keep growing I’d probably look at moving to it as I also get a sense strands has a bit of the Amazon “highly probable to be abandoned once the managers and PMs get promoted” feeling.
- elijahbenizzy 4mo agoStrands is more opinionated and higher-level, also not vendor neutral.
- brotchie 4mo agoI'm still on the fence about agent frameworks, they have their place, and it depends on the nature of the agent: e.g. "Low latency, return a good enough response in 3 seconds, vs. working for 3 hours on a problem." BUT, if you boil it down, an agent really is context building, making an LLM call, executing requested tool calls, parsing the final model output, returning it to some frontend. There's extensions like memory, async tool calls, etc, but not THAT complicated from a traditional software engineering perspective. Everyone seems to want to build their agent framework. But if you're tasked with building an agent, I've found it much easier and more maintainable to just build 1:1 code for THAT agent: most of the abstractions you get from an agent framework purely get in the way and obfuscate core agent logic. You end up being forced to use the abstractions chosen by the agent framework, which sometimes are a mismatch for what you're actually trying to do.
- hilariously 4mo agoCouldn't agree more - tried to convince a business that doubling down on OpenClaw wasn't going to solve problems except for some 0-1 stuff, and that almost immediately they'd run into roadblocks because most of the product wouldn't serve their use case. 4 months of mostly spinning their wheels later they launched a really lackluster OC product that's effectively DOA.
- tcdent 4mo agoOpenClaw is an application, not a harness. Yes, it contains a harness, but it is a complete product. When building an agentic workflow there are enough primitives that rewriting them from scratch every time makes zero sense. What is a tool? How does the LLM understand the tool? Formatting a native function into a serializable input/output pattern makes sense to generalize and that does not need to exist repeated in everyones application code. We use libraries to interact with the APIs themselves; nobody would say writing a spec-compliant API client was poor practice. Agentic harnesses are just one layer above: I need to call the API and I need to do it with certain expected conventions.
- hilariously 4mo ago
- lnenad 4mo agoClaude Opus really loves this template when building websites. It's very funny how many times I've seen it for recent launches.
- doublerabbit 4mo agoAnd it lags my desktop every-time, I hate it. It's the default bootstrap theme all over again but instead with SVG's.
- vanuatu 4mo agovibe coded landing page reddit user testimonial framework is for state machines why man..
- ivanmontillam 4mo agoDon't ask the why, ask the how. How did they get acceptance into an incubation stage with what you just mentioned?
- pixel_popping 4mo agoThe vibe coded landing page (at least in its look) is really degrading Apache foundation image imo.
- pramodbiligiri 4mo agoHow does one know that a website is "vibe coded"? Any good indicators?
- enragedcacti 4mo agohttps://vorpus.github.io/performativeUI/ https://vorpus.github.io/performativeUI/ so far I'm seeing: GradientText, Animated button, EyebrowPill, Aurora background, MockIDE, LogoRow, SlippyWords, StatCounter, CommunityBadge also: "No DSL, no YAML — just Python functions and decorators." 'It's not X, its Y' but with an added em dash is crazy work.
- doublerabbit 4mo agoThe flair is a big give away. View source. Look for the SVGs.
- krawczstef 4mo agouser contributed :)
- tcdent 4mo agoA builder pattern and decorators. Yes, Python has decorators, but they're best used as "filters" that apply to functions or methods. Cache this, serialize the output of this function always, prepare this function to be used as a tool by an agentic harness. Not registration, not flow control. You may disagree but someone has to say it; FastAPI influenced the modern use of decorators far too much in the wrong direction. Builder patterns are a Rust convention, because Rust has no named keyword arguments. A Python function already exposes a named contract. There is very little reason to ever to sequentially pass configuration parameters in chained method calls. If you need to add state that doesn't exist yet to a constructor or factory, that is not a builder pattern. That is registration. The one place where builder patterns should be tolerated is query builders. They iteratively build on a concept and having the additional "slot" for metadata (method name plus keyword arguments) is genuinely useful. Using methods which accept single parameter instead of keyword arguments is incorrect.
- mkarrmann 4mo agoBuilder pattern isn't only used in Rust, but I agree it's hideous to use in Python.
- tcdent 4mo agoFair point. I should have said "popularized in the modern software vernacular by Rust".
- giancarlostoro 4mo agoI think of Java immediately when I hear Builder Pattern, and I think anyone who has ever touched Java does as well.
- giancarlostoro 4mo agoDoesn't look any different than doing the same in C# or Java to me, it is kind of pointless in Python, the one thing the pattern gives you is building a class in such a way that you the developer know exactly what's what, so its really a developer ergonomics thing is how it looks like to me.
- CuriouslyC 4mo agoThe best agent framework is Pi (pi.dev). It is minimal and doesn't assume a use case, runs fine interactively or non-interactively, has an active community building with it and supports everything you need to build whatever kind of agent you want with plugins.
- hedgehog 4mo agoAfter trying a few I like NanoBot more than Pi. Also popular, pretty clean code, I found fewer bugs than I did in Pi.
- mooreds 4mo agoHow are agents authenticated? I searched the docs for authentication and mcp (one of the protocols which, among other things, handles some pieces of authentication/authorization) but didn't see any results. What did I miss?
- yaodub 4mo ago[dead]
- offercc 4mo ago[flagged]
- flakiness 4mo agoWow, such a un-apache-y homepage I've ever seen, vs. the canonical one: https://httpd.apache.org/ https://httpd.apache.org/ (And wow, they still keep releasing it!)
- elijahbenizzy 4mo agoHa! We went all out on the modern one (user contribution!).
- doublerabbit 4mo agoHere's another ancient relic of a website design. They even used a free template from back in the day. https://tcl.apache.org/rivet/ https://tcl.apache.org/rivet/
- fantasizr 4mo agoit looks like it was built using the satire vibecoding components listed here yesterday https://vorpus.github.io/performativeUI/ https://vorpus.github.io/performativeUI/
- hbarka 4mo agoIs this comparable to https://dspy.ai/ https://dspy.ai/ ?
- krawczstef 4mo agono. more lower level.
- shhhhhplease 4mo agoDefinitely not.
- throwaway613746 4mo ago[dead]
- elijahbenizzy 4mo agoOne of the co-creators/maintainers here! Will try to answer Qs over the day.
- otterley 4mo agoHow does it compare to the Strands Agents SDK? https://strandsagents.com https://strandsagents.com
- bananamogul 4mo agoDo you ever abbreviate the project name as A. Burr and how many Hamilton jokes[1] result from this? [1] https://en.wikipedia.org/wiki/Burr%E2%80%93Hamilton_duel https://en.wikipedia.org/wiki/Burr%E2%80%93Hamilton_duel
- elijahbenizzy 4mo agowait till you see our other project github.com/apache/hamilton ;)
- chill_ai_guy 4mo agoI think the marketing copy probably needs to focus on differentiating features vs any myriad of agent frameworks. I took one look at the sample and immediately said "This is literally just langgraph with a builder pattern"
- elijahbenizzy 4mo agoRight -- possible it's slightly out of date https://github.com/apache/burr#-comparison-against-common-frameworks https://github.com/apache/burr#-comparison-against-common-fr.... Good point on differentiating.
- nico 4mo agoOn a tangent, can anyone recommend good coding agent orchestration tools or platform? Something to launch, manage and monitor codex or claude agents in multiple machines Ideally self-hostable/open source I know claude code has a lot of that internally built in already, but it’s claude-only
- sgc 4mo agoI was looking at their docs and Burr has agent cookbooks to get started with this, and it can handle multi-machine workflows. Is this not what you were looking for? I am not sure how it integrates and uses skills etc, but it seems like it should work to me. https://burr.apache.org/docs/examples/agents/ https://burr.apache.org/docs/examples/agents/
- nico 4mo agoThank you. I want something like that, but that uses codex/claude code as agents (through their corresponding subscriptions), instead of having to create ad-hoc agents + api keys
- sgc 4mo agoYou can absolutely do that by using subprocess.run, or use the codex sdk https://github.com/openai/codex/tree/main/sdk/python https://github.com/openai/codex/tree/main/sdk/python
- sabzil37 4mo agoI had a similar need to yours, so if you're looking for a job launcher for multi-agents, I'd like to recommend "Prompt-Combo", it's freeware.
- helezon77 4mo ago[flagged]
- pratio 4mo agoI've been working with jido https://jido.run https://jido.run and would definitely recommend it
- g42gregory 4mo agoWhat are the pros and cons vs. Pydantic?
- redlewel 4mo agoDidn't bother reading more after seeing the vibeslopped landing page that took < 2 hours to make. Also "700+ Discord Members" is not any type of endorsement of a technology or service.
- ivanmontillam 4mo agoNot to kick dirt on their faces, but I also think Discord is just not the proper chat community open source projects should have. Might be my IRC mind talking, but a proprietary service like Discord, or Slack, or even Telegram at times, is just not suitable for the target community, as there's often a data privacy concern. I never had a Discord account, and I'm hoping I can keep that streak.
- werdnapk 4mo agoThey're all looking the same now. The AI version of bootstrap.
- msradam 4mo agoI have enjoyed using this framework in my personal and work projects, having a reliable stateful workflow for AI models while getting free observability. I stitched a tool that allows mounting a Burr state machine as an MCP, giving agents a rail to follow, and no matter how complex the state machine gets the MCP tools are constrained to state machine navigation: https://github.com/msradam/theodosia https://github.com/msradam/theodosia I am currently working on skills-to-state-machine conversions, since a lot of popular skills out there are already written as phases for an AI model to follow, so it would be great to leverage the explicit functionality of Burr to make that more reliable. Thank you for this amazing project.
- agentrank_ai 4mo ago[flagged]
- _pdp_ 4mo agoI don't know. This is a very naive version of what reliable AI agents are all about. Reliable means "can it finish the job that was tasked to do". It certainly has nothing to do with state machines.
- eranation 4mo agoWas this built using https://vorpus.github.io/performativeUI/ https://vorpus.github.io/performativeUI/? It hits every AI generated landing page trope possible. Or was it done ironically?
- n2h4 4mo agoamazing set of components. just noticed my "ai-native" company has almost all of them.
- glenngillen 4mo agoI was just wondering the same thing! I do suspect it was built with some form of AI though because the handful of links I've tried to dig into have all linked to the wrong place/are invalid :/
- iririririr 4mo agoof course the page is some disposable garbage generated by Claude code that doesn't even try to work without JavaScript. at least it's on brand.
- xuanlin314 4mo ago[flagged]
- TZubiri 4mo agooh god, the vibecoded homepage, I instantly closed that. sorry
- amne 4mo agoI have to say, after the recent Performative UI post here on HN, I was not expecting an apache foundation project to have gradient words on the landing page.
- Meneth 4mo agoThere's no such thing as "reliable" AI.
- vivekchand19 4mo agothe observability layer is almost always what DIY agent setups skip, and it's the first thing you miss in production. (built clawmetry for agent runtimes like openclaw, claude code, hermes etc specifically because of this)
- coneonthefloor 4mo agoSo many software homepages use that tailwind template, or a variety of it. As soon as I see it, it suggests to me a poor quality/rushed product.
- suction 4mo agoI agree. As with Bootstrap, it was fine in the beginning but at some point turned sour - strictly speaking about Look & Feel.
- coneonthefloor 4mo agoYes, I have nothing against Tailwind as a technology. My gripe is that you can now prompt an LLM “make a stylish homepage for my product” and they almost exclusively spit out this Tailwind template. If that’s all the effort you are going through to make your brochure site, I can only assume the same care was given to the actual product.
- sermakarevich 4mo agoMy strong opinion is that every SE should go for agentic engineering these days: understand the limitations, how to shift them, and how to squeeze the maximum possible out of AI. The AI boom is seeing hundreds of billions, close to a trillion, in investments — with yesterday's announcement from China about investing $300B in a nationwide grid of data centers. Models are becoming smarter, and the gap where yesterday's models were unable to do something is closing fast. I look at agentic engineering from the complexity perspective. Give an agent a simple task like inserting an assertion and you can be 100% sure it will do it correctly. Give it a complex task made of many subtasks in a complex codebase and it will fail. There is a boundary of complexity that a single call to an agent can handle. We can push this boundary if we decompose the task into many small ones and provide a sufficient description of what has to be done. I found the Spec Driven Development approach works nicely for me, and I've been using it since Feb 2026 for all my mid+ size projects. I started with the GSD plugin, but it soon became too heavy, so I implemented my own lightweight SDD-based workflow for Claude. A friend of mine ported it to gemini-cli, and that version was added to Google's approved third-party frameworks for internal usage. The idea is to decompose feature implementation into multiple steps, task implementation into multiple subtasks, and be able to clear the context after every task/implementation. Repo: https://github.com/sermakarevich/sddw https://github.com/sermakarevich/sddw Slides: https://docs.google.com/presentation/d/1SjKXF7hkoqyiN9-3tBGY4PDGvS3iqVyovDlJC_hYvMA/edit?usp=sharing https://docs.google.com/presentation/d/1SjKXF7hkoqyiN9-3tBGY... When SDD was not enough, I started playing with scaling a single AI worker to multiple, and then got to an agent swarm. Built on top of a centralized Beads database, claude -p headless execution, a UI, a custom ask_user MCP, and Telegram integrations, fleet (the app name) lets me add many tasks in advance, control the number of workers executing them, and use any kind of coder/model. It works nicely with the SDDW implementation phase. It shines when you keep creating tasks, define dependencies between them, and give clear descriptions. For personal projects I can queue up 70 tasks for an overnight run, set the number of workers to 1 to not be blocked by usage limits, and let it roll. Repo: https://github.com/sermakarevich/fleet https://github.com/sermakarevich/fleet Slides: https://docs.google.com/presentation/d/1O_pXyKdtpRG2ORD1xw7svifjpCol96wIVvOU6kOMDlI/edit?usp=sharing https://docs.google.com/presentation/d/1O_pXyKdtpRG2ORD1xw7s... Since Fable 5 appeared, I've been changing the way I work with fleet. Instead of adding tasks/descriptions/dependencies to fleet myself, I talk to Fable: specify the goal, ensure understanding, and let Fable 5 add tasks to fleet. Fable is expensive, but in this setup it doesn't code — it just investigates, designs, decomposes, and creates tasks. Workers use the cheaper Sonnet 4.6 model. Reliability comes with task implementation decomposition into multiple steps, feature decomposition into many smaller and simpler subtasks, having better description, clean and focused context.
- big-chungus4 4mo agoI am interested to know why people use those graph based agentic frameworks. Why not just define the behavior in python?
- cohix 4mo agoAnd me? I’m the damn fool that shot him…
- schainks 4mo agoDumb question: why would I use this instead of airflow with some custom built agent bits?