diff --git a/content/docs/extending/custom-tools.mdx b/content/docs/extending/custom-tools.mdx index c27cae7..d5184f4 100644 --- a/content/docs/extending/custom-tools.mdx +++ b/content/docs/extending/custom-tools.mdx @@ -29,7 +29,40 @@ or the AskUI Solution Engineering team, not edited ad hoc by test authors. - **Warnings**: the same NuGet package requested at different versions across files is flagged; the higher version wins at run start. -There is no in-app code editor, write tools in your own IDE. +There is no in-app code editor, write tools in your own IDE — or let the app +draft one for you (below). + +## Forge a tool (ToolForge) + +If you'd rather not write the C# yourself, click **Forge a tool** on the +Custom Tools tab. Describe the tool in plain language — what it does, its +input fields, what it returns, and which device it needs — and the model +drafts it following the tool contract. + +1. Write a **structured description** and click **Verify**. The model checks + it and echoes back its understanding. +2. If something's missing, it tells you what to add — correct it and verify + again. Repeat until it's ready. +3. Click **Accept & Forge Tool**. The `.cs` file is written into + `utils/custom_tools/`, and the + [inference cost](/docs/troubleshooting/performance-cost) of generating it + is shown. + + +A generated tool is a starting point — read it, and validate it like any +other custom tool before trusting it in a run. + + +**Not everything is a tool.** A custom tool is code the agent calls during a +run — it can't install software on the machine, change system or network +settings, or duplicate a built-in tool from the Tool Store. If your request +falls outside those boundaries, generation is **rejected** instead and you're +pointed to an AskUI solution engineer. Your description is preserved and +copyable, so you can send it to without retyping it. + +You choose which model powers Forge under **Settings → Forge Model**; by +default it's the same model as your test runs. See +[Model providers](/docs/extending/model-providers). ## Create a tool diff --git a/content/docs/writing-tests/agents-and-prompts.mdx b/content/docs/writing-tests/agents-and-prompts.mdx index a6dbfca..c8b467d 100644 --- a/content/docs/writing-tests/agents-and-prompts.mdx +++ b/content/docs/writing-tests/agents-and-prompts.mdx @@ -84,6 +84,23 @@ A suite that tests a different part of the system can carry its own `tests/ui.md` first, then each folder's on the way to the test. `ui.md` is never executed as a test, the Tests page marks it **Context only**. +### PromptForge — generate it from screenshots + +You don't have to write `ui.md` by hand. Open it in the Tests editor and +click **Forge from screenshots**: + +1. Upload screenshots of the app (up to 30) and write a short bullet-point + description (at least 160 characters), then click **Verify**. The model + checks the inputs and echoes back its understanding of your UI. +2. If it needs more, it tells you what to add — correct it and verify again. +3. Click **Accept & Update ui.md** to write the section, or **Add another UI + section** to describe another screen first. Every section lands in the + same `tests/ui.md`. + +The model is the same one your tests run on by default; change it under +**Settings → Forge Model**. Generated context is a draft — read it and +refine it, since it's what steers every run. + ## Report format `utils/format.md`, the template for every report the agent writes: title,