用 Pi 智能体框架配合 LM Studio 推理引擎,在本地 Mac 上跑 Gemma 4 完成 Agent 编码任务,附完整 Docker 配置和 models.json 示例。


用 Pi 智能体框架配合 LM Studio 推理引擎,在本地 Mac 上跑 Gemma 4 完成 Agent 编码任务,附完整 Docker 配置和 models.json 示例。
本地大模型已经从「勉强能跑」进化到「能干活」的阶段了。本文作者 Vicki Boykis(一家创业公司的创始 ML 工程师)在 HackerNews 上的爆款文章证明:用 Pi 智能体框架配合 LM Studio,在一台 2022 款 M2 Mac(64GB 内存)上就能跑 Gemma 4 完成 Agent 编码任务——重构 Python 脚本、写单元测试、搭建推荐系统仓库,循环准确率达到前沿模型的 75% 左右。本教程拆解完整配置流程,适合想在本地搭建私有 Agent 编码环境的开发者。
运行本地 Agent 流程,你需要三样东西:一个本地模型推理引擎、一个智能体框架,以及本地模型工件。本教程的配置如下:
gemma-4-12b-qat,更新、更小、更快,准确性损失不大)💡 提示:作者实测过多种本地推理方案(Open WebUI + llama.cpp、llama-cpp-python、Ollama、llamafiles、LM Studio),最终选择 LM Studio 是因为它把配置门槛降到了最低。如果你追求极致速度,直接用 llama.cpp 会更快。
前往 LM Studio 官网 下载安装。打开后在搜索栏找到 Gemma 4 系列模型,推荐下载:
google/gemma-4-12b-qat(推荐,体积小速度快)gemma-4-26b-a4b(性能更强,但需要更多内存)下载完成后在 LM Studio 的 Local Server 标签页启动推理服务,默认监听 http://localhost:1234/v1(兼容 OpenAI API 格式)。

由于作者把所有 Pi 会话都运行在 Docker 容器中,需要编辑 Pi 的 models.json,让容器内的 Pi 能访问宿主机上 LM Studio 提供的推理端点。
关键配置是 baseUrl 指向 host.docker.internal:1234(这是 Docker 访问宿主机服务的标准方式):
"lmstudio": {
"baseUrl": "http://host.docker.internal:1234/v1",
"api": "openai-completions",
"apiKey": "not-needed",
"models": [
{
"id": "google/gemma-4-12b-qat",
"input": [
"text",
"image"
]
}
]
}把这个文件保存到 ${HOME}/.pi/agent/models.json。
💡 提示:
gemma-4-12b-qat支持多模态输入(text + image),所以 input 字段同时列出了两种类型。如果你的模型只支持文本,去掉"image"即可。
这是最关键的一步——把 Pi 跑在受限的容器里,只授予 bash 权限(不直接运行 Python 代码,不联网浏览),避免 Agent 误操作擦除宿主机文件。
services:
pi:
build:
context: .
dockerfile: Dockerfile
image: pi-agent:0.74.0
init: true
stdin_open: true
tty: true
extra_hosts:
- "host.docker.internal:host-gateway"
environment:
ANTHROPIC_API_KEY: ${ANTHROPIC_API_KEY:-}
OPENAI_API_KEY: ${OPENAI_API_KEY:-not-needed}
GEMINI_API_KEY: ${GEMINI_API_KEY:-}
OPENAI_API_BASE: ${OPENAI_API_BASE:-http://host.docker.internal:1234/v1}
WHATEVER_API_KEY: ${WHATEVER_API_KEY:-}
volumes:
- ${HOME}/.pi/agent/models.json:/config/models.json
- ${WORKSPACE:-.}:/workspace
- pi-config:/config
- pi-sessions:/sessions
working_dir: /workspace
volumes:
pi-config:
pi-sessions:关键点说明:
extra_hosts 把 host.docker.internal 映射到宿主机网关,容器才能访问 LM Studio。OPENAI_API_BASE 默认指向本地 LM Studio。注意如果你同时用 OpenAI 官方 API,需要单独指定 base。volumes 把工作目录挂载进容器,Agent 只能操作这个目录内的文件。下面这个 bash 脚本会自动构建容器、设置工作区、启动 Pi:
#!/usr/bin/env bash
# Pi — Start the containerized Pi agent.
SCRIPT_DIR="$(cd -- "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
WORKSPACE_DIR="${WORKSPACE:-$(pwd)}"
case "$WORKSPACE_DIR" in
/) ;;
*) WORKSPACE_DIR="$(cd -- "$WORKSPACE_DIR" && pwd)" ;;
esac
export WORKSPACE="$WORKSPACE_DIR"
sandbox="${PI_SANDBOX:-0}"
pi_args=()
while (($#)); do
case "$1" in
--sandbox) sandbox=1 ;;
--no-sandbox) sandbox=0 ;;
*) pi_args+=("$1") ;;
esac
shift
done
compose_files=( -f "$SCRIPT_DIR/docker-compose.yml" )
if [[ "$sandbox" == "1" ]]; then
compose_files+=( -f "$SCRIPT_DIR/docker-compose.sandbox.yml" )
fi
repo_slug="$(basename -- "$WORKSPACE_DIR" | tr -c 'a-zA-Z0-9_.-' '-' | sed 's/^-//')"
[[ -z "$repo_slug" ]] && repo_slug="workspace"
container_name="pi-${repo_slug}-$$"
api_key_args=(
-e OPENAI_API_KEY
-e DEEPSEEK_API_KEY
-e ANTHROPIC_API_KEY
-e GEMINI_API_KEY
)
cmd=(
docker compose
--project-directory "$SCRIPT_DIR"
"${compose_files[@]}"
run --rm
--name "$container_name"
"${api_key_args[@]}"
pi
)
if ((${#pi_args[@]})); then
cmd+=("${pi_args[@]}")
fi
exec "${cmd[@]}"保存为 pi,赋予执行权限(chmod +x pi),然后在你想让 Agent 工作的项目目录里运行即可。
配置完成后,在工作目录中运行启动脚本。Pi 会启动 Docker 容器并加载你挂载的 models.json,连接到 LM Studio 的推理端点。
作者用这套配置完成的具体任务包括:
这些任务都远超去年本地模型能达到的水平。运行时 KV 缓存会增长到接近 64GB RAM 的上限,说明模型确实在充分利用硬件。

本地化模式最吸引人的地方之一是透明度:你可以实时观察 token 的流入流出、更改上下文窗口大小、调整系统提示和量化设置,深入理解 GPU 如何处理 token。
gemma-4-12b-qat 而非 26b);如果追求极致速度,改用直接调用 llama.cpp 而非 LM Studio。
Codex 的 Computer Use、Chrome 插件、应用内浏览器三种操作模式各有适用场景,本文拆解权限体系并给出最佳实践。

阿里巴巴发布 HappyHorse 1.1 视频生成模型,动态表现力、主体一致性等五大维度提升,1080P 价格下调 25%,已上线百炼平台。

Seko 搭载 Seedance 2.0 全能模式,通过 Agent 工作流自动生成剧情、角色和分镜,720P 成本直降 50%,10 分钟出片。