OmniAgent内置工具全清单:文件、终端、Web搜索18大工具,AI Agent的效率工具箱
【免费下载链接】OmniAgentAn agent capable of self-evolving and dynamically hardening security项目地址: https://gitcode.com/gh_mirrors/om/OmniAgent
OmniAgent 是一个可自进化、安全动态加固的开源 AI Agent 框架,内置 18 个开箱即用的工具,覆盖文件操作、终端命令、Web 搜索、进程管理与长期记忆等核心场景。本文带你 5 分钟看懂这套"AI Agent 效率工具箱"的完整清单、架构设计与安全防护机制,帮助你快速判断它能否胜任你的自动化任务。
🧰 18 个内置工具速览:一张表看懂功能分布
所有内置工具都集中在 omniagent/tools/ 目录,另有记忆工具位于 omniagent/agents/memory_manager.py。完整清单如下:
| 分组 | 工具名 | 功能一句话说明 | 源码位置 |
|---|---|---|---|
| 文件操作 | read_file | 带行号分页读取文件 | file_tools.py |
| 文件操作 | write_file | 写入/覆盖文件,自动创建目录 | file_tools.py |
| 文件操作 | edit_file | 精确字符串替换,防误改 | file_tools.py |
| 搜索导航 | ls | 列出目录内容,含文件大小 | ls_tool.py |
| 搜索导航 | find | 按 glob 模式定位文件 | find_tool.py |
| 搜索导航 | grep | 正则搜索文件内容,支持包含/排除规则 | grep_tool.py |
| 搜索导航 | diff | 对比两个文件,输出 unified diff | diff_tool.py |
| 终端 | bash | 执行 Shell 命令,支持后台与超时控制 | bash_tool.py |
| 进程管理 | process_list | 列出运行中进程及 CPU/内存占用 | process_tool.py |
| 进程管理 | process_kill | 按 PID 终止进程(需审批) | process_tool.py |
| 数据处理 | load_json | 加载并格式化解析 JSON | json_tool.py |
| 数据处理 | save_json | 以缩进格式保存 JSON 数据 | json_tool.py |
| Web | web_search | Brave Search 网页搜索(最多 10 条) | web_tools.py |
| Web | web_fetch | 抓取网页并转为纯文本 | web_tools.py |
| Web | http | 任意 HTTP 请求(GET/POST/PUT…) | http_tool.py |
| 长期记忆 | memory_search | 混合检索跨会话记忆,附来源引用 | memory_manager.py |
| 长期记忆 | memory_get | 按行号范围读取记忆文件 | memory_manager.py |
💡 记忆工具仅在配置开启记忆功能时自动注册(见 reflexion.py),基础 16 个工具则在启动时全部注册。
🏗️ 工具是怎么组织的?三步看懂架构
想理解这套工具箱的设计,只需看三个核心概念:
1. 统一基类:每个工具都继承自 base.py 中的Tool抽象类,只需声明name、description和参数 schema,LLM 就能按 function calling 规范正确调用它。
2. 统一执行:所有工具实现同一个execute方法,返回结构化的ToolResult(成功/输出/错误/元数据),无论成败 Agent 都能稳定解析,出错时不会"崩"在解析环节。
3. 统一注册:ToolRegistry 集中管理全部工具,默认 14 个基础工具在 reflexion.py 的注册入口 一次性挂载;扩展机制(extensions/base.py)还支持第三方工具即插即用。
📁 文件操作三件套:读、写、精确改
文件工具(file_tools.py)是编码类 Agent 的地基,细节上很见功力:
read_file:带行号输出,支持offset/limit分页读取大文件,读完还会提示"还有多少行"(file_tools.py),避免一次性撑爆上下文。write_file:写入时自动创建父目录,并返回行数、字节数等元数据(file_tools.py)。edit_file:要求old_text精确且唯一匹配,若文本出现多次会直接拒绝修改并提示"请更具体一些"(file_tools.py)——这是防止 Agent 误伤代码的关键防线。
🔍 搜索与导航四件:grep、find、ls、diff
这一组工具对应命令行开发者的日常肌肉记忆(源码在 grep_tool.py、find_tool.py、ls_tool.py、diff_tool.py):
| 工具 | 亮点细节 |
|---|---|
grep | 完整正则支持;include/exclude按扩展名过滤;忽略.和_开头目录;结果限 200 条防刷屏(grep_tool.py) |
find | **/*.py式 glob 匹配,只返回文件,超过 100 个自动截断提示 |
ls | 目录优先排序,自动换算 B/KB/MB 文件大小 |
diff | unified diff 输出,附新增/删除行数统计,超长自动截断 |
对新手很友好的一点:这些工具的输出格式对 LLM 极其友好——文件:行号: 内容的标准格式让模型能"直接定位",而不需要你手动翻译结果。
🌐 Web 工具:搜索、抓取、任意请求
Web 能力是 Agent 做调研、查资料的核心(web_tools.py、http_tool.py):
web_search:调用 Brave Search API,返回标题+URL+摘要,最多 10 条。⚠️ 需要设置环境变量BRAVE_API_KEY,未配置时会明确报错而不是静默失败(web_tools.py)。web_fetch:抓取网页自动剥离 HTML 标签转为纯文本,JSON 响应自动美化,内容上限 10 万字符、最多跟随 5 次跳转(web_tools.py)。http:万能请求工具,支持 GET/POST/PUT/DELETE/PATCH 等 7 种方法,可自定义请求头与 body,响应超过 5 万字符自动截断。
安全方面,所有联网工具都经过 url_security.py 校验,拦截内网/私有地址请求(SSRF 防护),并逐个验证每一次跳转目标。
💻 终端与进程管理:有牙齿,也有护栏
bash:异步执行命令,默认 30 秒超时,超时会直接 kill 进程;支持background参数后台启动(如起一个服务)并返回 PID(bash_tool.py)。process_list:基于 psutil 列出全部进程,按 CPU 占用降序排列,支持按名称过滤。process_kill:先优雅终止、5 秒无响应再强杀;权限不足会返回明确错误。该工具被标记为高危,默认需要用户审批。
🧠 记忆与配置工具:跨会话的"长期大脑"
开启记忆后,Agent 还会多出两件"跨会话武器"(memory_manager.py):
memory_search:用混合检索(向量+关键词)搜索历史记忆,每条结果都带文件#行号级来源引用,方便核对。memory_get:按行号精确读取记忆文件片段,按需加载,节省 Token。
工具权限策略定义在 policy.py,按minimal(只读)/coding(开发)/full(全量)三档管控。
🛡️ 安全加固:每个工具都有"刹车片"
OmniAgent 宣传的"动态加固安全",在工具层体现为四道防线:
- 危险命令黑名单:
bash工具内置rm -rf /、mkfs、fork 炸弹等危险模式检测,命中直接拦截(bash_tool.py); - 路径沙箱:所有文件类工具经过
safe_path校验,拒绝路径穿越攻击(fs.py); - SSRF 防护:Web/HTTP 工具只允许访问公网地址,跳转逐跳校验;
- 审批与审计:
bash、process_kill等高危操作默认进入审批流(approval.py),所有决策留痕于审计日志(audit.py)。
这套"工具信任级别 + 四层动态扫描"的组合,是它与普通 Agent 框架拉开差距的地方。
✅ 新手上手建议:按场景选工具
- 只想读资料、零风险:把
tools.profile设为minimal,只开放read_file与搜索类工具; - 日常编码:
coding档位即可,文件三件套 + grep/find + bash 覆盖 90% 场景; - 需要上网调研:
full档位并配置BRAVE_API_KEY,让web_search真正可用; - 精细化管控:通过配置的
tools.allow/tools.deny列表可增删任意工具,显式拒绝规则优先级最高(reflexion.py)。
一句话总结:18 个工具 + 统一架构 + 多层安全,让 OmniAgent 既能像熟练的命令行工程师一样干活,又始终有一道你亲自确认的刹车。想体验的话,pip install -e .之后运行omniagent onboard即可完成 LLM 后端配置,omniagent chat即可在终端开始对话(完整步骤见 README.md)。
【免费下载链接】OmniAgentAn agent capable of self-evolving and dynamically hardening security项目地址: https://gitcode.com/gh_mirrors/om/OmniAgent
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考