CLI 编程智能体

创建本地 CLI 编程智能体

基本理念

使用 Ollama 打开 DGX Spark 运行本地编码模型并连接 CLI 编码智能体。这个 playbook 支持一个选项:OpenCode。每个智能体与 Ollama 的内置连接启动方法 (ollama launch),因此您可以 无需环境变量、提供商配置文件或外部云 API。

选择您的 CLI 智能体

选择与您要使用的 CLI 智能体相匹配的选项卡:

  • OpenCode:直接从 Ollama 启动的开源 CLI。

您将完成的任务

您将运行本地编码模型 (Qwen3.6) 在配备 Ollama 的 DGX Spark 上启动使用单个命令选择 CLI 智能体,端到端完成一个小的编码任务。

开始之前需要了解的内容

  • 熟悉 Linux 命令行基础知识

  • 具备运行基于终端的工具和编辑器的经验

  • 熟悉 Python 进行简短的编码任务

预备知识

  • 使用 DGX Spark 和 NVIDIA DGX OS 7.3.1 (基于 Ubuntu 24.04.4 LTS)

  • 可通过互联网下载模型权重

  • Ollama v0.15 或更高版本 (对于 ollama launch)

  • GPU 显存取决于您选择的 Qwen3.6 版本:

    • qwen3.6:latest ( 35B-a3b,MoE) – 约 24GB,256K 上下文

    • qwen3.6:35b-a3b - mtp-q4_K_M - 约 22GB

    • qwen3.6:35b-a3b-q8_0 - ~ 39GB,更高质量的量子

    • qwen3.6:35b-a3b-bf16 - 约 71GB,全精度 (适合 Spark 的统一内存)

时间和风险

  • 时长:约 15-25 分钟 (主要是模型下载时间)

  • 风险级别:低

    • 如果网络连接不稳定,大型模型下载可能会失败

    • 低于 0.15 的 Ollama 版本不支持 ollama launch

  • 回滚:停止 Ollama 并删除下载的模型 ~/.ollama/models

  • 上次更新时间:2026 年 4 月 16 日

    • 切换到 ollama launch 并将默认模型升级到 Qwen3.6

第 1 步:确认您的环境

说明:在安装任何内容之前,请验证操作系统版本和 GPU 是否可见。

cat /etc/os-release | head -n 2
nvidia-smi

预期输出应显示 Ubuntu 24.04.4 LTS ( DGX OS 7.3.1 基准版本) 和检测到的 GPU。

第 2 步:安装或更新 Ollama

说明:安装 Ollama 或者确保它是最新的 ollama launch

curl -fsSL https://ollama.com/install.sh | sh
ollama --version

如果已安装 Ollama,只需验证版本即可:

ollama --version

预期输出应显示 Ollama v0.15 或更新版本。

第 3 步:Pull Qwen3.6

说明:下载 Qwen3.6 模型权重。

ollama pull qwen3.6

如果您需要不同的内存占用空间或精度,可以选择以下变体:

ollama pull qwen3.6:35b-a3b-mtp-q4_K_M   # MTP-enabled Q4_K_M build for local Ollama on DGX Spark (~21.7GB) 
ollama pull qwen3.6:35b-a3b-q8_0    # Higher-quality 8-bit quant (~39GB)
ollama pull qwen3.6:35b-a3b-bf16    # Full precision (~71GB)

预期输出应显示 qwen3.6 在 ollama list。

第 4 步:测试本地推理 (可选)

说明:运行快速提示以确认模型加载。

ollama run qwen3.6

尝试以下提示:

Write a short README checklist for a Python project.

预期输出应显示模型响应。完成后,输入 /bye 或按 Ctrl+D 退出,然后继续。

第 5 步:使用 Ollama 启动 OpenCode

说明:使用 Ollama 的内置启动方法开始 OpenCode 与本地模型进行对比。无需 opencode.json 提供配置设置。

ollama launch opencode --model qwen3.6

如果您想在不立即启动的情况下预配置 OpenCode:

ollama launch opencode --config

预期输出应显示 OpenCode,首先 Ollama 预先选定为提供程序,然后 Qwen3.6 作为模型。Qwen3.6 默认附带 256K 上下文窗口。

第 6 步:完成一项小型编码任务

说明:创建一个小型存储库,让 OpenCode 实现函数并进行测试。

mkdir -p ~/cli-agent-demo
cd ~/cli-agent-demo

printf 'def add(a, b):\n    """Return the sum of a and b."""\n    pass\n' > math_utils.py
printf 'import math_utils\n\n\ndef test_add():\n    assert math_utils.add(1, 2) == 3\n' > test_math_utils.py

如果您尚未安装 pytest:

python3 -m venv .venv
source .venv/bin/activate
python3 -m pip install -U pytest

在 OpenCode 中:

Please implement add() in math_utils.py and make sure the test passes.

运行测试:

python3 -m pytest -q

预期输出应显示测试通过情况。完成后,运行 deactivate 退出虚拟环境。

第 7 步:清理和回滚

说明:删除模型并在不再需要服务时停止服务。

要停止该服务,请执行以下操作:

sudo systemctl stop ollama

警告:

这将删除下载的模型文件。

ollama rm qwen3.6

第 8 步:后续步骤

  • 试用qwen3.6:35b-a3b-mtp-q4_K_M 或 bf16 不同质量 / VRAM 权衡的变体

  • 在多文件更改或测试生成任务中使用 OpenCode

  • 在更大的代码库上探索完整的 256K 上下文窗口

症状
原因
修复
ollama: command not found
未安装 Ollama 或 PATH 未更新
重新运行 curl -fsSL https://ollama.com/install.sh | sh 打开一个新 shell
ollama launch 报告未知命令
Ollama 的版本低于 v0.15
更新 Ollama: curl -fsSL https://ollama.com/install.sh | sh
模型加载失败,并显示版本错误或 HTTP 412
Ollama 版本对模型来说太旧了
更新 Ollama: curl -fsSL https://ollama.com/install.sh | sh
model not found 启动代理时
未提取模型
运行 ollama pull qwen3.6 然后重试
connection refused 本地主机:11434
Ollama 服务未运行
从开始 ollama serve 或 sudo systemctl start ollama
ollama launch 立即退出
智能体集成初始化失败
重新运行 ollama launch ;如果问题仍然存在,请检查 journalctl -u ollama
响应速度缓慢或 OOM 错误
模型变体过大,GPU 显存无法满足需求
切换到 qwen3.6:35b-a3b-nvfp4 或关闭其他 GPU 工作负载
python3 -m pip install -U pytest 报告 externally-managed-environment
Ubuntu 24.04 可保护系统 Python 环境
首先创建并激活虚拟环境: python3 -m venv .venv && source .venv/bin/activate
ollama pull 报告模型标签是分片 GGUF
Ollama 不支持所选模型标签
使用步骤 3 中的 Qwen3.6 命令,而不是分片 GGUF 标签
ollama run 失败 CUDA error: context is destroyed 多 GPU 系统上
Ollama 正在混合 GPU 拓扑上进行初始化
将 Ollama 固定到一个 GPU 上。对于前景测试,请运行 CUDA_VISIBLE_DEVICES=0 ollama serve;对于系统服务,请添加 Environment="CUDA_VISIBLE_DEVICES=0" 连接到 Ollama systemd 下拉列表,然后重启 Ollama

注意

DGX Spark 采用统一内存架构 (UMA) ,可实现动态内存共享 在 GPU 和 CPU 之间切换。如果您看到显存压力,请使用以下命令刷新缓冲区缓存:

sudo sh -c 'sync; echo 3 > /proc/sys/vm/drop_caches'