Cellium Agent

A self-evolving AI agent that learns from failures: a decision loop plus Bayesian Bandit breaks repetitive mistakes and dead loops so the assistant keeps improving.

Stars
★ 221
Last updated
9d ago
License
NOASSERTION
Primary language
Python

At a glance

How it runs
CLIWeb appSelf-hosted service
Works with
Universal · cross-platformOpenAI API
Cost
Free software; you pay for model usage
Setup effort
Low · running in minutes
You'll need
Python 3.12+OpenAI-compatible API keyFastAPIDrissionPage (for web_fetch)Shell / CLINetwork accessLocal filesystem
Typical use
Individual developers who want a local AI assistant that doesn't loop forever: the decision loop auto-redirects or terminates on repeated tool calls or output repetition (exact_repetition_count >= 5), suiting long-running unattended tasks.
Not a fit if
  • Enterprises with strict license compliance needs; the repo license field is NOASSERTION
  • Teams needing independent benchmark evidence of the self-learning gains before production

What does this agent do, and when should you use it?

Cellium Agent (GitHub: Cellium-Project/Cellium-Agent) is a Python self-evolving AI agent framework built on a microkernel architecture (EventBus + dependency injection + BaseTool) that works with any OpenAI-compatible API. Its core is the Control Loop: each round runs feature extraction, rule evaluation, Bandit decision (Thompson Sampling), execution, feedback evaluation, and learning update, automatically adapting strategy (continue/retry/redirect/compress/terminate) when it detects stagnation, loops, or context saturation. A three-layer memory system combines personality memory, session memory, and long-term memory (SQLite FTS5 full-text search plus optional vector hybrid recall), with sensitive-data redaction and write interception built in. Components are hot-pluggable: dropping a file into components/ takes effect within 3 seconds, running in a three-layer sandbox (process isolation, path mapping, dangerous-method interception). It connects through WebUI, QQ, Telegram, Lark, and WeChat channels, and ships with scheduled task dispatch and background event triggering.

On startup, Cellium runs the AgentLoop: it loads OpenAI-compatible API credentials and model config from config/agent/llm.yaml; FeatureExtractor extracts live signals such as stuck iterations, repetition score, and context saturation; HeuristicEngine rules propose candidate actions and ActionBandit breaks ties via Thompson Sampling. After tool execution, FeedbackEvaluator scores each round (with n-step returns), updates Beta distributions, and persists statistics. The PEOP engine implements a Plan-Execute-Observe-RePlan state machine that generates up to 5-step plans with zero LLM calls during execution and performs partial replanning (up to 3 times) on failure. Memory automatically extracts goal/finding/error notes during session compression into long-term memory, redacting sensitive values to [REDACTED]. Component-wise: ComponentWatcher scans components/ every 3 seconds, and new components are audited, whitelist-confirmed, and registered as BaseTools; built-ins include web_fetch (DrissionPage headless browser: navigation, screenshots, QR-code detection, JS actions), qq_files (file transfer with QQ), skill_installer/skill_manager (install SKILL.md skill packages from zip/tar archives), ComponentBuilder (the agent creates new components at runtime), and scheduler (interval/daily/weekly tasks whose results are pushed back to the originating platform).

  1. Individual developers who want a local AI assistant that doesn't loop forever: the decision loop auto-redirects or terminates on repeated tool calls or output repetition (exact_repetition_count >= 5), suiting long-running unattended tasks.
  2. Ops engineers needing scheduled monitoring: create tasks in natural language like 'check server status hourly and notify me on anomalies,' with results pushed to the originating platform (QQ/Telegram/Lark, etc.).
  3. Users who want chat-platform presence: ChannelManager connects the agent to QQ, Telegram, Lark, and WeChat with file transfer and message injection; qq_files moves files between QQ and local disk.
  4. Anyone doing web automation: the web_fetch component (DrissionPage) handles scraping, screenshots, QR-code login, and form filling.
  5. Teams wanting ever-growing agent capability: the agent builds its own components via ComponentBuilder and installs SKILL.md skill packages via skill_installer at runtime, with no restart required.

How do you install or deploy this agent?

Option 1 (one-click bundle): on Windows, download and extract Cellium-Agent-Windows.zip via PowerShell and run .\CelliumAgent.exe; on Linux x64/ARM64 and macOS, curl the matching tar.gz (e.g., https://github.com/Cellium-Project/Cellium-Agent/releases/latest/download/Cellium-Agent-Linux.tar.gz), extract, and run ./start-cellium.sh. Option 2 (pip): pip install cellium-agent; for Lark support, pip install cellium-agent[lark]. Option 3 (source): pip install -r requirements.txt, then python main.py. Required configuration: edit config/agent/llm.yaml with your OpenAI-compatible API key, endpoint, and model name.

How do you use this agent?

After pip install, run cellium to launch the TUI, or cellium-web for the web service; from source, python main.py then open http://localhost:18000 for the chat UI and http://localhost:18000/docs for API docs (the port auto-switches if 18000 is taken; check startup logs). Then: 1) give tasks in natural language, e.g., 'search the latest AI news and generate a report'; 2) confirm trusted components with /trust; 3) create scheduled tasks in natural language, e.g., 'check the weather every morning at 8'; 4) drop component files into components/ for 3-second hot loading; 5) optionally enable vector recall via config/agent/embedding.yaml.

What are this agent's strengths and limitations?

Pros
  • The Control Loop + Bayesian Bandit learning is a concrete differentiator: it switches between continue/retry/redirect/compress/terminate based on live stagnation/loop/saturation features rather than static prompting
  • Hot-pluggable and self-extending components: files in components/ load within 3 seconds, the agent can build new tools itself via the built-in ComponentBuilder, and a three-layer sandbox (process isolation, path mapping, dangerous-method interception) protects execution
  • Three-layer memory (personality + session + FTS5/vector hybrid recall) with automatic archiving on compression and sensitive-data redaction works out of the box; vector search is off by default with no external service dependency
  • Mature multi-channel deployment: WebUI, QQ, Telegram, Lark, and WeChat unified through ChannelManager, scheduled results pushed back to the source platform, plus one-click bundles (Windows/Linux x64/ARM64/macOS) and PyPI install
Limitations
  • The GitHub license field is NOASSERTION; although the README states Apache 2.0, verify the actual license before enterprise adoption
  • Deep reliance on OpenAI-compatible APIs: all LLM calls and optional embeddings (default 1536-dim, e.g., text-embedding-3-small) require your own API keys; cost and provider availability are on the user
  • The self-learning/evolution mechanisms (Bandit, Strategy Gene integration) rest on the cited paper and project claims; the repo lacks independent benchmark data validating real-world gains
  • The agent can write and execute its own components; despite sandboxing, users should assess whitelist and interception bypass risks, and no performance data is given for FTS5-based memory at large knowledge-base scale

How does this agent compare with similar options?

Key facts side by side with the most closely related agents.

Agent Source review Form / cost Stars Updated Language Full support on
Cellium Agent This agent 49 · Major gaps CLIFree + model costs ★ 221 9d ago Python OpenAI API
MetaBot Personal Agent Workspace 51 · Major gaps Self-hosted serviceFree + model costs ★ 997 1mo ago TypeScript Codex · Claude Code
Flock AI Dev Team 67 · Some gaps Self-hosted serviceFree + model costs ★ 501 10d ago Go Claude Code · Claude API
zot Coding Agent 59 · Major gaps CLIFree + model costs ★ 351 1d ago Go OpenAI API · Claude API

How does FollowAgents rate this agent?

FollowAgents source review · FARS-2.1
Major gaps
49/ 100 5-point scale 2.5 / 5
This review covers the source as of Sep 10, 2026. The project has shipped 15 stable release(s) since, which have not been re-reviewed. The score and verdict describe the reviewed version only. Recent releases ↓
Trust 11/29
Reliability 8/14
Adaptability 10/18
Convention 10/18
Effectiveness 7/13
Verifiability 3/8
Why each dimension lost points
Trust11 / 29 · 1.9/5

Evidence shows: component sandbox (process isolation + path mapping + dangerous-method interception), sensitive-data redaction with write interception, and a /trust whitelist for components are described; tests cover archive dedup. Deductions: tests explicitly assert 'control-loop constraints no longer block tool execution: even with forbidden tools, tools should execute normally' — the forbidden-tool blocking mechanism contradicts README claims of dynamic tool prohibition; no per-action confirmation for high-privilege shell/browser automation/multi-platform file transfer; loose dependency pins plus vendored prebuilt binaries (vector_engine dll, ripgrep); Agent-created runtime components lack rollback/audit documentation; the cited arXiv 2604.15097 has an implausible future date, weakening attribution.

Reliability8 / 14 · 2.9/5

Evidence shows: multi-platform CI, startup health checks, tool error handling tests, and port-fallback documentation. Deductions: version mismatch between pyproject (1.4.3.post7) and CI (1.4.3.131); README claims conflict with the test asserting forbidden tools are no longer blocked; one skipped test documents a known null-reference bug (honest but unfixed); dependency specs declare nonexistent version floors (fastapi>=0.140.0, uvicorn>=0.51.0), casting doubt on installability.

Adaptability10 / 18 · 2.8/5

Evidence shows: multi-platform support including ARM64 with Chromium note, concrete heuristic thresholds and scheduler trigger conditions, Flash mode for simple tasks. Deductions: no stated capability boundaries ('infinite evolution' is marketing); risk boundary of self-extending components undefined; scenarios listed as examples without out-of-scope guidance.

Convention10 / 18 · 2.8/5

Evidence shows: complete README (architecture diagrams, config, install, component spec, directory conventions), reserved tool-name list, full Apache-2.0 LICENSE text with license-files declared, bundled ripgrep license. Deductions: no known-limitations or FAQ document; no standalone CHANGELOG (releases link only) and inconsistent version scheme; registry license metadata NOASSERTION conflicts with repo declaration; single-author maintenance (QQ email) with no governance or update commitment.

Effectiveness7 / 13 · 2.7/5

Evidence shows: good output usability (TUI/WebUI/API docs, user-friendly _intent tool descriptions, multiple install paths); differentiated value from Control Loop + Bayesian Bandit + three-layer memory. Deductions: no benchmarks or ablation data supporting the differentiated benefit, so cost-benefit is unevaluable (token/LLM-call costs are qualitative only); self-learning effectiveness rests entirely on promotional assertion.

Verifiability3 / 8 · 1.9/5

Evidence shows: some claims traceable to tests and CI (archive dedup, constraint rendering, health check). Deductions: core selling points (self-evolution, Bandit learning gains, 40+ model registry, ~230-token Gene representation) lack verifiable corroboration; the cited arXiv 2604.15097 does not correspond to a plausible publication (future date) — a falsifiable suspect citation; README's 'dynamic tool prohibition' is contradicted by test assertions; marketing language is not separated from factual statements.

Risks and how to mitigate them
  • Static review based only on provided files; no code was executed; confidence is low.
  • Tests assert 'forbidden tools are no longer blocked', contradicting README claims of tool-prohibition controls — manually verify the actual blocking behavior before deployment.
  • Dependency version floors (fastapi>=0.140.0, uvicorn>=0.51.0, textual>=8.0.0, etc.) do not match public PyPI releases; pip install may fail or pull unverifiable packages.
  • The cited arXiv ID 2604.15097 has an implausible date; the scholarly attribution is suspect.
  • Distributed prebuilt binaries (vector_engine dll, ripgrep) ship without hash or signature verification guidance.
  • The Agent can create components at runtime with substantial shell/browser/cross-platform outbound capabilities; deploy in an isolated environment and review trusted_components..
  • Version mismatch between pyproject and CI, and NOASSERTION license metadata in the registry, require manual compliance verification.
Evidence confidence: Low Reviewed Sep 10, 2026 Reviewed revision 9c0e975e62cf New commits since this review; the score may not cover them
See the full review method →

Recent releases

Latest entries from the project's GitHub Releases. Notes are quoted from upstream as written, not rewritten or tested by FollowAgents.

  1. v1.4.3.146 Cellium Agent v1.4.3.146
    Release notes excerpt
    Cellium Agent v1.4.3.146 下载 / Download - Windows: Cellium-Agent-Windows.zip - Linux (x64): Cellium-Agent-Linux.tar.gz - Linux (ARM64): Cellium-Agent-Linux-ARM64.tar.gz - macOS: Cellium-Agent-macOS.tar.gz 使用 / Usage 中文: 解压后运行对应平台的启动脚本即可。 - Windows: 双击 CelliumAgent.exe - Linux/macOS: ./start-cellium.sh English: Extract and run the launcher for your platform. - Windows: Double-click CelliumAgent.exe - Linux/macOS: Run ./start-cellium.sh 注意 / Notes Linux ARM64: 如需使用网页搜索功能,请安装 Chromium 浏览器: ```bash sudo apt install chromium-browser ``` …
    View on GitHub ↗
  2. v1.4.3.145 Cellium Agent v1.4.3.145
    Release notes excerpt
    Cellium Agent v1.4.3.145 下载 / Download - Windows: Cellium-Agent-Windows.zip - Linux (x64): Cellium-Agent-Linux.tar.gz - Linux (ARM64): Cellium-Agent-Linux-ARM64.tar.gz - macOS: Cellium-Agent-macOS.tar.gz 使用 / Usage 中文: 解压后运行对应平台的启动脚本即可。 - Windows: 双击 CelliumAgent.exe - Linux/macOS: ./start-cellium.sh English: Extract and run the launcher for your platform. - Windows: Double-click CelliumAgent.exe - Linux/macOS: Run ./start-cellium.sh 注意 / Notes Linux ARM64: 如需使用网页搜索功能,请安装 Chromium 浏览器: ```bash sudo apt install chromium-browser ``` …
    View on GitHub ↗
  3. v1.4.3.144 Cellium Agent v1.4.3.144
    Release notes excerpt
    Cellium Agent v1.4.3.144 下载 / Download - Windows: Cellium-Agent-Windows.zip - Linux (x64): Cellium-Agent-Linux.tar.gz - Linux (ARM64): Cellium-Agent-Linux-ARM64.tar.gz - macOS: Cellium-Agent-macOS.tar.gz 使用 / Usage 中文: 解压后运行对应平台的启动脚本即可。 - Windows: 双击 CelliumAgent.exe - Linux/macOS: ./start-cellium.sh English: Extract and run the launcher for your platform. - Windows: Double-click CelliumAgent.exe - Linux/macOS: Run ./start-cellium.sh 注意 / Notes Linux ARM64: 如需使用网页搜索功能,请安装 Chromium 浏览器: ```bash sudo apt install chromium-browser ``` …
    View on GitHub ↗

FAQ

Which model provider is required?
Any OpenAI-compatible API works; configure key, endpoint, and model in config/agent/llm.yaml. A built-in 40+ model registry auto-detects context window and tool support.
Does vector search need an extra service?
It is off by default. You can optionally configure an OpenAI-compatible embedding API (config/agent/embedding.yaml); otherwise only FTS5 full-text search is used, with no external dependency.
Are agent-generated components safe?
Components run in isolated subprocesses (crashes don't affect the main process), file paths map into sandbox_root/, os.system/subprocess are intercepted at runtime, and components require user /trust confirmation for the whitelist.
What happens if the agent gets stuck or loops?
Built-in handling: redirect triggers when stagnation/repetition scores exceed thresholds, compress/stop triggers at context saturation above 0.7/0.95, terminate at 5+ exact output repetitions, with max-iteration and token-budget rules as backstops.
How do I connect QQ/Telegram and other platforms?
ChannelManager unifies message routing, file transfer, and injection across platforms; QQ uses a websockets client, Lark needs cellium-agent[lark], and the WebUI plus API docs are served on port 18000 after startup.
View on GitHub ↗ Install ↓

Related agents