WSL環境でのOpenManus実行時のブラウザ問題と解決策
先日OpenManusという無料でローカル環境のLLmを使えば、外部にログが残らないというエージェントを知りました。
最初は、Windows11でリポジトリのクローンを作り試していたのですが、ブラウザが起動しないことや、回答を得られずエラーが出るなど大変な思いをしました。
ネットで調べているとWindowsでは、WSLを使うと良いということを知りました。
またAnacondaを使うと良いことも、知りました。
WSLにAnacondaをインストールして、仮想環境を作り直して試行錯誤しました。
cursorを活用して、なんとか使えるようにできました。
ブラウザが起動して、地図にもアクセスできるようになりました。
今回の体験は、こちらにイシューで投稿しました。
修正した内容は、イシューに投稿した記事で確認してください。このように、活用できています。
Chromeも起動できるようになりましたので、自動でウェブページにアクセスしている様子を確認できます。
OpenManusのリポジトリが増えてきたので、私が使ったリポジトリをご紹介します。
config/config.toml
設定ファイルの内容は、このようになっています。
最初LMStudioを使って試したので、その情報も含まれています。
今は、GeminiのAPIを使う設定になっています。
#Global LLM configuration
[llm]
model = "gemini-2.0-flash"
base_url = "https://generativelanguage.googleapis.com/v1beta/"
api_key = "*************"
max_tokens = 8000
temperature = 0.0
# [llm] #LLMStudio:
# api_type = 'LM-Studio'
# model = "phi-4-mini"
# base_url = "http://*****:1234/v1"
# api_key = "LM-Studio"
# max_tokens = 4096
# temperature = 0.0
# Optional configuration for specific LLM models
[llm.vision]
model = "claude-3-7-sonnet" # The vision model to use
base_url = "https://api.openai.com/v1" # API endpoint URL for vision model
api_key = "sk-..." # Your API key for vision model
max_tokens = 8192 # Maximum number of tokens in the response
temperature = 0.0 # Controls randomness for vision model
# [llm.vision] #OLLAMA VISION:
# api_type = 'ollama'
# model = "llama3.2-vision"
# base_url = "http://localhost:11434/v1"
# api_key = "ollama"
# max_tokens = 4096
# temperature = 0.0
# Optional configuration for specific browser configuration
[browser]
# Run browser in headless mode for WSL
headless = false # GUIを表示
# Disable browser security features for WSL compatibility
disable_security = true
# Extra arguments for WSL browser
extra_chromium_args = [
"--no-sandbox",
"--disable-gpu",
"--disable-dev-shm-usage",
"--disable-setuid-sandbox",
"--remote-debugging-port=9222",
"--remote-debugging-address=0.0.0.0",
]
# Connect to a browser instance via CDP
cdp_url = "http://localhost:9222"
# Optional browser instance path (comment out if not needed)
# chrome_instance_path = "/usr/bin/google-chrome"
# Optional configuration, Proxy settings for the browser
# [browser.proxy]
# server = "http://proxy-server:port"
# username = "proxy-username"
# password = "proxy-password"
# Optional configuration, Search settings.
# [search]
# Search engine for agent to use. Default is "Google", can be set to "Baidu" or "DuckDuckGo".
#engine = "Google"
ChatGPT GPT-4oが作ってくれたファイル
最終的なデバッグと修正は、cursorを使いました。
このファイルを起動してから、main.pyを実行すると良いです。
#launch_browser.py
from playwright.sync_api import sync_playwright
with sync_playwright() as p:
print("Launching Playwright browser...")
browser = p.chromium.launch(
headless=False, # GUIを表示
args=[
"--remote-debugging-port=9222",
"--remote-debugging-address=0.0.0.0",
"--disable-gpu",
"--disable-software-rasterizer",
"--disable-setuid-sandbox",
"--disable-dev-shm-usage",
"--no-sandbox",
"--no-zygote",
],
)
# 新しいコンテキストとページを作成
context = browser.new_context()
page = context.new_page()
# OpenManusの初期ページを表示
page.goto("about:blank") # 空白ページを表示
page.set_content(
"""
<html>
<head>
<title>OpenManus Browser</title>
<style>
body {
font-family: Arial, sans-serif;
margin: 40px;
background-color: #f5f5f5;
}
.container {
background-color: white;
padding: 20px;
border-radius: 8px;
box-shadow: 0 2px 4px rgba(0,0,0,0.1);
}
h1 {
color: #333;
margin-bottom: 20px;
}
.status {
color: #4CAF50;
font-size: 18px;
}
.info {
margin-top: 20px;
color: #666;
}
</style>
</head>
<body>
<div class="container">
<h1>🤖 OpenManus Browser</h1>
<div class="status">✅ ブラウザが正常に起動しました</div>
<div class="info">
<p>デバッグポート: <code>http://localhost:9222</code></p>
<p>このウィンドウは開いたままにしてください。</p>
<p>OpenManusがこのブラウザを使用して操作を行います。</p>
</div>
</div>
</body>
</html>
"""
)
print("Browser is running with remote debugging at: http://localhost:9222")
print("Playwright browser launched successfully. Keep this process running.")
try:
input("Press Enter to exit...")
finally:
context.close()
browser.close()
イシューのコメント日本語にしたのが良くないと言われたので
イシューのコメントで、英語や中国語で開発しているので、日本語でメッセージが表示されるのは良くないという内容のコメントがありました。
それで、多言語化できるように、コードを作りました。
こちらのイシューも、ご確認いただけますと嬉しいです。
今後取り組みたいこと
現在エージェントの回答が、ターミナルに表示されます。
その中でエージェントが確認を求めても、そのまま進んでしまうことや、メッセージが分かりやすくできないか改善できたらと思いました。
WebUIを付けることができたら、良いかもしれないです。
Discussion