beeai-framework
Build production-ready AI agents in both Python and Typescript.
Science Score: 44.0%
This score indicates how likely this project is to be science-related based on various indicators:
-
✓CITATION.cff file
Found CITATION.cff file -
✓codemeta.json file
Found codemeta.json file -
✓.zenodo.json file
Found .zenodo.json file -
○DOI references
-
○Academic publication links
-
○Committers with academic emails
-
○Institutional organization owner
-
○JOSS paper metadata
-
○Scientific vocabulary similarity
Low similarity (10.6%) to scientific vocabulary
Keywords
Keywords from Contributors
Repository
Build production-ready AI agents in both Python and Typescript.
Basic Info
- Host: GitHub
- Owner: i-am-bee
- License: apache-2.0
- Language: Python
- Default Branch: main
- Homepage: http://framework.beeai.dev
- Size: 9.94 MB
Statistics
- Stars: 2,760
- Watchers: 35
- Forks: 339
- Open Issues: 56
- Releases: 0
Topics
Metadata Files
README.md
BeeAI Framework
**Build production-ready multi-agent systems in Python or TypeScript.** [](https://github.com/i-am-bee/beeai-framework/tree/main/python) [](https://github.com/i-am-bee/beeai-framework/tree/main/typescript) [](https://github.com/i-am-bee/beeai-framework?tab=Apache-2.0-1-ov-file#readme) [](https://bsky.app/profile/beeaiagents.bsky.social) [](https://discord.com/invite/NradeA6ZNF) [](https://lfaidata.foundation/projects/)Latest updates
| Date | Language | Update Description
|------------|---------------|-------------------------------------------------------------------------------------|
| 2025/08/25 | Python | 🚀 ACP is now part of A2A under the Linux Foundation! 👉 Learn more |
| 2025/06/03 | Python | Release experimental Requirement Agent. |
| 2025/05/15 | Python | New protocol integrations: ACP and MCP. |
| 2025/02/19 | Python | Launched Python library alpha. See getting started guide. |
| 2025/02/07 | TypeScript | Introduced Backend module to simplify working with AI services (chat, embedding). |
| 2025/01/28 | TypeScript | Added support for DeepSeek R1, check out the Competitive Analysis Workflow example. |
| 2025/01/09 | TypeScript | Introduced Workflows, a way of building multi-agent systems. Added support for Model Context Protocol. |
| 2024/12/09 | TypeScript | Added support for LLaMa 3.3. See multi-agent workflow example using watsonx or explore other available providers. |
| 2024/11/21 | TypeScript | Added an experimental Streamlit agent. |
For a full changelog, see our releases page.
What is BeeAI Framework?
BeeAI Framework is a comprehensive toolkit for building intelligent, autonomous agents and multi-agent systems. It provides everything you need to create agents that can reason, take actions, and collaborate to solve complex problems.
[!TIP] Get started quickly with the beeai-framework-py-starter [Python] or beeai-framework-ts-starter [TypeScript] template.
Key Features
| Feature | Description | |---------|-------------| | 🤖 Agents | Create intelligent agents that can reason, act, and adapt | | 🔄 Workflows | Orchestrate multi-agent systems with complex execution flows | | 🔌 Backend | Connect to any LLM provider with unified interfaces | | 🔧 Tools | Extend agents with web search, weather, code execution, and more | | 🔍 RAG | Build retrieval-augmented generation systems with vector stores and document processing | | 📝 Templates | Build dynamic prompts with enhanced Mustache syntax | | 🧠 Memory | Manage conversation history with flexible memory strategies | | 📊 Observability | Monitor agent behavior with events, logging, and robust error handling | | 🚀 Serve | Host agents in servers with support for multiple protocols such as A2A and MCP | | 💾 Cache | Optimize performance and reduce costs with intelligent caching | | 💿 Serialization | Save and load agent state for persistence across sessions |
Quickstart
Installation
To install the Python library:
shell
pip install beeai-framework
To install the TypeScript library:
shell
npm install beeai-framework
Multi-Agent Example
```py import asyncio
from beeaiframework.agents.experimental import RequirementAgent from beeaiframework.agents.experimental.requirements.conditional import ConditionalRequirement from beeaiframework.backend import ChatModel from beeaiframework.errors import FrameworkError from beeaiframework.middleware.trajectory import GlobalTrajectoryMiddleware from beeaiframework.tools import Tool from beeaiframework.tools.handoff import HandoffTool from beeaiframework.tools.search.wikipedia import WikipediaTool from beeaiframework.tools.think import ThinkTool from beeaiframework.tools.weather import OpenMeteoTool
async def main() -> None: knowledgeagent = RequirementAgent( llm=ChatModel.fromname("ollama:granite3.3:8b"), tools=[ThinkTool(), WikipediaTool()], requirements=[ConditionalRequirement(ThinkTool, forceatstep=1)], role="Knowledge Specialist", instructions="Provide answers to general questions about the world.", )
weather_agent = RequirementAgent(
llm=ChatModel.from_name("ollama:granite3.3:8b"),
tools=[OpenMeteoTool()],
role="Weather Specialist",
instructions="Provide weather forecast for a given destination.",
)
main_agent = RequirementAgent(
name="MainAgent",
llm=ChatModel.from_name("ollama:granite3.3:8b"),
tools=[
ThinkTool(),
HandoffTool(
knowledge_agent,
name="KnowledgeLookup",
description="Consult the Knowledge Agent for general questions.",
),
HandoffTool(
weather_agent,
name="WeatherLookup",
description="Consult the Weather Agent for forecasts.",
),
],
requirements=[ConditionalRequirement(ThinkTool, force_at_step=1)],
# Log all tool calls to the console for easier debugging
middlewares=[GlobalTrajectoryMiddleware(included=[Tool])],
)
question = "If I travel to Rome next weekend, what should I expect in terms of weather, and also tell me one famous historical landmark there?"
print(f"User: {question}")
try:
response = await main_agent.run(question, expected_output="Helpful and clear response.")
print("Agent:", response.answer.text)
except FrameworkError as err:
print("Error:", err.explain())
if name == "main": asyncio.run(main()) ```
Source: python/examples/agents/experimental/requirement/handoff.py
Running the example
[!Note]
To run this example, be sure that you have installed ollama with the granite3.3:8b model downloaded.
To run projects, use:
shell
python [project_name].py
Explore more in our examples for Python and TypeScript.
Contribution guidelines
BeeAI framework is open-source and we ❤️ contributions.
To help build BeeAI, take a look at our: - Python contribution guidelines - TypeScript contribution guidelines
Bugs
We use GitHub Issues to manage bugs. Before filing a new issue, please check to make sure it hasn't already been logged. 🙏
Code of conduct
This project and everyone participating in it are governed by the Code of Conduct. By participating, you are expected to uphold this code. Please read the full text so that you know which actions may or may not be tolerated.
Legal notice
All content in these repositories including code has been provided by IBM under the associated open source software license and IBM is under no obligation to provide enhancements, updates, or support. IBM developers produced this code as an open source project (not as an IBM product), and IBM makes no assertions as to the level of quality nor security, and will not be maintaining this code going forward.
Maintainers
For information about maintainers, see MAINTAINERS.md.
Contributors
Special thanks to our contributors for helping us improve BeeAI framework.
Developed by contributors to the BeeAI project, this initiative is part of the Linux Foundation AI & Data program. Its development follows open, collaborative, and community-driven practices.
Owner
- Name: Bee
- Login: i-am-bee
- Kind: organization
- Repositories: 1
- Profile: https://github.com/i-am-bee
Build scalable agentic workflows
Citation (CITATION.cff)
cff-version: 1.2.0 title: BeeAI Framework message: >- If you use this software, please cite it using the metadata from this file. type: software authors: - name: IBM Research repository-code: "https://github.com/i-am-bee/beeai-framework" url: "https://github.com/i-am-bee" license: Apache-2.0 date-released: "2024-08-23"
Committers
Last synced: 9 months ago
Top Committers
| Name | Commits | |
|---|---|---|
| Tomas Dvorak | t****d@g****m | 688 |
| Alex Bozarth | a****t@u****m | 50 |
| Michael Desmond | m****d@u****m | 28 |
| Jenna Winkler | 1****r | 26 |
| Nigel Jones | j****n@u****m | 23 |
| //va | v****a | 20 |
| Jan Pokorný | J****y@g****m | 15 |
| Lukáš Janeček | x****a | 15 |
| Radek Ježek | r****k@i****m | 14 |
| Angelo Danducci | a****i@i****m | 13 |
| Matous Havlena | h****a@g****m | 12 |
| Akihiko (Aki) Kuroda | 1****a | 12 |
| Graham White | g****k | 9 |
| Maya Murad | m****d@g****m | 8 |
| Milan Gallas | 4****N | 8 |
| Michael Dawson | m****n@r****m | 7 |
| Mahmoud Abughali | m****i@g****m | 6 |
| Aleš Kalfas | 3****s | 5 |
| Tomas Pilar | t****r@g****m | 5 |
| dependabot[bot] | 4****] | 5 |
| Mark Sturdevant | m****t@i****m | 4 |
| Kate Blair | 3****t | 3 |
| Aaron Teo | a****1@i****m | 2 |
| Aditya Gidh | a****0@g****m | 2 |
| Ismael Faro Sertage | i****e@g****m | 2 |
| biren | b****2@g****m | 1 |
| Vishnudev | 1****k | 1 |
| Ricardo Espantaleón-Pérez | 7****p | 1 |
| Paul Schweigert | p****l@p****m | 1 |
| Matias Molinas | m****s@g****m | 1 |
| and 11 more... | ||
Committer Domains (Top 20 + Academic)
Issues and Pull Requests
Last synced: 6 months ago
All Time
- Total issues: 276
- Total pull requests: 726
- Average time to close issues: 12 days
- Average time to close pull requests: 2 days
- Total issue authors: 57
- Total pull request authors: 45
- Average comments per issue: 1.47
- Average comments per pull request: 0.73
- Merged pull requests: 531
- Bot issues: 0
- Bot pull requests: 35
Past Year
- Issues: 276
- Pull requests: 726
- Average time to close issues: 12 days
- Average time to close pull requests: 2 days
- Issue authors: 57
- Pull request authors: 45
- Average comments per issue: 1.47
- Average comments per pull request: 0.73
- Merged pull requests: 531
- Bot issues: 0
- Bot pull requests: 35
Top Authors
Issue Authors
- Tomas2D (53)
- jenna-winkler (49)
- planetf1 (35)
- ajbozarth (18)
- mmurad2 (12)
- taronaeo (8)
- matoushavlena (6)
- michael-desmond (6)
- AngeloDanducci (6)
- codefromthecrypt (5)
- araujof (5)
- codebanesr (4)
- grahamwhiteuk (4)
- vabarbosa (4)
- GALLLASMILAN (4)
Pull Request Authors
- Tomas2D (200)
- ajbozarth (98)
- jenna-winkler (66)
- planetf1 (57)
- xjacka (54)
- vabarbosa (46)
- dependabot[bot] (35)
- michael-desmond (26)
- AngeloDanducci (26)
- grahamwhiteuk (12)
- antonpibm (12)
- geneknit (10)
- GALLLASMILAN (6)
- akihikokuroda (6)
- richardesp (6)
Top Labels
Issue Labels
Pull Request Labels
Packages
- Total packages: 3
-
Total downloads:
- pypi 11,688 last-month
- npm 3,946 last-month
-
Total dependent packages: 0
(may contain duplicates) -
Total dependent repositories: 0
(may contain duplicates) - Total versions: 61
- Total maintainers: 3
pypi.org: beeai-framework-patched-fr
BeeAI Framework with bug fix for when retrieving datetime fields that don't have a dict attribute
- Homepage: https://iambee.ai
- Documentation: https://i-am-bee.github.io/beeai-framework/#/python/
- License: Apache-2.0
-
Latest release: 0.1.21
published 10 months ago
Rankings
Maintainers (1)
pypi.org: beeai-framework
- Homepage: https://framework.beeai.dev/
- Documentation: https://i-am-bee.github.io/beeai-framework/#/python/
- License: Apache-2.0
-
Latest release: 0.1.42
published 6 months ago
Rankings
Maintainers (1)
npmjs.org: beeai-framework
BeeAI Framework - LLM Agent Framework
- Homepage: https://github.com/i-am-bee/beeai-framework#readme
- License: Apache-2.0
-
Latest release: 0.1.17
published 7 months ago