Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Release : 0.4.61 Adding JSON structure output, Streaming, Nested steps, Updates, New dependacies... #53

Merged
merged 2 commits into from
Jan 25, 2025
Merged
Show file tree
Hide file tree
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
2 changes: 1 addition & 1 deletion .chainlit/config.toml
Original file line number Diff line number Diff line change
Expand Up @@ -90,4 +90,4 @@ custom_css = "/public/custom.css"
# custom_build = "./public/build"

[meta]
generated_by = "2.0.5"
generated_by = "2.0.6"
92 changes: 73 additions & 19 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -12,24 +12,50 @@ A powerful multi-agent system for adaptive AI reasoning and automation. AgenticF

![chainlitlight](https://github.com/user-attachments/assets/0d070c34-e5a8-40be-94f5-5c8307f1f64c)

## Core Components

AgenticFleet operates through a coordinated team of specialized agents:

- **WebSurfer**: Expert web navigation agent
- Extracts information from web pages
- Captures and processes screenshots
- Provides structured summaries of findings

- **FileSurfer**: File system specialist
- Searches and analyzes workspace files
- Manages file operations efficiently
- Extracts relevant information from documents

- **Coder**: Development expert
- Generates and reviews code
- Implements solutions
- Maintains code quality

- **Executor**: Code execution specialist
- Safely runs code in isolated workspace
- Monitors execution and handles timeouts
- Provides detailed execution feedback

## Key Features

- **Multi-Agent System**: Coordinated team of specialized AI agents
- Code generation and analysis
- Web content processing
- File system operations
- **Multi-Agent System**
- Coordinated team of specialized AI agents
- Real-time inter-agent communication
- Task planning and execution tracking

- **Interactive Interface**
- Real-time communication via Chainlit
- Real-time streaming responses
- Code syntax highlighting
- Markdown rendering
- File upload/download support
- Progress visualization with task lists

- **Advanced Capabilities**
- OAuth authentication integration
- GitHub OAuth authentication
- Configurable agent behaviors
- Comprehensive error handling
- Progress tracking
- Comprehensive error handling and recovery
- Multi-modal content processing (text, images)
- Execution workspace isolation

- **Developer-Friendly**
- Easy-to-use CLI
Expand Down Expand Up @@ -57,28 +83,36 @@ cp .env.example .env

# Open .env and update with your values
# Required: Add your Azure OpenAI credentials
# Recommended: Configure OAuth settings
# Optional: Configure OAuth settings
```

3. Start the server:

```bash
agenticfleet start # Run with OAuth
agenticfleet start no-oauth # Run without OAuth
agenticfleet start # Enable GitHub authentication
agenticfleet start --no-oauth # Default local mode
```

The web interface will be available at `http://localhost:8001`.

## Documentation

- [Installation Guide](docs/installation.md) - Detailed setup instructions
- [Usage Guide](docs/usage-guide.md) - How to use AgenticFleet
- [API Reference](docs/api-reference.md) - Complete API documentation
- [Architecture Overview](docs/agentic-fleet.md) - System architecture and design
## System Architecture

```mermaid
graph TD
User[Chainlit UI] -->|HTTP| App[app.py]
App --> AgentTeam[MagenticOneGroupChat]
AgentTeam --> WebSurfer
AgentTeam --> FileSurfer
AgentTeam --> Coder
AgentTeam --> Executor
WebSurfer -->|Selenium| Web[External Websites]
FileSurfer -->|OS| FileSystem[Local Files]
Executor -->|Subprocess| Code[Python/Runtime]
```

## Configuration

The `.env.example` file contains all required and recommended settings. Copy it to `.env` and update with your values:
The `.env.example` file contains all required and recommended settings:

```env
# Required: Azure OpenAI Configuration
Expand All @@ -87,12 +121,23 @@ AZURE_OPENAI_ENDPOINT=your_endpoint
AZURE_OPENAI_DEPLOYMENT=your_deployment
AZURE_OPENAI_MODEL=your_model

## Recommended: OAuth Configuration
# Optional: OAuth Configuration
USE_OAUTH=false
OAUTH_GITHUB_CLIENT_ID=
OAUTH_GITHUB_CLIENT_SECRET=
OAUTH_REDIRECT_URI=http://localhost:8001/oauth/callback
```

## Error Handling

AgenticFleet implements comprehensive error handling:

- Graceful degradation on service failures
- Detailed error logging and reporting
- Automatic cleanup of resources
- Session state recovery
- Execution timeout management

## Development

### Prerequisites
Expand All @@ -109,7 +154,9 @@ OAUTH_GITHUB_CLIENT_SECRET=
git clone https://github.com/qredence/agenticfleet.git
cd agenticfleet
pip install uv
uv pip install -e .
uv pip install -e ".[dev]"

```

2. Run tests:
Expand All @@ -118,6 +165,13 @@ uv pip install -e ".[dev]"
pytest tests/
```

## Documentation

- [Installation Guide](docs/installation.md) - Detailed setup instructions
- [Usage Guide](docs/usage-guide.md) - How to use AgenticFleet
- [API Reference](docs/api-reference.md) - Complete API documentation
- [Architecture Overview](docs/agentic-fleet.md) - System architecture and design

## Contributing

We welcome contributions! Please see our [Contributing Guide](CONTRIBUTING.md) for details.
Expand Down
17 changes: 13 additions & 4 deletions pyproject.toml
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ build-backend = "hatchling.build"

[project]
name = "agentic-fleet"
version = "0.4.60"
version = "0.4.61"
description = "A powerful multi-agent system for adaptive AI reasoning and automation"
readme = "README.md"
requires-python = ">=3.10"
Expand Down Expand Up @@ -36,7 +36,7 @@ dependencies = [
"aiohttp>=3.11.11,<4.0.0",
"httpx>=0.25.0",
"requests>=2.32.3",
"aiofiles>=23.1.0,<24.0.0",
"aiofiles>=23.1.0",
"python-multipart>=0.0.6",
"asyncio>=3.4.3",
# AI/ML Infrastructure
Expand All @@ -46,6 +46,7 @@ dependencies = [
"autogen-ext[docker]>=0.4.3,<0.5.0",
"autogen-ext[magentic-one]>=0.4.3,<0.5.0",
"autogen-ext[web-surfer]>=0.4.3,<0.5.0",
"autogen-ext[langchain]>=0.4.3,<0.5.0",
"magentic-one-cli>=0.2.2",
"agentops>=0.3.21",
"composio-core>=0.6.11.post1",
Expand All @@ -67,8 +68,9 @@ dependencies = [
"plotly>=5.16.0",
"plotly-express>=0.4.1",
"requests-html>=0.10.0",
"seaborn>=0.13.0",
# Web & Utilities
"chainlit>=2.0.5",
"chainlit>=2.0.6",
"playwright>=1.49.1,<2.0.0",
"beautifulsoup4>=4.12.0",
"bing>=0.31",
Expand All @@ -92,8 +94,13 @@ dependencies = [
"pytest-cov>=6.0.0",
"pytest>=8.3.4",
"pytest-asyncio>=0.25.2",
"scikit-learn>=1.6.1",
"ipykernel>=6.29.5",
"authlib>=1.4.0",
"starlette>=0.41.3",
"semantic-kernel>=1.19.0",
"tiktoken>=0.8.0",
]

[project.urls]
Homepage = "https://github.com/qredence/agenticfleet"
Documentation = "https://github.com/qredence/agenticfleet/tree/main/docs"
Expand Down Expand Up @@ -144,6 +151,8 @@ exclude = [
"Thumbs.db",
]



[tool.hatch.version]
path = "src/agentic_fleet/__init__.py"

Expand Down
27 changes: 27 additions & 0 deletions src/agentic_fleet/_experimental_config/planner/planner_memory.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
content: |-
You are provided with a chat history between User, Planner, and a group of Workers.
User send a request to Planner, and Planner asks the Workers to fulfill the request.
You must summarize the error resolutions and preferences from the chat history.
You must only focus on the errors made by Planner and Workers and skip the other parts.
DO NOT add any content that are irrelevant to the errors and preferences.

# About Error
An error is defined as something leading to a failure of a subtask or the whole task.
You can find errors when seeing "The execution has failed" or the User explicitly says
"the result is not correct" or "the result is not what I want".

# About Input
The chat history is a list of JSON objects.
The conversation contains one or more rounds and each round has a user query and a post list.
Each post has a send_to, send_from, and message. The send_from/to can be User, Planner, or other Worker names.
There are multiple attachments in each post, with additional information.

# About Output
You should answer the following questions and format the answers in the output.
- User Query: The user query/task/request for the given conversation.
- Roles: The names of roles participating in the conversation.
- Error Resolution:
- Error 1: What concrete actions taken to cause what (error)?
- Resolution 1: What concrete actions to avoid what (error)?
- Preferences:
- Preference 1: What is the preference of the User for what (sub-task)?
Loading
Loading