Releases: i-am-bee/agentstack
v0.5.2
🚀 Agent Stack version 0.5.2 has been released
This release brings a major TypeScript SDK restructuring, a new Canvas agent, comprehensive UI redesign, and significant improvements to authentication and CLI experience.
Major Changes
Breaking: TypeScript SDK Restructuring
The agentstack-sdk-ts has been completely refactored with a new modular architecture. The API client is now organized into dedicated modules (extensions, api, core) with proper Zod schemas and types for every extension and API method. A new buildApiClient core function with unwrapResult utility provides standardized response handling. Error handling is now structured with ApiErrorException and specific error types (Http, Network, Parse, Validation). All consumers of the TS SDK need to update imports and usage patterns.
New Canvas Agent
A new agent for multi-turn artifact editing is now available. Users can select and modify specific sections of text content, enabling precise iterative refinement of generated artifacts.
GUI Shell Redesign
The UI has been completely redesigned with a new navigation structure. New dedicated pages for agent details (showing description, docs, authors, contributors, tools) and agent-specific settings are now available.
SDK: User Approval Extension
New ApprovalExtensionServer and ApprovalExtensionClient enable explicit human-in-the-loop workflows. Agents can request user approval for critical actions using structured ApprovalRequest/ApprovalResponse models. The older ToolCallRequest and ToolCallExtensionServer are now deprecated.
Agent Authorization via Context Tokens
A significant security improvement to how agents authenticate and communicate:
- Single token authentication: A2A clients can now use the platform context token directly in the Authorization header, eliminating the previous two-token approach (user OIDC token + context token in extension fulfillment)
- Token exchange for agent-to-agent calls: When the A2A proxy forwards requests to agents, it performs token exchange - creating a new token with the same claims and expiration but with a specific
aud(audience) claim targeting that
agent's URL - Audience validation: Agents using
PlatformAuthBackendvalidate that incoming tokens have the correct audience. This prevents tokens issued for one agent from being used to call other agents directly - Security fix: Closes a vulnerability where a malicious agent could bypass the proxy and directly call other agents, potentially accessing other users' data via
task/listortask/getA2A methods - RSA signing: JWT signing upgraded from symmetric HS256 to asymmetric RS256. A new
/.well-known/jwksendpoint exposes the public key for signature verification - Granular permissions: The
a2a_proxypermission can now be scoped to specific provider UUIDs instead of just*
For SDK users: Add auth_backend=PlatformAuthBackend() when calling Server.serve() to enable platform authentication on managed agents. For Helm deployments: Configure jwt_private_key and jwt_public_key in auth settings
(auto-generated if not provided).
CLI Improvements
- The
agentstack removecommand now features interactive multi-selection for agent deletion with a new--allflag for bulk removal. - Better error messages for 403 Forbidden responses guide users to contact administrators.
- WSL2 mirrored networking mode is dropped in favor of NAT mode with dynamic host IP resolution and updated documentation for Ollama/local agent configuration.
API: Delete Messages Endpoint
New endpoint for deleting messages from a selected ID onward, enabling conversation history management.
What's changed
- #1851 fix(ui): canvas not scrollable
- #1848 fix(agents): build canvas agent
- #1844 fix(phoenix): wrong image registry
- #1841 fix(ui): AgentsListItem loading styles
- #1834 docs: add contextual menu
- #1832 fix(agentstack-server): stop using hostNetwork
- #1828 feat(ui): use ClientFactory instead of A2AClient
- #1826 Revise README sections for agents
- #1825 chore: remove forge
- #1821 fix(ci): fix Mise vararg parsing
- #1815 chore(ui): add css-modules eslint plugin
- #1814 feat(agentstack-cli): better error message for 403 Forbidden
- #1813 docs(agentstack-cli): mark admin-only and local-only commands
- #1812 fix(ui): handle model providers loading state
- #1810 docs: remove bee references
- #1803 feat(agentstack-cli): implement --pull-on-host
- #1802 feat(ui): update favicon, add favicon for dark mode
- #1800 feat(agentstack-cli): drop WSL2 mirrored mode, document alternatives
- #1798 feat(agents): add Canvas agent
- #1796 feat(api, sdk): adding 'delete from selected id onward' endpoint
- #1794 feat(agentstack-cli): improve agent deletion
- #1792 fix(sdk): remove "deprecated" module import and update cli reference
- #1791 fix(docs): manual install missing managed python
- #1789 feat(ui): gui shell redesign, add agent detail, settings page
- #1787 feat: update beeai-framework
- #1784 chore(dev): simplify dev mode, add agent instructions
- #1782 chore(ci): update Mise
- #1780 fix(cli): log stream shows error on finish
- #1778 chore(docs): add openshift-specific tips
- #1776 chore(web): update framework value props copy
- #1775 feat(sdk): add extension for user approval
- #1767 docs(agentstack-cli): document adding agent from github
- #1754 fix(ui): handle task expiration error
- #1746 fix: handling settings extension in the CLI properly
- #1741 Add authorization to agents using context token
- #1737 feat(ui): move API to SDK
v0.5.0
Major Features
Canvas Support: Introduced initial Canvas functionality to the UI, enabling agents to create and edit rich interactive content directly within chat conversations. Users can select text in Canvas artifacts and submit edit requests to agents, unlocking new use cases like collaborative document editing and code generation. The feature includes SDK updates for both Python and TypeScript with new examples for code and recipe agents. Note: This includes a breaking change in the TypeScript SDK where handleInputRequired was renamed to resolveUserMetadata and InputRequiredResponses to UserMetadataInputs. (#1667)
Permission Elevation System: Added comprehensive role management capabilities with a role versioning mechanism that immediately invalidates access tokens when user roles change. Administrators can now elevate user permissions via a new API endpoint (PUT /users/{user_id}/role), and the CLI gained a agentstack user command for listing users and managing their roles. This ensures proper security boundaries as agents are deployed to production. (#1740)
Interactive CLI Experience: The CLI now supports interactive modes for agentstack add, agentstack update, and agentstack run commands. When arguments are omitted, users are presented with fuzzy search interfaces to select agents or GitHub repository tags, making agent management significantly more intuitive for developers who prefer guided workflows. (#1682, #1687)
MCP Auto-Injection in UI: Connected MCP servers are now automatically injected and resolved when agents request them through the UI. This removes the manual textbox approach and consolidates MCP documentation, providing a seamless experience for agents that require Model Context Protocol integrations. A new GitHub MCP agent example demonstrates the capability. (#1695)
Connector Management: Added comprehensive connector UI and presets system. Users can browse, connect, and disconnect predefined connector presets without manually entering configuration details. The system intelligently creates new connectors on first connection and provides table-based management with search functionality. (#1702, #1718)
Rate Limiting: Implemented global and per-role rate limiting for the server. Administrators can configure limits based on user roles (user, developer, admin) for specific operations like OpenAI chat completion tokens, requests, and embedding inputs. Supports both Redis and in-memory backends with configurable strategies, protecting production deployments from abuse. (#1686, #1698)
SDK Improvements
Platform SDK in UI: Migrated the UI to use the TypeScript Client SDK for platform operations instead of direct API calls via openapi-fetch. The SDK now supports custom fetch implementations for injection of authenticated wrappers, establishing the UI as a reference implementation. (#1691)
Exception Handling: Improved Python SDK's error handling during extension initialization. Exceptions during dependency setup are now properly captured and grouped into ExceptionGroup for comprehensive reporting, preventing silent failures. (#1710)
Dependency Reduction: Removed the email-validator dependency from Python SDK by changing User.email from EmailStr to str, reducing external package requirements. (#1708)
JSON Text Extraction: Added support for JSON format output from the docling text extraction service via an extras parameter, enabling structured data extraction alongside the existing Markdown format. (#1652)
CLI Features
Server Version Display: The agentstack self version command now shows the remote server version when connected to an Agent Stack server, fetched directly from the server's OpenAPI schema rather than local Helm values. (#1728)
Agent Feedback Viewing: Added agentstack agent feedback list command to view user feedback for agents directly from the terminal, with support for filtering by agent and pagination. (#1732)
Platform Files Support: The --dump-files flag now properly supports platform files in addition to agent files. (#1760)
UI Enhancements
Agent Management Behind Feature Flag: Agent management UI has been moved behind the Providers feature flag to reduce confusion and keep the interface focused on end-user actions, with CLI remaining the primary method for agent management. (#1625)
Improved Mermaid Rendering: Stabilized mermaid diagram rendering during streaming to prevent visual flickering. (#1676)
Missing Model Error Page: Added dedicated error page when required embedding models are not configured. (#1701)
What's Changed
- #1625 feat(ui): add agent management under Providers feature flag
- #1652 feat(server): add json format to docling extraction
- #1660 chore: refactoring auth providers config & allow auth0 support
- #1667 feat(ui): initial canvas functionality
- #1676 fix(ui): stabilize mermaid diagram rendering while streaming
- #1678 fix(sdk): use typing_extension for TypeAliasType due to python3.11 compatibility
- #1680 chore(deps): upgrade Next.js for CVE-2025-66478 + UI deps
- #1681 chore(dev): add ui, web vscode settings
- #1682 Janpokorny/feat agentstack cli add interactive mode to agentstack add
- #1684 fix: missing release branch push
- #1686 feat(server): add global rate limits
- #1687 feat(agentstack-cli): add interactive mode to agentstack update
- #1688 fix: simplifying bump for release branch
- #1689 docs: polish release process
- #1690 feat(docs): typecheck Python examples in docs
- #1691 Using platform SDK in the UI
- #1693 refactor(agentstack-server): replace kubectl with kr8s
- #1695 feat: Auto inject connected MCPs in UI
- #1698 feat(server): add per-role rate limits to openai proxy
- #1701 feat(ui): add missing embedding model error page
- #1702 feat(ui): add temporary ui for connectors
- #1705 chore(sdk): add test matrix
- #1708 fix(sdk): remove dependency on email-validator
- #1709 docs: split development / stable
- #1710 fix(sdk): correctly handle exceptions during extension initialization
- #1711 Revise README for Agent Stack Server SDK
- #1717 feat(server): add global togle to disable managed provider downscaling
- #1718 feat(ui): add connector presets
- #1719 fix(server): fix and improve conversation title generation
- #1720 fix(server): minor improvements
- #1722 docs: solves partially #1617 - basic structure for TS SDK docs
- #1723 chore: bump a2a version to 0.3.21
- #1724 fix: open agentstack UI for selected active server
- #1725 docs: remove development language from python server SDK
- #1728 feat: CLI - agentstack self version should show remote server version when connected
- #1729 fix(server): unit tests
- #1730 chore: simplify agent executor implementation
- #1731 fix(server): conside dockerfile when generating build image id
- #1732 Feat/1714 display agents feedback in cli
- #1735 fix(tests): change llm prompt
- #1740 feat: permission elevation
- #1750 feat(docs): redirect staging to development version
- #1751 chore(docs): cli reference generation
- #1753 fix(agentstack-server): properly log exception groups
- #1757 chore(server): expose context expiration configuration
- #1760 fix(agentstack-cli): support platform files in --dump-files
v0.4.3
What's Changed
- feat(agentstack-server): support stdio mcp by @JanPokorny in #1606
- feat(sdk): add tool call extension by @pilartomas in #1572
- feat(ui): add A2A error extension by @PetrBulanek in #1655
- fix(ui): dynamic server usage error by @PetrBulanek in #1658
- feat(ui): make context token permissions configurable via env by @PetrBulanek in #1663
- fix(connectors): give user permissions to use connectors API by @pilartomas in #1677
- feat(server): improve conversation title generation prompt by @jezekra1 in #1675
- Add README for Agent Stack Client SDK by @jenna-winkler in #1671
- chore: stable branch releasing by @tomkis in #1665
- chore: version bump 0.4.3 by @tomkis in #1683
Full Changelog: v0.4.2...v0.4.3
v0.4.2
🚀 Major Changes
This release brings major improvements to the CLI experience and web UI, a redesigned form extension architecture, plus many platform and SDK enhancements.
CLI Improvements - The CLI has been redesigned with organized help text, improved agentstack list formatting with status indicators, and agentstack build now builds on the server by default - removing the need for Docker to be installed locally.
UI Enhancements - Agent execution steps (trajectory) are now grouped together for easier reading. Both agent responses and trajectory now display Mermaid diagrams, LaTeX math, and images as rendered content instead of raw markdown code.
Breaking Change: Form Extension - The Form Extension is now split into two separate extensions: FormServiceExtension for initial forms (shown before conversation starts) and FormRequestExtension for dynamic forms (requested during conversation). This prevents initial setup forms from being overridden by runtime forms. Agents using forms need to be updated (See docs).
What's Changed
- feat(ui): group trajectories by @kapetr in #1482
- fix(ui): proactive access_token refresh to avoid refresh race by @kapetr in #1501
- fix(ui): runtime envs and feature flags cleanup by @PetrBulanek in #1479
- feat(ui): render mermaid diagrams and latex syntax in markdown by @PetrBulanek in #1488
- feat(sdk): utilize platform auth in mcp extension by @pilartomas in #1508
- feat(server): add user info endpoint by @jezekra1 in #1505
- docs: Remove redundant Table of Contents from connectors guide by @jenna-winkler in #1519
- fix(ui): array length checks by @PetrBulanek in #1526
- feat: initial implementation for connectors management in UI by @tomkis in #1443
- docs: update deployment guide by @jezekra1 in #1525
- feat(ui): make 'add new agent' button admin only by @kapetr in #1527
- docs: overhaul by @tomkis in #1540
- feat(docs): add guide on connecting CLI to remote servers by @pilartomas in #1541
- feat(server): refresh unmanaged agent cards by @aleskalfas in #1528
- docs: remove agent ideas by @matoushavlena in #1545
- chore: docs workflow by @tomkis in #1502
- chore: bump up uvicorn timeouts to 5s by @matoushavlena in #1548
- fix(server): connectors header forwading by @pilartomas in #1553
- fix: long operations inside transactions cause db connection exhaustion by @jezekra1 in #1549
- docs(agentstack-cli): add custom help text by @JanPokorny in #1554
- Update deployment-guide.mdx by @jenna-winkler in #1573
- chore: fixing dead links in the docs by @tomkis in #1557
- refactor(web): use single framewok-diagram.svg file themeable with CSS variables by @PetrBulanek in #1539
- refactor(ui): rework Spinner component with CSS only animation, remove lottie-react by @PetrBulanek in #1538
- feat(ui): remove links to docs and support by @PetrBulanek in #1570
- chore(ui): update "starting the agent" copy by @PetrBulanek in #1571
- fix(ui): messages being cut off on narrower screens by @PetrBulanek in #1546
- feat(ui): hide offline agents by @PetrBulanek in #1434
- feat(ui): render Markdown syntax inside trajectories by @PetrBulanek in #1555
- chore(server): add resource discovery root fallback to connectors by @pilartomas in #1587
- feat(ui): update homepage and sidebar by @PetrBulanek in #1512
- chore: remove unnecessary init.py by @abn in #1494
- fix(ui): replace trajectory group with latest content, add docs by @kapetr in #1523
- fix(ui): mute error toasts on session expiration by @kapetr in #1589
- Update README.md by @jenna-winkler in #1569
- docs: cleanup by @jenna-winkler in #1586
- fix(tests): skip heavy docling e2e test by @jezekra1 in #1595
- feat: add validation for agent import URL by @Tomas2D in #1544
- feat(agentstack-cli): use better heuristics for adding agents by @JanPokorny in #1603
- feat(agentstack-cli): add server info and confirmations to CLI commands by @JanPokorny in #1590
- feat(cli): add SingleSelect field support to forms by @kapetr in #1596
- fix(ui): display agent-generated images in response markdown by @kapetr in #1601
- feat(ui): render markdown in API error messages by @kapetr in #1593
- docs: add permissions and tokens page by @jezekra1 in #1576
- fix(server): send proxy errors as a2a errors by @jezekra1 in #1594
- fix(tests): use maximize disk space action by @jezekra1 in #1607
- fix(tests): switch to custom model again by @jezekra1 in #1608
- chore: form extension rework by @tomkis in #1481
- fix(server): include redirect_uri into connector's token request by @pilartomas in #1616
- feat: update beeai framework by @Tomas2D in #1611
- fix(cli): agent info command missing auth by @jezekra1 in #1622
- feat(ui): redo sidebar and homepage by @PetrBulanek in #1610
- feat: extending TS sdk by @tomkis in #1609
- fix(agents): add temporary fallback imports by @jezekra1 in #1624
- chore: force specific npm for publishing by @tomkis in #1627
- Add blog post: How to Run a BeeAI Framework Agent as an A2A Server by @edengilbert in #1513
- feat(server): add REST endpoint to list user files by @aleskalfas in #1579
- fix(server): connector refresh for disconnected state by @pilartomas in #1631
- fix(server): prevent incorrect self-registered agent providers data updates by @aleskalfas in #1632
- feat(cli): streamline build commands, switch to server-side by @jezekra1 in #1628
- fix(cli): adding network address agents by @jezekra1 in #1634
- Minor improvements by @jezekra1 in #1636
- chore(chat): simplify chat agent by @jezekra1 in #1642
- fix(tests): update agent image by @jezekra1 in #1638
- docs: Env vars by @tomkis in #1640
- Add input_required example for user input handling by @jenna-winkler in #1550
- feat(server): add trace_id to feedback by @pilartomas in #1635
- feat(server): instrument fastapi by @pilartomas in #1647
- docs: overhaul by @jenna-winkler in #1644
- Issue 1483 by @tedhabeck in #1531
- feat(ui): add custom Toast component by @PetrBulanek in #1646
- feat: update beeai-framework agents by @Tomas2D in #1645
- fix(ui): css word breaking by @PetrBulanek in #1654
- Add sdk error extension by @jezekra1 in #1648
- fix: set static root of the project for next build by @tomkis in #1657
- fix(sdk): return None from error extension when context is empty by @jezekra1 in #1661
- feat(server): add security to agent cards by @pilartomas in #1351
- fix(server): add check for vector store document id by @jezekra1 in #1668
- fix(ui): hide mermaid diagram during streaming by @PetrBulanek in https://github.com/i-am-b...
v0.4.1
What's Changed
- docs: updates by @jenna-winkler in #1437
- chore(docs): add error section to connector docs by @pilartomas in #1431
- fix(server): connector error forwarding by @pilartomas in #1444
- chore(server): add connector openapi response schemas by @pilartomas in #1445
- feat(sdk): add server url by @KaiWedekind in #1449
- fix(ui): show whole user message on last chat message pair by @kapetr in #1429
- feat(server): add connector presets by @pilartomas in #1452
- feat(cli): support DCR and manual client input by @pilartomas in #1463
- fix: initial form rendering by @tomkis in #1453
- docs: update agenstack link for docs by @tomkis in #1451
- docs: connector presets by @matoushavlena in #1465
- fix(ui): update run state on shallow routing by @kapetr in #1413
- fix(test): use github models for e2e test by @jezekra1 in #1464
- fix(ui): message sources missing in sources panel by @PetrBulanek in #1467
- fix(ui): broken handoff agent with form submit by @kapetr in #1466
- feat(ui): style Markdown better by @PetrBulanek in #1468
- Remove under construction warning from README by @jenna-winkler in #1469
- docs: add rag documentation by @jezekra1 in #1457
- fix(ui): improve last message height computation by @kapetr in #1470
- chore: change agentstack docs links by @PetrBulanek in #1454
- feat(ui): homepage qa updates by @PetrBulanek in #1448
- feat(server): add connector proxy with injection by @pilartomas in #1475
- docs: overhaul by @jenna-winkler in #1478
- feat(ui): remove sequential workflow by @PetrBulanek in #1455
- fix(server): add embedding capability to rits provider by @jezekra1 in #1480
- chore: misc fixes and improvements for connectors by @pilartomas in #1484
v0.4.0
🚀 Major Changes
Providers build straight from GitHub
You can now build and deploy providers directly from GitHub repositories. This makes it easier to integrate, test, and iterate on your agent code with minimal setup.
New Trajectory UX
A major rework of the Trajectory visualization and UX. The new design improves clarity of agent reasoning and tool calls.
Connectors API
The new Connectors API introduces a standardized OAuth-based system for integrating third-party services; such as Box, Google Drive etc.
Provider Versioning & Self-Registration
Providers now support automatic versioning and self-registration, simplifying deployment pipelines and ensuring consistent compatibility tracking across environments.
Full Changelog
- chore: move the extensions to typescript SDK by @tomkis in #1318
- docs: Update README.md by @jenna-winkler in #1326
- docs: Update extensions.mdx by @jenna-winkler in #1325
- feat(ui): add elapsed time to toast notifications by @kapetr in #1332
- fix(ui): temp fix of null props in agent extensions by @kapetr in #1330
- feat(ui): model not configured page by @kapetr in #1328
- Update hello-world.mdx by @jenna-winkler in #1334
- docs: Update README.md by @jenna-winkler in #1331
- feat(server): refactor provider versioning and self-registration by @jezekra1 in #1333
- Add provider build dockerfile path support by @jezekra1 in #1344
- fix(cli): remove unnecessary ssl verify by @jezekra1 in #1342
- fix(cli): wrong error code on error by @jezekra1 in #1327
- feat(cli): add provider info to context by @jezekra1 in #1340
- fix(server): add provider_origin on provider build property by @jezekra1 in #1347
- docs: observability by @jenna-winkler in #1346
- feat(ui): add building provider from GitHub repo by @PetrBulanek in #1289
- feat(ui): route agent run with path params by @kapetr in #1343
- feat(web): update homepage icons by @PetrBulanek in #1353
- fix(web): add beeai-sdk build into deps by @PetrBulanek in #1354
- feat(ui): rework layout and sidebar, add homepage by @PetrBulanek in #1348
- feat(server): increase default auto-stop timeout to 20 mins by @matoushavlena in #1360
- docs: agent catalog title by @jenna-winkler in #1364
- fix: remove UI validation for URLs in agent metadata by @tomkis in #1365
- fix(ci): prefer managed python in uv by @JanPokorny in #1368
- fix(server): issuer discovery validation by @pilartomas in #1372
- feat(beeai-server): switch to ubi by @JanPokorny in #1369
- feat(server): add optional provider_id reference to contexts by @jezekra1 in #1370
- feat(server): extend user filtering for semi public entities by @jezekra1 in #1367
- fix(server): match error when model provider is not responding or systemconfig is mising by @jezekra1 in #1371
- feat(ui): add ui components for canvas (work in progress) by @PetrBulanek in #1036
- docs: updates by @jenna-winkler in #1384
- chore: update BeeAI Framework version by @xjacka in #1388
- Docs: broken links by @jenna-winkler in #1392
- fix(ui): agent message z-index by @PetrBulanek in #1385
- feat(ui): add single select component to form extension by @PetrBulanek in #1359
- feat(ui): new ux for run model settings by @kapetr in #1386
- fix: align extension schemas in TypeScript with Python schemas by @PetrBulanek in #1375
- chore: rework beeai sdk by @tomkis in #1358
- docs: updates by @jenna-winkler in #1403
- chore: rename TS sdk to agent stack by @tomkis in #1398
- feat(web): add analytics by @kapetr in #1362
- feat(ui): new trajectory ux by @kapetr in #1373
- Chore/rename python sdk by @tomkis in #1409
- chore(server): check task and context ownership for a2a proxy requests by @jezekra1 in #1356
- feat(server): add connectors API by @pilartomas in #1357
- fix(docs): replace Context with RunContext by @KaiWedekind in #1404
- refactor(beeai-cli): rename to agentstack-cli by @JanPokorny in #1410
- chore: rename server by @jezekra1 in #1412
- docs: add connectors by @matoushavlena in #1407
- chore: rename web and ui by @PetrBulanek in #1414
- fix: licence headers by @tomkis in #1415
- chore: update naming for agentstack in docs by @tomkis in #1418
- chore: more renames by @jezekra1 in #1422
- fix: add empty metrics/logs pipeline for Phoenix by @Tomas2D in #1406
- docs: community call by @tomkis in #1361
- chore: update readme by @tomkis in #1420
- web: updates for rename by @jenna-winkler in #1419
- fix(ui): polynomial regex codeql warning by @PetrBulanek in #1417
- docs: updates by @jenna-winkler in #1424
- chore(web): rename back to beeai-web by @PetrBulanek in #1426
- chore: revert docs url by @tomkis in #1425
- chore(web): fix docs links by @PetrBulanek in #1427
- fix(server): dynamic openapi server url by @KaiWedekind in #1363
- feat(server): connector injection by @pilartomas in #1421
- fix(rag): improve rag error message when docling is not enabled by @jezekra1 in #1432
- fix(ci): switch back to alpine by @JanPokorny in #1430
- Revise migration guide for Agent Stack installation by @jenna-winkler in #1435
Full Changelog: v0.3.7...v0.4.0
v0.3.7
Major Changes
Session History
Conversations can now be persisted with full context. View past sessions in the left nav, resume conversations, and delete sessions as needed.
Chat Agent Token-by-Token Streaming
Chat Agent responses now stream incrementally for a more responsive experience, check out the implementation to see how you can easily achieve per-token streaming in your agents.
Live Reloading
Edit your agent code and see changes instantly in the UI - no server restart required. Run: uv run watchfiles beeai_agents.agent.run
Complete Changelog
- docs: multi turn update for message storage by @tomkis in #1261
- docs: secrets by @tomkis in #1263
- chore: providing oauth example agent by @tomkis in #1275
- feat: canvas prep work by @tomkis in #1258
- fix(server): allow postgres ssl certs without X509 strict support by @jezekra1 in #1277
- fix(server): audience validation by @pilartomas in #1279
- fix(ui): use /variables endpoint to store secrets by @kapetr in #1274
- test(history): metadata are stored in context history by @jezekra1 in #1288
- feat(ui): add runtime config for app and company names by @PetrBulanek in #1272
- fix(ui): auth provider id mismatch by @kapetr in #1287
- fix(ui): active message sources not showing correctly by @PetrBulanek in #1280
- feat(ui): add session history by @PetrBulanek in #1235
- chore(docs): update k8s deployment by @pilartomas in #1286
- chore(server): add kind to context history item by @jezekra1 in #1290
- fix(chat): store trajectory history, remove final_answer event by @jezekra1 in #1295
- feat(server): make agent env and timeout configurable in helm chart by @jezekra1 in #1281
- feat(beeai-sdk): add custom model support to form extension by @JanPokorny in #1278
- fix(ui): created context metadata by @PetrBulanek in #1302
- fix(ui): use patch instead of put for update context metadata by @PetrBulanek in #1305
- fix(ui): add agent secret card actions button by @kapetr in #1303
- fix(ui): session item without agentName changing height on hover by @PetrBulanek in #1308
- feat(ui): history paging by @kapetr in #1299
- fix(ui): markdown text wrapping by @PetrBulanek in #1311
- feat(ui): redesign agent header to accommodate detailed user greetings by @PetrBulanek in #1301
- feat(server): agent build actions, agent origin tracking by @jezekra1 in #1307
- fix: respect proxy headers by @pilartomas in #1315
- fix(ui): improve error handling for model_providers query by @kapetr in #1314
- fix(ui): add token refresh fetch caching, improve 401 error handling by @kapetr in #1310
- chore: basic foundation for beeai ts sdk by @tomkis in #1312
- fix(server): small build provider improvements by @jezekra1 in #1317
- fix(ui): add proxy headers to client by @pilartomas in #1319
- fix(ui): handle separate trajectory messages in history by @kapetr in #1320
- fix(ui): add edge runtime compatible hash function for auth cache by @kapetr in #1321
- fix(ui): disabled form on current message by @kapetr in #1322
- feat(ui): show message form submission by @PetrBulanek in #1298
- docs: Update hello-world.mdx by @jenna-winkler in #1324
- feat(ui): add agent share button by @kapetr in #1323
- feat: update beeai-framework, add streaming by @Tomas2D in #1313
Full Changelog: v0.3.5...v0.3.7
v0.3.5
Major Features
🔑 Secrets Management
You can now securely manage Secrets directly in the UI and store them in the API.
This allows delegating the responsibility of secrets provisioning to the user.
Checkout the docs for some examples.
🏗️ Server-Side Builds (experimental)
We’ve added server-side image builds:
- You can now build agents as Github repos
- Support for building images in external clusters
These changes are needed to enable dynamically adding github agents via GUI, which will come in next releases.
❗️Breaking Change
Agents history is no longer persisted automatically, you need to store it explicitely in your agent code. We've introduced this change to enable more flexible persistance which is always agent specific.
@server.agent()
async def my_agent(input: Message, context: RunContext):
await context.store(input) # Store incoming message
response = AgentMessage(text="...")
yield response
await context.store(response) # Store outgoing message
What's Changed
- [merge after 0.3.4 is released] docs: Update quickstart.mdx by @jenna-winkler in #1196
- fix(server): ensure resource protected metadata RFC compliance by @pilartomas in #1200
- docs: agent settings by @tomkis in #1220
- fix(cli): fetch oauth resource metadata from correct path by @jezekra1 in #1232
- feat: update beeai-framework by @Tomas2D in #1234
- feat(ui): add label for single select in settings extension by @PetrBulanek in #1233
- fix(ui): user message clamp by @PetrBulanek in #1231
- chore(server): oauth discovery, authlib and caching by @pilartomas in #1230
- feat(platform): add buildkit image CI custom build with uuid by @jezekra1 in #1240
- chore(ui): add stylelint, prettier and eslint configs as a separate workspace package by @PetrBulanek in #1237
- fix(ui): oidc discovery, refactor and cleanup auth by @kapetr in #1239
- fix(ui): revert removed token from session by @kapetr in #1243
- feat: build provider image from GitHub by @jezekra1 in #1236
- feat: update beeai-framework telemetry by @Tomas2D in #1245
- fix(ui): retrieve access_token server-side and remove it from session by @kapetr in #1244
- feat(ui): add secrets by @PetrBulanek in #1035
- fix(ui): improve layouts structure, fix broken 'not found' page by @kapetr in #1250
- feat(ui): store secrets to api by @kapetr in #1251
- docs(beeai-cli): update installation instructions by @JanPokorny in #1252
- feat(platform): allow building images in external clusters by @jezekra1 in #1249
- feat: update beeai-framework by @Tomas2D in #1246
- refactor(ui): api and types to use implicit schema types where possible by @PetrBulanek in #1253
- feat(sdk): make history an explicit user concern by @jezekra1 in #1255
- chore(ui): dependencies cleanup and update by @PetrBulanek in #1241
- docs: Update README.md by @jenna-winkler in #1247
- fix(ui): improve multiple secrets update by @kapetr in #1254
- fix(ui): add missing font dependency by @PetrBulanek in #1259
- fix(sdk): agent block due to incorrect queue close by @jezekra1 in #1260
- feat(variables): add user-scoped variables by @jezekra1 in #1203
- feat: support Unpack when extracting dependencies by @Tomas2D in #1268
- fix(server): ignore missing metadata from watsonx us model endpoint by @jezekra1 in #1270
- chore(server): add option to use ssl for external postgres by @jezekra1 in #1271
- feat(server): add endpoints to update and patch context metadata by @jezekra1 in #1266
- feat(server): add created_by to provider entity by @jezekra1 in #1265
Full Changelog: v0.3.4...v0.3.5
v0.3.4
Major Features
🛠 Agent Settings
We’ve introduced Agent Settings, a new way to configure and customize agent behavior directly in the UI. This feature allows developers to define adjustable parameters for their agents such as toggles or dropdows.
Agent settings are making agents more flexible and easier to adapt without code changes. Alongside the UI, we’ve added documentation and simplified examples to help you get started quickly with building agents that support configurable settings.
🔁 Persistent Context History
Added support for storing and accessing context history so conversations retain continuity.
Context can be used over multiple messages/sessions, improving relevance of agent responses.
What's Changed
- fix(server): relax validation rules for non-openai-compliant model pr… by @jezekra1 in #1161
- feat(ui): show code block only for json-like string in trajectory description by @PetrBulanek in #1136
- fix(ui): form cancel button by @PetrBulanek in #1138
- feat(helm): copy all images to ghcr by @jezekra1 in #1164
- feat(web): add blog by @PetrBulanek in #1165
- fix(web): public folder by @PetrBulanek in #1167
- feat(web): add auto-generated ToC for blog posts by @PetrBulanek in #1170
- feat: MCP Auth GUI adjustments by @tomkis in #1113
- fix(helm): forge rollout by @pilartomas in #1173
- chore(platform): update deps by @jezekra1 in #1177
- feat: gui using platform extension by @tomkis in #1179
- feat: implementation of Embedding extension in GUI by @tomkis in #1176
- feat: use context for file uploads by @tomkis in #1178
- feat(beeai-cli): support forms in agents by @JanPokorny in #1180
- chore(sdk): Allow setting agent card interfaces by @pilartomas in #1188
- fix(ui): left sidebar overlays app settings by @PetrBulanek in #1185
- feat(ui): add ability to customize header with company and app name by @PetrBulanek in #1187
- feat(ui): add auto_resize for TextField form input by @PetrBulanek in #1175
- feat(ui): prototype of agent settings by @tomkis in #1147
- feat(server, sdk): add context history by @jezekra1 in #1150
- fix(agents): missing input parameter by @jezekra1 in #1191
- fix(ui): embedding providers match query duplicate id by @jezekra1 in #1192
- feat(ui): cancel task with input-required on new message by @kapetr in #1193
- chore: contributing doc update by @tedhabeck in #1071
- Cookie auth fix by @tedhabeck in #1159
- fix: enable MCP FF and fix taskId by @tomkis in #1198
- fix(aider): use llm extension in aider agent by @jezekra1 in #1201
- fix(ui): small authentication fixes and adjustments by @kapetr in #1149
- docs: community call 16/9 by @tomkis in #1202
- fix(ui): revert oidc_enabled env rename by @kapetr in #1208
- fix(server): make auth admin email lowercase and small bugs by @jezekra1 in #1207
- feat(contexts): allow setting metadata and filtering non-empty contexts by @jezekra1 in #1205
- fix(ui): import path case mismatch by @kapetr in #1209
- fix(cli): remote host agent invocation by @jezekra1 in #1210
- feat: update beeai-framework by @Tomas2D in #1204
- refactor(agents): reduce and simplify built-in agents by @JanPokorny in #1213
- Add conversation title by @jezekra1 in #1195
- Enhancing CLI auth flow by @abhi201191 in #1189
- docs: several updates by @jenna-winkler in #1206
- fix(ui): handle api unauthenticated error by @kapetr in #1218
- fix: naming by @tomkis in #1199
- feat(beeai-cli): rework auth by @JanPokorny in #1219
Full Changelog: v0.3.3...v0.3.4
v0.3.3
🚀 Release Notes – v0.3.3
Key Highlights
Reworked Providers & Variables
We’ve redefined how LLM configuration is managed in BeeAI:
- New
beeai modelcommand – add and manage multiple LLM providers. - Interactive setup improved – replaced
beeai env setupwithbeeai model setup. - Model and provider listing – easily view all available LLMs and providers.
- Smarter agent behavior; When an agent uses the LLM extension, the platform automatically selects the most optimal LLM based on your code’s suggestions.
UI Form Extension
Thanks to support from the Form extension, agents can now elicit structured user input via dialogs. Whether at the start of a session or dynamically mid-chat
- Initial Form Rendering - You define a form layout (with FormRender) in your agent’s definition. Then, when a user begins interaction, the form appears immediately before any messages.
- Dynamic Form Requests - Within the conversation flow, agents can prompt users with additional forms as needed
Noteworthy changes
- Dependency Bumps: beeai-framework, A2A SDK, and updated Next.js.
- Documentation updates
- Layout tweaks such as session button placement, improved code block rendering, streamlined provider dropdowns, and consistent agent card URLs.
Changelog
- fix(agent): unskip agent start e2e test by @jezekra1 in #1079
- docs: Fix A2A Documentation Link by @holtskinner in #1092
- feat(web): landing page content updates by @kapetr in #1094
- feat(web): update images by @kapetr in #1102
- docs: Update docs.json - broken links by @jenna-winkler in #1104
- chore(web): update links by @kapetr in #1105
- fix: handle large spans by @Tomas2D in #1107
- feat(deps): update beeai-framework by @Tomas2D in #1093
- fix(sdk): remove uvloop dependency which does not work on windows by @jezekra1 in #1109
- chore(deps): bump next from 15.3.4 to 15.4.7 in /apps/beeai-ui by @dependabot[bot] in #1112
- fix(ui): new session button position by @kapetr in #1116
- feat(sdk): add rest transport to the agent by @pilartomas in #1101
- feat(ui): add draft for UI form extension by @PetrBulanek in #1053
- fix(beeai-cli): properly generate RECORD of modified wheels by @JanPokorny in #1119
- chore: bump a2a sdk by @pilartomas in #1123
- fix(server): proxy agent card in provider by @pilartomas in #1125
- fix(ui): expand chat message code block issue by @kapetr in #1117
- Fix multiple bugs in beeai-ui: typos, error handling, and safety checks by @Copilot in #1127
- fix(ui): align agent run url with server by @kapetr in #1128
- feat(oauth): Platform API authorization check + beeai-cli authentication by @abhi201191 in #1059
- Rework providers and variables by @jezekra1 in #1103
- chore: next-auth session fix, and token verification fix by @tedhabeck in #1089
- Rework provider cli by @jezekra1 in #1118
- fix lost feedback and variables on provider upgrade by @jezekra1 in #1121
- fix missing jwt secret by @jezekra1 in #1130
- feat(ui): enable initial form on chat agents by @kapetr in #1129
- fix(cli): improve ollama setup flow by @jezekra1 in #1131
- fix(ui): use simple select for model providers to prevent scroll by @kapetr in #1134
- style: spinner getting cropped in small size fix by @jayolee in #1133
- fix(ui): agent card proxy urls by @PetrBulanek in #1139
- docs(beeai-cli): unify quickstart and installation guides by @JanPokorny in #1140
- feat(beeai-cli): add experimental install script by @JanPokorny in #1143
- fix(server): platform server error on agent redirect by @pilartomas in #1135
- chore: ACP cleanup by @tomkis in #1146
- docs: forms extension by @tomkis in #1137
- docs: Delete docs/acp-docs.mdx by @jenna-winkler in #1148
- fix(cli): max_tokens is deprecated in favor of max_completion_tokens by @jezekra1 in #1151
New Contributors
- @holtskinner made their first contribution in #1092
- @Copilot made their first contribution in #1127
- @abhi201191 made their first contribution in #1059
Full Changelog: v0.3.2...v0.3.3