Skip to content

BeeAI Framework Community Update


  • Add AgentStackChatModel to dynamically pick the model from the platform.
  • Simplify event callback registration and deregistration (#849).
  • Expose an agent as an MCP server (#1086).
  • Support platform extensions in BeeAIPlatformAgent (client) (#1091).
  • Add LangChainChatModel integration (#1104).
  • Add support for running the A2A server on multiple protocols (#1077).

  • Handle IBM watsonx tool call streaming (#1085).
  • Propagate errors from MCPTool (#1065).

Dynamic chat model selection (BeeAIPlatformChatModel)

Section titled “Dynamic chat model selection (BeeAIPlatformChatModel)”
agent = RequirementAgent(
llm=BeeAIPlatformChatModel(preferred_models=["ollama/granite3.3:8b"])
)
server = BeeAIPlatformServer()
server.register(agent)
await server.aserve()

Simplify event callback registration and deregistration

Section titled “Simplify event callback registration and deregistration”
agent = RequirementAgent(...)
@agent.emitter.on("start")
async def log_start(data: RequirementAgentStartEvent, event: EventMeta) -> None:
print('The agent has started a new iteration.')
@agent.emitter.on()
async def handle_success(data: RequirementAgentSuccessEvent, event: EventMeta) -> None:
print('The agent has finished a new iteration.')
response = await agent.run(...)
print(response.last_message.text)
# Deregistration
agent.emitter.off(callback=log_start)
agent.emitter.off(callback=handle_success)

agent = RequirementAgent(
llm=ChatModel.from_name("ollama:granite3.3:8b"),
tools=[DuckDuckGoSearchTool(), OpenMeteoTool()],
memory=UnconstrainedMemory(),
middlewares=[GlobalTrajectoryMiddleware()],
)
server = MCPServer(config=MCPServerConfig(transport="streamable-http"))
server.register(agent)
server.serve()

  • Workflows V2 – a high-level concept for defining AI workflows
  • Loader – define your app via YAML/JSON files
  • TypeScript – propagate the latest changes from Python to TypeScript

The BeeAI Framework is community-driven—your feedback shapes our roadmap!

Questions? Let’s discuss: