Open WebUI: Scheduling Agents A developer documented how Open WebUI v0.9.6 lets users define persistent agents through custom models, Python-based tools imported from the Community Tool Library, and markdown skill files, then invoke those agents automatically via schedules or a remote chat interface. The writeup notes that tools must follow a named-object design contract and be injected into the system prompt, and that in testing a weather tool only fired when explicitly mentioned in conversation. Open WebUI provides a uniform chat interface with media uploads and persistent conversations that connect to an Ollama backend or an OpenAI API-compatible LLM provider. Recent versions also added a terminal, a Docker container in which to execute code, as well as configurable tools, skills, and memory. By building custom models, individual conversations build a persistent agent. This is the final article of my Open WebUI investigation. It takes another turn at agent definition, detailing skill and tool definition, and showing how to invoke agents automatically via schedules and through a remote chat interface. The technical context of this article is Open WebUI v0.9.6 , published on 2026-06-01. The setup and configuration examples should also work with newer versions. While I am fascinated by the capabilities of artificial intelligence tools and applications, crafting blog articles remains a personal skill. Every character, number, and symbol in this article was typed manually, with the exception of verbatim copies from log messages and screenshots. This article originally appeared at my blog admantium.com https://admantium.com/blog/llm42 open webui custom agents and invocations/ . Tools are Python snippets defined by an admin account. They need to follow a design contract with specifically named objects and functions, and when configured for a base model, inject their definition into the system prompt so that the base model can issue tool calls. While there is the option to implement a custom tool following the official documentation https://docs.openwebui.com/features/extensibility/plugin/tools/development , tools can also be imported from the Community Tool Library https://openwebui.com/search?sort=top&t=all&page=1 . Here is an example of adding a tool that shows the current weather. The first step is to find an appropriate tool and get its files. On the community marketplace: Get button an account is required . Alternatively, the Python file can be downloaded from the linked GitHub repository https://github.com/iChristGit/OpenWebui-Tools/blob/main/Tools/weather.py . The second step is to define the tool in the Open WebUI instance. With an admin user account, Workspace = Tools needs to be opened. When the tool was downloaded from the community page, clicking on Import and selecting the downloaded JSON file suffices. If the Python source code file is used, then clicking on + New Tool and pasting the file content is required. As explained in my earlier articles, base models and custom models require a strict definition of their capabilities and available tools, and therefore the new weather tool needs to be added. Follow these steps: Workspace , then Models To test this new weather tool, I created a new model named assistant , based on GPT-5.4, and added the tool. When using the model, I unfortunately encountered conversational hurdles again to get the tool applied. Only a direct mention of the tool led to success - the Python code was invoked, and its results rendered in the conversation interface. Skills are markdown declarations with detailed instructions. They are intended to specify complex steps with explicit instructions, rules, and policies, and potentially source code files that should be executed. Skill repositories are abundant, and skills.sh https://www.skills.sh/ provides an easy entry point. Search for skills that support GitLab interactions; I encountered git-commit https://github.com/github/awesome-copilot/blob/main/skills/git-commit/SKILL.md and github-pr-workflow https://github.com/YPares/agent-skills/blob/main/github-pr-workflow/SKILL.md . Here is an excerpt of the skill file. Source: https://github.com/github/awesome-copilot/blob/main/skills/git-commit/SKILL.md name: github-pr-workflow description: Working with GitHub Pull Requests using the gh CLI. Use for fetching PR details, review comments, CI status, and understanding the difference between PR-level comments vs inline code review comments. GitHub PR Workflow Key Concepts Comment Types GitHub PRs have two different types of comments : 1. PR-level comments - General discussion on the PR shown via gh pr view --comments 2. Inline code review comments - Comments attached to specific lines of code requires API Important : gh pr view --comments does NOT show inline code review comments Scripts | Script | Purpose | |--------|---------| | gh-pr-info