360 Secure SkillHub
360 安全技能中心

RamaLama CLI

该 Skill 以 ramalama 命令行为核心,配合 Docker 或 Podman 容器运行时,完成本地模型的运行与交互、启动 OpenAI 兼容端点、RAG 数据打包、基准与困惑度评测,以及模型拉取、转换和推送,并提供预检与排障流程。运行依赖本地 CLI,模型与镜像的获取需要网络。

ieaves
ieaves
热度 62.38
最近更新 2026-05-11 17:26:34
分类:自动化依赖:代码执行 / 读写文件 / 第三方 API应用场景:自动化脚本 / 工作流 / API 集成

安装技能

复制下面的话术发给你的 Agent,它会通过 secure-skills 检索并安装该技能。

执行命令安装此 skill: npx secure-skills-cli add ramalama-cli
Metadata
name
ramalama-cli
description
Run and interact with AI agents.
metadata
{"openclaw":{"emoji":"🦙","requires":{"bins":["ramalama"],"anyBins":["docker","podman"]},"install":[{"id":"brew","kind":"brew","formula":"ramalama","bins":["ramalama"],"label":"Install ramalama CLI (brew)"},{"id":"uv","kind":"uv","formula":"ramalama","bins":["ramalama"],"label":"Install ramalama CLI (uv)"}]}}

Ramalama CLI

Use when an alternative AI agent is better suited to a task. For example, working with sensitive data or solving simple tasks with a cheap and local agent, or accessing specialist models with unique capabilities.

Overview

Use this skill to execute ramalama tasks in a consistent, low-risk workflow. Prefer local discovery (--help, local config files, existing project scripts) before making assumptions about flags or runtime defaults.

Prefer ramalama when tasks need:

  • flexible model sourcing (hf://, oci://, rlcr://, url://)
  • containerized local inference with runtime/network/device controls
  • RAG data packaging and serving
  • benchmark/perplexity evaluation
  • model conversion and registry push/pull flows

Preflight

Run these checks before first invocation in a session:

ramalama version
podman info >/dev/null 2>&1 || docker info >/dev/null 2>&1
ramalama run --help

If serving on default port, verify availability:

lsof -i :8080

Decision Matrix

  • One-shot inference: ramalama run <model> "<prompt>"
  • Interactive chat loop: ramalama run <model>
  • Serve OpenAI-compatible endpoint: ramalama serve <model>
  • Query an existing endpoint: ramalama chat --url <url> "<prompt>"
  • Build knowledge bundle from files/URLs: ramalama rag <paths...> <destination>
  • Evaluate model performance/quality: ramalama bench <model> and ramalama perplexity <model>
  • Inspect/source lifecycle operations: inspect, pull, push, convert, list, rm

Usage

Start with top-level discovery:

ramalama --help
ramalama version

Apply global options before the subcommand when needed:

ramalama [--debug|--quiet] [--dryrun] [--engine podman|docker] [--nocontainer] [--runtime llama.cpp|vllm|mlx] [--store <path>] <subcommand> ...

Use command-level help before invoking unknown flags:

ramalama <subcommand> --help

Known-Good Recipes

1) One-shot run

ramalama run granite3.3:2b "Summarize this in 3 bullets: <text>"

2) Detached service + API call

ramalama serve -d granite3.3:2b
curl http://localhost:8080/v1/chat/completions \
  -H "Content-Type: application/json" \
  -d '{"model":"granite3.3:2b","messages":[{"role":"user","content":"Hello"}]}'

3) Direct Hugging Face source

ramalama serve hf://unsloth/gemma-3-270m-it-GGUF

4) RAG package then query

ramalama rag ./docs my-rag
ramalama run --rag my-rag granite3.3:2b "What are the auth requirements?"

5) Benchmark and list benchmark history

ramalama bench granite3.3:2b
ramalama benchmarks list

Reliability Defaults

For agent automation, prefer explicit and deterministic flags:

ramalama --engine podman run -c 4096 --pull missing granite3.3:2b "<prompt>"

Recommended defaults:

  • set --engine explicitly when environment is mixed
  • start with smaller -c/--ctx-size on constrained hosts
  • use --pull missing for faster repeat runs
  • use one-shot non-interactive invocation for scripts

Troubleshooting

  • Docker socket unavailable:
    • verify Docker is running, or use --engine podman
  • Podman socket unavailable:
    • check podman machine list and start machine if needed
  • timed out during startup:
    • inspect container logs: podman logs <container>
    • reduce context (-c 4096) and retry
  • memory allocation failure:
    • use a smaller model and/or lower context size
  • port conflict on 8080:
    • choose alternate port via -p <port>

Notes

  • serve exposes an OpenAI-compatible endpoint for external clients.
  • Prefer JSON output flags where available (list --json, inspect --json) for robust parsing in automation.
  • Use ramalama chat --url <endpoint> when the model is already served elsewhere.