Skip to content
Open
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
56 changes: 56 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -194,3 +194,59 @@ 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](https://lfaidata.foundation/projects/). Its development follows open, collaborative, and community-driven practices.

## FAQ

### What is BeeAI Framework?
BeeAI Framework is a comprehensive toolkit for building intelligent, autonomous agents and multi-agent systems in Python or TypeScript.

### How does BeeAI compare to LangChain or CrewAI?
- **LangChain**: Chain-focused, more presets, heavier abstraction
- **CrewAI**: Role-playing agents, scenario-driven
- **BeeAI**: Modular design, A2A/MCP protocol support, lightweight, production-ready with multi-language support

### How do I install BeeAI Framework?
Python:
```bash
pip install beeai-framework
```
TypeScript:
```bash
npm install beeai-framework
```

### What LLM providers does BeeAI support?
BeeAI supports OpenAI, Anthropic, IBM watsonx, Ollama (local models), DeepSeek, and more via the unified Backend interface.

### What are Workflows?
Workflows orchestrate multi-agent systems with complex execution flows, supporting parallel, sequential, and conditional execution patterns.

### How do I add custom Tools?
Create a custom Tool by extending the base Tool class:
```python
from beeai_framework.tools import Tool
class MyTool(Tool):
async def run(self, input_data):
# Your logic here
return result
```
Comment on lines +225 to +232

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

medium

The example provided for creating a custom tool is incorrect and would not function if implemented as shown. In the BeeAI Framework, the Tool class is an abstract base class that requires defining name, description, and input_schema as properties. Furthermore, the method to override for the tool's logic is _run (which receives input, options, and context), not run. Overriding run directly bypasses the framework's validation and execution logic.

For an FAQ, it is recommended to showcase the @tool decorator approach instead, as it is much more concise and handles schema generation automatically.

Recommended Example (Decorator):

from beeai_framework.tools import tool

@tool
def my_tool(input_data: str) -> str:
    """Description of my tool"""
    # Your logic here
    return "result"

Corrected Class-based Example:

from beeai_framework.tools import Tool
from pydantic import BaseModel

class MyInput(BaseModel):
    input_data: str

class MyTool(Tool):
    name = "my_tool"
    description = "Description of my tool"
    input_schema = MyInput

    async def _run(self, input, options, context):
        return f"Processed {input.input_data}"

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Can you address this comment please? @meichuanyi

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Friendly ping @meichuanyi — this one is just waiting on the custom-tool example fix noted above (the Tool subclass example as written wouldn't run). Also, DCO is currently failing, so the commits will need a Signed-off-by line. Happy to help if anything is unclear!


### What is the Requirement Agent?
Requirement Agent creates predictable, controlled behavior across different LLMs by setting rules the agent must follow. It's useful for ensuring consistent outputs.

### Does BeeAI support MCP (Model Context Protocol)?
Yes! BeeAI has built-in MCP support for integrating external tools and resources. See the [MCP documentation](https://framework.beeai.dev/integrations/mcp).

### What is A2A (Agent-to-Agent Protocol)?
A2A is a protocol for inter-agent communication, now part of the Linux Foundation. BeeAI's Serve module supports hosting agents with A2A protocol.

### How do I run agents locally with Ollama?
1. Install [Ollama](https://ollama.com)
2. Download a model: `ollama pull granite3.3:8b`
3. Configure: `ChatModel.from_name("ollama:granite3.3:8b")`

### Where can I get help?
- [Documentation](https://framework.beeai.dev/)
- [Discord community](https://discord.com/invite/NradeA6ZNF)
- [GitHub Discussions](https://github.com/orgs/i-am-bee/discussions)
- [Template starters](https://github.com/i-am-bee/beeai-framework-py-starter) (Python) / [TypeScript starter](https://github.com/i-am-bee/beeai-framework-ts-starter)
Loading