Existing Base Images
Charm currently provides several pre-built base images depending on the adapter type:- Custom / Python (
type: "custom"or"python"): Usesrunner-base. Minimal Python environment for plain code agents. - LangChain (
type: "langchain"): Usesrunner-langchain. - LangGraph (
type: "langgraph"): Usesrunner-langchain(same image as LangChain). - CrewAI (
type: "crewai"): Usesrunner-crewai. - OpenClaw (
type: "openclaw"): Usesrunner-openclaw(Playwright, FFmpeg, OpenClaw engine). - Third-party adapter plugins: Use whatever image you declare in
runtime.custom_image— the runner does not map plugin names automatically.
runtime.custom_image is set, adapter→image mapping is ignored and your URI is used directly.
Agents automatically select the correct base image based on their adapter.type, or explicitly override it using custom_image:
Contribution Requirements
Base image changes should include:- clear reason for the new dependency,
- size impact,
- security impact,
- local build validation,
- runtime smoke test,
- documentation update.
Best Practices
- Keep images small.
- Pin versions when practical.
- Avoid installing unnecessary system packages.
- Prefer reusable base layers.
- Test both build and runtime behavior.
