Build a private AI agent with Agent Zero and the Venice API
This guide shows you how to run Agent Zero, an open-source autonomous agent framework, inside an isolated Docker container and connect it to the Venice API so your prompts, images, and videos stay private. You will go from installation to generating media and building your own custom sub-agents, no coding required.
- How to install Docker Desktop and run Agent Zero in a sandboxed container
- How to connect the Venice API and choose models for chat, utility, and browser tasks
- How Agent Zero's persistent memory lets it learn from troubleshooting
- How to generate images and videos through the Venice API from inside Agent Zero
- How to create custom sub-agents that enforce your own workflow and style
Why run an agent privately and how Agent Zero is sandboxed
Agent Zero is an open-source, autonomous agentic framework. Paired with Venice, it runs without exposing your identity or queries to the model providers. You do not need to be technical to get it working.
The key safety difference is isolation. Agent Zero runs inside a Docker container, a walled-off environment on your computer with its own Kali Linux operating system. It cannot touch your personal files. This is unlike some other agentic frameworks that take command-line access to your whole machine, which can cause damage if you are not careful. Everything Agent Zero does happens inside the box.
The official installation instructions live on the Agent Zero GitHub page, which is the place to check if you run into problems.
Install Docker and pull the Agent Zero image
Download Docker Desktop from docker.com. It is free and does not require signing in. Install it and open it. You will see tabs on the left for Containers, Images, Volumes, and Builds.
Go to the Images tab and search for the Agent Zero image:
agent0ai/agent-zero
Find the latest tag and click Pull. The download may take a little while. Once it finishes, click Run. Open the optional settings, give the container a name (for example a0venice), and in the Host port for 80/tcp enter 0 to keep things simple later. Click Run.
Docker spins up the container. Go back to the Containers tab, find your named container, and click the port shown next to it. That opens the Agent Zero interface in your browser.
Connect the Venice API and configure your models
In the Agent Zero interface, click Settings, then the External Services tab. Scroll past the "Agent Zero Venice AI" entry (that is a different key type) to the actual Venice AI provider field.
Go to your API page in the Venice interface, click Generate New API Key, name it (for example a0venice), and click Create. Copy the key, paste it into the Venice AI provider field, and click Save.
Now open the Agent Settings tab. Change the Chat model provider from the default (Open Router) to Venice AI. Do the same for the Utility model and the Web browser model, leaving the model names blank for now. Leave the embedding model on its default; the sentence-transformers all-MiniLM model from Hugging Face works fine.
Choosing models: privacy, performance, and cost
Open the Venice API docs at docs.venice.ai and click the Models tab to see every model available through the API. For your chat model you want a text model. GLM 4.7 is a high-quality, private, open-source option that balances cost and intelligence and works well for agentic tasks. Copy its model name and paste it into the chat model field in Agent Zero.
Proprietary models like Gemini 3 or Claude Opus may give better results, but they cost more and you sacrifice full privacy. You are still anonymized, but the request is not private. Check the Vision tag for each model: GLM 4.7 does function calling and reasoning but not vision, so toggle vision off. You can switch models later if a workflow needs it.
Set the chat model context to match the model. GLM 4.7 supports a 203,000 token context, so set the limit to 203,000 or lower, never higher. For the utility model, pick something small, cheap, and fast for prompt prep and summarizing, such as Venice Small (Qwen 3-4B). For the web browser model, use a model with the browser-use tool and vision, such as Google Gemma 3 27B Instruct, and toggle its vision on. Click Save, then send a quick test message like Testing, testing, who are you? to confirm the setup works.
What Agent Zero can do and setting up image generation
Once running, Agent Zero can execute commands and code in its Kali Linux container, use specialized tools, delegate to subordinate agents, manage persistent memory, and schedule tasks. The interface looks familiar, similar to ChatGPT or Claude, but a memory system runs in the background so context carries across conversations.
To generate media, give Agent Zero your Venice API key as a secret. Go to Settings, External Services, scroll to Secrets Management, and in the secrets store add:
VENICE_API_KEY=your_key_here
Click Save. Then start a new conversation and ask it to gather the docs:
Collect the docs for Venice API so we can generate images.
Agent Zero will use its search tool to find the docs.venice.ai API reference and save that documentation to memory for future use.
Generating images and learning through troubleshooting
Open the Models page in the Venice docs, click Image, and pick a generation model. Banana Pro produces excellent results but costs more; HiDream is open source, very good, and about one cent per image. Copy the model name and prompt Agent Zero:
Using the hidream model, generate a photo of a cat playing in the river with a hippo.
The image saves to Agent Zero's own files, which you can download. Venice supports JPEG, PNG, and WebP. In practice WebP does not display in the Agent Zero window but PNG does. If an image will not show in the chat, the fix is a permissions and folder issue. You can prompt:
Move the images into a folder that can be accessed by this chat interface, and adjust your behavior so this broken image display doesn't happen again.
This is where the memory system matters. After every message, Agent Zero searches its memory. Once you troubleshoot something like image display, it records the solution so it does not repeat the mistake. Later conversations can generate and display images correctly with no extra context, because the guide is stored. Results are not perfect every time (this is alpha software), but each fix you teach it persists.
Create custom sub-agents without coding
Sub-agents are subordinate agents with their own context, system prompts, and tools. In the file browser (click Files), navigate to the A0 folder, then agents, where the default profiles like developer, hacker, and researcher live. You can create your own.
Ask Agent Zero to build one for you:
Using this style of image generation, create a new sub-agent in the same format as the agents in the A0 agents directory called venice image prompter.
It studies how the existing agents are structured and creates a new folder with context files, system prompts, and a tools directory, including a reusable Python script template so it does not rewrite the script each time. This saves context and API costs. The new profile then appears in Settings under the default agent profile.
To make the agent always handle image requests, instruct it to delegate and to apply a consistent style:
Make sure whenever we generate an image, this sub-agent is called. The prompt given by me, the user, will not be on-brand and detailed, so it is this agent's job to follow the general style used earlier in this conversation.
If you want the agent to match a reference image, drag in the file and switch your chat model to one with vision, such as Gemini 3 Pro or Gemini 3 Flash for lower cost. After that, a plain request like Generate an image of a cat riding a rhino being chased by an owl gets delegated to your sub-agent, which enhances the prompt in your established style before generating.
Generate video and where to go next
Video generation uses several Venice API endpoints, so it is more involved than images. Rather than relying on a single prompt, copy the URLs for the three relevant docs pages (queue video generation, retrieve video, and complete video) and feed them directly to Agent Zero along with your target model, for example Veo 3.1 Fast, for image-to-video or text-to-video. Your results will vary by model.
Once the sub-agent knows how to generate video, you can continue an existing image conversation and animate the result:
Now use this latest image to generate a video, bring it to life with the rhino stomping forward and the owl chasing the duo ominously until the cat swats the owl out of the air.
Expect occasional rate limits or wrong parameters as it learns. Agent Zero records successful solutions to memory, so problems tend not to recur, and you can always prompt it to fix its rules or sub-agent. For private or uncensored video, check the Venice video models page to see which models are fully private and which are anonymized.
From here you can move beyond single images and videos into longer workflows and storyboarding full scenes shot by shot, using Venice text, image, and video models together in one place.
Key takeaways
- Agent Zero runs in an isolated Docker container, so it cannot touch your local files, and connecting it to the Venice API keeps your prompts private.
- Match each role to the right model: a capable open-source chat model like GLM 4.7, a small fast utility model, and a browser model with vision, and always set the context limit to the model's maximum or lower.
- The persistent memory system is the core advantage: troubleshoot once, store the solution, and Agent Zero applies it in future conversations without re-explaining.
- You can build custom sub-agents and reusable tools through plain prompts, with no coding, to enforce your own style and workflows for images and video.
- 133votes
- 119votes
- 64votes
Adapted from the @askvenice video on YouTube. Models and prices change fast; verify current details in Venice before production use.