Preset Tools

June 1, 2026 · View on GitHub


模块所在位置:

oxygent/preset_tools/
├── file_tools.py
├── http_tools.py
├── image_gen_tools.py
├── math_tools.py
├── oxy_manage_tools.py
├── python_tools.py
├── shell_tools.py
├── ssh_tools.py
├── string_tools.py
├── system_tools.py
└── time_tools.py

简介

preset_tools 包提供了 11 个内置的 FunctionHub 集合,涵盖常用的工具操作。每个模块导出一个 FunctionHub 实例,其中包含使用 @tool 装饰器修饰的函数,可以直接注册到 Agent 的 oxy_space 中。该包在导入时会自动发现并加载所有模块。


file_tools

FunctionHub(name="file_tools") — 限定在当前工作目录下的文件操作。

工具异步参数返回值用途
write_filepath: str, content: strstr创建或覆盖文件。
read_filepath: strstr读取并返回文件内容。
delete_filepath: strstr递归删除文件或目录。
view_text_filefile_path: str, ranges: Optional[list[int]]str查看文件内容,显示行号,支持可选行范围。

http_tools

FunctionHub(name="http_tools") — HTTP 请求辅助工具。

工具异步参数返回值用途
http_geturl: str, headers: Optional[dict], params: Optional[dict]str发送 HTTP GET 请求。
http_posturl: str, data: Optional[dict], headers: Optional[dict]str发送带 JSON 的 HTTP POST 请求。

image_gen_tools

FunctionHub(name="image_gen_tools") — 通过外部 API 生成图像。

工具异步参数返回值用途
gen_imagedescription: strstr根据给定的文本描述返回 pollinations.ai URL。

oxy_manage_tools

FunctionHub(name="oxy_manage_tools") — Agent 组织架构的运行时 CRUD 操作。挂载到 master agent 后,即可通过对话管理 Oxy 实例(Agent、工具、LLM)。

工具异步参数返回值用途
list_oxyscategory_filter: str = ""str列出所有已注册的 Oxy 实例,可按 agenttoolllm 过滤。
get_oxy_infooxy_name: strstr获取指定 Oxy 实例的详细配置信息。
create_agentagent_name: str, agent_type: str, desc: str, llm_model: str, prompt: str, sub_agents: str, tools: str, parent_agent: strstr在运行时创建并注册一个新 Agent。
delete_oxyoxy_name: strstr删除一个 Oxy 并清理所有父级 Agent 中对它的引用。
move_oxyoxy_name: str, from_parent: str, to_parent: strstr将子 Agent 或工具从一个父级 Agent 移动到另一个。
modify_oxyoxy_name: str, field_name: str, field_value: strstr更新现有 Oxy 实例的任意字段。

结构性变更(create_agentdelete_oxymove_oxy,以及 modify_oxy 修改结构字段时)会自动发送 SSE 消息以刷新前端组织架构树。


math_tools

FunctionHub(name="math_tools") — 数学运算。

工具异步参数返回值用途
calc_piprec: intfloat计算指定小数精度的圆周率。
list_operationlist1: list, list2: list, operation: strlist两个列表之间的逐元素二元运算。
calculate_expressionexpression: strstr通过 AST 安全地计算数学表达式。

python_tools

FunctionHub(name="python_tools") — Python 代码执行。

工具异步参数返回值用途
run_python_codecode: str, variable_to_return: Optional[str], safe_globals, safe_localsstr通过 exec() 执行 Python 代码,可选返回指定变量。

shell_tools

FunctionHub(name="shell_tools") — Shell 命令执行。

工具异步参数返回值用途
run_shell_commandargs: list[str], tail: int = 10, base_dir: Optional[str]str同步运行 Shell 命令;返回最后 tail 行。
execute_shell_commandcommand: str, timeout: int = 300str异步运行 Shell 命令,支持超时。

ssh_tools

FunctionHub(name="ssh_tools", timeout=600) — 通过 SSH 远程执行命令。

工具异步参数返回值用途
ssh_toolshell_command: str, oxy_requeststr通过 oxy_request 全局数据中的 SSH 通道发送命令。

string_tools

FunctionHub(name="string_tools") — 字符串分析工具。

工具异步参数返回值用途
extract_emailstext: strstr从文本中提取电子邮件地址。
extract_urlstext: strstr从文本中提取 URL。
validate_emailemail: strstr验证字符串是否符合电子邮件格式。

system_tools

FunctionHub(name="system_tools") — 系统信息。

工具异步参数返回值用途
get_system_info(无)str返回操作系统、版本、架构、处理器和 Python 信息。
get_system_usage(无)str返回 CPU 占用率、内存和磁盘使用统计信息。

time_tools

FunctionHub(name="time_tools") — 时区感知的时间工具。

工具异步参数返回值用途
get_current_timetimezone: str(IANA 名称,默认 "Asia/Shanghai"str返回指定时区的当前时间。
convert_timesource_timezone: str, time: str, target_timezone: strstr将时间从一个时区转换为另一个时区。

用法

from oxygent.preset_tools import time_tools, shell_tools, math_tools

oxy_space = [
    time_tools,
    shell_tools,
    math_tools,
    oxy.ReActAgent(
        name="assistant",
        tool_name_list=["time_tools", "shell_tools", "math_tools"],
        ...
    ),
]