AgentSwarms 1.1.0 #44
rohan044
announced in
Announcements
Replies: 0 comments
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Uh oh!
There was an error while loading. Please reload this page.
AgentSwarms 1.1.0
Deployed swarms now serve a version you chose rather than whatever happens to be
on the canvas. Custom code runs in headless runs instead of the browser only.
There is a way to measure whether a change made a swarm better. And knowledge
bases gained the three retrieval features that were the real gap against Dify.
21 commits, 100 files, 9 migrations.
Highlights
Draft vs published for deployed swarms. Editing a swarm used to change what
its API keys served the moment you pressed Save — mid-experiment, at 3am, to
production callers. Version history made that recoverable, not preventable. The
canvas now edits a draft; API keys, schedules, sub-swarm calls and embeds
execute a pinned snapshot until you press Publish. The Deploy dialog shows
Draft ahead whenever the canvas has moved on, and the toolbar carries the
same badge so you don't have to open a dialog to find out.
Batch evaluations. Run a dataset of cases through a swarm and score every
output. The judge's own pass/fail is deliberately ignored and the verdict
recomputed from weighted per-metric scores — a model that grades and then
decides will contradict itself. A missing metric is a rejection, not a zero.
Custom components, and custom code in deployed runs. Author a snippet once
with a declared parameter schema and it appears in every swarm's palette;
bindings are snapshots, so editing the library cannot silently change a swarm
that already works. With the new
sandboxprofile, Function and component nodesalso run in deployed and scheduled runs — in a separate container with a fresh
V8 realm per call, an internal-only network, and no route back to the app.
RAG depth: parent-child chunking, Q&A indexing, hybrid retrieval. Small
chunks match precisely and large chunks let the model answer; parent-child stops
you having to choose. Q&A mode embeds a generated question, so a user's
question is compared against a question rather than against prose. And keyword
search now runs over the same chunks as vector search, fused by a weight you
control — previously it only ever looked at documents with no embeddings, so an
exact term inside an indexed document could never rescue a weak semantic match.
Observability → Monitoring. One row per service with status, response time
and the address that answered, plus live CPU, memory and disk. An optional
service you chose not to start reads "Not running" in grey with the command that
would start it — not a red "Down", because a status page that cries wolf is one
people stop opening. Memory reports the container's cgroup limit when there is
one, not the host's RAM.
--allactually installs everything.docker compose upbrought up onecontainer; the setup scripts had no way to say "give me the whole product".
scripts/setup.sh --all(orsetup.ps1 -All) now starts every profile.Security
A cross-tenant hole let any authenticated user run another tenant's swarm.
The RLS policies on
swarm_api_keysandswarm_scheduleschecked only that arow belonged to you — never that the swarm it named did. Any signed-in user
could insert an API key row pointing at someone else's
swarm_id, with a keyhash of their choosing, then call
POST /api/swarm/runand receive that swarm'soutput. The server function that mints keys did check ownership, but the anon key
is public by design and a direct PostgREST insert bypassed it entirely.
Verified against a live instance before fixing. Both halves of each policy now
require swarm ownership, and migration
20260813000000removes any row alreadycreated through the hole. If you self-host, upgrade.
Upgrading
All reactions