Skip to main content

A comprehensive framework for building agents with Small Language Models

Project description

effGen: Enabling Small Language Models as Capable Autonomous Agents

PyPI version Python 3.8+ License: MIT Downloads GitHub stars

Website | Documentation | Paper | PyPI


What is effGen?

effGen is a framework that makes Small Language Models (1B-7B parameters) work as powerful AI agents. While most agent frameworks require massive LLMs, effGen is optimized from the ground up for efficient, smaller models.

from effgen import Agent, load_model

# Create an agent with any model
agent = Agent(
    model=load_model("Qwen/Qwen2.5-3B-Instruct"),
    tools=["calculator", "web_search", "code_executor"]
)

# Run tasks
result = agent.run("Search for the latest AI news and summarize the top 3 stories")
print(result.output)

Installation

From PyPI (Recommended)

pip install effgen

With vLLM for faster inference

pip install effgen[vllm]

From Source

git clone https://github.com/ctrl-gaurav/effGen.git
cd effGen

# Option 1: Quick install (recommended)
./install.sh

# Option 2: Quick install for CI (no animations)
./install.sh --quick

# Option 3: Full install (includes vLLM, dev tools)
./install.sh --full

# Option 4: Manual install
pip install -e .

Quick Start

CLI Usage

# Run a task
effgen run "What is the capital of France?"

# Interactive chat
effgen chat

# Start API server
effgen serve --port 8000

Python API

from effgen import Agent
from effgen.core.agent import AgentConfig

# Configure your agent
config = AgentConfig(
    name="MyAgent",
    model="Qwen/Qwen2.5-3B-Instruct",
    tools=["calculator", "web_search"],
    enable_memory=True
)

# Create and run
agent = Agent(config)
result = agent.run("Calculate 15% tip on $85.50")

Features

Feature Description
SLM Optimized Prompt engineering and techniques designed for 1B-7B models
Multi-Model Supports HuggingFace, OpenAI, Anthropic, Gemini, vLLM
Tool Integration Built-in tools + MCP, A2A, ACP protocol support
Task Decomposition Automatic breakdown of complex tasks
Multi-Agent Coordinate multiple specialized agents
Memory Systems Short-term and long-term memory
Sandboxed Execution Safe code execution with Docker

Examples

See the examples/ directory:

python examples/basic_agent.py   # Calculator agent with tools
python examples/web_agent.py     # Web search agent

Security

effGen provides secure execution options:

  • Docker Sandbox: Isolated code execution
  • Input Validation: Automatic sanitization
  • Rate Limiting: Configurable limits on tool usage

For security policies and vulnerability reporting, see SECURITY.md.


Citation

@software{effgen2026,
  title = {effGen: Enabling Small Language Models as Capable Autonomous Agents},
  author = {Srivastava, Gaurav and Hussain, Aafiya and Wang, Chi and Lin, Yingyan and Wang, Xuan},
  year = {2026},
  url = {https://github.com/ctrl-gaurav/effGen},
  version = {0.0.1}
}

Links


License

MIT License - see LICENSE for details.


Get Started | Examples | GitHub

Made with care for the AI community

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

effgen-0.0.1.tar.gz (241.5 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

effgen-0.0.1-py3-none-any.whl (281.8 kB view details)

Uploaded Python 3

File details

Details for the file effgen-0.0.1.tar.gz.

File metadata

  • Download URL: effgen-0.0.1.tar.gz
  • Upload date:
  • Size: 241.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.7

File hashes

Hashes for effgen-0.0.1.tar.gz
Algorithm Hash digest
SHA256 368c86a1e5ab09b0e2978aa591b272eb55b7f08dd3c10d6c425d0a2b46dbf985
MD5 043188fd1e00d52506ac01209f389393
BLAKE2b-256 a7ea62a48a60646918889c01086d2ceab2479677575b8e93258cdb4e9ab6b3ed

See more details on using hashes here.

File details

Details for the file effgen-0.0.1-py3-none-any.whl.

File metadata

  • Download URL: effgen-0.0.1-py3-none-any.whl
  • Upload date:
  • Size: 281.8 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.7

File hashes

Hashes for effgen-0.0.1-py3-none-any.whl
Algorithm Hash digest
SHA256 4a37dc8603558e81fd9ab226cb063703e36dbc94806a2cca263d9beaada48c32
MD5 d1381f28a106e56225d83018baf8c0ed
BLAKE2b-256 efdb06371d8b02ff4789396e6689a5a439688f8771273f61597a4574260b90b7

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page