Messages and delivery
鲿ãã©ãã
é²è¡ç¶æ³ãã©ããã¯ãé·æéå®è¡ããããšãŒãžã§ã³ãã¿ãŒã³ããäžæçãªã¹ããŒã¿ã¹è¿ä¿¡ã®ç©ã¿éãã«ããããšãªãããã£ããå ã§åããŠããããã«æããããŸãã
é²è¡ç¶æ³ãã©ãããæå¹ã«ãããšãOpenClaw ã¯ããã®ã¿ãŒã³ãå®éã«äœæ¥ããŠããããšã確èªãããåŸã«ã®ã¿ã衚瀺ãããäœæ¥äžã¡ãã»ãŒãžã 1 ã€äœæãããšãŒãžã§ã³ããèªã¿åããèšç»ãããŒã«åŒã³åºããæ¿èªåŸ ã¡ãããŠããéã«ãããæŽæ°ãããã£ã³ãã«ãå®å šã«å¯Ÿå¿ã§ããå Žåã¯ããã®ãã©ãããæçµåçã«å€æããŸãã
Shelling...ð from docs/concepts/progress-drafts.mdð Web Search: for "discord edit message"ð ïž Bash: run testsããŒã«ãå€çšããäœæ¥äžã«æŽã£ãã¹ããŒã¿ã¹ã¡ãã»ãŒãžã 1 ã€è¡šç€ºããã¿ãŒã³ã®å®äºæã«æçµåçãåºãããå Žåã¯ãé²è¡ç¶æ³ãã©ããã䜿çšããŸãã
ã¯ã€ãã¯ã¹ã¿ãŒã
streaming.mode: "progress" ã§ãã£ã³ãã«ããšã«é²è¡ç¶æ³ãã©ãããæå¹ã«ããŸãã
{ channels: { discord: { streaming: { mode: "progress", }, }, },}éåžžã¯ããã§ååã§ããOpenClaw ã¯èªåã§ 1 èªã®ã©ãã«ãéžã³ãäœæ¥ãå°ãªããšã 5 ç§ç¶ãã 2 ã€ç®ã®äœæ¥ã€ãã³ããçºçãããŸã§åŸ ã¡ãæçšãªäœæ¥ãé²ãã§ããéã¯ã³ã³ãã¯ããªé²è¡ç¶æ³è¡ã远å ãããã®ã¿ãŒã³ã«ã€ããŠéè€ããåç¬ã®é²è¡ç¶æ³ã¡ãã»ãŒãžãæå¶ããŸãã
ãŠãŒã¶ãŒã«è¡šç€ºããããã®
é²è¡ç¶æ³ãã©ãã㯠2 ã€ã®éšåã§æ§æãããŸãã
| éšå | ç®ç |
|---|---|
| ã©ãã« | Working ã Shelling ã®ãããªçãéå§è¡ãŸãã¯ã¹ããŒã¿ã¹è¡ã |
| é²è¡ç¶æ³è¡ | 詳现åºåãšåãããŒã«ã¢ã€ã³ã³ããã³è©³çްãã©ãŒããã¿ãŒã䜿çšãããã³ã³ãã¯ããªå®è¡æŽæ°ã |
ã©ãã«ã¯ããšãŒãžã§ã³ããæå³ã®ããäœæ¥ãéå§ãã5 ç§éå¿ããç¶æ
ãç¶ãã 2 ã€ç®ã®äœæ¥ã€ãã³ããçºçãããåŸã«è¡šç€ºãããŸããããã¯ããŒãªã³ã°åœ¢åŒã®é²è¡ç¶æ³è¡ãªã¹ãã®äžéšã§ãããããååãªå
·äœçäœæ¥ã衚瀺ããããšãéå§ã¹ããŒã¿ã¹ã¯ã¹ã¯ããŒã«ããŠæ¶ããŠãããŸãããã¬ãŒã³ããã¹ãã®ã¿ã®è¿ä¿¡ã§ã¯ãé²è¡ç¶æ³ãã©ããã¯è¡šç€ºãããŸãããé²è¡ç¶æ³è¡ã¯ããšãŒãžã§ã³ããæçšãªäœæ¥æŽæ°ãçºçãããå Žåã«ã®ã¿è¿œå ãããŸããããšãã° ð ïž Bash: run testsãð Web Search: for "discord edit message"ãâïž Write: to /tmp/file ãªã©ã§ãã
ããã©ã«ãã§ã¯ /verbose ãšåãã³ã³ãã¯ããªèª¬æã¢ãŒãã䜿çšããŸãããããã°äžã§ãçã®ã³ãã³ãã詳现ã远å ãããå Žåã¯ãagents.defaults.toolProgressDetail: "raw" ãèšå®ããŸãã
å¯èœãªå Žåãæçµåçã¯ãã©ããã眮ãæããŸãããã以å€ã®å ŽåãOpenClaw ã¯éåžžã©ããæçµåçãéä¿¡ãããã£ã³ãã«ã®ãã©ã³ã¹ããŒãã«å¿ããŠãã©ãããã¯ãªãŒã³ã¢ããããããæŽæ°ã忢ããŸãã
ã¢ãŒããéžæãã
channels.<channel>.streaming.mode ã¯ã衚瀺ãããé²è¡äžã®æåãå¶åŸ¡ããŸãã
| ã¢ãŒã | æé©ãªçšé | ãã£ããã«è¡šç€ºããããã® |
|---|---|---|
off |
éããªãã£ã³ãã« | æçµåçã®ã¿ã |
partial |
åçããã¹ãã衚瀺ãããæ§åã確èªããå Žå | ææ°ã®åçããã¹ãã§ç·šéããããã©ãã 1 ã€ã |
block |
倧ããã®åçãã¬ãã¥ãŒã®ãŸãšãŸã | 倧ããã®ãã£ã³ã¯ã§æŽæ°ãŸãã¯è¿œå ããããã¬ãã¥ãŒ 1 ã€ã |
progress |
ããŒã«ãå€çšããã¿ãŒã³ãé·æéå®è¡ãããã¿ãŒã³ | ã¹ããŒã¿ã¹ãã©ãã 1 ã€ããã®åŸã«æçµåçã |
ãŠãŒã¶ãŒãåçããã¹ãã®ããŒã¯ã³åäœã®ã¹ããªãŒã 衚瀺ããããäœãèµ·ããŠãããããéèŠããå Žåã¯ãprogress ãéžã³ãŸãã
åçãã®ãã®ãé²è¡ç¶æ³ã®ã·ã°ãã«ã§ããå Žåã¯ãpartial ãéžã³ãŸãã
倧ããã®ããã¹ããã£ã³ã¯ã§ãã©ãããã¬ãã¥ãŒãæŽæ°ãããå Žåã¯ãblock ãéžã³ãŸããDiscord ãš Telegram ã§ã¯ãstreaming.mode: "block" ã¯éåžžã®ãããã¯é
ä¿¡ã§ã¯ãªããåŒãç¶ããã¬ãã¥ãŒã¹ããªãŒãã³ã°ã§ããéåžžã®ãããã¯è¿ä¿¡ãå¿
èŠãªå Žåã¯ãstreaming.block.enabled ãŸãã¯åŸæ¥ã® blockStreaming ã䜿çšããŸãã
ã©ãã«ãèšå®ãã
é²è¡ç¶æ³ã©ãã«ã¯ channels.<channel>.streaming.progress é
äžã«ãããŸãã
ããã©ã«ãã®ã©ãã«ã¯ auto ã§ãOpenClaw ã®çµã¿èŸŒã¿ 1 èªã©ãã«ããŒã«ããéžæãããŸãã
WorkingShellingScuttlingClawingPinchingMoltingBubblingTidingReefingCrackingSiftingBriningNautilingKrillingBarnaclingLobsteringTidepoolingPearlingSnappingSurfacingåºå®ã©ãã«ã䜿çšããŸãã
{ channels: { discord: { streaming: { mode: "progress", progress: { label: "Investigating", }, }, }, },}ç¬èªã®èªåã©ãã«ããŒã«ã䜿çšããŸãã
{ channels: { discord: { streaming: { mode: "progress", progress: { label: "auto", labels: ["Checking", "Reading", "Testing", "Finishing"], }, }, }, },}ã©ãã«ãé衚瀺ã«ããé²è¡ç¶æ³è¡ã®ã¿ã衚瀺ããŸãã
{ channels: { discord: { streaming: { mode: "progress", progress: { label: false, }, }, }, },}é²è¡ç¶æ³è¡ãå¶åŸ¡ãã
é²è¡ç¶æ³ã¢ãŒãã§ã¯ãé²è¡ç¶æ³è¡ã¯ããã©ã«ãã§æå¹ã§ãããããã¯ãããŒã«éå§ãé ç®æŽæ°ãã¿ã¹ã¯èšç»ãæ¿èªãã³ãã³ãåºåããããèŠçŽãé¡äŒŒãããšãŒãžã§ã³ã掻åãªã©ãå®éã®å®è¡ã€ãã³ãããçæãããŸãã
ããŒã«ã¯ãåäžã®ããŒã«åŒã³åºãããŸã å®è¡äžã®éã«ããåä»ãã®é²è¡ç¶æ³ãçºè¡ã§ããŸããããã«ãããé ããã§ãããæ€çŽ¢ã¯ãããŒã«ãæçµçµæãè¿ãåã«ã衚瀺äžã®ãã©ãããæŽæ°ã§ããŸããé²è¡ç¶æ³æŽæ°ã¯ã空ã®ã¢ãã«å å®¹ãšæç€ºçãªãããªãã¯ãã£ã³ãã«ã¡ã¿ããŒã¿ãæã€éšåçãªããŒã«çµæã§ãã
{ "content": [], "progress": { "text": "Fetching page content...", "visibility": "channel", "privacy": "public", "id": "web_fetch:fetching" }}OpenClaw ã¯ãã£ã³ãã«ã®é²è¡ç¶æ³ UI ã« progress.text ã®ã¿ã衚瀺ããŸããéåžžã®ããŒã«çµæã¯åŸã§ content ããã³ details ãšããŠå°çããã¢ãã«ã«è¿ãããã®ã¯ãã®éšåã ãã§ãã
ããŒã«ã«é²è¡ç¶æ³ã远å ããå Žåã¯ãçãæ±çšçãªã¡ãã»ãŒãžã䜿ãããã®æäœãæçšãšãããã ãååé·ãä¿çãããåŸã«é 延衚瀺ããŸãã
const clearProgressTimer = scheduleToolProgress( onUpdate, { text: "Fetching page content...", id: "web_fetch:fetching" }, 5_000, { signal },); try { return await runToolWork();} finally { clearProgressTimer();}ãã®ãã¿ãŒã³ã«ãããé«éãªåŒã³åºãã§ã¯é²è¡ç¶æ³è¡ã衚瀺ããããé·ãåŒã³åºãã§ã¯ãŸã ä¿çäžã®éã« 1 è¡è¡šç€ºããããã£ã³ã»ã«ãããåŒã³åºãã§ã¯å€ãé²è¡ç¶æ³ã衚瀺ãããåã«ã¿ã€ããŒãã¯ãªã¢ãããŸããé²è¡ç¶æ³ããã¹ãã¯å ¬é UI ã®ãµã€ããã£ã³ãã«ã§ãããããç§å¯æ å ±ãçã®åŒæ°ãååŸããå 容ãã³ãã³ãåºåãããŒãžããã¹ããå«ããŠã¯ãããŸããã
OpenClaw ã¯é²è¡ç¶æ³ãã©ãããš /verbose ã«åããã©ãŒããã¿ãŒã䜿çšããŸãã
{ agents: { defaults: { toolProgressDetail: "explain", // explain | raw }, },}"explain" ã¯ããã©ã«ãã§ãð ïž check JS syntax for /tmp/app.js ã®ãããªç°¡æœãªã©ãã«ã«ãããã©ãããå®å®ãããŸãã"raw" ã¯å©çšå¯èœãªå Žåã«åºã«ãªãã³ãã³ãã詳现ã远å ããŸããããã¯ãããã°äžã«ã¯æçšã§ããããã£ããã§ã¯ããéšããããªããŸãã
ããšãã°ãåãã³ãã³ãã§ã詳现ã¢ãŒãã«ãã£ãŠè¡šç€ºãç°ãªããŸãã
| ã¢ãŒã | é²è¡ç¶æ³è¡ |
|---|---|
explain |
ð ïž check JS syntax for /tmp/app.js |
raw |
ð ïž check JS syntax for /tmp/app.js, node --check /tmp/app.js |
衚瀺ããç¶ããè¡æ°ãå¶éããŸãã
{ channels: { discord: { streaming: { mode: "progress", progress: { maxLines: 4, }, }, }, },}ãã©ããã®ç·šéäžã«ãã£ããå¹ãåºãã®ãªãããŒãæžãããããé²è¡ç¶æ³è¡ã¯èªåçã«å§çž®ãããŸãã
OpenClaw ã¯ããã©ã«ãã§é·ãé²è¡ç¶æ³è¡ãåãè©°ããç¹°ãè¿ãã®ãã©ããç·šéã§æŽæ°ã®ãã³ã«æãè¿ããå€ãããªãããã«ããŸããããã©ã«ãã® 1 è¡ãããã®äžé㯠120 æåã§ããæç« ã¯åèªå¢çã§åããããã¹ãçã³ãã³ãã®ãããªé·ã詳现ã¯ãæ¥å°ŸéšãèŠããããã«äžå€®ã®çç¥èšå·ã§ççž®ãããŸãã
1 è¡ãããã®äžéã調æŽããŸãã
{ channels: { discord: { streaming: { mode: "progress", progress: { maxLineChars: 160, }, }, }, },}Slack ã§ã¯ãé²è¡ç¶æ³è¡ãåäžã®ããã¹ãæ¬æã§ã¯ãªããæ§é åããã Block Kit ãã£ãŒã«ããšããŠã¬ã³ããªã³ã°ã§ããŸãã
{ channels: { slack: { streaming: { mode: "progress", progress: { render: "rich", }, }, }, },}ãªããã¬ã³ããªã³ã°ã¯åããã¬ãŒã³ããã¹ãã®ãã©ãŒã«ããã¯ãä¿æããããããããªãããªåœ¢ããµããŒãããªããã£ã³ãã«ãã¯ã©ã€ã¢ã³ãã§ããã³ã³ãã¯ããªé²è¡ç¶æ³ããã¹ãã衚瀺ã§ããŸãã
åäžã®é²è¡ç¶æ³ãã©ãããç¶æãã€ã€ãããŒã«è¡ãšã¿ã¹ã¯è¡ãé衚瀺ã«ããŸãã
{ channels: { discord: { streaming: { mode: "progress", progress: { toolProgress: false, }, }, }, },}toolProgress: false ã®å Žåã§ããOpenClaw ã¯ãã®ã¿ãŒã³ã«ã€ããŠåŸæ¥ã®åç¬ããŒã«é²è¡ç¶æ³ã¡ãã»ãŒãžãæå¶ããŸããã©ãã«ãèšå®ãããŠããå Žåãé€ãããã£ã³ãã«ã¯æçµåçãŸã§èŠèŠçã«éããªãŸãŸã§ãã
ãã£ã³ãã«ã®æå
åãã£ã³ãã«ã¯ããµããŒãããäžã§æãã¯ãªãŒã³ãªãã©ã³ã¹ããŒãã䜿çšããŸãã
| ãã£ã³ãã« | é²è¡ç¶æ³ãã©ã³ã¹ããŒã | æ³šèš |
|---|---|---|
| Discord | ã¡ãã»ãŒãžã 1 ã€éä¿¡ãããã®åŸç·šéããŸãã | å®å šãªãã¬ãã¥ãŒã¡ãã»ãŒãž 1 ã€ã«åãŸãå Žåãæçµããã¹ãã¯ãã®å Žã§ç·šéãããŸãã |
| Matrix | ã€ãã³ãã 1 ã€éä¿¡ãããã®åŸç·šéããŸãã | ã¢ã«ãŠã³ãã¬ãã«ã®ã¹ããªãŒãã³ã°èšå®ãã¢ã«ãŠã³ãã¬ãã«ã®ãã©ãããå¶åŸ¡ããŸãã |
| Microsoft Teams | å人ãã£ããå ã®ãã€ãã£ã Teams ã¹ããªãŒã ã | streaming.mode: "block" 㯠Teams ã®ãããã¯é
ä¿¡ã«å¯Ÿå¿ããŸãã |
| Slack | ãã€ãã£ãã¹ããªãŒã ãŸãã¯ç·šéå¯èœãªãã©ããæçš¿ã | ã¹ã¬ããã®å©çšå¯åŠã¯ããã€ãã£ãã¹ããªãŒãã³ã°ã䜿çšã§ãããã©ããã«åœ±é¿ããŸãã |
| Telegram | ã¡ãã»ãŒãžã 1 ã€éä¿¡ãããã®åŸç·šéããŸãã | æçµã¿ã€ã ã¹ã¿ã³ããæçšã«ä¿ã€ãããå€ã衚瀺äžãã©ããã眮ãæããããå ŽåããããŸãã |
| Mattermost | ç·šéå¯èœãªãã©ããæçš¿ã | ããŒã«æŽ»åã¯åããã©ãã圢åŒã®æçš¿ã«æã蟌ãŸããŸãã |
å®å šãªç·šéãµããŒãã®ãªããã£ã³ãã«ã¯ãéåžžãå ¥åäžã€ã³ãžã±ãŒã¿ãŒãŸãã¯æçµåçã®ã¿ã®é ä¿¡ã«ãã©ãŒã«ããã¯ããŸãã
æçµå
æçµåçã®æºåãã§ãããšãOpenClaw ã¯ãã£ããããããã«ä¿ãšããšããŸãã
- ãã©ãããå®å šã«æçµåçã«ã§ããå ŽåãOpenClaw ã¯ãã®å Žã§ç·šéããŸãã
- ãã£ã³ãã«ããã€ãã£ãã®é²è¡ç¶æ³ã¹ããªãŒãã³ã°ã䜿çšããŠããå Žåããã€ãã£ããã©ã³ã¹ããŒããæçµããã¹ããåãä»ãããšãã«ãOpenClaw ã¯ãã®ã¹ããªãŒã ãæçµåããŸãã
- æçµåçã«ã¡ãã£ã¢ãæ¿èªããã³ãããæç€ºçãªè¿ä¿¡å ãéå°ãªãã£ã³ã¯ãããå ŽåããŸãã¯ç·šéãéä¿¡ã«å€±æããå ŽåãOpenClaw ã¯éåžžã®ãã£ã³ãã«é ä¿¡çµè·¯ã§æçµåçãéä¿¡ããŸãã
ãã©ãŒã«ããã¯çµè·¯ã¯æå³çãªãã®ã§ããããã¹ãã倱ã£ãããè¿ä¿¡ã®ã¹ã¬ããã誀ã£ããããã£ã³ãã«ãå®å šã«è¡šçŸã§ããªããã€ããŒãã§ãã©ãããäžæžããããããããããæ°ããæçµåçãéä¿¡ããæ¹ãé©åã§ãã
ãã©ãã«ã·ã¥ãŒãã£ã³ã°
æçµåçãã衚瀺ãããŸããã
ã¡ãã»ãŒãžãåŠçããã¢ã«ãŠã³ããŸãã¯ãã£ã³ãã«ã§ãchannels.<channel>.streaming.mode ã progress ã«èšå®ãããŠããããšã確èªããŠãã ãããäžéšã®ã°ã«ãŒããŸãã¯åŒçšè¿ä¿¡ã®çµè·¯ã§ã¯ããã£ã³ãã«ãé©åãªã¡ãã»ãŒãžãå®å
šã«ç·šéã§ããªãå Žåããã®ã¿ãŒã³ã®ãã©ãããã¬ãã¥ãŒãç¡å¹ã«ãªãããšããããŸãã
ã©ãã«ã¯è¡šç€ºãããŸãããããŒã«è¡ã衚瀺ãããŸããã
streaming.progress.toolProgress ã確èªããŠãã ãããfalse ã®å ŽåãOpenClaw ã¯åäžãã©ããã®æåãç¶æããŸãããããŒã«ããã³ã¿ã¹ã¯ã®é²è¡ç¶æ³è¡ãé衚瀺ã«ããŸãã
ç·šéããããã©ããã§ã¯ãªããæ°ããæçµã¡ãã»ãŒãžã衚瀺ãããŸãã
ããã¯å®å šã®ããã®ãã©ãŒã«ããã¯ã§ããã¡ãã£ã¢è¿ä¿¡ãé·ãåçãæç€ºçãªè¿ä¿¡å ãå€ã Telegram ãã©ãããSlack ã¹ã¬ããå ã®æ¬ èœãåé€ããããã¬ãã¥ãŒã¡ãã»ãŒãžããã€ãã£ãã¹ããªãŒã ã®æçµå倱æãªã©ã§çºçããããšããããŸãã
åç¬ã®é²è¡ç¶æ³ã¡ãã»ãŒãžããŸã 衚瀺ãããŸãã
é²è¡ç¶æ³ã¢ãŒãã§ã¯ããã©ãããã¢ã¯ãã£ããªãšãã«ããã©ã«ãã®åç¬ããŒã«é²è¡ç¶æ³ã¡ãã»ãŒãžãæå¶ããŸããåç¬ã¡ãã»ãŒãžããŸã 衚瀺ãããå Žåã¯ããã®ã¿ãŒã³ãå®éã«é²è¡ç¶æ³ã¢ãŒãã䜿çšããŠãããstreaming.mode: "off" ãããã®ã¡ãã»ãŒãžçšã®ãã©ãããäœæã§ããªããã£ã³ãã«çµè·¯ã§ã¯ãªãããšã確èªããŠãã ããã
Teams 㯠Discord ã Telegram ãšç°ãªãæåãããŸãã
Microsoft Teams ã¯ãå人ãã£ããã§æ±çšã®éä¿¡åŸç·šéãã¬ãã¥ãŒè»¢éã§ã¯ãªããã€ãã£ãã¹ããªãŒã ã䜿çšããŸããTeams ã¯ãŸããDiscord ãš Telegram ã§äœ¿ãããåãäžæžããã¬ãã¥ãŒãããã¯ã¢ãŒããæããªããããstreaming.mode: "block" ã Teams ãããã¯é
ä¿¡ãšããŠæ±ããŸãã