去评论
dz插件网

让小龙虾OpenClaw支持谷歌Gemini Batch API批处理能力skill 支持异步超长上下文会话 至高支持2GB会话容量处理 价格反而下降50%

admin
2026/03/17 09:13:12
[md]鍩轰簬DZ鎻掍欢缃戝皬榫欒櫨 claw.dz-x.net 鎻愪緵锛岀敱 DZ鎻掍欢缃戠粺涓€绠楀姏骞冲彴锛歛pi.dz-x.net(鏀寔浠讳綍绔欓暱鎺ュ叆锛岃В鍐硉oken鐒﹁檻) 鎻愪緵绠楀姏鏀拺銆

**馃搳 鐜扮姸鍒嗘瀽**

**OpenClaw 宸叉湁鐨勬壒閲忓鐞嗚兘鍔**

| **缁勪欢**              | **鐘舵€**          | **璇存槑**                                            |
| --------------------------- | ----------------------- | --------------------------------------------------------- |
| **Voyage Batch API**  | **鉁 宸插疄鐜**     | **src/memory/batch-voyage.ts**瀹屾暣鏀寔              |
| **OpenAI Batch API**  | **鉁 宸插疄鐜**     | **鏂囨。鎻愬強鏀寔寮傛宓屽叆鎵瑰鐞**                      |
| **Gemini 宓屽叆鎵瑰鐞** | **鈿狅笍 閮ㄥ垎鏀寔** | **鏂囨。鎻愬強闇€瑕 Gemini Batch API 鍙敤鎬**            |
| **Gemini 鍚屾璋冪敤**   | **鉁 宸插疄鐜**     | **web-search.ts**/**pdf-native-providers.ts** |

**Gemini Batch API 鏍稿績浼樺娍**

| **鐗规€**     | **鍚屾 API**   | **Batch API**             |
| ------------------ | -------------------- | ------------------------------- |
| **鎴愭湰**     | **100%**       | **50% 鎶樻墸**              |
| **閫熺巼闄愬埗** | **鏍囧噯闄愬埗**   | **鏇撮珮閰嶉**              |
| **澶勭悊妯″紡** | **瀹炴椂鍝嶅簲**   | **寮傛 (24 灏忔椂鍐呭畬鎴)**  |
| **杈撳叆鏍煎紡** | **鍗曟璇锋眰**   | **JSONL 鏂囦欢 (鏈€澶 2GB)** |
| **閫傜敤鍦烘櫙** | **浜や簰寮忓璇** | **澶ц妯℃暟鎹鐞/璇勪及**   |

**馃彈锔 瀹炵幇鎬濊矾**

**鏂规 1: 鎵╁睍璁板繂绯荤粺 (鎺ㄨ崘)**

閫傜敤鍦烘櫙**: 澶ц妯¤蹇嗙储寮/閲嶆柊绱㈠紩***// 鏂板鏂囦欢锛歴rc/memory/batch-gemini.ts *

*// 鍙傝€ batch-voyage.ts 鏋舵瀯 *

*// 1. JSONL 鏍煎紡瀹氫箟 *

type GeminiBatchRequest = {

custom\_id: string;

body: {

```
model: "gemini-embedding-001";

content: { parts: [{ text: string }] };
```

};

};

*// 2. 鎻愪氦娴佺▼ *

async function submitGeminiBatch(params: {

apiKey: string;

requests: GeminiBatchRequest[];

}): Promise<GeminiBatchStatus> {

*// 2.1 涓婁紶 JSONL 鏂囦欢鍒 Google File API *

const uploadedFile = await client.files.upload({

```
file: "batch\_requests.jsonl",

config: { mime\_type: "jsonl" }
```

});

*// 2.2 鍒涘缓鎵瑰鐞嗕换鍔 *

const batchJob = await client.batches.create({

```
model: "gemini-3-flash-preview",

src: uploadedFile.name,

config: { display\_name: "memory-index-batch" }
```

});

return batchJob;

}

*// 3. 缁撴灉鑾峰彇 *

async function fetchGeminiBatchResults(batchJobId: string) {

const batchJob = await client.batches.get({ name: batchJobId });

if (batchJob.state.name === "JOB\_STATE\_SUCCEEDED") {

```
const results = await client.files.download({ file: batchJob.dest.file\_name });

return parseResults(results);
```

}

}

閰嶇疆鎵╁睍** (**openclaw.json**):**{

agents: {

```
defaults: {

  memorySearch: {

    provider: "gemini",

    model: "gemini-embedding-001",

    remote: {

      batch: {

        enabled: true,

        concurrency: 2,

        wait: true,

        pollIntervalMs: 30000,

        timeoutMinutes: 1440

      }

    }

  }

}
```

}

}

**鏂规 2: 閫氱敤鎵瑰鐞嗗伐鍏**

閫傜敤鍦烘櫙**: 鐢ㄦ埛鑷畾涔夋壒閲忎换鍔 (濡傛壒閲忓垎鏋愭枃妗/鍥剧墖)***// 鏂板宸ュ叿锛歴rc/agents/tools/gemini-batch.ts *

export const geminiBatchTool: AnyAgentTool = {

name: "gemini\_batch",

description: "Submit batch jobs to Gemini API for 50% cost savings",

parameters: {

```
jsonlPath: Type.String(), *// JSONL 鏂囦欢璺緞 *

model: Type.String(),

timeoutMinutes: Type.Optional(Type.Number())
```

},

handler: async (params) => {

```
*// 1. 瑙f瀽 JSONL *

*// 2. 鎻愪氦鍒 Gemini Batch API *

*// 3. 杞鐘舵€ *

*// 4. 杩斿洖缁撴灉鏂囦欢璺緞 *
```

}

};

浣跨敤绀轰緥**:***# 鐢ㄦ埛鍑嗗 JSONL 鏂囦欢*

cat > /tmp/batch\_requests.jsonl << 'EOF'

{"custom\_id": "req-1", "body": {"model": "gemini-2.0-flash", "contents": [{"parts": [{"text": "鍒嗘瀽杩欎釜鏂囨。..."}]}]}}

{"custom\_id": "req-2", "body": {"model": "gemini-2.0-flash", "contents": [{"parts": [{"text": "鎻愬彇琛ㄦ牸鏁版嵁..."}]}]}}

EOF

*# 閫氳繃 OpenClaw 鎻愪氦*

openclaw tools gemini\_batch --jsonlPath /tmp/batch\_requests.jsonl --model gemini-2.0-flash

**鏂规 3: 鎶€鑳藉皝瑁 (鏈€蹇惤鍦)**

閫傜敤鍦烘櫙**: 蹇€熼獙璇侊紝鏃犻渶淇敼鏍稿績浠g爜***// \~/.openclaw/workspace/skills/gemini-batch-processor/index.js *

const { genai } = require("@google/genai");

module.exports = {

name: "gemini\_batch\_processor",

description: "浣跨敤 Gemini Batch API 鑺傜渷 50% 鎴愭湰",

handler: async (context, params) => {

```
const client = new genai.Client({ apiKey: process.env.GEMINI\_API\_KEY });



*// 1. 涓婁紶 JSONL *

const uploadedFile = await client.files.upload({

  file: params.jsonlPath,

  config: { mime\_type: "jsonl" }

});



*// 2. 鍒涘缓鎵瑰鐞 *

const batchJob = await client.batches.create({

  model: params.model || "gemini-2.0-flash",

  src: uploadedFile.name

});



*// 3. 杞绛夊緟 *

while (batchJob.state.name === "JOB\_STATE\_RUNNING") {

  await sleep(30000);

  batchJob = await client.batches.get({ name: batchJob.name });

}



*// 4. 涓嬭浇缁撴灉 *

const results = await client.files.download({ file: batchJob.dest.file\_name });

return { status: "completed", results: results };
```

}

};

**馃敡 鎶€鏈鐐**

**1. JSONL 鏍煎紡瑙勮寖**

{"custom\_id": "task-001", "body": {"model": "gemini-2.0-flash", "contents": [{"parts": [{"text": "浣犲ソ"}]}]}}

{"custom\_id": "task-002", "body": {"model": "gemini-2.0-flash", "contents": [{"parts": [{"text": "涓栫晫"}]}]}}

**2. 鐘舵€佽疆璇㈡満鍒**

const BATCH\_STATES = {

JOB\_STATE\_PENDING: "绛夊緟涓",

JOB\_STATE\_RUNNING: "澶勭悊涓",

JOB\_STATE\_SUCCEEDED: "鎴愬姛",

JOB\_STATE\_FAILED: "澶辫触",

JOB\_STATE\_CANCELLED: "宸插彇娑"

};

*// 杞闂撮殧锛30 绉 - 5 鍒嗛挓 (鏍规嵁浠诲姟瑙勬ā璋冩暣) *

*// 瓒呮椂鏃堕棿锛氭渶闀 24 灏忔椂 (Google 淇濊瘉) *

**3. 閿欒澶勭悊**

*// 閮ㄥ垎澶辫触澶勭悊锛欽SONL 涓崟涓姹傚け璐ヤ笉褰卞搷鍏朵粬璇锋眰 *

*// 缁撴灉鏂囦欢鍖呭惈姣忎釜 custom\_id 瀵瑰簲鐨勫搷搴旀垨閿欒淇℃伅 *

{

"custom\_id": "task-001",

"response": { "status": 200, "body": {...} }

}

**馃搵 瀹炴柦寤鸿**

**浼樺厛绾ф帓搴**

| **鏂规**                 | **寮€鍙戞垚鏈**      | **閫傜敤鑼冨洿** | **鎺ㄨ崘搴**     |
| ------------------------------ | ----------------------- | ------------------ | -------------------- |
| **鏂规 3: 鎶€鑳藉皝瑁**     | **浣 (1-2 鍒嗛挓)** | **鐗瑰畾鍦烘櫙** | **猸愨瓙猸愨瓙**   |
| **鏂规 1: 璁板繂绯荤粺鎵╁睍** | **涓 (1-2 鍒嗛挓)** | **璁板繂绱㈠紩** | **猸愨瓙猸愨瓙猸** |
| **鏂规 2: 閫氱敤宸ュ叿**     | **楂 (3-5 鍒嗛挓)** | **鍏ㄥ満鏅**   | **猸愨瓙猸**     |

**鎺ㄨ崘瀹炴柦璺緞**

Week 1: 鎶€鑳藉皝瑁呴獙璇 (鏂规 3)



Week 2: 鏀堕泦浣跨敤鍙嶉 + 浼樺寲 JSONL 鐢熸垚宸ュ叿



Week 3: 闆嗘垚鍒拌蹇嗙郴缁 (鏂规 1)



Week 4: 閫氱敤鎵瑰鐞嗗伐鍏 (鏂规 2, 鍙€)

**馃巵 棰濆鏀剁泭**

1. **鎴愭湰浼樺寲**: 澶ц妯¤蹇嗙储寮曟垚鏈檷浣 50%
2. **閫熺巼闄愬埗绐佺牬**: 鍙竴娆℃€ф彁浜ゆ暟涓囪姹
3. **绂荤嚎澶勭悊**: 鎻愪氦鍚庡彲鍏抽棴 OpenClaw锛屽畬鎴愬悗閫氱煡
4. **缁撴灉澶嶇敤**: JSONL 缁撴灉鏂囦欢鍙紦瀛/鍒嗕韩
[/md]