HIL Needs Approval
HIL Needs Approval
Demonstrate tool approval with async generators. Includes real-time feedback, approval workflows, and interactive management.
Loading preview…
Problems solved
- Pause Experimental_Agent tool calls until the user approves
- Handle approval denial gracefully in agent instructions
- Visualize pending and completed tool execution states
- Stream approval UI updates during the agent loop
Use cases
- Sensitive tool actions that need sign-off
- Admin agents gating writes and deletes
- Customer-support agents requiring human approval
- Educational demos of needsApproval agent flows
Setup
Requirements, wiring steps, and what this pattern adds to your project.
Getting started
Pick how you want to pull this pattern in — then wire env vars and routes the same way.
- 1
Install from the preview toolbar

Copy the install command above and run it in your project — Pro patterns include a short-lived token.
- 2
Add environment variables to .env.local
GOOGLE_AI_API_KEY
- 3
Point client fetches at your API routes
Replace preview `/view/.../api/...` paths with `/api/...` in the installed files.
- 4
Customize the agent and tool files
Adapt prompts, tools, and stop conditions for your product — Copy for AI in the toolbar helps seed that work.
- 5
Run your dev server and open the pattern route
Install dependencies if needed, then start the app and verify responses.
Environment variables
GOOGLE_AI_API_KEYGet key
Capabilities
AI SDK APIs
AgenttoolstepCountIsExperimental_AgentgatewayUIToolInvocationProviders
External services
Files added
11 filesapp/page.tsxapp/layout.tsxapp/api/tool-approval/route.tslib/tool-approval-agent.tslib/tool-approval-types.tslib/tools/weather-tool.tslib/tools/schema.tscomponents/tool-approval-chat.tsxcomponents/tool-views/weather-with-approval-view.tsxREADME.mdAGENT_FLOW.md
Dependencies
8 totalnpm packages
6
Registry components
Critical files
lib/tool-approval-agent.tsAgent definition using Experimental_Agent with tool approval pattern. Configures instructions to handle approval denial gracefully.
tools/weather-tool.tsWeather tool with needsApproval: true — the key pattern for human-in-the-loop tool approval. Uses generator pattern with yield for loading/ready states.
Requirements
- Complexity
- Intermediate
- Setup time
- ~15 minutes
- Node
- 24+
- Memory
- 512MB









