Tools
ãã©ãŠã¶ãŒïŒOpenClaw 管çïŒ
OpenClaw ã¯ããšãŒãžã§ã³ããå¶åŸ¡ãã å°çšã® Chrome/Brave/Edge/Chromium ãããã¡ã€ã«ãå®è¡ã§ããŸãã ããã¯å人çšãã©ãŠã¶ããåé¢ãããGateway å ã®å°ããªããŒã«ã«å¶åŸ¡ãµãŒãã¹ïŒã«ãŒãããã¯ã®ã¿ïŒãéããŠç®¡çãããŸãã
åå¿è åãã®èŠæ¹:
- ãšãŒãžã§ã³ãå°çšã®å¥ãã©ãŠã¶ã ãšèããŠãã ããã
openclawãããã¡ã€ã«ã¯å人çšãã©ãŠã¶ãããã¡ã€ã«ã«è§ŠããŸããã- ãšãŒãžã§ã³ãã¯å®å šãªã¬ãŒã³ã§ãã¿ããéããããŒãžãèªããã¯ãªãã¯ãããå ¥åããããšãã§ããŸãã
- çµã¿èŸŒã¿ã®
userãããã¡ã€ã«ã¯ãChrome MCP çµç±ã§å®éã«ãµã€ã³ã€ã³æžã¿ã® Chrome ã»ãã·ã§ã³ã«ã¢ã¿ããããŸãã
åŸããããã®
- openclaw ãšããååã®å¥ãã©ãŠã¶ãããã¡ã€ã«ïŒããã©ã«ãã§ã¯ãªã¬ã³ãžã®ã¢ã¯ã»ã³ãïŒã
- 決å®çãªã¿ãå¶åŸ¡ïŒlist/open/focus/closeïŒã
- ãšãŒãžã§ã³ãã¢ã¯ã·ã§ã³ïŒclick/type/drag/selectïŒãã¹ãããã·ã§ãããã¹ã¯ãªãŒã³ã·ã§ãããPDFã
- ãã©ãŠã¶ Plugin ãæå¹ãªãšãã«ãã¹ãããã·ã§ãããå®å®ããã¿ããå€ãåç
§ãæåãããã«ãŒå埩ã«ãŒãããšãŒãžã§ã³ãã«æããã忢±ã®
browser-automationskillã - ä»»æã®ãã«ããããã¡ã€ã«å¯Ÿå¿ïŒ
openclawãworkãremoteã...ïŒã
ãã®ãã©ãŠã¶ã¯æ¥åžžçšãã©ãŠã¶ã§ã¯ãããŸããããšãŒãžã§ã³ãã®èªååãšæ€èšŒã®ããã®ãå®å šã§åé¢ããããµãŒãã§ã¹ã§ãã
ã¯ã€ãã¯ã¹ã¿ãŒã
openclaw browser --browser-profile openclaw doctoropenclaw browser --browser-profile openclaw doctor --deepopenclaw browser --browser-profile openclaw statusopenclaw browser --browser-profile openclaw startopenclaw browser --browser-profile openclaw open https://example.comopenclaw browser --browser-profile openclaw snapshotãBrowser disabledããšè¡šç€ºãããå Žåã¯ãèšå®ã§æå¹åïŒäžèšåç §ïŒã㊠Gateway ãåèµ·åããŠãã ããã
openclaw browser ããŸã£ããååšããªãå ŽåããŸãã¯ãšãŒãžã§ã³ãããã©ãŠã¶ããŒã«ãå©çšã§ããªããšèšãå Žåã¯ããã©ãŠã¶ã³ãã³ããŸãã¯ããŒã«ãèŠã€ãããªãã«é²ãã§ãã ããã
Plugin ã®å¶åŸ¡
ããã©ã«ãã® browser ããŒã«ã¯å梱 Plugin ã§ããåã browser ããŒã«åãç»é²ããå¥ã® Plugin ã«çœ®ãæããã«ã¯ããããç¡å¹åããŸãã
{ plugins: { entries: { browser: { enabled: false, }, }, },}ããã©ã«ãã«ã¯ plugins.entries.browser.enabled ãš browser.enabled=true ã®äž¡æ¹ãå¿
èŠã§ããPlugin ã ããç¡å¹åãããšãopenclaw browser CLIãbrowser.request Gateway ã¡ãœããããšãŒãžã§ã³ãããŒã«ãå¶åŸ¡ãµãŒãã¹ã1ã€ã®åäœãšããŠåé€ãããŸãã眮ãæãçšã« browser.* èšå®ã¯ãã®ãŸãŸæ®ããŸãã
ãã©ãŠã¶èšå®ã®å€æŽã«ã¯ Gateway ã®åèµ·åãå¿ èŠã§ããããã«ãã Plugin ããµãŒãã¹ãåç»é²ã§ããŸãã
ãšãŒãžã§ã³ãåãã¬ã€ãã³ã¹
ããŒã«ãããã¡ã€ã«ã®æ³šæ: tools.profile: "coding" ã«ã¯ web_search ãš web_fetch ãå«ãŸããŸãããå®å
šãª browser ããŒã«ã¯å«ãŸããŸããããšãŒãžã§ã³ããŸãã¯çæããããµããšãŒãžã§ã³ãããã©ãŠã¶èªååã䜿ãå¿
èŠãããå Žåã¯ããããã¡ã€ã«æ®µéã§ browser ã远å ããŠãã ããã
{ tools: { profile: "coding", alsoAllow: ["browser"], },}åäžã®ãšãŒãžã§ã³ãã§ã¯ãagents.list[].tools.alsoAllow: ["browser"] ã䜿çšããŸãã
tools.subagents.tools.allow: ["browser"] ã ãã§ã¯äžååã§ãããµããšãŒãžã§ã³ãããªã·ãŒã¯ãããã¡ã€ã«ãã£ã«ã¿ãªã³ã°åŸã«é©çšãããããã§ãã
ãã©ãŠã¶ Plugin ã¯ã2段éã®ãšãŒãžã§ã³ãåãã¬ã€ãã³ã¹ã忢±ããŠããŸãã
browserããŒã«èª¬æã«ã¯ãåžžææå¹ã®ã³ã³ãã¯ããªå¥çŽãå«ãŸããŸããé©åãªãããã¡ã€ã«ãéžã¶ãåãã¿ãäžã§åç §ãç¶æãããã¿ã察象æå®ã«tabId/ã©ãã«ã䜿ããè€æ°ã¹ãããäœæ¥ã§ã¯ãã©ãŠã¶ skill ãèªã¿èŸŒãããšããå 容ã§ãã- 忢±ã®
browser-automationskill ã«ã¯ãããé·ãéçšã«ãŒããå«ãŸããŸãããŸã status/tabs ã確èªããã¿ã¹ã¯çšã¿ãã«ã©ãã«ãä»ããæäœåã«ã¹ãããã·ã§ãããåããUI 倿ŽåŸã«åã¹ãããã·ã§ãããåããå€ãåç §ãäžåºŠã ãå埩ãããã°ã€ã³/2FA/captcha ãŸãã¯ã«ã¡ã©/ãã€ã¯ã®ãããã«ãŒã¯æšæž¬ããæå察å¿ãšããŠå ±åããŸãã
Plugin 忢±ã® skills ã¯ãPlugin ãæå¹ãªãšãã«ãšãŒãžã§ã³ãã®å©çšå¯èœãª skills ã«è¡šç€ºãããŸããå®å šãª skill æé ã¯å¿ èŠæã«èªã¿èŸŒãŸãããããéåžžã®ã¿ãŒã³ã§ã¯å šããŒã¯ã³ã³ã¹ããæ¯æããŸããã
ãã©ãŠã¶ã³ãã³ããŸãã¯ããŒã«ãèŠã€ãããªã
ã¢ããã°ã¬ãŒãåŸã« openclaw browser ãäžæãbrowser.request ãèŠã€ãããªãããŸãã¯ãšãŒãžã§ã³ãããã©ãŠã¶ããŒã«ãå©çšã§ããªããšå ±åããå Žåãéåžžã®åå 㯠browser ãçãã plugins.allow ãªã¹ããããããã€ã«ãŒãã® browser èšå®ãããã¯ãååšããªãããšã§ãã远å ããŠãã ããã
{ plugins: { allow: ["telegram", "browser"], },}æç€ºçãªã«ãŒã browser ãããã¯ãããšãã° browser.enabled=true ã browser.profiles.<name> ã¯ãå¶éç㪠plugins.allow ã®äžã§ã忢±ãã©ãŠã¶ Plugin ãæå¹åããŸããããã¯ãã£ãã«èšå®ã®åäœãšäžèŽããŸããplugins.entries.browser.enabled=true ãš tools.alsoAllow: ["browser"] ã¯ãããã ãã§ã¯ allowlist ã¡ã³ããŒã·ããã®ä»£æ¿ã«ã¯ãªããŸãããplugins.allow ãå®å
šã«åé€ããŠãããã©ã«ãã埩å
ãããŸãã
ãããã¡ã€ã«: openclaw ãš user
openclaw: 管çãããåé¢ãã©ãŠã¶ïŒæ¡åŒµæ©èœã¯äžèŠïŒãuser: å®éã«ãµã€ã³ã€ã³æžã¿ã® Chrome ã»ãã·ã§ã³çšã®çµã¿èŸŒã¿ Chrome MCP ã¢ã¿ãããããã¡ã€ã«ã
ãšãŒãžã§ã³ãã®ãã©ãŠã¶ããŒã«åŒã³åºãã§ã¯:
- ããã©ã«ã: åé¢ããã
openclawãã©ãŠã¶ã䜿ããŸãã - æ¢åã®ãã°ã€ã³æžã¿ã»ãã·ã§ã³ãéèŠã§ããŠãŒã¶ãŒãã³ã³ãã¥ãŒã¿ãŒã®åã§ã¢ã¿ããããã³ãããã¯ãªãã¯/æ¿èªã§ããå Žåã¯ã
profile="user"ãåªå ããŸãã - ç¹å®ã®ãã©ãŠã¶ã¢ãŒãã䜿ãããå Žåã
profileãæç€ºçãªãªãŒããŒã©ã€ãã§ãã
管çã¢ãŒããããã©ã«ãã«ãããå Žåã¯ãbrowser.defaultProfile: "openclaw" ãèšå®ããŸãã
èšå®
ãã©ãŠã¶èšå®ã¯ ~/.openclaw/openclaw.json ã«ãããŸãã
{ browser: { enabled: true, // default: true ssrfPolicy: { // dangerouslyAllowPrivateNetwork: true, // opt in only for trusted private-network access // allowPrivateNetwork: true, // legacy alias // hostnameAllowlist: ["*.example.com", "example.com"], // allowedHostnames: ["localhost"], }, // cdpUrl: "http://127.0.0.1:18792", // legacy single-profile override remoteCdpTimeoutMs: 1500, // remote CDP HTTP timeout (ms) remoteCdpHandshakeTimeoutMs: 3000, // remote CDP WebSocket handshake timeout (ms) localLaunchTimeoutMs: 15000, // local managed Chrome discovery timeout (ms) localCdpReadyTimeoutMs: 8000, // local managed post-launch CDP readiness timeout (ms) actionTimeoutMs: 60000, // default browser act timeout (ms) tabCleanup: { enabled: true, // default: true idleMinutes: 120, // set 0 to disable idle cleanup maxTabsPerSession: 8, // set 0 to disable the per-session cap sweepMinutes: 5, }, defaultProfile: "openclaw", color: "#FF4500", headless: false, noSandbox: false, attachOnly: false, executablePath: "/Applications/Brave Browser.app/Contents/MacOS/Brave Browser", profiles: { openclaw: { cdpPort: 18800, color: "#FF4500" }, work: { cdpPort: 18801, color: "#0066CC", headless: true, executablePath: "/Applications/Google Chrome.app/Contents/MacOS/Google Chrome", }, user: { driver: "existing-session", attachOnly: true, color: "#00AA00", }, brave: { driver: "existing-session", attachOnly: true, userDataDir: "~/Library/Application Support/BraveSoftware/Brave-Browser", color: "#FB542B", }, remote: { cdpUrl: "http://10.0.0.42:9222", color: "#00AA00" }, }, },}ã¹ã¯ãªãŒã³ã·ã§ãã visionïŒããã¹ãå°çšã¢ãã«å¯Ÿå¿ïŒ
ã¡ã€ã³ã¢ãã«ãããã¹ãå°çšïŒvision/ãã«ãã¢ãŒãã«é察å¿ïŒã®å Žåããã©ãŠã¶ã¹ã¯ãªãŒã³ã·ã§ããã¯ã¢ãã«ãèªããªãç»åãããã¯ãè¿ããŸãããã©ãŠã¶ã¹ã¯ãªãŒã³ã·ã§ããã¯æ¢åã®ç»åçè§£èšå®ãåå©çšãããããã¡ãã£ã¢çè§£çšã«èšå®ãããç»åã¢ãã«ãããã©ãŠã¶åºæã®ã¢ãã«èšå®ãªãã§ã¹ã¯ãªãŒã³ã·ã§ãããããã¹ããšããŠèª¬æã§ããŸãã
{ tools: { media: { image: { models: [ { provider: "bytedance", model: "doubao-seed-2.0-pro" }, // Add fallback candidates; first success wins { provider: "openai", model: "gpt-4o" }, ], }, // Shared media models also work when tagged for image support. // models: [{ provider: "openai", model: "gpt-4o", capabilities: ["image"] }], }, }, agents: { defaults: { // Existing image-model defaults are also honored. // imageModel: { primary: "openai/gpt-4o" }, }, },}ä»çµã¿:
- ãšãŒãžã§ã³ãã
browser screenshotãåŒã³åºã â éåžžã©ããç»åããã£ã¹ã¯ã«ãã£ããã£ãããŸãã - ãã©ãŠã¶ããŒã«ã¯ãèšå®æžã¿ã®ã¡ãã£ã¢ç»åã¢ãã«ãå ±æã¡ãã£ã¢ã¢ãã«ãç»åã¢ãã«ã®ããã©ã«ãããŸãã¯èªèšŒæžã¿ç»åãããã€ããŒã䜿ã£ãŠã¹ã¯ãªãŒã³ã·ã§ããã説æã§ãããã©ãããæ¢åã®ç»åçè§£ã©ã³ã¿ã€ã ã«åãåãããŸãã
- vision ã¢ãã«ã¯ããã¹ã説æãè¿ããŸããããã¯
wrapExternalContentïŒããã³ããã€ã³ãžã§ã¯ã·ã§ã³ã¬ãŒãïŒã§ã©ãããããç»åãããã¯ã§ã¯ãªãããã¹ããããã¯ãšããŠãšãŒãžã§ã³ãã«è¿ãããŸãã - ç»åçè§£ãå©çšã§ããªããã¹ããããããããŸãã¯å€±æããå Žåããã©ãŠã¶ã¯å ã®ç»åãããã¯ãè¿ãåäœã«ãã©ãŒã«ããã¯ããŸãã
ã¢ãã«ãã©ãŒã«ããã¯ãã¿ã€ã ã¢ãŠãããã€ãå¶éããããã¡ã€ã«ããããã€ããŒãªã¯ãšã¹ãèšå®ã«ã¯ãæ¢åã® tools.media.image / tools.media.models ãã£ãŒã«ãã䜿ããŸãã
ã¢ã¯ãã£ããªã¡ã€ã³ã¢ãã«ããã§ã« vision ããµããŒãããŠãããæç€ºçãªç»åçè§£ã¢ãã«ãèšå®ãããŠããªãå ŽåãOpenClaw ã¯éåžžã®ç»åçµæãç¶æããã¡ã€ã³ã¢ãã«ãã¹ã¯ãªãŒã³ã·ã§ãããçŽæ¥èªããããã«ããŸãã
Ports and reachability
- å¶åŸ¡ãµãŒãã¹ã¯ã
gateway.portããæŽŸçããããŒãïŒããã©ã«ã18791= gateway + 2ïŒã§ã«ãŒãããã¯ã«ãã€ã³ãããŸããgateway.portãŸãã¯OPENCLAW_GATEWAY_PORTããªãŒããŒã©ã€ããããšã掟çããŒããåãç³»åã§ç§»åããŸãã - ããŒã«ã«
openclawãããã¡ã€ã«ã¯cdpPort/cdpUrlãèªåå²ãåœãŠããŸãããããã¯ãªã¢ãŒã CDP ãããã¡ã€ã«ãŸã㯠existing-session ãšã³ããã€ã³ãã¢ã¿ããã®å Žåã«ã®ã¿èšå®ããŠãã ãããæªèšå®ã®å ŽåãcdpUrlã¯ç®¡çãããããŒã«ã« CDP ããŒãã«ããã©ã«ãèšå®ãããŸãã remoteCdpTimeoutMsã¯ããªã¢ãŒãããã³attachOnlyCDP HTTP å°éæ§ãã§ãã¯ãšã¿ããéã HTTP ãªã¯ãšã¹ãã«é©çšãããŸããremoteCdpHandshakeTimeoutMsã¯ããããã® CDP WebSocket ãã³ãã·ã§ã€ã¯ã«é©çšãããŸããlocalLaunchTimeoutMsã¯ãããŒã«ã«ã§èµ·åããã管ç察象 Chrome ããã»ã¹ã CDP HTTP ãšã³ããã€ã³ããå ¬éãããŸã§ã®äºç®ã§ããlocalCdpReadyTimeoutMsã¯ãããã»ã¹æ€åºåŸã® CDP websocket æºåå®äºãŸã§ã®åŸç¶äºç®ã§ããChromium ã®èµ·åãé ã Raspberry Piãäœæ§èœ VPSããŸãã¯å€ãããŒããŠã§ã¢ã§ã¯ãããããåŒãäžããŠãã ãããå€ã¯120000ms ãŸã§ã®æ£ã®æŽæ°ã§ããå¿ èŠããããŸããäžæ£ãªèšå®å€ã¯æåŠãããŸãã- 管ç察象 Chrome ã®èµ·å/æºåå®äºå€±æãç¹°ãè¿ããããšããããã¡ã€ã«ããšã«ãµãŒããããã¬ãŒã¯ãããŸããé£ç¶ããŠæ°å倱æããåŸãOpenClaw ã¯ãã©ãŠã¶ããŒã«åŒã³åºãããšã« Chromium ãçæããã®ã§ã¯ãªããæ°ããèµ·å詊è¡ãçæé忢ããŸããèµ·ååé¡ãä¿®æ£ãããããã©ãŠã¶ãäžèŠãªãç¡å¹åãããã修埩åŸã« Gateway ãåèµ·åããŠãã ããã
actionTimeoutMsã¯ãåŒã³åºãå ãtimeoutMsãæž¡ããªãå Žåã®ãã©ãŠã¶actãªã¯ãšã¹ãã®ããã©ã«ãäºç®ã§ããã¯ã©ã€ã¢ã³ããã©ã³ã¹ããŒãã¯å°ããªäœè£ãŠã£ã³ããŠã远å ãããããé·ãåŸ æ©ã HTTP å¢çã§ã¿ã€ã ã¢ãŠãããã«å®äºã§ããŸããtabCleanupã¯ããã©ã€ããªãšãŒãžã§ã³ãã®ãã©ãŠã¶ã»ãã·ã§ã³ãéããã¿ãã«å¯Ÿãããã¹ããšãã©ãŒãã®ã¯ãªãŒã³ã¢ããã§ãããµããšãŒãžã§ã³ããcronãACP ã®ã©ã€ããµã€ã¯ã«ã¯ãªãŒã³ã¢ããã¯ãã»ãã·ã§ã³çµäºæã«æç€ºçã«è¿œè·¡ãããã¿ããåŒãç¶ãéããŸãããã©ã€ããªã»ãã·ã§ã³ã¯ã¢ã¯ãã£ããªã¿ããåå©çšå¯èœãªãŸãŸã«ãããã®åŸãããã¯ã°ã©ãŠã³ãã§ã¢ã€ãã«ç¶æ ãŸãã¯éå°ãªè¿œè·¡ã¿ããéããŸãã
SSRF policy
- ãã©ãŠã¶ã®ããã²ãŒã·ã§ã³ãšã¿ããéãæäœã¯ãããã²ãŒã·ã§ã³åã« SSRF ã¬ãŒãããããã®åŸã«æçµçãª
http(s)URL ã§ããã¹ããšãã©ãŒãã§åãã§ãã¯ãããŸãã - 峿 Œ SSRF ã¢ãŒãã§ã¯ããªã¢ãŒã CDP ãšã³ããã€ã³ãæ€åºãš
/json/versionãããŒãïŒcdpUrlïŒããã§ãã¯ãããŸãã - Gateway/provider ã®
HTTP_PROXYãHTTPS_PROXYãALL_PROXYãNO_PROXYç°å¢å€æ°ã¯ãOpenClaw 管çã®ãã©ãŠã¶ã«èªåã§ã¯ãããã·ãé©çšããŸããã管ç察象 Chrome ã¯ããã©ã«ãã§çŽæ¥èµ·åãããããprovider ã®ãããã·èšå®ã«ãã£ãŠãã©ãŠã¶ SSRF ãã§ãã¯ã匱ãŸãããšã¯ãããŸããã - OpenClaw 管çã®ããŒã«ã« CDP readiness ãããŒããš DevTools WebSocket æ¥ç¶ã¯ãæ£ç¢ºã«èµ·åãããã«ãŒãããã¯ãšã³ããã€ã³ãã«ã€ããŠç®¡ç察象ãããã¯ãŒã¯ãããã·ããã€ãã¹ãããããoperator ãããã·ãã«ãŒãããã¯éä¿¡ããããã¯ããå Žåã§ã
openclaw browser startã¯åäœããŸãã - 管ç察象ãã©ãŠã¶èªäœã«ãããã·ãé©çšããã«ã¯ã
browser.extraArgsãéããŠ--proxy-server=...ã--proxy-pac-url=...ãªã©ã®æç€ºç㪠Chrome ãããã·ãã©ã°ãæž¡ããŸãã峿 Œ SSRF ã¢ãŒãã§ã¯ããã©ã€ããŒããããã¯ãŒã¯ã®ãã©ãŠã¶ã¢ã¯ã»ã¹ãæå³çã«æå¹åãããŠããªãéããæç€ºçãªãã©ãŠã¶ãããã·ã«ãŒãã£ã³ã°ããããã¯ããŸãã browser.ssrfPolicy.dangerouslyAllowPrivateNetworkã¯ããã©ã«ãã§ãªãã§ãããã©ã€ããŒããããã¯ãŒã¯ã®ãã©ãŠã¶ã¢ã¯ã»ã¹ãæå³çã«ä¿¡é Œããå Žåã«ã®ã¿æå¹åããŠãã ãããbrowser.ssrfPolicy.allowPrivateNetworkã¯ã¬ã¬ã·ãŒãšã€ãªã¢ã¹ãšããŠåŒãç¶ããµããŒããããŸãã
ãããã¡ã€ã«ã®åäœ
attachOnly: trueã¯ãããŒã«ã«ãã©ãŠã¶ãèµ·åããããã§ã«å®è¡äžã®å Žåã«ã®ã¿ã¢ã¿ããããããšãæå³ããŸããheadlessã¯ã°ããŒãã«ãŸãã¯ããŒã«ã«ç®¡çãããã¡ã€ã«ããšã«èšå®ã§ããŸãããããã¡ã€ã«ããšã®å€ã¯browser.headlessãäžæžããããããããŒã«ã«ã§èµ·åããããããããã¡ã€ã«ã¯ headless ã®ãŸãŸã«ããå¥ã®ãããã¡ã€ã«ã¯è¡šç€ºç¶æ ã®ãŸãŸã«ã§ããŸããPOST /start?headless=trueãšopenclaw browser start --headlessã¯ãbrowser.headlessããããã¡ã€ã«èšå®ãæžãæããã«ãããŒã«ã«ç®¡çãããã¡ã€ã«ã® 1åéãã® headless èµ·åãèŠæ±ããŸããæ¢åã»ãã·ã§ã³ãattach-onlyã ãªã¢ãŒã CDP ãããã¡ã€ã«ã¯ãã®äžæžããæåŠããŸããOpenClaw ã¯ãããã® ãã©ãŠã¶ããã»ã¹ãèµ·åããªãããã§ããDISPLAYãŸãã¯WAYLAND_DISPLAYããªã Linux ãã¹ãã§ã¯ãç°å¢ãŸãã¯ãããã¡ã€ã«/ã°ããŒãã« èšå®ã headed ã¢ãŒããæç€ºçã«éžãã§ããªãå ŽåãããŒã«ã«ç®¡çãããã¡ã€ã«ã¯ èªåçã« headless ãããã©ã«ãã«ããŸããopenclaw browser status --jsonã¯headlessSourceãenvãprofileãconfigãrequestãlinux-display-fallbackããŸãã¯defaultãšããŠå ±åããŸããOPENCLAW_BROWSER_HEADLESS=1ã¯ãçŸåšã®ããã»ã¹ã®ããŒã«ã«ç®¡çèµ·åã headless ã«åŒ·å¶ããŸããOPENCLAW_BROWSER_HEADLESS=0ã¯éåžžã®èµ·åã§ headed ã¢ãŒãã匷å¶ãã ãã£ã¹ãã¬ã€ãµãŒããŒããªã Linux ãã¹ãã§ã¯å®è¡å¯èœãªãšã©ãŒãè¿ããŸãã æç€ºçãªstart --headlessèŠæ±ã¯ããã®1åã®èµ·åã«ã€ããŠã¯åŒãç¶ãåªå ãããŸããexecutablePathã¯ã°ããŒãã«ãŸãã¯ããŒã«ã«ç®¡çãããã¡ã€ã«ããšã«èšå®ã§ããŸãããããã¡ã€ã«ããšã®å€ã¯browser.executablePathãäžæžããããããç°ãªã管çãããã¡ã€ã«ã§ç°ãªã Chromium ããŒã¹ã®ãã©ãŠã¶ãèµ·åã§ããŸããã©ã¡ãã®åœ¢åŒã OS ã®ããŒã ãã£ã¬ã¯ããªã«~ã䜿ããŸããcolorïŒãããã¬ãã«ããã³ãããã¡ã€ã«ããšïŒã¯ãã©ãŠã¶ UI ã«è²ãä»ãããããã©ã®ãããã¡ã€ã«ãã¢ã¯ãã£ããã確èªã§ããŸãã- ããã©ã«ããããã¡ã€ã«ã¯
openclawïŒç®¡ç察象ã®ã¹ã¿ã³ãã¢ãã³ïŒã§ãããµã€ã³ã€ã³æžã¿ãŠãŒã¶ãŒãã©ãŠã¶ã䜿ãã«ã¯defaultProfile: "user"ã䜿çšããŸãã - èªåæ€åºé åº: Chromium ããŒã¹ã®å Žåã¯ã·ã¹ãã ã®ããã©ã«ããã©ãŠã¶ããã以å€ã¯ Chrome â Brave â Edge â Chromium â Chrome Canaryã
driver: "existing-session"㯠raw CDP ã®ä»£ããã« Chrome DevTools MCP ã䜿çšããŸããChrome MCP ã®èªåæ¥ç¶ãéããŠã¢ã¿ããããããšããå®è¡äžãã©ãŠã¶ã® DevTools ãšã³ããã€ã³ãããã§ã«æã£ãŠããå Žåã¯cdpUrlãéããŠã¢ã¿ããããããšãã§ããŸãã- existing-session ãããã¡ã€ã«ãéããã©ã«ãã® Chromium ãŠãŒã¶ãŒãããã¡ã€ã«ïŒBraveãEdge ãªã©ïŒã«ã¢ã¿ããããå¿
èŠãããå Žåã¯ã
browser.profiles.<name>.userDataDirãèšå®ããŸãããã®ãã¹ã§ã OS ã®ããŒã ãã£ã¬ã¯ããªã«~ã䜿ããŸãã
Brave ãŸãã¯å¥ã® Chromium ããŒã¹ã®ãã©ãŠã¶ã䜿çšãã
ã·ã¹ãã ã®ããã©ã«ããã©ãŠã¶ã Chromium ããŒã¹ïŒChrome/Brave/Edge ãªã©ïŒã®å Žåã
OpenClaw ã¯ãããèªåçã«äœ¿çšããŸããèªåæ€åºãäžæžãããã«ã¯
browser.executablePath ãèšå®ããŸãããããã¬ãã«ããã³ãããã¡ã€ã«ããšã®
executablePath å€ã§ã¯ãOS ã®ããŒã ãã£ã¬ã¯ããªã« ~ ã䜿ããŸãã
openclaw config set browser.executablePath "/usr/bin/google-chrome"openclaw config set browser.profiles.work.executablePath "/Applications/Google Chrome.app/Contents/MacOS/Google Chrome"ãŸãã¯ããã©ãããã©ãŒã ããšã« config ã§èšå®ããŸãã
macOS
{browser: {executablePath: "/Applications/Brave Browser.app/Contents/MacOS/Brave Browser",},}Windows
{browser: {executablePath: "C:\\Program Files\\BraveSoftware\\Brave-Browser\\Application\\brave.exe",},}Linux
{browser: {executablePath: "/usr/bin/brave-browser",},}ãããã¡ã€ã«ããšã® executablePath ã¯ãOpenClaw ãèµ·åããããŒã«ã«ç®¡çãããã¡ã€ã«ã«ã®ã¿åœ±é¿ããŸãã
existing-session ãããã¡ã€ã«ã¯ä»£ããã«ããã§ã«å®è¡äžã®ãã©ãŠã¶ã«ã¢ã¿ãããã
ãªã¢ãŒã CDP ãããã¡ã€ã«ã¯ cdpUrl ã®èåŸã«ãããã©ãŠã¶ã䜿çšããŸãã
ããŒã«ã«å¶åŸ¡ãšãªã¢ãŒãå¶åŸ¡
- ããŒã«ã«å¶åŸ¡ïŒããã©ã«ãïŒ: Gateway ã¯ã«ãŒãããã¯å¶åŸ¡ãµãŒãã¹ãèµ·åããããŒã«ã«ãã©ãŠã¶ãèµ·åã§ããŸãã
- ãªã¢ãŒãå¶åŸ¡ïŒNode ãã¹ãïŒ: ãã©ãŠã¶ããããã·ã³ã§ Node ãã¹ããå®è¡ããŸããGateway ã¯ãã©ãŠã¶ã¢ã¯ã·ã§ã³ããããžãããã·ããŸãã
- ãªã¢ãŒã CDP: ãªã¢ãŒãã® Chromium ããŒã¹ã®ãã©ãŠã¶ã«ã¢ã¿ããããã«ã¯ã
browser.profiles.<name>.cdpUrlïŒãŸãã¯browser.cdpUrlïŒãèšå®ããŸãããã®å ŽåãOpenClaw ã¯ããŒã«ã«ãã©ãŠã¶ãèµ·åããŸããã - ã«ãŒãããã¯äžã®å€éšç®¡ç CDP ãµãŒãã¹ïŒããšãã° Docker ã§
127.0.0.1ã«å ¬éããã BrowserlessïŒã§ã¯ãattachOnly: trueãèšå®ããŸããattachOnlyãªãã®ã«ãŒããã㯠CDP ã¯ã ããŒã«ã«ã® OpenClaw 管çãã©ãŠã¶ãããã¡ã€ã«ãšããŠæ±ãããŸãã headlessã¯ãOpenClaw ãèµ·åããããŒã«ã«ç®¡çãããã¡ã€ã«ã«ã®ã¿åœ±é¿ããŸããexisting-session ãŸãã¯ãªã¢ãŒã CDP ãã©ãŠã¶ãåèµ·åããã倿ŽãããããŸãããexecutablePathãåãããŒã«ã«ç®¡çãããã¡ã€ã«ã®èŠåã«åŸããŸããå®è¡äžã®ããŒã«ã«ç®¡çãããã¡ã€ã«ã§ããã倿Žãããšã 次åèµ·åæã«æ°ãããã€ããªã䜿ãããããã®ãããã¡ã€ã«ã¯åèµ·å/調æŽå¯Ÿè±¡ãšããŠããŒã¯ãããŸãã
忢åäœã¯ãããã¡ã€ã«ã¢ãŒãã«ãã£ãŠç°ãªããŸãã
- ããŒã«ã«ç®¡çãããã¡ã€ã«:
openclaw browser stop㯠OpenClaw ãèµ·åãããã©ãŠã¶ããã»ã¹ã忢ããŸã - attach-only ããã³ãªã¢ãŒã CDP ãããã¡ã€ã«:
openclaw browser stopã¯ã¢ã¯ãã£ã㪠å¶åŸ¡ã»ãã·ã§ã³ãéããPlaywright/CDP ãšãã¥ã¬ãŒã·ã§ã³äžæžãïŒviewportã color schemeãlocaleãtimezoneãoffline modeãããã³é¡äŒŒã®ç¶æ ïŒãè§£æŸããŸãã OpenClaw ããã©ãŠã¶ããã»ã¹ãèµ·åããŠããªãå Žåã§ãåæ§ã§ã
ãªã¢ãŒã CDP URL ã«ã¯èªèšŒãå«ããããšãã§ããŸãã
- ã¯ãšãªããŒã¯ã³ïŒäŸ:
https://provider.example?token=<token>ïŒ - HTTP Basic èªèšŒïŒäŸ:
https://user:pass@provider.exampleïŒ
OpenClaw 㯠/json/* ãšã³ããã€ã³ããåŒã³åºããšããããã³
CDP WebSocket ã«æ¥ç¶ãããšãã«èªèšŒãä¿æããŸããããŒã¯ã³ã¯ config ãã¡ã€ã«ã«ã³ããããã代ããã«ã
ç°å¢å€æ°ãŸãã¯ã·ãŒã¯ã¬ãããããŒãžã£ãŒãåªå
ããŠãã ããã
Node ãã©ãŠã¶ãããã·ïŒèšå®äžèŠã®ããã©ã«ãïŒ
ãã©ãŠã¶ããããã·ã³ã§ Node ãã¹ããå®è¡ããŠããå ŽåãOpenClaw 㯠远å ã®ãã©ãŠã¶èšå®ãªãã§ããã® Node ã«ãã©ãŠã¶ããŒã«åŒã³åºããèªåã«ãŒãã£ã³ã°ã§ããŸãã ããã¯ãªã¢ãŒã Gateway ã®ããã©ã«ããã¹ã§ãã
泚:
- Node ãã¹ãã¯ããããã·ã³ãã³ããä»ããŠããŒã«ã«ãã©ãŠã¶å¶åŸ¡ãµãŒããŒãå ¬éããŸãã
- ãããã¡ã€ã«ã¯ Node èªèº«ã®
browser.profilesconfigïŒããŒã«ã«ãšåãïŒããååŸãããŸãã nodeHost.browserProxy.allowProfilesã¯ä»»æã§ããã¬ã¬ã·ãŒ/ããã©ã«ãåäœã§ã¯ç©ºã®ãŸãŸã«ããŸããèšå®æžã¿ã®ãã¹ãŠã®ãããã¡ã€ã«ãããããã¡ã€ã«äœæ/åé€ã«ãŒããå«ããŠãããã·çµç±ã§å°éå¯èœãªãŸãŸã«ãªããŸããnodeHost.browserProxy.allowProfilesãèšå®ãããšãOpenClaw ã¯ãããæå°æš©éã®å¢çãšããŠæ±ããŸããèš±å¯ãªã¹ãã«ãããããã¡ã€ã«ã®ã¿ã察象ã«ã§ããæ°žç¶ãããã¡ã€ã«ã®äœæ/åé€ã«ãŒãã¯ãããã·ãµãŒãã§ã¹ã§ãããã¯ãããŸãã- äžèŠãªå Žåã¯ç¡å¹åããŸãã
- Node åŽ:
nodeHost.browserProxy.enabled=false - Gateway åŽ:
gateway.nodes.browser.mode="off"
- Node åŽ:
BrowserlessïŒãã¹ãåãªã¢ãŒã CDPïŒ
Browserless ã¯ãHTTPS ãš WebSocket çµç±ã§ CDP æ¥ç¶ URL ãå ¬éãããã¹ãå Chromium ãµãŒãã¹ã§ããOpenClaw ã¯ã©ã¡ãã®åœ¢åŒã䜿çšã§ããŸããã ãªã¢ãŒããã©ãŠã¶ãããã¡ã€ã«ã§ã¯ãBrowserless ã®æ¥ç¶ããã¥ã¡ã³ãã«ããçŽæ¥ WebSocket URL ãæãåçŽãªéžæè¢ã§ãã
äŸ:
{ browser: { enabled: true, defaultProfile: "browserless", remoteCdpTimeoutMs: 2000, remoteCdpHandshakeTimeoutMs: 4000, profiles: { browserless: { cdpUrl: "wss://production-sfo.browserless.io?token=<BROWSERLESS_API_KEY>", color: "#00AA00", }, }, },}泚:
<BROWSERLESS_API_KEY>ã¯å®éã® Browserless ããŒã¯ã³ã«çœ®ãæããŠãã ããã- Browserless ã¢ã«ãŠã³ãã«äžèŽãããªãŒãžã§ã³ãšã³ããã€ã³ããéžã³ãŸãïŒããã¥ã¡ã³ããåç §ïŒã
- Browserless ã HTTPS ããŒã¹ URL ãæäŸããå ŽåãçŽæ¥ CDP æ¥ç¶çšã«
wss://ã«å€æããããšããHTTPS URL ã®ãŸãŸã«ã㊠OpenClaw ã«/json/versionãæ€åºãããããšãã§ããŸãã
åããã¹ãäžã® Browserless Docker
Browserless ã Docker ã§ã»ã«ããã¹ãããOpenClaw ããã¹ãäžã§å®è¡ãããå Žåã¯ã Browserless ãå€éšç®¡ç CDP ãµãŒãã¹ãšããŠæ±ããŸãã
{ browser: { enabled: true, defaultProfile: "browserless", profiles: { browserless: { cdpUrl: "ws://127.0.0.1:3000", attachOnly: true, color: "#00AA00", }, }, },}browser.profiles.browserless.cdpUrl ã®ã¢ãã¬ã¹ã¯
OpenClaw ããã»ã¹ããå°éå¯èœã§ããå¿
èŠããããŸããBrowserless ãäžèŽããå°éå¯èœãªãšã³ããã€ã³ããåºåããå¿
èŠããããŸãã
Browserless ã® EXTERNAL ããOpenClaw ããèŠããåã WebSocket ããŒã¹ã«èšå®ããŠãã ããã
ããšãã° ws://127.0.0.1:3000ãws://browserless:3000ããŸãã¯å®å®ãããã©ã€ããŒã Docker
ãããã¯ãŒã¯ã¢ãã¬ã¹ã§ãã/json/version ã
OpenClaw ããå°éã§ããªãã¢ãã¬ã¹ãæã webSocketDebuggerUrl ãè¿ãå Žåã
CDP HTTP ã¯æ£åžžã«èŠããŠã WebSocket ã¢ã¿ããã¯å€±æããŸãã
ã«ãŒããã㯠Browserless ãããã¡ã€ã«ã§ã¯ attachOnly ãæªèšå®ã®ãŸãŸã«ããªãã§ãã ããã
attachOnly ããªãå ŽåãOpenClaw ã¯ã«ãŒãããã¯ããŒããããŒã«ã«ç®¡çãã©ãŠã¶
ãããã¡ã€ã«ãšããŠæ±ãããã®ããŒãã¯äœ¿çšäžã ã OpenClaw ã®ææã§ã¯ãªããšå ±åããããšããããŸãã
çŽæ¥ WebSocket CDP provider
äžéšã®ãã¹ãåãã©ãŠã¶ãµãŒãã¹ã¯ãæšæºã® HTTP ããŒã¹ CDP æ€åºïŒ/json/versionïŒã§ã¯ãªãã
çŽæ¥ WebSocket ãšã³ããã€ã³ããå
¬éããŸããOpenClaw ã¯3ã€ã®
CDP URL 圢åŒãåãå
¥ããé©åãªæ¥ç¶æŠç¥ãèªåçã«éžæããŸãã
- HTTP(S) æ€åº -
http://host[:port]ãŸãã¯https://host[:port]ã OpenClaw ã¯/json/versionãåŒã³åºã㊠WebSocket ãããã¬ãŒ URL ãæ€åºãããã®åŸ æ¥ç¶ããŸããWebSocket ãã©ãŒã«ããã¯ã¯ãããŸããã - çŽæ¥ WebSocket ãšã³ããã€ã³ã -
ws://host[:port]/devtools/<kind>/<id>ãŸãã¯/devtools/browser|page|worker|shared_worker|service_worker/<id>ãã¹ãæã€wss://...ãOpenClaw 㯠WebSocket handshake çµç±ã§çŽæ¥æ¥ç¶ãã/json/versionãå®å šã«ã¹ãããããŸãã - 裞㮠WebSocket ã«ãŒã -
/devtools/...ãã¹ãæããªãws://host[:port]ãŸãã¯wss://host[:port]ïŒäŸ: Browserlessã BrowserbaseïŒãOpenClaw ã¯ãŸã HTTP/json/versionæ€åºã詊ã¿ãŸãïŒã¹ããŒã ãhttp/httpsã«æ£èŠåããŸãïŒã æ€åºãwebSocketDebuggerUrlãè¿ããå Žåã¯ããã䜿çšããããã§ãªããã° OpenClaw 㯠裞ã®ã«ãŒãã§çŽæ¥ WebSocket handshake ã«ãã©ãŒã«ããã¯ããŸããåºåããã WebSocket ãšã³ããã€ã³ãã CDP handshake ãæåŠããŠããèšå®ããã裞ã®ã«ãŒãã ãããåãå ¥ããå ŽåãOpenClaw ã¯ãã®ã«ãŒãã«ããã©ãŒã«ããã¯ããŸããããã«ãããããŒã«ã« Chrome ãæã裞ã®ws://ã§ãæ¥ç¶ã§ããŸããChrome ã¯/json/versionããåŸãããã¿ãŒã²ããããšã®ç¹å®ãã¹ã§ã®ã¿ WebSocket upgrade ãåãå ¥ããäžæ¹ã§ããã¹ãå provider ã¯ãæ€åºãšã³ããã€ã³ãã Playwright CDP ã«é©ããªãçåœ URL ãåºåããå Žåã§ãã ã«ãŒã WebSocket ãšã³ããã€ã³ããåŒãç¶ã䜿çšã§ããããã§ãã
openclaw browser doctor 㯠runtime attach ãšåãæ€åºåªå
ãWebSocket ãã©ãŒã«ããã¯
ããžãã¯ã䜿çšãããããæ£åžžã«æ¥ç¶ã§ãã裞ã«ãŒã URL ã
蚺æã§å°éäžèœãšããŠå ±åãããããšã¯ãããŸããã
Browserbase
Browserbase ã¯ãçµã¿èŸŒã¿ã® CAPTCHA 解決ãstealth modeãresidential proxies ãåãã headless ãã©ãŠã¶ãå®è¡ããããã®ã¯ã©ãŠããã©ãããã©ãŒã ã§ãã
{ browser: { enabled: true, defaultProfile: "browserbase", remoteCdpTimeoutMs: 3000, remoteCdpHandshakeTimeoutMs: 5000, profiles: { browserbase: { cdpUrl: "wss://connect.browserbase.com?apiKey=<BROWSERBASE_API_KEY>", color: "#F97316", }, }, },}泚èš:
- ç»é²ããæŠèŠããã·ã¥ããŒããã API Key ãã³ããŒããŸãã
<BROWSERBASE_API_KEY>ãå®éã® Browserbase API ããŒã«çœ®ãæããŸãã- Browserbase 㯠WebSocket æ¥ç¶æã«ãã©ãŠã¶ãŒã»ãã·ã§ã³ãèªåäœæãããããæåã®ã»ãã·ã§ã³äœææé ã¯äžèŠã§ãã
- ç¡æãã©ã³ã§ã¯ãåæã»ãã·ã§ã³ 1 ã€ãšæ 1 ãã©ãŠã¶ãŒæéãå©çšã§ããŸããææãã©ã³ã®å¶éã«ã€ããŠã¯æéãåç §ããŠãã ããã
- å®å šãª API ãªãã¡ã¬ã³ã¹ãSDK ã¬ã€ããçµ±åäŸã«ã€ããŠã¯ Browserbase docs ãåç §ããŠãã ããã
Notte
Notte ã¯ãçµã¿èŸŒã¿ã®ã¹ãã«ã¹ãäœå® ãããã·ãCDP ãã€ãã£ãã® WebSocket Gateway ãåãããããã¬ã¹ãã©ãŠã¶ãŒå®è¡çšã®ã¯ã©ãŠããã©ãããã©ãŒã ã§ãã
{ browser: { enabled: true, defaultProfile: "notte", remoteCdpTimeoutMs: 3000, remoteCdpHandshakeTimeoutMs: 5000, profiles: { notte: { cdpUrl: "wss://us-prod.notte.cc/sessions/connect?token=<NOTTE_API_KEY>", color: "#7C3AED", }, }, },}泚èš:
- ç»é²ããã³ã³ãœãŒã«èšå®ããŒãžãã API Key ãã³ããŒããŸãã
<NOTTE_API_KEY>ãå®éã® Notte API ããŒã«çœ®ãæããŸãã- Notte 㯠WebSocket æ¥ç¶æã«ãã©ãŠã¶ãŒã»ãã·ã§ã³ãèªåäœæãããããæåã®ã»ãã·ã§ã³äœææé ã¯äžèŠã§ããWebSocket ãåæããããšãã»ãã·ã§ã³ã¯ç Žæ£ãããŸãã
- ç¡æãã©ã³ã§ã¯ãåæã»ãã·ã§ã³ 5 ã€ãšéç® 100 ãã©ãŠã¶ãŒæéãå©çšã§ããŸããææãã©ã³ã®å¶éã«ã€ããŠã¯æéãåç §ããŠãã ããã
- å®å šãª API ãªãã¡ã¬ã³ã¹ãSDK ã¬ã€ããçµ±åäŸã«ã€ããŠã¯ Notte docs ãåç §ããŠãã ããã
ã»ãã¥ãªãã£
éèŠãªèãæ¹:
- ãã©ãŠã¶ãŒå¶åŸ¡ã¯ã«ãŒãããã¯å°çšã§ããã¢ã¯ã»ã¹ã¯ Gateway ã®èªèšŒãŸãã¯ããŒããã¢ãªã³ã°ãéããŠè¡ãããŸãã
- ã¹ã¿ã³ãã¢ãã³ã®ã«ãŒãããã¯ãã©ãŠã¶ãŒ HTTP API 㯠å
±æã·ãŒã¯ã¬ããèªèšŒã®ã¿ ã䜿çšããŸã:
Gateway ããŒã¯ã³ã®ãã¢ã©ãŒèªèšŒã
x-openclaw-passwordããŸãã¯èšå®æžã¿ Gateway ãã¹ã¯ãŒãã«ãã HTTP Basic èªèšŒã§ãã - Tailscale Serve ã® ID ããããŒãš
gateway.auth.mode: "trusted-proxy"ã¯ããã®ã¹ã¿ã³ãã¢ãã³ã®ã«ãŒãããã¯ãã©ãŠã¶ãŒ API ãèªèšŒããŸããã - ãã©ãŠã¶ãŒå¶åŸ¡ãæå¹ã§ãå
±æã·ãŒã¯ã¬ããèªèšŒãèšå®ãããŠããªãå ŽåãOpenClaw ã¯ãã®èµ·åçšã«å®è¡æéå®ã® Gateway ããŒã¯ã³ãçæããŸããåèµ·åããŸããã§ã¯ã©ã€ã¢ã³ãã«å®å®ããã·ãŒã¯ã¬ãããå¿
èŠãªå Žåã¯ã
gateway.auth.tokenãgateway.auth.passwordãOPENCLAW_GATEWAY_TOKENããŸãã¯OPENCLAW_GATEWAY_PASSWORDãæç€ºçã«èšå®ããŠãã ããã gateway.auth.modeããã§ã«passwordãnoneããŸãã¯trusted-proxyã®å ŽåãOpenClaw ã¯ãã®ããŒã¯ã³ãèªåçæããŸããã- Gateway ãšãã¹ãŠã®ããŒããã¹ãã¯ãã©ã€ããŒããããã¯ãŒã¯ïŒTailscaleïŒäžã«çœ®ããŸããå ¬éé²åºã¯é¿ããŠãã ããã
- ãªã¢ãŒã CDP URL/ããŒã¯ã³ã¯ã·ãŒã¯ã¬ãããšããŠæ±ããenv vars ãŸãã¯ã·ãŒã¯ã¬ãããããŒãžã£ãŒã®äœ¿çšãæšå¥šããŸãã
ãªã¢ãŒã CDP ã®ãã³ã:
- å¯èœãªå Žåã¯ãæå·åããããšã³ããã€ã³ãïŒHTTPS ãŸã㯠WSSïŒãšçåœããŒã¯ã³ãåªå ããŠãã ããã
- é·åœããŒã¯ã³ãèšå®ãã¡ã€ã«ã«çŽæ¥åã蟌ãããšã¯é¿ããŠãã ããã
ãããã¡ã€ã«ïŒè€æ°ãã©ãŠã¶ãŒïŒ
OpenClaw ã¯ãè€æ°ã®ååä»ããããã¡ã€ã«ïŒã«ãŒãã£ã³ã°èšå®ïŒããµããŒãããŸãããããã¡ã€ã«ã«ã¯æ¬¡ã®çš®é¡ããããŸã:
- openclaw-managed: å°çšã® Chromium ããŒã¹ã®ãã©ãŠã¶ãŒã€ã³ã¹ã¿ã³ã¹ãç¬èªã®ãŠãŒã¶ãŒããŒã¿ãã£ã¬ã¯ã㪠+ CDP ããŒããæã¡ãŸã
- remote: æç€ºç㪠CDP URLïŒå¥ã®å Žæã§å®è¡ãããŠãã Chromium ããŒã¹ã®ãã©ãŠã¶ãŒïŒ
- existing session: Chrome DevTools MCP ã®èªåæ¥ç¶ãä»ããæ¢åã® Chrome ãããã¡ã€ã«
ããã©ã«ã:
openclawãããã¡ã€ã«ã¯ãååšããªãå Žåã«èªåäœæãããŸããuserãããã¡ã€ã«ã¯ãChrome MCP ã®æ¢åã»ãã·ã§ã³æ¥ç¶çšã«çµã¿èŸŒãŸããŠããŸãã- æ¢åã»ãã·ã§ã³ãããã¡ã€ã«ã¯
user以å€ã§ã¯ãªããã€ã³ã§ãã--driver existing-sessionã§äœæããŸãã - ããŒã«ã« CDP ããŒãã¯ããã©ã«ãã§ 18800-18899 ããå²ãåœãŠãããŸãã
- ãããã¡ã€ã«ãåé€ãããšããã®ããŒã«ã«ããŒã¿ãã£ã¬ã¯ããªã¯ãŽãç®±ã«ç§»åãããŸãã
ãã¹ãŠã®å¶åŸ¡ãšã³ããã€ã³ã㯠?profile=<name> ãåãä»ããŸããCLI ã§ã¯ --browser-profile ã䜿çšããŸãã
Chrome DevTools MCP çµç±ã®æ¢åã»ãã·ã§ã³
OpenClaw ã¯ãå ¬åŒ Chrome DevTools MCP ãµãŒããŒãéããŠãå®è¡äžã® Chromium ããŒã¹ã®ãã©ãŠã¶ãŒãããã¡ã€ã«ã«ãæ¥ç¶ã§ããŸããããã«ããããã®ãã©ãŠã¶ãŒãããã¡ã€ã«ã§ãã§ã«éããŠããã¿ããšãã°ã€ã³ç¶æ ãåå©çšããŸãã
å ¬åŒã®èæ¯æ å ±ãšã»ããã¢ããåç §:
çµã¿èŸŒã¿ãããã¡ã€ã«:
user
ä»»æ: å¥ã®ååãè²ããŸãã¯ãã©ãŠã¶ãŒããŒã¿ãã£ã¬ã¯ããªãå¿ èŠãªå Žåã¯ãç¬èªã®ã«ã¹ã¿ã æ¢åã»ãã·ã§ã³ãããã¡ã€ã«ãäœæã§ããŸãã
ããã©ã«ãã®åäœ:
- çµã¿èŸŒã¿ã®
userãããã¡ã€ã«ã¯ Chrome MCP èªåæ¥ç¶ã䜿çšããããã©ã«ãã®ããŒã«ã« Google Chrome ãããã¡ã€ã«ã察象ã«ããŸãã
BraveãEdgeãChromiumããŸãã¯ããã©ã«ã以å€ã® Chrome ãããã¡ã€ã«ã«ã¯ userDataDir ã䜿çšããŸãã
~ 㯠OS ã®ããŒã ãã£ã¬ã¯ããªã«å±éãããŸã:
{ browser: { profiles: { brave: { driver: "existing-session", attachOnly: true, userDataDir: "~/Library/Application Support/BraveSoftware/Brave-Browser", color: "#FB542B", }, }, },}次ã«ã察å¿ãããã©ãŠã¶ãŒã§æ¬¡ãè¡ããŸã:
- ãªã¢ãŒããããã°çšã®ããã®ãã©ãŠã¶ãŒã®æ€æ»ããŒãžãéããŸãã
- ãªã¢ãŒããããã°ãæå¹ã«ããŸãã
- ãã©ãŠã¶ãŒãèµ·åãããŸãŸã«ããOpenClaw ãæ¥ç¶ãããšãã«æ¥ç¶ããã³ãããæ¿èªããŸãã
äžè¬çãªæ€æ»ããŒãž:
- Chrome:
chrome://inspect/#remote-debugging - Brave:
brave://inspect/#remote-debugging - Edge:
edge://inspect/#remote-debugging
ã©ã€ãæ¥ç¶ã¹ã¢ãŒã¯ãã¹ã:
openclaw browser --browser-profile user startopenclaw browser --browser-profile user statusopenclaw browser --browser-profile user tabsopenclaw browser --browser-profile user snapshot --format aiæåæã®è¡šç€º:
statusã«driver: existing-sessionãšè¡šç€ºãããstatusã«transport: chrome-mcpãšè¡šç€ºãããstatusã«running: trueãšè¡šç€ºãããtabsã«ãã§ã«éããŠãããã©ãŠã¶ãŒã¿ããäžèŠ§è¡šç€ºãããsnapshotãéžæäžã®ã©ã€ãã¿ããã refs ãè¿ã
æ¥ç¶ãæ©èœããªãå Žåã«ç¢ºèªããããš:
- 察象㮠Chromium ããŒã¹ã®ãã©ãŠã¶ãŒãããŒãžã§ã³
144+ã§ãã - ãã®ãã©ãŠã¶ãŒã®æ€æ»ããŒãžã§ãªã¢ãŒããããã°ãæå¹ã«ãªã£ãŠãã
- ãã©ãŠã¶ãŒãæ¥ç¶åæããã³ããã衚瀺ãããããæ¿èªãã
- Chrome ãæç€ºçãª
--remote-debugging-portä»ãã§èµ·åãããŠããå Žåã¯ãChrome MCP èªåæ¥ç¶ã«äŸåãããbrowser.profiles.<name>.cdpUrlããã® DevTools ãšã³ããã€ã³ãã«èšå®ãã openclaw doctorã¯å€ãæ¡åŒµæ©èœããŒã¹ã®ãã©ãŠã¶ãŒèšå®ãç§»è¡ããããã©ã«ãã®èªåæ¥ç¶ãããã¡ã€ã«çšã« Chrome ãããŒã«ã«ã«ã€ã³ã¹ããŒã«ãããŠããããšã確èªããŸããããã©ãŠã¶ãŒåŽã®ãªã¢ãŒããããã°ãæå¹ã«ããããšã¯ã§ããŸãã
ãšãŒãžã§ã³ãã§ã®äœ¿çš:
- ãŠãŒã¶ãŒã®ãã°ã€ã³æžã¿ãã©ãŠã¶ãŒç¶æ
ãå¿
èŠãªå Žåã¯
profile="user"ã䜿çšããŸãã - ã«ã¹ã¿ã æ¢åã»ãã·ã§ã³ãããã¡ã€ã«ã䜿çšããå Žåã¯ããã®æç€ºçãªãããã¡ã€ã«åãæž¡ããŸãã
- ãŠãŒã¶ãŒãã³ã³ãã¥ãŒã¿ãŒã®åã«ããŠæ¥ç¶ããã³ãããæ¿èªã§ããå Žåã«ã®ã¿ããã®ã¢ãŒããéžæããŠãã ããã
- Gateway ãŸãã¯ããŒããã¹ãã¯
npx chrome-devtools-mcp@latest --autoConnectãèµ·åã§ããŸã
泚èš:
- ãã®çµè·¯ã¯ããµã€ã³ã€ã³æžã¿ãã©ãŠã¶ãŒã»ãã·ã§ã³å
ã§åäœã§ãããããåé¢ããã
openclawãããã¡ã€ã«ããããªã¹ã¯ãé«ããªããŸãã - OpenClaw ã¯ãã®ãã©ã€ããŒçšã«ãã©ãŠã¶ãŒãèµ·åããŸãããæ¥ç¶ã®ã¿ãè¡ããŸãã
- OpenClaw ã¯ããã§å
¬åŒ Chrome DevTools MCP ã®
--autoConnectãããŒã䜿çšããŸããuserDataDirãèšå®ãããŠããå Žåããã®ãŠãŒã¶ãŒããŒã¿ãã£ã¬ã¯ããªã察象ã«ããããã«ãã®ãŸãŸæž¡ãããŸãã - æ¢åã»ãã·ã§ã³ã¯ãéžæãããã¹ãäžãŸãã¯æ¥ç¶æžã¿ãã©ãŠã¶ãŒããŒãçµç±ã§æ¥ç¶ã§ããŸããChrome ãå¥ã®å Žæã«ããããã©ãŠã¶ãŒããŒããæ¥ç¶ãããŠããªãå Žåã¯ã代ããã«ãªã¢ãŒã CDP ãŸãã¯ããŒããã¹ãã䜿çšããŠãã ããã
ã«ã¹ã¿ã Chrome MCP èµ·å
ããã©ã«ãã® npx chrome-devtools-mcp@latest ãããŒãèŠä»¶ã«åããªãå ŽåïŒãªãã©ã€ã³ãã¹ããåºå®ããŒãžã§ã³ã忢±ãã€ããªãªã©ïŒããããã¡ã€ã«ããšã«èµ·åããã Chrome DevTools MCP ãµãŒããŒãäžæžãããŸã:
| ãã£ãŒã«ã | åäœ |
|---|---|
mcpCommand |
npx ã®ä»£ããã«èµ·åããå®è¡ãã¡ã€ã«ã§ãããã®ãŸãŸè§£æ±ºããã絶察ãã¹ãå°éãããŸãã |
mcpArgs |
mcpCommand ã«ãã®ãŸãŸæž¡ãããåŒæ°é
åã§ããããã©ã«ãã® chrome-devtools-mcp@latest --autoConnect åŒæ°ã眮ãæããŸãã |
æ¢åã»ãã·ã§ã³ãããã¡ã€ã«ã« cdpUrl ãèšå®ãããŠããå ŽåãOpenClaw 㯠--autoConnect ãã¹ããããããšã³ããã€ã³ãã Chrome MCP ã«èªå転éããŸã:
http(s)://...â--browserUrl <url>ïŒDevTools HTTP æ¢çŽ¢ãšã³ããã€ã³ãïŒãws(s)://...â--wsEndpoint <url>ïŒçŽæ¥ CDP WebSocketïŒã
ãšã³ããã€ã³ããã©ã°ãš userDataDir ã¯äœµçšã§ããŸãããcdpUrl ãèšå®ãããŠããå ŽåãChrome MCP ã¯ãããã¡ã€ã«ãã£ã¬ã¯ããªãéãã®ã§ã¯ãªãããšã³ããã€ã³ãã®èåŸã§å®è¡äžã®ãã©ãŠã¶ãŒã«æ¥ç¶ãããããChrome MCP èµ·åã§ã¯ userDataDir ã¯ç¡èŠãããŸãã
æ¢åã»ãã·ã§ã³æ©èœã®å¶é
管ç察象㮠openclaw ãããã¡ã€ã«ãšæ¯ã¹ãŠãæ¢åã»ãã·ã§ã³ãã©ã€ããŒã«ã¯ããå€ãã®å¶çŽããããŸã:
- ã¹ã¯ãªãŒã³ã·ã§ãã - ããŒãžãã£ããã£ãš
--refèŠçŽ ãã£ããã£ã¯æ©èœããŸããCSS--elementã»ã¬ã¯ã¿ãŒã¯æ©èœããŸããã--full-pageã¯--refãŸãã¯--elementãšäœµçšã§ããŸãããããŒãžãŸã㯠ref ããŒã¹ã®èŠçŽ ã¹ã¯ãªãŒã³ã·ã§ããã« Playwright ã¯äžèŠã§ãã - ã¢ã¯ã·ã§ã³ -
clickãtypeãhoverãscrollIntoViewãdragãselectã«ã¯ã¹ãããã·ã§ãã refs ãå¿ èŠã§ãïŒCSS ã»ã¬ã¯ã¿ãŒã¯äžå¯ïŒãclick-coordsã¯è¡šç€ºäžãã¥ãŒããŒã座æšãã¯ãªãã¯ããã¹ãããã·ã§ãã ref ã¯äžèŠã§ããclickã¯å·Šãã¿ã³ã®ã¿ã§ããtypeã¯slowly=trueããµããŒãããŸãããfillãŸãã¯pressã䜿çšããŠãã ãããpressã¯delayMsããµããŒãããŸãããtypeãhoverãscrollIntoViewãdragãselectãfillãevaluateã¯åŒã³åºãããšã®ã¿ã€ã ã¢ãŠãããµããŒãããŸãããselectã¯åäžã®å€ãåãä»ããŸãã - åŸ
æ© / ã¢ããããŒã / ãã€ã¢ãã° -
wait --urlã¯å®å šäžèŽãéšåæååãglob ãã¿ãŒã³ããµããŒãããŸããwait --load networkidleã¯æ¢åã»ãã·ã§ã³ãããã¡ã€ã«ã§ã¯ãµããŒããããŸããïŒç®¡ç察象ããã³ raw/remote CDP ãããã¡ã€ã«ã§ã¯æ©èœããŸãïŒãã¢ããããŒãããã¯ã«ã¯refãŸãã¯inputRefãå¿ èŠã§ã1 åã« 1 ãã¡ã€ã«ã®ã¿ãCSSelementã¯äžå¯ã§ãããã€ã¢ãã°ããã¯ã¯ã¿ã€ã ã¢ãŠãäžæžããŸãã¯dialogIdããµããŒãããŸããã - ãã€ã¢ãã°ã®å¯èŠæ§ - 管ç察象ãã©ãŠã¶ãŒã®ã¢ã¯ã·ã§ã³å¿çã«ã¯ãã¢ã¯ã·ã§ã³ãã¢ãŒãã«ãã€ã¢ãã°ãéããå Žåã«
blockedByDialogãšbrowserState.dialogs.pendingãå«ãŸããŸããã¹ãããã·ã§ããã«ãä¿çäžãã€ã¢ãã°ç¶æ ãå«ãŸããŸãããã€ã¢ãã°ãä¿çäžã®éã«browser dialog --accept/--dismiss --dialog-id <id>ã§å¿çããŠãã ãããOpenClaw ã®å€éšã§åŠçããããã€ã¢ãã°ã¯browserState.dialogs.recentã«è¡šç€ºãããŸãã - 管ç察象ã®ã¿ã®æ©èœ - ãããã¢ã¯ã·ã§ã³ãPDF ãšã¯ã¹ããŒããããŠã³ããŒãååã
responsebodyã«ã¯ãåŒãç¶ã管ç察象ãã©ãŠã¶ãŒçµè·¯ãå¿ èŠã§ãã
åé¢ã®ä¿èšŒ
- å°çšãŠãŒã¶ãŒããŒã¿ãã£ã¬ã¯ããª: å人çšãã©ãŠã¶ãŒãããã¡ã€ã«ã«ã¯äžåè§ŠããŸããã
- å°çšããŒã: éçºã¯ãŒã¯ãããŒãšã®è¡çªãé²ãããã
9222ãé¿ããŸãã - 決å®çãªã¿ãå¶åŸ¡:
tabsã¯æåã«suggestedTargetIdãè¿ãããã®åŸã«t1ãªã©ã®å®å®ããtabIdãã³ãã«ãä»»æã®ã©ãã«ãçã®targetIdãè¿ããŸãããšãŒãžã§ã³ãã¯suggestedTargetIdãåå©çšããã¹ãã§ããçã® ID ã¯ãããã°ãšäºææ§ã®ããã«åŒãç¶ãå©çšã§ããŸãã
ãã©ãŠã¶ãŒéžæ
ããŒã«ã«ã§èµ·åããå ŽåãOpenClaw ã¯æåã«å©çšå¯èœãªãã®ãéžæããŸã:
- Chrome
- Brave
- Edge
- Chromium
- Chrome Canary
browser.executablePath ã§äžæžãã§ããŸãã
ãã©ãããã©ãŒã :
- macOS:
/Applicationsãš~/Applicationsã確èªããŸãã - Linux:
/usr/binã/snap/binã/opt/googleã/opt/brave.comã/usr/lib/chromiumã/usr/lib/chromium-browserã®äžè¬ç㪠Chrome/Brave/Edge/Chromium ã®å Žæã«å ããPLAYWRIGHT_BROWSERS_PATHãŸãã¯~/.cache/ms-playwrighté äžã® Playwright 管ç Chromium ã確èªããŸãã - Windows: äžè¬çãªã€ã³ã¹ããŒã«å Žæã確èªããŸãã
å¶åŸ¡ APIïŒä»»æïŒ
ã¹ã¯ãªããäœæãšãããã°ã®ããã«ãGateway ã¯å°ã㪠ã«ãŒãããã¯å°çš HTTP å¶åŸ¡ API ãšã察å¿ãã openclaw browser CLIïŒã¹ãããã·ã§ãããrefsãåŸ
æ©ãã¯ãŒã¢ãããJSON åºåããããã°ã¯ãŒã¯ãããŒïŒãå
¬éããŸããå®å
šãªãªãã¡ã¬ã³ã¹ã«ã€ããŠã¯ ãã©ãŠã¶ãŒå¶åŸ¡ API ãåç
§ããŠãã ããã
ãã©ãã«ã·ã¥ãŒãã£ã³ã°
Linux åºæã®åé¡ïŒç¹ã« snap ChromiumïŒã«ã€ããŠã¯ã ãã©ãŠã¶ãŒã®ãã©ãã«ã·ã¥ãŒãã£ã³ã°ãåç §ããŠãã ããã
WSL2 Gateway + Windows Chrome ã®åå²ãã¹ãæ§æã«ã€ããŠã¯ã WSL2 + Windows + ãªã¢ãŒã Chrome CDP ã®ãã©ãã«ã·ã¥ãŒãã£ã³ã°ãåç §ããŠãã ããã
CDP èµ·å倱æãšããã²ãŒã·ã§ã³ SSRF ãããã¯ã®éã
ãããã¯ç°ãªã倱æã¯ã©ã¹ã§ãããç°ãªãã³ãŒããã¹ã瀺ããŸãã
- CDP èµ·åãŸãã¯æºåå®äºã®å€±æ ã¯ãOpenClaw ããã©ãŠã¶ãŒå¶åŸ¡ãã¬ãŒã³ã®æ£åžžæ§ã確èªã§ããªãããšãæå³ããŸãã
- ããã²ãŒã·ã§ã³ SSRF ããã㯠ã¯ããã©ãŠã¶ãŒå¶åŸ¡ãã¬ãŒã³ã¯æ£åžžã ããããŒãžããã²ãŒã·ã§ã³ã®ã¿ãŒã²ãããããªã·ãŒã«ãã£ãŠæåŠãããããšãæå³ããŸãã
äžè¬çãªäŸ:
- CDP èµ·åãŸãã¯æºåå®äºã®å€±æ:
Chrome CDP websocket for profile "openclaw" is not reachable after startRemote CDP for profile "<name>" is not reachable at <cdpUrl>attachOnly: trueãªãã§ã«ãŒãããã¯å€éš CDP ãµãŒãã¹ãæ§æãããŠããå Žåã®Port <port> is in use for profile "<name>" but not by openclaw
- ããã²ãŒã·ã§ã³ SSRF ãããã¯:
startãštabsã¯åŒãç¶ãåäœããäžæ¹ã§ãopenãnavigateãã¹ãããã·ã§ããããŸãã¯ã¿ããéããããŒããã©ãŠã¶ãŒ/ãããã¯ãŒã¯ããªã·ãŒãšã©ãŒã§å€±æãã
ãã® 2 ã€ãåãåããã«ã¯ãæ¬¡ã®æå°ã·ãŒã±ã³ã¹ã䜿çšããŸãã
openclaw browser --browser-profile openclaw startopenclaw browser --browser-profile openclaw tabsopenclaw browser --browser-profile openclaw open https://example.comçµæã®èªã¿æ¹:
startãnot reachable after startã§å€±æããå Žåã¯ããŸã CDP ã®æºåå®äºããã©ãã«ã·ã¥ãŒãããŸããstartã¯æåãããtabsã倱æããå Žåãå¶åŸ¡ãã¬ãŒã³ã¯ãŸã äžå¥å šã§ããããã¯ããŒãžããã²ãŒã·ã§ã³ã®åé¡ã§ã¯ãªããCDP å°éæ§ã®åé¡ãšããŠæ±ã£ãŠãã ãããstartãštabsã¯æåãããopenãŸãã¯navigateã倱æããå Žåããã©ãŠã¶ãŒå¶åŸ¡ãã¬ãŒã³ã¯èµ·åããŠããã倱æã¯ããã²ãŒã·ã§ã³ããªã·ãŒãŸãã¯ã¿ãŒã²ããããŒãžã«ãããŸããstartãtabsãopenããã¹ãŠæåããå Žåãåºæ¬çãªç®¡çãã©ãŠã¶ãŒå¶åŸ¡ãã¹ã¯æ£åžžã§ãã
éèŠãªåäœã®è©³çް:
- ãã©ãŠã¶ãŒèšå®ã¯ã
browser.ssrfPolicyãæ§æããŠããªãå Žåã§ããããã©ã«ãã§ãã§ã€ã«ã¯ããŒãºã® SSRF ããªã·ãŒãªããžã§ã¯ãã«ãªããŸãã - local loopback ã®
openclaw管çãããã¡ã€ã«ã§ã¯ãCDP ãã«ã¹ãã§ãã¯ã¯ OpenClaw èªèº«ã®ããŒã«ã«å¶åŸ¡ãã¬ãŒã³ã«å¯Ÿãããã©ãŠã¶ãŒ SSRF å°éæ§ã®åŒ·å¶ãæå³çã«ã¹ãããããŸãã - ããã²ãŒã·ã§ã³ä¿è·ã¯å¥ã§ãã
startãŸãã¯tabsãæåããŠããåŸç¶ã®openãŸãã¯navigateã®ã¿ãŒã²ãããèš±å¯ããããšã¯éããŸããã
ã»ãã¥ãªãã£ã¬ã€ãã³ã¹:
- ããã©ã«ãã§ãã©ãŠã¶ãŒ SSRF ããªã·ãŒãç·©åããªãã§ãã ããã
- åºç¯ãªãã©ã€ããŒããããã¯ãŒã¯ã¢ã¯ã»ã¹ãããã
hostnameAllowlistãallowedHostnamesã®ãããªçããã¹ãäŸå€ãåªå ããŠãã ããã dangerouslyAllowPrivateNetwork: trueã¯ããã©ã€ããŒããããã¯ãŒã¯ã®ãã©ãŠã¶ãŒã¢ã¯ã»ã¹ãå¿ èŠã§ã¬ãã¥ãŒæžã¿ã®ãæå³çã«ä¿¡é Œãããç°å¢ã§ã®ã¿äœ¿çšããŠãã ããã
ãšãŒãžã§ã³ãããŒã« + å¶åŸ¡ã®ä»çµã¿
ãšãŒãžã§ã³ãã¯ãã©ãŠã¶ãŒèªååçšã« 1 ã€ã®ããŒã« ãåãåããŸãã
browser- doctor/status/start/stop/tabs/open/focus/close/snapshot/screenshot/navigate/act
察å¿é¢ä¿:
browser snapshotã¯å®å®ãã UI ããªãŒïŒAI ãŸã㯠ARIAïŒãè¿ããŸããbrowser actã¯ã¹ãããã·ã§ããã®refID ã䜿ã£ãŠã¯ãªãã¯/å ¥å/ãã©ãã°/éžæããŸããbrowser screenshotã¯ãã¯ã»ã«ããã£ããã£ããŸãïŒããŒãžå šäœãèŠçŽ ããŸãã¯ã©ãã«ä»ã refïŒãbrowser doctor㯠GatewayãPluginããããã¡ã€ã«ããã©ãŠã¶ãŒãã¿ãã®æºåå®äºã確èªããŸããbrowserã¯æ¬¡ãåãä»ããŸã:profileã¯ååä»ããã©ãŠã¶ãŒãããã¡ã€ã«ïŒopenclawãchromeããŸãã¯ãªã¢ãŒã CDPïŒãéžæããŸããtargetïŒsandbox|host|nodeïŒã¯ãã©ãŠã¶ãŒãååšããå ŽæãéžæããŸãã- ãµã³ãããã¯ã¹åãããã»ãã·ã§ã³ã§ã¯ã
target: "host"ã«agents.defaults.sandbox.browser.allowHostControl=trueãå¿ èŠã§ãã targetãçç¥ãããå Žå: ãµã³ãããã¯ã¹åãããã»ãã·ã§ã³ã¯ããã©ã«ãã§sandboxãéãµã³ãããã¯ã¹ã»ãã·ã§ã³ã¯ããã©ã«ãã§hostã«ãªããŸãã- ãã©ãŠã¶ãŒå¯Ÿå¿ããŒããæ¥ç¶ãããŠããå Žåã
target="host"ãŸãã¯target="node"ã§åºå®ããªãéããããŒã«ã¯èªåçã«ãããžã«ãŒãã£ã³ã°ããããšããããŸãã
ããã«ããããšãŒãžã§ã³ãã¯æ±ºå®çã«åäœããå£ããããã»ã¬ã¯ã¿ãŒãé¿ããããŸãã
é¢é£
- ããŒã«æŠèŠ - å©çšå¯èœãªãã¹ãŠã®ãšãŒãžã§ã³ãããŒã«
- ãµã³ãããã¯ã¹å - ãµã³ãããã¯ã¹åãããç°å¢ã§ã®ãã©ãŠã¶ãŒå¶åŸ¡
- ã»ãã¥ãªã㣠- ãã©ãŠã¶ãŒå¶åŸ¡ã®ãªã¹ã¯ãšåŒ·å