井出草平の研究ノート

DeepSeek V4のAPIを使ってClaude Coworkを使う[Windows]

Claude Coworkは、WordやExcelを含むファイル処理、Pythonスクリプト実行、bashによる確認作業などを行えるデスクトップ型AIエージェントである。通常はAnthropicのClaudeモデルで利用するが、Gateway経由でDeepSeek V4 APIを使うこともできる。

ただし、Gateway / third-party provider設定でDeepSeek V4を使った場合、ReadWriteEdit などのファイル操作ツールは使える一方で、mcp__workspace__bash が次のエラーで失敗することがあった。

Workspace unavailable. The isolated Linux environment failed to start.

今回の問題は、DeepSeek V4のtool calling非対応でも、WSL / Hyper-Vの不備でもなく、Gateway用プロファイル Claude-3p 側にLinux VM bundleが存在しなかったことが原因だった。


症状

Claude CoworkをGateway経由でDeepSeek V4 APIに接続すると、以下の状態になった。

Read      利用可能
Write     利用可能
Edit      利用可能
Skill     利用可能
mcp__workspace__bash  ツールとしては存在する

しかし、mcp__workspace__bashpwd を実行すると、次のエラーになった。

Workspace unavailable. The isolated Linux environment failed to start.

Cowork側から見ると、mcp__workspace__bash の呼び出し自体には成功しているが、Linux workspaceが起動しない状態である。


当初疑ったが主因ではなかったもの

最初に疑ったのは以下である。

WSLが無効
VirtualMachinePlatformが無効
Hyper-Vが無効
CoworkVMServiceが停止している
Gatewayがtoolsを渡していない
DeepSeek V4がtool_useに対応していない

しかし、確認すると次の状態だった。

Microsoft-Windows-Subsystem-Linux : Enabled
VirtualMachinePlatform            : Enabled
HypervisorPlatform                 : Enabled
CoworkVMService                    : Running

また、DeepSeek/Gateway接続時でも ReadWriteEditSkillmcp__workspace__bash はツールとして見えていた。したがって、tool calling自体は通っていた。


実際の原因

Claude Coworkは、通常のAnthropicログイン時と、Gateway / third-party provider利用時で、別のRoamingディレクトリを使っていた。

通常Claude側:

C:\Users\Sohei\AppData\Local\Packages\Claude_pzs8sxrjxfjjc\LocalCache\Roaming\Claude

Gateway / 3P側:

C:\Users\Sohei\AppData\Local\Packages\Claude_pzs8sxrjxfjjc\LocalCache\Roaming\Claude-3p

通常Claude側には以下が存在していた。

...\Roaming\Claude\vm_bundles\claudevm.bundle

しかし、Gateway / 3P側には以下が存在していなかった。

...\Roaming\Claude-3p\vm_bundles

一方で、cowork-service.log では、Gateway利用時に Claude-3p\vm_bundles\claudevm.bundle を参照しようとしていた。

つまり、Gateway用の Claude-3p プロファイルがLinux VM bundleを必要としているのに、そのディレクトリが作成されていなかったことが原因だった。


解決方法

通常Claude側に存在する vm_bundles を、Gateway用の Claude-3p 側へコピーした。

PowerShellで以下を実行する。

Stop-Service CoworkVMService

$src = "$env:LOCALAPPDATA\Packages\Claude_pzs8sxrjxfjjc\LocalCache\Roaming\Claude\vm_bundles"
$dstParent = "$env:LOCALAPPDATA\Packages\Claude_pzs8sxrjxfjjc\LocalCache\Roaming\Claude-3p"

Copy-Item -Path $src -Destination $dstParent -Recurse -Force

Start-Service CoworkVMService

コピー後、以下のファイルが Claude-3p 側にも存在することを確認した。

rootfs.vhdx
initrd
vmlinuz
smol-bin.vhdx
sessiondata.vhdx

確認コマンド:

Get-ChildItem "$env:LOCALAPPDATA\Packages\Claude_pzs8sxrjxfjjc\LocalCache\Roaming\Claude-3p\vm_bundles\claudevm.bundle" -Force

動作確認

Coworkを再起動し、次の指示を出した。

mcp__workspace__bash を使って pwd を実行してください。
本文で説明せず、必ずツール呼び出しとして実行してください。

実行結果:

/sessions/eager-determined-feynman

これにより、Gateway / DeepSeek V4接続時でもCoworkのLinux workspaceが起動し、mcp__workspace__bash が利用可能になった。


成功後にできたこと

mcp__workspace__bash が復旧したため、Cowork上でPythonスクリプトを実行できるようになった。

今回のケースでは、fill_budget.py のパスをLinux環境用のマウントパスに修正し、Excel記入スクリプトを実行した。最終的に、以下のファイルが作成された。

C:\Users\Sohei\Claude_Workspace\様式1_研究計画調書_記入済.xlsx

つまり、ClaudeサブスクではなくDeepSeek V4 API / Gateway経由でも、Coworkのファイル処理・bash実行・Excel処理まで実行可能になった。


重要な知見

この解決策は、Web検索では見つからなかった。

検索で見つかる情報は主に以下だった。

WSL / Hyper-V / VirtualMachinePlatformを有効にする
CoworkVMServiceを再起動する
GatewayやAnthropic互換APIを設定する
tool_use / MCP対応を確認する

しかし、今回の実際の原因である

Gateway用の Claude-3p プロファイルに vm_bundles が存在しない
通常Claude側の vm_bundles を Claude-3p 側へコピーすると mcp__workspace__bash が復旧する

という情報は見つからなかった。

そのため、これは実地トラブルシュートで得られた有用な知見である。


再発時の確認ポイント

同じエラーが出た場合は、まず Claude-3p 側に vm_bundles があるか確認する。

Get-ChildItem "$env:LOCALAPPDATA\Packages\Claude_pzs8sxrjxfjjc\LocalCache\Roaming\Claude-3p" -Force

vm_bundles がなければ、通常Claude側からコピーする。

Stop-Service CoworkVMService

$src = "$env:LOCALAPPDATA\Packages\Claude_pzs8sxrjxfjjc\LocalCache\Roaming\Claude\vm_bundles"
$dstParent = "$env:LOCALAPPDATA\Packages\Claude_pzs8sxrjxfjjc\LocalCache\Roaming\Claude-3p"

Copy-Item -Path $src -Destination $dstParent -Recurse -Force

Start-Service CoworkVMService

その後、Coworkを再起動し、mcp__workspace__bashpwd を実行して確認する。


まとめ

Claude CoworkをDeepSeek V4 API / Gateway経由で利用した際、mcp__workspace__bash

Workspace unavailable. The isolated Linux environment failed to start.

で失敗する場合、WSL、Hyper-V、tool calling、DeepSeek V4のAPI互換性だけが原因とは限らない。

今回のケースでは、Gateway用プロファイル Claude-3p にLinux VM bundleが存在しなかったことが原因だった。通常Claude側の vm_bundlesClaude-3p 側へコピーすることで、mcp__workspace__bash が復旧し、Cowork上でbash実行・Python実行・Excel処理まで可能になった。