GenericAgent
让本地 LLM 代理在完成任务后沉淀可复用技能。
按维度查看评分与理由
证据显示:存在 ask_user 工具用于人工确认,但未说明其触发条件或强制程度;README 声称自举,但无日志或审计证据;未提供数据流、敏感数据处理、依赖安全、外部影响或回滚机制。扣分:除 ask_user 外,其余信任标准缺乏证据。
证据显示:README 与 pyproject.toml 在 Python 版本和依赖上基本一致,但未提供错误处理或失败消息的文档;依赖可用性仅列出包名,未提供版本锁定或完整性校验。扣分:失败消息缺失,依赖可用性证据薄弱。
证据显示:README 描述了多种使用场景(网页自动化、OCR、计算机使用等),并提供了跨平台说明;但能力边界未明确,触发精度仅通过自然语言指令示例体现,环境适配依赖 SOP 自动调整。扣分:能力边界和触发精度证据不足。
证据显示:README 结构清晰,包含安装指南、示例、路线图;MIT 许可证存在;但版本号仅 0.1.0,无 CHANGELOG,维护责任未明确。扣分:版本管理和维护责任证据不足。
证据显示:README 声称 token 效率高,但未提供可验证的基准数据;边际价值通过自进化机制体现,但缺乏独立验证;成本效益仅基于声称。扣分:输出可用性未具体说明,成本效益证据薄弱。
证据显示:README 引用了 arXiv 论文和评测基准,但未提供具体数据或复现步骤;自举声明无法验证;事实与推断混合。扣分:声明可追溯性不足,交叉验证有限。
- 该 Agent 具有系统级控制能力(浏览器、终端、文件系统、键鼠、ADB),但未提供权限最小化或沙箱机制,存在高风险。
- README 中的自举声明和评测结果无法从仓库内验证,需谨慎对待。
- 依赖未锁定版本,且未提供完整性校验,供应链安全风险。
这个 Agent 能做什么,适合哪些场景?
GenericAgent 是一个面向本地计算机操作的自我进化自主代理框架。仓库将核心描述为约 3K 行种子代码、9 个原子工具和约 100 行的 `agent_loop.py` 执行循环。它以分层记忆保存规则、索引、全局事实、任务 Skill/SOP 与会话归档,使完成过的任务路径可在后续相似任务中被直接召回。项目提供终端 UI、Streamlit UI,以及 Telegram、Discord、Lark/Feishu 等 IM 前端;浏览器操作通过 TMWebdriver 的本地 WebSocket 服务和 Chrome 扩展接入持久化浏览器会话。它适合愿意给代理本地文件、终端、浏览器或设备操作边界,并接受由代理逐步安装和配置能力的用户。
代理在 agent_loop.py 中循环感知状态、进行任务推理、调用工具并写入记忆。其列出的原子工具包括 code_run、file_read、file_write、file_patch、web_scan、web_execute_js、ask_user、update_working_checkpoint 和 start_long_term_update。首次处理新任务时,它可通过 code_run 安装依赖、编写和调试脚本,并将可复用流程沉淀到记忆层;后续相似任务可召回对应 Skill。网页操作使用 TMWebdriver:本地 WebSocket 服务配合 Chrome 扩展,对真实且持久化的 Chrome/Chromium 会话执行 web_scan 和 web_execute_js,以保留登录状态等浏览器会话数据。仓库还展示了通过 ADB 操作移动设备,以及通过前端将任务提交给代理的方式。
- 需要复用日常网页流程的个人用户,例如首次建立 Hacker News 晨报抓取与定时执行流程,后续用一句任务指令调用。
- 要在已登录 Chrome 会话中完成网页操作的运营或助理,例如配置浏览器自动化能力后使用已有 Cookie 和登录态处理站点任务。
- 需要在本地终端和文件系统中编写、运行、修补脚本的技术用户,例如让代理探索解决方案并把可复用 SOP 写入记忆。
- 需要通过 ADB 查看或处理移动端信息的用户,例如查询近三个月超过指定金额的支付宝支出。
- 希望从终端、Streamlit 页面或 Telegram、Discord、Lark/Feishu 消息入口发起自动化任务的个人或小团队。
这个 Agent 有哪些优点和局限?
- 核心设计刻意保持精简:仓库描述为约 3K 行核心代码、9 个原子工具和约 100 行 Agent Loop。
- 将任务执行路径写入 L0–L4 分层记忆,目标是让已解决任务沉淀为可重复调用的 Skill/SOP,而非每次从零开始。
- TMWebdriver 操作真实、持久化的 Chrome/Chromium 会话,可保留 Cookie、登录态、扩展和浏览器会话特征。
- 既有终端和 Streamlit 前端,也列出多种 IM 入口,并说明支持 Claude、Gemini、Kimi、MiniMax 等模型。
- 可借助
code_run在运行时安装 Python 包、编写脚本和调用外部 API,以扩展初始工具集。
- 其能力边界包含终端、文件写入、浏览器控制、键鼠和 ADB 操作;采用前必须评估本地权限、登录态和设备访问风险。
- 需要自行配置 LLM API Key;仓库没有给出统一的模型计费、配额或各提供商配置细节。
- Python 3.14 被明确标为与
pywebview及部分依赖不兼容,运行环境需限制在 Python 3.11 或 3.12。 - 网页自动化依赖一次手动安装 Chrome 扩展的步骤,且部分高级能力依赖代理自行探测系统、安装依赖和保存 SOP。
- 仓库描述的评测和浏览器检测结果链接到外部技术报告与数据仓库;此处未提供可独立复现这些结果的具体配置。
如何安装或部署这个 Agent?
使用 Python 3.11 或 3.12,避免 Python 3.14。克隆并安装:
git clone https://github.com/lsdefine/GenericAgent.git && cd GenericAgent
uv venv && uv pip install -e ".[ui]"
cp mykey_template_en.py mykey.py然后在 mykey.py 中填写 LLM API Key。[ui] 会安装项目提供的 UI 依赖;若只需无界面运行,仓库说明可不安装该额外依赖。
如何使用这个 Agent?
完成 API Key 配置后,可启动推荐的终端界面:python frontends/tui_v3.py;或启动 Streamlit 界面:python launch.pyw。IM 前端的已列命令包括 python frontends/tgapp.py、python frontends/dcapp.py 和 python frontends/fsapp.py。要启用网页自动化,可向代理发出“Set up your web automation capability.”,并按其指引将随附 Chrome 扩展拖入 chrome://extensions;OCR、视觉和计算机控制也以向代理下达对应设置任务的方式启用。
这个 Agent 与同类方案有什么区别?
仓库将 GenericAgent 与 OpenClaw 和 Claude Code 对比:其定位是以较小核心代码和少量原子工具换取本地系统控制与可积累的 Skill;OpenClaw 被描述为多服务、多模块架构,Claude Code 被描述为具有较丰富 CLI 工具集并通过 MCP 插件实现浏览器控制。比较表中的代码规模、能力与性能判断均为仓库自身陈述,应结合实际部署和目标模型验证。
常见问题
需要哪些凭据?
mykey_template_en.py 复制生成 mykey.py,并填写 LLM API Key。是否必须使用图形界面?
frontends/tui_v3.py 终端 UI 和 launch.pyw Streamlit UI,并说明可跳过 [ui] 额外依赖以无界面驱动代理。