Skip to content

Commit 82dc991

Browse files
authored
Update README.md
1 parent 364234d commit 82dc991

File tree

1 file changed

+87
-92
lines changed

1 file changed

+87
-92
lines changed

README.md

Lines changed: 87 additions & 92 deletions
Original file line numberDiff line numberDiff line change
@@ -1,28 +1,71 @@
11
[TOC]
2-
# Agents-SDK: A High Performance C++ Framework for AI Agents
3-
4-
A high-performance, low-memory C++ implementation of an AI agents framework designed to enable developers to build local agentic systems.
5-
6-
## Features
7-
8-
- **Modular Design**: Composable components for building various agent architectures
9-
- **Multiple LLM Providers**: Support for OpenAI, Anthropic, Google, and Ollama
10-
- **High Performance**: Optimized for efficiency and low memory usage
11-
- **Workflow Patterns**: Implementation of recommended workflow patterns
12-
- Prompt Chaining
13-
- Routing
14-
- Parallelization
15-
- Orchestrator-Workers
16-
- Evaluator-Optimizer
17-
- **Autonomous Agents**: Support for fully autonomous agents with various planning strategies:
18-
- ReAct
19-
- Chain of thought
20-
- Plan and Execute
21-
- Zero Shot
22-
- Reflexion
23-
- **Extensible Tools**: Flexible tool system with prebuilt examples
24-
25-
## Configuration
2+
# 🧠 Agents-SDK - A High Performance C++ Framework for AI Agents
3+
4+
**Agents-SDK** is a **high-performance, low-memory C++ framework** for building **on-device, agentic AI systems** — think **LangChain for the edge**. This SDK is purpose-built for developers who want to create **local-first AI agents** that can reason, plan, and act without relying on the cloud.
5+
6+
## 🚀 Features
7+
8+
- ⚙️ **Modular Architecture** — Compose agents from interchangeable components.
9+
- 🧩 **Multi-LLM Support** — Connect to multiple providers seamlessly:
10+
- **OpenAI** (GPT-4o, GPT-4, GPT-3.5 Turbo)
11+
- **Anthropic** (Claude 3 family models (Opus, Sonnet, Haiku)
12+
- **Google** (Gemini family models (Pro, Flash)
13+
- **Ollama/llama-cpp** (local models like Llama, Mistral, etc.)
14+
-**Optimized for Speed and Memory** — Built in C++ with focus on performance.
15+
- 🔁 **Built-In Workflow Patterns**
16+
- Prompt Chaining
17+
- Routing
18+
- Parallelization
19+
- Orchestrator-Workers
20+
- Evaluator-Optimizer
21+
- 🤖 **Autonomous Agents** — Supports modern reasoning strategies:
22+
- ReAct (Reason + Act)
23+
- CoT (Chain-of-Thought)
24+
- Plan and Execute
25+
- Zero-Shot
26+
- Reflexion
27+
- 🧠 **Extensible Tooling System** — Plug in your own tools or use built-in ones (Web Search, Calculator, Python Executor, etc).
28+
29+
## ⚙️ Requirements
30+
31+
- C++20 compatible compiler (GCC 14+, Clang 17+, MSVC 2022+)
32+
- Bazel 8.3.1+
33+
34+
- Dependencies (already provided for convenience)
35+
- python3 (3.11+)
36+
- libcpr (C++ Requests)
37+
- libcurl
38+
- nlohmann/json
39+
- spdlog
40+
41+
## 🧭 Quick Start
42+
43+
### Installation
44+
45+
1. Clone the repository:
46+
```bash
47+
git clone https://github.com/RunEdgeAI/agents-sdk.git
48+
```
49+
50+
2. Navigate to SDK:
51+
```bash
52+
cd agents-sdk
53+
```
54+
55+
3. Obtain API keys:
56+
- For OpenAI models: Get an API key from [OpenAI's platform](https://platform.openai.com/api-keys)
57+
- For Anthropic models: Get an API key from [Anthropic's console](https://console.anthropic.com/account/keys)
58+
- For Google models: Get an API key from [Google AI Studio](https://ai.google.dev/)
59+
60+
### Building
61+
62+
Build everything in this space:
63+
64+
```bash
65+
bazel build ...
66+
```
67+
68+
### Configuration
2669

2770
You can configure API keys and other settings in three ways:
2871

@@ -51,26 +94,7 @@ The framework will check for API keys in the following order:
5194
2. Environment variables
5295
3. Command-line arguments
5396

54-
## Requirements
55-
56-
- C++20 compatible compiler
57-
- Bazel 8.3.1+
58-
59-
- Dependencies (already provided for convenience)
60-
- libcpr (C++ Requests)
61-
- libcurl
62-
- nlohmann/json
63-
- spdlog
64-
65-
## Building
66-
67-
Build everything in this space:
68-
69-
```bash
70-
bazel build ...
71-
```
72-
73-
## Usage
97+
### Usage
7498

7599
Here's a simple example of creating and running an autonomous agent:
76100

@@ -107,30 +131,6 @@ int main() {
107131
}
108132
```
109133

110-
## Getting Started
111-
112-
### Prerequisites
113-
114-
Before you begin, ensure you have the following installed:
115-
- A C++20 compatible compiler (GCC 8+, Clang 7+, or MSVC 2019+)
116-
117-
### Installation
118-
119-
1. Clone the repository:
120-
```bash
121-
git clone https://github.com/RunEdgeAI/agents-sdk.git
122-
```
123-
124-
2. Navigate to SDK:
125-
```bash
126-
cd agents-sdk
127-
```
128-
129-
3. Obtain API keys:
130-
- For OpenAI models: Get an API key from [OpenAI's platform](https://platform.openai.com/api-keys)
131-
- For Anthropic models: Get an API key from [Anthropic's console](https://console.anthropic.com/account/keys)
132-
- For Google models: Get an API key from [Google AI Studio](https://ai.google.dev/)
133-
134134
### Running Your First Example
135135

136136
The simplest way to start is with the `simple_agent` example, which creates a basic autonomous agent that can use tools to answer questions:
@@ -142,7 +142,7 @@ The simplest way to start is with the `simple_agent` example, which creates a ba
142142

143143
1. From the release directory, run the example:
144144
```bash
145-
bazel run examples:simple_agent your_api_key_here
145+
bazel run examples:simple_agent -- your_api_key_here
146146
```
147147

148148
Alternatively, you can set your API key as an environment variable:
@@ -207,25 +207,27 @@ You can modify examples/simple_agent.cpp to explore different configurations:
207207
agent.setPlanningStrategy(AutonomousAgent::PlanningStrategy::COT);
208208
```
209209

210-
## Examples
210+
## 🧪 Included Examples
211211

212212
The repository includes several examples demonstrating different workflow patterns:
213213

214-
- `simple_agent`: Basic autonomous agent example
215-
- `prompt_chain_example`: Demonstrates prompt chaining workflow
216-
- `routing_example`: Shows how to implement routing
217-
- `parallel_example`: Parallel execution of tasks
218-
- `orchestrator_example`: Orchestrator-workers pattern
219-
- `evaluator_optimizer_example`: Demonstrates the evaluator-optimizer workflow
220-
- `autonomous_agent_example`: Full-featured autonomous agent
214+
| Example | Description |
215+
| ----------------------------- | --------------------------------- |
216+
| `simple_agent` | Basic autonomous agent |
217+
| `prompt_chain_example` | Prompt chaining workflow |
218+
| `routing_example` | Multi-agent routing |
219+
| `parallel_example` | Parallel task execution |
220+
| `orchestrator_example` | Orchestrator–worker pattern |
221+
| `evaluator_optimizer_example` | Evaluator–optimizer feedback loop |
222+
| `autonomous_agent_example` | Full-featured autonomous agent |
221223

222-
Run examples from the build directory:
224+
Run examples available:
223225

224226
```bash
225-
./bin/examples/simple_agent your_api_key_here
227+
bazel run examples:<simple_agent> -- your_api_key_here
226228
```
227229

228-
## Project Structure
230+
## 📂 Project Structure
229231

230232
- `lib/`: Public library for SDK
231233
- `include/agents-cpp/`: Public headers
@@ -242,14 +244,7 @@ Run examples from the build directory:
242244
- `llms/`: LLM provider implementations
243245
- `bin/examples/`: Example applications
244246

245-
## Supported LLM Providers
246-
247-
- **Anthropic Claude**: Claude 3 family models (Opus, Sonnet, Haiku)
248-
- **OpenAI**: GPT-4o, GPT-4, GPT-3.5 Turbo
249-
- **Google**: Gemini family models (Pro, Flash)
250-
- **Ollama**: Local models like Llama, Mistral, etc.
251-
252-
## Extending
247+
## 🛠️ Extending the SDK
253248

254249
### Adding Custom Tools
255250

@@ -291,10 +286,10 @@ public:
291286
};
292287
```
293288

294-
## License
289+
## 📚 Acknowledgements
295290

296-
This project is licensed under a proprietary License - see the [LICENSE](./LICENSE.md) file for details.
291+
This implementation is inspired by Anthropic's article ["Building effective agents"](https://www.anthropic.com/research/building-effective-agents) and and re-engineered in C++ for real-time, usage on edge devices.
297292

298-
## Acknowledgements
293+
## ⚖️ License
299294

300-
This implementation began based on Anthropic's article ["Building effective agents"](https://www.anthropic.com/research/building-effective-agents) and frequently draws inspiration from their research and recommendations.
295+
This project is licensed under a proprietary License - see the [LICENSE](./LICENSE.md) file for details.

0 commit comments

Comments
 (0)