Getting it into your agent
One page per mod, every tool's command on it. A separate URL per tool would split the same page into five that compete with each other.
npx skills add jianchen08/Agent-os-open --skill skill-env-config-decisiongit clone --depth 1 https://github.com/jianchen08/Agent-os-openWrote this? Show the measurements
A badge with what this costs and how it scanned, read live from this page, so it follows the numbers instead of freezing them. Markdown for a README, HTML for a documentation site or a project page.
[](https://agentmods.dev/skills/jianchen08/agent-os-open/skill-env-config-decision)<a href="https://agentmods.dev/skills/jianchen08/agent-os-open/skill-env-config-decision"><img src="https://agentmods.dev/badge/skills/jianchen08/agent-os-open/skill-env-config-decision/github.svg" alt="Measured on agentmods" height="20"></a>Or the 80×15 button, for a site that already has a row of RSS and ATOM ones. Only the verdict fits; the numbers stay here.
<a href="https://agentmods.dev/skills/jianchen08/agent-os-open/skill-env-config-decision"><img src="https://agentmods.dev/badge/skills/jianchen08/agent-os-open/skill-env-config-decision.svg" alt="Reviewed on agentmods" width="80" height="20"></a>What it costs to keep this loaded
Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.
| Model | Per session | Once invoked |
|---|---|---|
| Fable 5.1 | $0.00048 | $0.01664 |
| Opus 5 | $0.00024 | $0.00832 |
| Sonnet 5 | $0.00010 | $0.00333 |
| Haiku 4.5 | $0.00005 | $0.00166 |
Grade C, and why
环境配置决策 scanned grade C with 2 findings against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured 4d ago.
A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.
Recursive force deletehighDestructive command
rm -rf with a variable or a broad path is one typo away from removing the wrong tree.
docker exec <容器名> sh -c "rm -rf /tmp/* /var/cache/* /root/.cache/*" Makes network callslowCapability
Not a fault in itself. Listed so you know the mod talks to something, and to what.
| 系统工具 | git、curl、wget、build-essential | How it starts
The opening of the file, as written. The whole thing — 151 lines — stays where its author put it; the contents beside it link to each section on GitHub.
环境配置决策
本技能是流程指引,不是逐条打勾清单:按场景判断使用,遇不适用情况保持裁量,不机械执行。
适用场景
environment_setup_agent 接到环境安装/配置任务时加载本 skill,据此判断每个依赖该装到哪里、用什么隔离模式、用什么方法安装。
隔离模式基础(来自代码事实)
系统有两种隔离级别(src/isolation/types.py):
| 隔离级别 | 枚举值 | 执行环境 | 能否操作 docker |
|---|---|---|---|
| CONTAINER | isolated |
Docker 容器内,无 docker daemon | ❌ 不能 |
| HOST | non_isolated |
宿主机直接执行,可访问 docker daemon | ✅ 能 |
关键:docker commit / docker build 只在 HOST(non_isolated)模式下可用,因为容器内没有 docker daemon。
核心决策模型
收到每个环境依赖,先判断属于哪个层级:
一、系统级工具链 → 固化进 agentos 镜像
判定标准:多项目共享、版本稳定、不含项目特定配置。
| 类型 | 示例 |
|---|---|
| 运行时环境 | Python、Node.js、Go、Java、Rust |
| 系统工具 | git、curl、wget、build-essential |
| 全局 Python 包 | pyyaml、pytest、ruff、playwright 等预装包 |
| 浏览器/驱动 | chromium、chrome-headless-shell |
安装方式:
- 隔离模式:必须
non_isolated(HOST 模式),因为需要操作 docker daemon 做镜像固化 - 固化进镜像有两种方法(详见下文"三种安装方法")
- 镜像保存由 L1 统一决策:L1 根据编排报告中的环境变更信息决定是否将当前环境保存为 agentos 镜像。镜像的创建/更新/清理由 L1 执行,因为镜像是跨容器共享资源
二、项目级依赖 → 装到 workspace
判定标准:仅当前项目使用、含项目特定版本/配置。
| 类型 | 示例 |
|---|---|
| 项目依赖包 | package.json 中的依赖、requirements.txt 中的包 |
| 项目配置文件 | .env、config.yaml、tsconfig.json |
| 项目级虚拟环境 | 某项目专用的 Python venv |
安装方式:
- 隔离模式:
isolated(容器模式)即可,在隔离副本中装到 workspace - workspace 通过 bind mount 挂载到容器内
/workspace,容器内安装的依赖写入挂载目录,容器销毁后仍保留,新容器立即可用 - workspace 必须指向项目根目录,不能指向子目录或临时路径
三种安装方法决策树
确定了依赖层级后,选择具体安装方法:
该依赖属于哪个层级?
│
├─ 系统级(要进镜像)
│ → non_isolated 模式执行
│ ├─ 是否可版本化、可审查的批量变更?
│ │ ├─ 是 → 方法二:Dockerfile 构建(推荐,可追溯)
│ │ └─ 否 → 方法三:docker commit(快速但不可回滚)
│ → 安装后在报告中标注"已固化/建议固化为镜像"
│
└─ 项目级(装 workspace)
→ isolated 模式即可
→ 方法一:工作区持久化(推荐,最常用)
方法一:工作区持久化(推荐,项目级依赖首选)
在 workspace 目录内安装依赖,因为该目录 bind mount 到容器 /workspace,容器内立即可用:
# Python 依赖 — 装进虚拟环境(推荐)
python -m venv {workspace}/.venv
{workspace}/.venv/bin/pip install <package>
# Node 依赖 — 装到 workspace 内
cd {workspace} && npm install <package>
优点:轻量、不影响其它任务、容器重建后依赖仍在(写在挂载目录里)。
方法二:Dockerfile 构建(系统级依赖,可追溯)
What this file has done since we first saw it
Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.
- 4d ago First seen · 151 lines · 48 tokens per session scan C 6e688b47d5d6
环境配置决策 is a skill published in the GitHub repository jianchen08/Agent-os-open (5 stars, last pushed 5d ago), licensed Apache-2.0. It adds 48 tokens to every session and 1,664 once invoked, about $0.0002 per session on Opus 5. A static security scan graded it C with 2 findings (recursive force delete, makes network calls). No closer match exists in the catalogue, so it is treated as the original; first seen 2026-09-05.
Other skills, from other repositories
docker-expert
Docker containerization, multi-stage builds, and optimization.
harbor
CLI toolkit for managing containerized LLM services. Use when the user wants to start, stop, configure, or manage AI/LLM services like Ollama, Open WebUI, llama.cpp, vLLM, LiteLLM, ComfyUI, and 250+ others. Triggers on requests to "run a model", "start ollama", "set up an LLM", "configure harbor", "manage services"…
background-task
Add or modify work that runs outside the request/response cycle — emails, document ingestion, webhooks, cleanups, scheduled jobs. Use when something is slow or fire-and-forget, or when adding a periodic/cron task. This project's queue is {{ cookiecutter.backgroundtasks }}.
agent-tool
Add a new tool/function the AI agent can call (e.g. look something up, hit an external API, perform an action). Use when extending the assistant's capabilities, wiring a new function into the agent, or when the model needs a new action. This project uses {{ cookiecutter.aiframework }}.
frontend-feature
Build a new page, view, or data-driven feature in the Next.js frontend. Use when adding a route under the dashboard/marketing area, wiring UI to a backend endpoint, adding client state, or creating a localized page. Covers App Router, data fetching, Zustand stores, and i18n.
pytest-suite
Write or extend the backend test suite following this project's conventions. Use when adding tests for a new service/route/repository, when coverage is missing, or when asked to test a feature. Knows the mocked-session + httpx AsyncClient setup so tests run with no database.