OpenProgram Docs

内置工具#

OpenProgram 自带一批注册为工具的函数,模型在聊天里直接调用。这一页按 openprogram/functions/tools/ 目录逐个列出:每个工具做什么、需要什么 key 或本地依赖。大多数工具零配置;需要 key 的集中在网络检索和图像两类。

文件与代码#

工具 做什么 需要什么
read 读文件内容
write 新建或整体覆盖文件
edit 文件内字符串替换
apply_patch Codex / OpenClaw 格式的多文件结构化 patch
list 列目录内容
glob 按文件名模式找文件
grep 内容搜索,优先 ripgrep,缺 rg 回退 Python re 无(装 rg 更快)
semble_search / semble_find_related 语义 + 词法代码搜索,返回排好序的代码块 pip install 'openprogram[search]'(可选 extra;缺包时工具直接回这行安装提示)
lsp_diagnostics / lsp_references / lsp_definition 从 language server 拿类型检查错误、真实调用点、真实定义位置,见Language server 工具 Python 装 pyright,TypeScript 装 typescript-language-server(缺哪个工具就报哪条安装命令)

执行#

工具 做什么 需要什么
bash 同步执行 shell 命令,返回 stdout / stderr / 退出码
process 管理后台 shell 会话(长跑服务、可轮询输出)
execute_code 在独立子进程里跑 Python 片段

网络#

工具 做什么 需要什么
web_search 关键词 → 相关 URL 列表,多后端可选 见下方后端表
web_fetch 拉取 URL 并转成可读文本 无(装 trafilatura 抽取更干净)
playwright_browser Playwright 驱动无头 Chromium(open / navigate 等动作) Playwright + 浏览器(openprogram browser install 安装)
agent_browser 经 npm agent-browser CLI 驱动浏览器,snapshot 返回可访问性树 npm 包 agent-browser

web_search 后端与 key(DuckDuckGo 和 arXiv 免 key,开箱即用):

后端 环境变量
DuckDuckGo / arXiv
Brave BRAVE_API_KEY
Exa EXA_API_KEY
Firecrawl FIRECRAWL_API_KEY
Google PSE GOOGLE_PSE_API_KEY + GOOGLE_PSE_CX
Jina JINA_API_KEY
Kagi KAGI_API_KEY
MiniMax MINIMAX_CODE_PLAN_KEYMINIMAX_CODING_API_KEYMINIMAX_API_KEY
Moonshot (Kimi) KIMI_API_KEYMOONSHOT_API_KEY
Perplexity PERPLEXITY_API_KEY
SearXNG SEARXNG_URL(自托管实例地址)
Serper SERPER_API_KEY
Tavily TAVILY_API_KEY
You.com YDC_API_KEYYOU_API_KEY
Ollama 本地 Ollama(需 ollama signin),或用 OLLAMA_API_KEY 走 Ollama Cloud

图像与 PDF#

工具 做什么 需要什么
image_generate prompt → PNG 存盘 任一后端:OpenAI(OPENAI_API_KEY)、Gemini(GEMINI_API_KEYGOOGLE_API_KEY)、fal(FAL_KEY
image_analyze 描述图片 / 回答关于图片的问题(本地路径或 URL) 任一视觉模型 key:OpenAI / Anthropic / Gemini(复用已配置的 provider key)
pdf 从 PDF 抽取文本,支持 offset / limit 翻页 pypdf

会话与协作#

协作分四个域,一词一义,见 agent 协作 §1。

工具 做什么 需要什么
计划 todo_create / todo_update / todo_list 会话规划清单:手写的计划清单(建条目、设状态/负责人/依赖、按状态分组列出)。写一条不会启动任何东西
执行 list_tasks / task_output / task_stop 真正在运行的任务:列出本会话的后台任务、等某个任务的结果、停掉某个任务。只有派活方会话能取结果或取消
实体 agent 新建一个 agent 并取回回复,或用 to= 给已存在的 agent 派受管任务。run_in_background=true 不阻塞、直接返回 task_id;start_from 决定新 agent 从哪起(clean / inherit / SID:MSG_ID);archive_when_done=true 让它在任务结束、结果回流之后自动归档
实体 list_agents agent 列表:有哪些 agent、它们的名字、地址、体量和忙闲(scope="archived" 看已归档的)
实体 archive_agent 把活干完的 agent 归档:它从 list_agents 消失,并拒收后续 send_message / agent(to=) 投递;read_conversation 照读它的历史,agent(start_from="SID:MSG_ID") 照 fork。归档不中断在跑的工作、不删数据,所以任何会话都能归档任何 agent;归档单向,没有反归档
通讯 send_message 跟已存在的 agent 说话,按 "SID:HEAD" 或名字寻址。不产生任务、不产生 task_id、没有东西可取消,所以任何 agent 都能发
通讯 read_conversation 把任意 agent 的历史读成纯文本(含工具调用),可指定轮次范围和字数预算
工具 做什么 需要什么
program 调用任意已注册的 @agentic_function
mixture_of_agents 并行问N个模型再综合;默认从模型注册表选,每个provider取一个 模型注册表里至少2个provider
ask_user_question 向用户提 1–N 个带选项的问题
enter_plan_mode / exit_plan_mode 进入 / 退出计划模式
canvas 往 markdown 文件的具名块里增量写入
memory_* 读取持久记忆工作区——memory_search(按语义找)、memory_grep(找确切字符串)、memory_get(读一个文件、章节或段落)、memory_browse(看有什么)、memory_status(规模与版本),以及 memory_update 用来更正某一处。没有记录对话的工具:那件事在后台完成。每个实例只有一份工作区,所有agent、所有对话(含聊天渠道)共用(见聊天渠道)。
worktree_* git worktree:worktree_create(也可直接从 PR 开 worktree,传 pr="123" / "#123" / GitHub PR 链接,走 gh)/ merge / discard / list / keep git
cron 登记周期性 agent 任务
list_mcp_resources / read_mcp_resource / list_mcp_prompts / get_mcp_prompt 把 MCP 的 resources / prompts 原语暴露给模型(mcp_meta 目录) 已配置的 MCP server(见 MCP
tool_search 按需加载被延迟的工具的完整 schema——冷门工具在清单里只占一行,模型要用时再取
Last updated · 2026-08-13