GenericAgent
A local autonomous-agent framework that turns completed work into reusable skills.
Per-dimension scores and reasoning
Evidence shows: an ask_user tool exists for human confirmation, but its trigger conditions or enforcement are not specified; README claims self-bootstrap but provides no logs or audit evidence; no data flow, sensitive data handling, dependency security, external effects, or rollback mechanisms are documented. Deductions: except for ask_user, other trust criteria lack evidence.
Evidence shows: README and pyproject.toml are largely consistent on Python version and dependencies, but no error handling or failure message documentation is provided; dependency availability is only listed as package names without version pinning or integrity checks. Deductions: failure messages missing, dependency availability evidence thin.
Evidence shows: README describes multiple use scenarios (web automation, OCR, computer use, etc.) and provides cross-platform notes; but capability boundaries are not explicit, trigger precision is only implied via natural language instruction examples, and environment adaptation relies on SOP auto-adjustment. Deductions: capability boundaries and trigger precision evidence insufficient.
Evidence shows: README is well-structured with installation guides, examples, roadmap; MIT license present; but version is only 0.1.0, no CHANGELOG, maintenance responsibility unclear. Deductions: versioning and maintenance responsibility evidence insufficient.
Evidence shows: README claims token efficiency but provides no verifiable benchmark data; marginal value is implied through self-evolution mechanism but lacks independent validation; cost-benefit is based on claims only. Deductions: output usability not specified, cost-benefit evidence thin.
Evidence shows: README references arXiv paper and evaluation benchmarks but provides no specific data or reproduction steps; self-bootstrap claim unverifiable; facts and inferences mixed. Deductions: claim traceability insufficient, cross-source corroboration limited.
- The agent has system-level control (browser, terminal, filesystem, keyboard/mouse, ADB) but no least-privilege or sandboxing mechanisms are provided, posing high risk.
- Self-bootstrap claims and evaluation results in README cannot be verified from the repository; treat with caution.
- Dependencies are not version-pinned and no integrity checks are provided, posing supply chain security risks.
What does this agent do, and when should you use it?
GenericAgent is a self-evolving autonomous-agent framework for operating a local computer. The repository describes a roughly 3K-line seed codebase built around nine atomic tools and an approximately 100-line execution loop in `agent_loop.py`. Its layered memory stores rules, indexes, global facts, task Skills/SOPs, and session archives so completed task paths can be recalled for similar work. The project exposes terminal and Streamlit interfaces plus Telegram, Discord, and Lark/Feishu bot frontends; browser operations use TMWebdriver, a local WebSocket server paired with a Chrome extension for a persistent browser session. It fits users prepared to define boundaries around local file, shell, browser, and device access, and to let the agent progressively configure capabilities.
The agent cycles through environment perception, task reasoning, tool execution, and memory updates in agent_loop.py. Its documented atomic tools are code_run, file_read, file_write, file_patch, web_scan, web_execute_js, ask_user, update_working_checkpoint, and start_long_term_update. For a new task, it can use code_run to install dependencies, write and debug scripts, then store a reusable workflow in memory for later recall as a Skill. Web operations run through TMWebdriver: a local WebSocket server and Chrome extension act on a real persistent Chrome/Chromium session through web_scan and web_execute_js, retaining browser-session data such as login state. The repository also presents mobile-device operation through ADB and task submission through its bundled frontends.
- An individual who wants to build a Hacker News morning digest once, schedule it, and later invoke the retained workflow with a short instruction.
- An operations assistant who needs browser work performed in an already signed-in Chrome session, after setting up the documented web-automation capability.
- A technical user who wants an agent to read, write, patch, and execute local scripts while retaining a reusable SOP for the solved task.
- A mobile-workflow user who needs an ADB-driven task, such as locating Alipay expenses above a chosen threshold over the last three months.
- A small team or individual that wants to submit local automation tasks through a terminal, Streamlit UI, Telegram, Discord, or Lark/Feishu.
What are this agent's strengths and limitations?
- The repository deliberately keeps the core small: about 3K lines, nine atomic tools, and an approximately 100-line Agent Loop.
- Its L0–L4 memory model is intended to retain successful workflows as reusable Skills/SOPs instead of re-solving every similar task from scratch.
- TMWebdriver is designed to operate a real persistent Chrome/Chromium session, preserving cookies, signed-in state, extensions, and browser-session characteristics.
- It offers terminal and Streamlit interfaces as well as multiple IM entry points, while documenting support for Claude, Gemini, Kimi, MiniMax, and other models.
code_runprovides a documented path for runtime extension through package installation, script creation, and external API calls.
- Its stated scope includes shell execution, file writes, browser control, keyboard/mouse input, and ADB, so adoption requires careful local-permission, account-session, and device-access controls.
- An LLM API key must be configured, but the repository does not provide a unified account-cost model, quota guidance, or detailed configuration for each provider.
- Python 3.14 is explicitly incompatible with
pywebviewand some dependencies, so deployments must stay on Python 3.11 or 3.12. - Web automation requires a manual Chrome-extension installation step, while some advanced functions depend on the agent probing the host, installing dependencies, and saving SOPs.
- The repository links evaluation and browser-detection results to an external technical-report repository; the supplied material does not include the full reproduction configuration.
How do you install or deploy this agent?
Use Python 3.11 or 3.12; the repository says not to use Python 3.14. Clone and install:
git clone https://github.com/lsdefine/GenericAgent.git && cd GenericAgent
uv venv && uv pip install -e ".[ui]"
cp mykey_template_en.py mykey.pyFill in an LLM API key in mykey.py. The [ui] extra installs the bundled UI dependencies; the repository says it can be omitted for headless operation.
How do you use this agent?
After configuring the API key, start the recommended terminal interface with python frontends/tui_v3.py, or the Streamlit interface with python launch.pyw. Documented IM entry points include python frontends/tgapp.py, python frontends/dcapp.py, and python frontends/fsapp.py. To enable web automation, instruct the agent: “Set up your web automation capability.” Then complete the documented manual step of dragging the bundled Chrome extension into chrome://extensions. OCR, vision, and computer-use capabilities are likewise enabled by asking the agent to perform the corresponding setup task.
How does this agent compare with similar options?
The repository compares GenericAgent with OpenClaw and Claude Code. It positions GenericAgent around a smaller core, a minimal atomic toolset, local system control, and accumulated Skills; it characterizes OpenClaw as a multi-service, multi-module system and Claude Code as having a richer CLI toolset with browser control through an MCP plugin. Code-size, capability, and performance assertions in that table are the repository’s own claims and should be tested against the intended deployment and model.
FAQ
What credentials are required?
mykey.py from mykey_template_en.py and provide an LLM API key.Is a graphical interface required?
frontends/tui_v3.py terminal UI and the launch.pyw Streamlit UI, and says the [ui] extra can be skipped for headless operation.