iT邦幫忙

2025 iThome 鐵人賽

DAY 21
0
自我挑戰組

攔截記憶碼:每日一小時記錄技術學習系列 第 21

Day 18 - VibeKit:安全沙盒下的 AI 編碼代理整合

  • 分享至 

  • xImage
  •  

攔截源頭

  • 發現管道:社群
  • 攔截原因:我最近在測試 Agent 與工具整合時,常擔心代理生成程式碼會誤植敏感字串或破壞環境。看到 VibeKit 的定位是「在沙盒中執行 AI 編碼代理、提供安全與 observability」,就覺得很適合當作下一篇記錄。
  • 攔截 Github:vibekit

技術初探

定位與功能

VibeKit 是一個專門為編碼 Agent(如 Claude Code、Codex、Gemini 等)設計的 SDK / CLI 層,它的核心目標是「安全地執行 AI 生成程式碼、不讓它傷害你的環境」。

主要特色包括

  • 沙盒執行:把 Agent 的操作放在 Docker / 容器等隔離環境。 
  • 敏感資料過濾/Redaction:Agent 的輸出會自動過濾掉 API keys、憑證或其他敏感變數。 
  • 支援多種 Agent:如 Claude Code, Codex, Gemini 等,讓你可以統一管理多 Agent 安全執行環境。
  • 可嵌入 SDK:你可以把 VibeKit SDK 嵌入在你的 web 應用或後端應用中。 
  • GitHub 整合:支援 clone repository、建立 PR、push 修改等功能。 
  • Session 管理、多輪對話支援:VibeKit 允許你管理 session,以便多次對話與狀態追蹤。 
  • Secrets 管理:可以安全傳遞環境變數 / 憑證到沙盒內執行程式碼,而不是暴露在外層。

配置概念

在 SDK 層面,你會常常看到以下設定方法:

  • withAgent({ … }):定義你要使用的 Agent 類型、模型、Provider 等。 
  • .withSandbox(...):設定沙盒環境提供者,例如 E2B、Daytona、Dagger、Cloudflare 等。 
  • .withSecrets({ … }):把需要的環境變數/憑證傳到沙盒裡。 
  • .withGithub(...):設定 GitHub token & repository,使 Agent 能在 repo 上操作代碼。 
  • .withSession(...) / .getSession() / .setSession():管理 session 狀態以支持連續互動。 
  • .executeCommand(...):運行具體的指令(或 Agent 指令)於沙盒內。 
  • .getHost():如果 Agent 啟了一個服務(比如 local dev server),可以取得沙盒內部的 host 給外部訪問。 

也有不少功能支援「串流輸出」與即時反應:你可以 subscribe 到 stdout / stderr 事件來即時拿到輸出。 而 generateCode 方法已被標為 Deprecated,官方建議使用 executeCommand 方式更靈活、可控制。 
Agent-specific 支援中,有:

  • Codex:在 headless 模式下自動編輯檔案、建立/刪除檔案。 
  • Claude / Claude Code:VibeKit 支援把 Claude 作為 Agent 類型之一。 
  • Gemini:作為支援 Agent 類型之一。

實戰使用

安裝 VibeKit CLI / SDK

npm install -g vibekit

在應用中用 SDK(Node / TypeScript):

import { VibeKit } from "@vibe-kit/sdk";
import { createE2BProvider } from "@vibe-kit/e2b";

const provider = createE2BProvider({
  apiKey: process.env.E2B_API_KEY!,
  templateId: "vibekit-claude",
});

const vibeKit = new VibeKit()
  .withAgent({
    type: "claude",
    provider: "anthropic",
    apiKey: process.env.ANTHROPIC_API_KEY!,
    model: "claude-sonnet-4-20250514",
  })
  .withSandbox(provider)
  .withSecrets({
    DATABASE_URL: process.env.DATABASE_URL!,
    GITHUB_TOKEN: process.env.GITHUB_TOKEN!,
  })
  .withGithub({
    token: process.env.GITHUB_TOKEN!,
    repository: "your-org/your-repo",
  })
  .withWorkingDirectory("/path/to/project");

記憶碼摘要

技術:VibeKit  
分類:AI 編碼代理安全執行層 / SDK + CLI 工具  
難度:⭐⭐⭐☆☆(1–5 顆星)  
實用度:⭐⭐⭐⭐⭐(1–5 顆星)  
一句話:讓你的 AI 編碼 Agent 在隔離沙盒裡安全執行,並提供 observability 與整合功能。  
關鍵指令/方法:vibekit cli/executeCommand/withAgent/withSandbox  
適用情境:當你要把 Agent 嵌入應用程式裡或讓 Agent 執行程式碼時,希望有隔離與安全保護。

結語

VibeKit 給我的感覺是「在 Agent 與環境之間加了一層安全保護膜」,讓你可以比較放心地讓 AI 生成或執行程式碼,而不用怕誤傷系統或泄露機密。當然它不是萬用的終極方案,還要配合 provider、憑證、權限管理、session 控制等一起做才完整。


上一篇
Day 18 - mise:統一開發環境的現代化 asdf 替代方案
系列文
攔截記憶碼:每日一小時記錄技術學習21
圖片
  熱門推薦
圖片
{{ item.channelVendor }} | {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言