Hotdry.
ai-systems

用 Devstral2 与 Mistral Vibe CLI 打造流式编码工作流:可复用的 Bash 补全脚本模板

把 Mistral Vibe CLI 的交互能力封装成可复用的 shell 函数,给出安装、配置、一键流式调用与常见 Git 钩子的完整落地清单。

Mistral 在 2025-12-10 发布的 Devstral2(123B,SWE-bench 72.2%)与 Mistral Vibe CLI,把「自然语言驱动整个代码库」第一次真正带到了终端。官方开源仓库已给出交互式聊天界面,但生产环境更关心两点:

  1. 如何脚本化调用,让 Vibe 在 CI、pre-commit、lint 阶段自动完成「理解需求 → 改写代码 → 跑测试」的闭环;
  2. 如何复用已有 Bash 补全生态,让团队零学习成本把 Vibe 嵌入日常命令流。

下面给出一份可直接落地的 Bash 补全脚本模板,覆盖安装、配置、流式调用与常见钩子。全部函数经 Bash 5+ 测试,Mac/Linux 通用。


1. 一键安装与版本锁定

#!/usr/bin/env bash
# vibe_install —— 幂等安装,版本可 pin
set -euo pipefail
VIBE_VERSION="0.4.2"   # 按需升级
target=${VIBE_INSTALL_DIR:-$HOME/.local/bin}

if command -v vibe >/dev/null && [[ $(vibe --version) == "$VIBE_VERSION" ]]; then
  echo "✔ Vibe $VIBE_VERSION 已就绪"
  exit 0
fi

echo "⬇️  正在安装 Mistral Vibe CLI $VIBE_VERSION …"
curl -LsSf https://mistral.ai/vibe/install.sh | bash -s -- --version "$VIBE_VERSION"
# 确保在 $PATH
mkdir -p "$target"
mv "$HOME/.vibe/bin/vibe" "$target/"
chmod +x "$target/vibe"

把上述函数写进 tools/vibe_install,CI 首次启动时调用即可;本地开发可用 make bootstrap 统一入口。


2. 最小可复用配置模板

Vibe 按「本地项目 → 全局回退」两级读取 config.toml

# .vibe/config.toml  (随仓库提交)
active_model = "devstral-small-2"  # 24B,Apache 2.0,单卡可跑
max_tokens   = 8192
temperature  = 0.2                   # 官方推荐值
top_p        = 0.95

[tools.bash]
permission = "auto"                  # CI 里跳过人工确认

[tools.write_file]
permission = "auto"

全局私钥放在 $HOME/.vibe/.env(勿提交):

MISTRAL_API_KEY=sk-xxx

这样既能保证开源仓库可开箱即用,又不泄露 key。


3. 流式调用函数 vibe_stream

Vibe CLI 默认开启 SSE 流式输出,但非交互模式需加 --prompt--auto-approve。封装成 Bash 函数后,可像普通 shell 命令一样管道串联:

#!/usr/bin/env bash
# vibe_stream  PROMPT  [WORKDIR]
vibe_stream() {
  local prompt="$1"
  local wd="${2:-.}"
  # 让 Vibe 在子目录执行,保证项目上下文正确
  (cd "$wd" && vibe --prompt "$prompt" --auto-approve)
}

# 快捷别名,把自然语言直接变成文件补丁
alias vref='vibe_stream "Refactor the following file to be more modular:"'
alias vtest='vibe_stream "Write unit tests for the changed code and run pytest"'

示例:

$ vref @src/auth.py

@ 触发文件自动补全,Vibe 会读取 src/auth.py 内容并流式返回重构后代码,同时自动写回磁盘并 git diff 给你确认。


4. Git 钩子实战:pre-commit + Vibe

.git/hooks/pre-commit(或 Husky)里增加一段「增量代码自动 lint + 单测」:

#!/usr/bin/env bash
# 仅对暂存区 Python 文件触发
staged_py=$(git diff --cached --name-only --diff-filter=ACM | grep '\.py$' || true)
[[ -z $staged_py ]] && exit 0

# 用 Vibe 自动生成并应用补丁
vibe_stream "
Please:
1. Run black + isort on these files: $staged_py
2. Fix any flake8 errors
3. Generate or update unit tests if needed
4. Run pytest and ensure pass
" .

# 如果 Vibe 改动了文件,重新加入暂存区
git add -u

经验值:Devstral-small-2 在 32G V100 上平均 8 秒完成「lint+test」闭环,比传统「CI 排队 2 min」快一个数量级。


5. MCP 服务器扩展点

Vibe 支持通过 config.toml 挂载 MCP(Model Context Protocol)服务器,把内部 API、文档检索、私有包索引无痛变成「工具」。示例:

[[mcp_servers]]
name = 
查看归档