OpenClaw Getting Started â
æŽçæ¥æïŒ2026-04-16 ä»åºå°åïŒhttps://github.com/openclaw/openclaw çæ¬ïŒ2026.4.4
项ç®ç®ä» â
æ žå¿ç»è®ºïŒOpenClaw æ¯äžäžªèªæç®¡ç倿ž é AI Agent çœå ³ïŒéè¿åäž Gateway è¿çšå° Slack/Telegram/Discord/WhatsApp/iMessage ç 100+ æ¶æ¯æž éè¿æ¥å° AI çŒçšå©æïŒPiïŒïŒå®ç°"ä»»äœè®Ÿå€åæ¶æ¯ïŒAI 峿¶ååº"ã
å®è§£å³çæ žå¿é®é¢æ¯ïŒAI Agent äžäººç亀äºå ¥å£ç¢çåãåŒåè æ³åšææºäžåæ¡æ¶æ¯è®© AI åž®å¿å代ç ãæ¥æ¥å¿ãåä»»å¡ïŒäœæ¯äžªå¹³å°éœèŠåç¬éæãOpenClaw æè¿äºå šéšç»äžäºã
䞺ä»ä¹ç«ïŒ
- MIT åŒæºïŒå®å šèªæç®¡ïŒæ°æ®äžç»è¿ç¬¬äžæ¹
- åè¿ç𿝿 100+ æž éïŒå 眮 + æä»¶ïŒïŒå æ¬ SignalãiMessageãMatrixã埮信ç
- åçæ¯æå€ Agent è·¯ç±ãè®°å¿ç³»ç»ãæèœç³»ç»ãå Agent åäœ
- ä»
npm install -g openclawå°å¯çšåªé 5 åé
æ žå¿æ¶æ â
æ žå¿åç°ïŒOpenClaw çæ¶æå¯æè§£äžºå倧ç»ä»¶ïŒäžäºé©¬éäºæç« æè¿°äžèŽïŒäœæºç æç€ºäºæŽå€å·¥çšç»èã
ââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââ
â Control Interfaces â
â Web UI â CLI â macOS App â iOS/Android Nodes â
âââââââââââââââââââââââââââââ¬âââââââââââââââââââââââââââââââââââ
â
ââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââ
â Channel Adapters â
â Slack â Telegram â Discord â WhatsApp â Signal â iMessage â
â Teams â Matrix â Feishu â LINE â IRC â Nostr â 100+ ... â
âââââââââââââââââââââââââââââ¬âââââââââââââââââââââââââââââââââââ
â
ââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââ
â Gateway Control Plane â
â âââââââââââ ââââââââââââ ââââââââââââ ââââââââââââââââââ â
â â æ¶æ¯è·¯ç± â â äŒè¯ç®¡ç â â å®å
šèŸ¹ç â â æä»¶/æ©å±ç®¡ç â â
â âââââââââââ ââââââââââââ ââââââââââââ ââââââââââââââââââ â
â âââââââââââ ââââââââââââ ââââââââââââ ââââââââââââââââââ â
â â Cron è°åºŠâ â Auth管ç â â Config â â Channelå¥åº· â â
â âââââââââââ ââââââââââââ ââââââââââââ ââââââââââââââââââ â
âââââââââââââââââââââââââââââ¬âââââââââââââââââââââââââââââââââââ
â
ââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââ
â Agent Runtime â
â Pi Coding Agent (åµå
¥åŒ) + å·¥å
·ç³»ç» + è®°å¿ + æèœ + å猩 â
â ââââââââââââ ââââââââââââ ââââââââââââ ââââââââââââââ â
â â äžäžæç»è£
â â æš¡åè°çš â â å·¥å
·æ§è¡ â â äŒè¯æä¹
å â â
â ââââââââââââ ââââââââââââ ââââââââââââ ââââââââââââââ â
ââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââ1. Channel AdaptersïŒæž ééé å±ïŒ â
æºç éªè¯ïŒextensions/ ç®åœå
å« 100+ æž éæä»¶ïŒæ¯äžªæä»¶éè¿ channel-entry.ts å¯Œåºæ åç ChannelPlugin æ¥å£ã
extensions/
âââ slack/ # Slack éæ
âââ telegram/ # Telegram éæ
âââ discord/ # Discord éæ
âââ whatsapp/ # WhatsApp éæ
âââ signal/ # Signal éæ
âââ imessage/ # iMessage (éè¿ BlueBubbles)
âââ feishu/ # é£ä¹Šéæ
âââ matrix/ # Matrix éæ
âââ msteams/ # Microsoft Teams
âââ line/ # LINE éæ
âââ irc/ # IRC éæ
âââ nostr/ # Nostr éæ
âââ zalo/ # Zalo éæ
âââ ... # è¿æ googlechat, twitch, qqbot çæä»¶å 蜜æºå¶ïŒsrc/channels/plugins/bundled.tsïŒïŒ
- éè¿
jitiïŒå³æ¶ TypeScript çŒè¯åšïŒåšæå 蜜æä»¶çchannel-entry.ts - æ¯æåœåå¯Œåºæš¡åŒïŒå¯Œåº
xxxPlugin+setXxxRuntime - æä»¶åç°éè¿
discoverOpenClawPlugins()æ«æextensions/ç®åœ
2. Control InterfacesïŒæ§å¶æ¥å£ïŒ â
- CLIïŒ
openclaw.mjså ¥å£ïŒæ¯ægateway start/stop/restartãonboardãdashboardçååœä»€ - Web Control UIïŒé»è®€ç«¯å£ 18789ïŒæäŸè倩ãé 眮ãäŒè¯ç®¡ççé¢
- macOS AppïŒåçåºçš
- Mobile NodesïŒiOS/Android é 对讟å€ïŒæ¯æ Canvasãæå倎ãè¯é³ç
3. Gateway Control PlaneïŒçœå ³æ§å¶é¢ïŒ â
æºç éªè¯ïŒsrc/gateway/ ç®åœæ¯çœå
³çæ žå¿ïŒå
³é®æä»¶å
æ¬ïŒ
boot.tsïŒå¯åšåŒå¯ŒïŒæ¯æBOOT.mdèªåšæ§è¡auth.ts+auth-rate-limit.tsïŒè®€è¯äžéæµchannel-health-monitor.tsïŒæž éå¥åº·çæ§call.tsïŒæ žå¿è°çšè·¯ç±é»èŸ
Gateway æ¿æ çæ žå¿è莣ïŒ
- æ¶æ¯è·¯ç±ïŒæ ¹æ® session key è·¯ç±å°æ£ç¡®ç Agent workspace
- å®å šèŸ¹çïŒallowFrom çœååãçŸ€ç» mention è§åãexec å®¡æ¹æºå¶
- äŒè¯ç®¡çïŒsession store æä¹ åïŒJSON æä»¶ïŒïŒæ¯æ per-sender/per-agent é犻
- é
眮管çïŒ
~/.openclaw/openclaw.jsoné 眮çå 蜜
4. Agent RuntimeïŒAgent è¿è¡æ¶ïŒ â
è¿æ¯ææ žå¿çéšåã æºç äœäº src/agents/pi-embedded-runner/ã
Agent Runtime æ§è¡åŸªç¯ â
æ žå¿åç°ïŒæ¯æ¬¡çšæ·æ¶æ¯è§Šåç Agent æ§è¡ïŒå®é äžæ¯äžäžªå€æçå€å±éè¯åŸªç¯ïŒèéç®åç"4æ¥æ§è¡"ã
å
¥å£åœæ°ïŒrunEmbeddedPiAgent()ïŒsrc/agents/pi-embedded-runner/run.tsïŒ
宿޿§è¡æµçš â
çšæ·æ¶æ¯å°èŸŸ
â
âŒ
ââ Session Lane æéïŒé²å¹¶åïŒ ââââââââââââââââââââââââââ
â enqueueSession â enqueueGlobal â
â â
â 1. Workspace è§£æ â
â resolveRunWorkspaceDir() â
â â
â 2. æä»¶å 蜜 â
â ensureRuntimePluginsLoaded() â
â â
â 3. æš¡åè§£æ + Hook ä»å
¥ â
â resolveHookModelSelection() â resolveModelAsync() â
â â
â 4. Auth Profile 蜮蜬åå§å â
â createEmbeddedRunAuthController() â
â â æ¯æå€ profile èªåšèœ®èœ¬ïŒéæµ/æ
éæ¶åæ¢ïŒ â
â â
â 5. éè¯åŸªç¯ (æå€ MAX_RUN_LOOP_ITERATIONS 次) â
â ââ runEmbeddedAttempt() ââââââââââââââââââââââ â
â â a. æèœå 蜜 + ç¯å¢åéèŠç â â
â â b. Bootstrap äžäžææä»¶å 蜜 â â
â â c. ç³»ç»æç€ºè¯æå»º â â
â â d. å·¥å
·æ³šå (å
眮 + MCP + æä»¶) â â
â â e. äŒè¯å建/æ¢å€ â â
â â f. æµåŒè°çš LLM â â
â â g. å·¥å
·è°çšå€ç â â
â â h. äŒè¯ç¶ææä¹
å â â
â ââââââââââââââââââââââââââââââââââââââââââââââ â
â 倱莥å€ç: â
â - Context Overflow â è§Šå Compaction åéè¯ â
â - Auth Error â 蜮蜬å°äžäžäžª profile â
â - Rate Limit â Backoff + Profile 蜮蜬 â
â - Timeout â è¶
æ¶å猩åéè¯ â
â â
â 6. è¿åç»æ (EmbeddedPiRunResult) â
ââââââââââââââââââââââââââââââââââââââââââââââââââââââââââå ³é®å·¥çšç»è â
Session Lane æéïŒéè¿ enqueueCommandInLane() å®ç° per-session äž²è¡æ§è¡ïŒé¿å
å¹¶ååå
¥å²çªã
Auth Profile 蜮蜬ïŒcreateEmbeddedRunAuthController() 绎æ€äžäžª profile åééåïŒåœæäžª API key è¢«éæµæå€±èŽ¥æ¶ïŒèªåšåæ¢å°äžäžäžªãæ¯æççç¥ïŒ
- ææè¿äœ¿çšæ¶éŽæåº
- Cooldown èªåšè¿æ
- Billing/Auth é误æ è®°
Failover çç¥ïŒåç±»å€çäžåé误ïŒ
isLikelyContextOverflowErrorâ è§Šå compactionisRateLimitAssistantErrorâ profile 蜮蜬isBillingAssistantErrorâ æ è®° profile 倱莥isTimeoutErrorâ è¶ æ¶å€ç
äžäžæç»è£ æºå¶ â
æ žå¿åç°ïŒç³»ç»æç€ºè¯æ¯äžäžªç²Ÿå¿åå±çææ¬æŒæ¥è¿çšïŒæç»äº§åºäžäžªå å«åå 䞪 section ç Markdown æ ŒåŒå笊䞲ã
äžäžæç»è£
å
¥å£ïŒbuildAgentSystemPrompt()ïŒsrc/agents/system-prompt.tsïŒ763 è¡ïŒ
äžäžæç»è£ ç宿Žç»æ â
System Prompt ç»è£
顺åº:
âââââââââââââââââââââââââââââââââââââ
1. åºç¡èº«ä»œ
"You are a personal assistant running inside OpenClaw."
2. ## ToolingïŒå·¥å
·æž
åïŒ
- æ žå¿å·¥å
·: read, write, edit, exec, process, web_search, ...
- æä»¶å·¥å
·: message, browser, canvas, nodes, cron, ...
- å·¥å
·çç¥æå¯Œ: cron vs exec 䜿çšåºæ¯
3. ## Tool Call Style
- é»è®€äžè§£éïŒçŽæ¥è°çš
- 倿æäœæéè§£é
4. ## SafetyïŒå®å
šè§èïŒ
- æ ç¬ç«ç®æ ãäžèªæå€å¶
- å²çªæ¶æå请æ±äººç±»çç£
5. ## OpenClaw CLI Quick Reference
6. ## Skills (mandatory)ïŒæèœå衚ïŒ
- <available_skills> XML æ ŒåŒ
- æ¯äžª skill: name + description + location
- 区å¶å¹é
è§åïŒç²Ÿç¡®å¹é
äžäžªå°±è¯»å SKILL.md
7. ## MemoryïŒè®°å¿æçŽ¢æç€ºïŒ
- ç± memory-core æä»¶æ³šå
¥
8. ## OpenClaw Self-Update
9. ## Model Aliases
10. ## Workspace
- å·¥äœç®åœè·¯åŸ
- Sandbox æš¡åŒæå¯Œ
11. ## Documentation
- æ¬å° docs è·¯åŸ + åšçº¿ææ¡£éŸæ¥
12. ## SandboxïŒåŠæå¯çšïŒ
- 容åšè·¯åŸ vs å®¿äž»è·¯åŸæ å°
13. ## Current Date & Time
14. ## Workspace Files (injected)ïŒBootstrap æä»¶ïŒ
- AGENTS.md â å·¥äœæµçšå®ä¹
- SOUL.md â äººæ Œ/飿 Œ
- TOOLS.md â çšæ·èªå®ä¹å·¥å
·æå
- IDENTITY.md â åç§°/emoji/倎å
- USER.md â çšæ·å奜
- MEMORY.md â é¿æè®°å¿
- BOOTSTRAP.md â èªå®ä¹åŒå¯Œ
- èªå®ä¹æ³šå
¥æä»¶
15. ## Subagent ContextïŒåŠææ¯å AgentïŒ
16. ## Runtime ä¿¡æ¯
agent= | host= | os= | model= | channel= | ...
âââââââââââââââââââââââââââââââââââââWorkspace é 眮æä»¶è¯Šè§£ â
| æä»¶ | çšé | æºç äœçœ® |
|---|---|---|
AGENTS.md | å®ä¹ Agent çå·¥äœæµçšãåäœå ³ç³»ãKPI | workspace.ts â DEFAULT_AGENTS_FILENAME |
SOUL.md | äººæ Œãè¯æ°ãæ žå¿åå | DEFAULT_SOUL_FILENAME |
TOOLS.md | çšæ·èªå®ä¹å·¥å ·äœ¿çšæåïŒäžæ§å¶å·¥å ·å¯çšæ§ïŒ | DEFAULT_TOOLS_FILENAME |
IDENTITY.md | åç§°ãemojiã倎å | DEFAULT_IDENTITY_FILENAME |
USER.md | çšæ·ä¿¡æ¯åå奜 | DEFAULT_USER_FILENAME |
MEMORY.md | é¿æè®°å¿ | DEFAULT_MEMORY_FILENAME |
HEARTBEAT.md | å¿è·³æ£æ¥æä»€ | DEFAULT_HEARTBEAT_FILENAME |
BOOTSTRAP.md | èªå®ä¹åŒå¯Œ | DEFAULT_BOOTSTRAP_FILENAME |
BOOT.md | Gateway å¯åšæ¶èªåšæ§è¡ | gateway/boot.ts |
Bootstrap æä»¶å 蜜æºå¶ â
æºç ïŒbootstrap-files.tsïŒæç€ºäºç²Ÿç»çå 蜜æ§å¶ïŒ
- å 蜜ïŒ
loadWorkspaceBootstrapFiles()ä» workspace ç®åœè¯»å - è¿æ»€ïŒ
filterBootstrapFilesForSession()æ session ç±»åè¿æ»€ - Hook èŠçïŒ
applyBootstrapHookOverrides()å 讞æä»¶ä¿®æ¹ - Context ModeïŒ
fullïŒå èœœææ bootstrap æä»¶lightweightïŒå¿è·³åºæ¯åªä¿çHEARTBEAT.mdïŒcron åºæ¯æž 空
- é¢ç®æ§å¶ïŒ
analyzeBootstrapBudget()鲿¢ bootstrap æä»¶è¶ åº token é¢ç® - çŒåïŒ
getOrLoadBootstrapFiles()éè¿ inode/mtime çŒåé¿å éå€è¯»å
PromptMode å级 â
type PromptMode = "full" | "minimal" | "none";fullïŒäž» AgentïŒå®æŽ sectionïŒSkillsãMemoryãDocsãReply Tags çïŒminimalïŒå AgentïŒåªä¿ç Tooling + Workspace + RuntimenoneïŒæç®æš¡åŒïŒåªæäžè¡èº«ä»œå£°æ
è®°å¿ç³»ç» â
æ žå¿åç°ïŒè®°å¿ç³»ç»æ¯äžäžªç¬ç«çæ©å±æä»¶ïŒextensions/memory-core/ïŒïŒèéåµåšæ žå¿ä»£ç äžãéçš"æ··åæçŽ¢ + Dreaming æŽå"çäž€å±æ¶æã
ååšæ¶æ â
memory-core/
âââ src/
â âââ memory/
â â âââ manager.ts # MemoryIndexManager äžæ¢
â â âââ hybrid.ts # æ··åæçŽ¢åŒæ
â â âââ embeddings.ts # åéåµå
¥ç®¡ç
â â âââ temporal-decay.ts # æ¶éŽè¡°å
â â âââ mmr.ts # æå€§èŸ¹é
çžå
³æ§
â â âââ search-manager.ts # æçŽ¢ç®¡çåš
â â âââ provider-adapters.ts # åµå
¥æš¡åéé
â âââ dreaming.ts # Dreaming æºå¶
â âââ short-term-promotion.ts # çæè®°å¿æå
â âââ flush-plan.ts # è®°å¿å·å计å
â âââ tools.ts # è®°å¿å·¥å
·å®ä¹æ··åæçŽ¢æºå¶ïŒHybrid SearchïŒ â
æºç ïŒmemory/hybrid.tsïŒç¡®è®€äºåè·¯æçŽ¢ + å æèåïŒ
æ¥è¯¢ â â¬â åéæçŽ¢ (cosine similarity) âââ vectorWeight (é»è®€ 0.7)
â â
ââ FTS5 å
šææçŽ¢ (BM25 æå) âââ textWeight (é»è®€ 0.3)
â
å æèå + å»é
â
âââââââââŽââââââââ
â MMR éæåº â (å¯é, 倿 ·æ§)
â æ¶éŽè¡°å â (å¯é, åè¡°æ)
âââââââââââââââââ
â
Top-K ç»æè¿åå
³é®é
çœ®åæ°ïŒmemory-search.tsïŒïŒ
maxResults: é»è®€ 6minScore: é»è®€ 0.35vectorWeight: 0.7,textWeight: 0.3candidateMultiplier: 4ïŒå å 4 ååéå粟æïŒtemporalDecay.halfLifeDays: 30 倩chunking.tokens: 400,overlap: 80
BM25 åæ°åœäžåïŒæºç çŽæ¥éªè¯ïŒïŒ
function bm25RankToScore(rank: number): number {
if (rank < 0) {
const relevance = -rank;
return relevance / (1 + relevance);
}
return 1 / (1 + rank);
}Dreaming æºå¶ â
æºç ïŒdreaming.tsïŒæç€º Dreaming å·²ç»éæäžº Short-Term PromotionïŒçæè®°å¿æåïŒæºå¶ïŒäžåæ¯æç« æè¿°ç"Light Sleep â REM Sleep"äž€é¶æ®µã
äžç§é¢è®Ÿæš¡åŒïŒ
coreïŒæ¯å€©åæš 3 ç¹æ§è¡ïŒå€ç 10 æ¡åédeepïŒæ¯ 12 å°æ¶ïŒæŽäž¥æ Œçè¿æ»€æ¡ä»¶remïŒæ¯ 6 å°æ¶ïŒæäž¥æ ŒïŒminScore=0.85, minRecallCount=4ïŒ
æåæ¡ä»¶ïŒ
minScoreïŒæäœåéçžäŒŒåºŠminRecallCountïŒæå°è¢«å¬å次æ°minUniqueQueriesïŒè³å°è¢«å€å°äžåæ¥è¯¢å¬å
éè¿ Cron ç³»ç»è°åºŠïŒæ¯æ¬¡æ§è¡ applyShortTermPromotions() å°é«é¢è¢«å¬åççæè®°å¿æåäžºé¿æè®°å¿ã
æä»¶æ³šåæºå¶ â
è®°å¿ç³»ç»éè¿ src/plugins/memory-state.ts æŽé²æ³šåæ¥å£ïŒ
MemoryPromptSectionBuilderïŒæ³šå ¥ç³»ç»æç€ºè¯çè®°å¿ sectionMemoryFlushPlanResolverïŒæ§å¶è®°å¿å·åæ¶æºåæ ŒåŒRegisteredMemorySearchManagerïŒæäŸ sync/search/close çåœåšæ
æèœç³»ç» (Skills) â
æ žå¿åç°ïŒæèœç³»ç»æ¯äžäžª"声æåŒåç° + æéå 蜜"çæ¶æïŒagent åšæ¯æ¬¡åå€åæ«ææèœå衚ïŒå¹é ååšæè¯»å SKILL.mdã
æèœå 蜜æµçš â
å¯åšæ¶ïŒ
loadWorkspaceSkillEntries()
â
âââ æ«æ bundled skillsïŒå
眮æèœç®åœïŒ
âââ æ«æ workspace skillsïŒ~/.openclaw/workspace/skills/ïŒ
âââ æ«æ plugin skillsïŒæä»¶æäŸçæèœïŒ
âââ åå¹¶ + å»é + è¿æ»€
ç»è£
å°ç³»ç»æç€ºè¯ïŒ
resolveSkillsPromptForRun()
â buildWorkspaceSkillsPrompt()
â formatSkillsForPrompt()
â èŸåº <available_skills> XML åæèœå¹é äžæ³šå ¥ â
ç³»ç»æç€ºè¯äžç Skills section 区å¶èŠæ± Agent éµåŸªä»¥äžè§åïŒ
- æ¯æ¬¡åå€åæ«æ
<available_skills>ç<description>åæ®µ - 粟确å¹é
äžäžªæèœ â çš
readå·¥å ·è¯»åSKILL.md - å€äžªå¯èœå¹é â éæå ·äœç
- éœäžå¹é â äžè¯»åä»»äœ SKILL.md
- æ°žè¿äžèŠé¢è¯»å€äžªæèœ
æèœéå¶åæ° â
DEFAULT_MAX_CANDIDATES_PER_ROOT = 300 // æ¯äžªç®åœæå€æ«æ 300 䞪åé
DEFAULT_MAX_SKILLS_LOADED_PER_SOURCE = 200 // æ¯äžªæ¥æºæå€ 200 䞪
DEFAULT_MAX_SKILLS_IN_PROMPT = 150 // ç³»ç»æç€ºè¯æå€ 150 䞪æèœ
DEFAULT_MAX_SKILLS_PROMPT_CHARS = 30_000 // æèœå衚æå€ 30K å笊
DEFAULT_MAX_SKILL_FILE_BYTES = 256_000 // å䞪 SKILL.md æå€§ 256KBè·¯åŸå猩äŒå â
compactSkillPaths() å°çšæ· home ç®åœæ¿æ¢äžº ~ïŒæ¯äžªæèœè·¯åŸèç 5-6 䞪 tokenïŒ150 䞪æèœå¯èç纊 600 tokensã
äžäžæå猩 (Compaction) â
æ žå¿åç°ïŒCompaction æ¯ OpenClaw åºå¯¹é¿å¯¹è¯ token 溢åºçæ žå¿æºå¶ïŒéè¿ LLM çææèŠæ¥å猩åå²ã
æºç ïŒcompaction.tsïŒå
³é®åæ°ïŒ
BASE_CHUNK_RATIO = 0.4 // åºç¡å忝äŸïŒåäžäžæçªå£ç 40%
MIN_CHUNK_RATIO = 0.15 // æå°ååïŒäžäœäº 15%
SAFETY_MARGIN = 1.2 // 20% å®å
šèŸ¹è·ïŒestimateTokens å¯èœäžåïŒ
DEFAULT_PARTS = 2 // é»è®€å 2 éšåå猩å猩æµçš â
- æ£æµ token 溢åºïŒcontext overflow error æäž»å𿣿¥ïŒ
- å°å岿¶æ¯ååïŒ
BASE_CHUNK_RATIOå³å®å倧å°ïŒ - æ¯åè°çš LLM çææèŠïŒ
generateSummary()ïŒ - å€åæèŠååå¹¶ïŒ
MERGE_SUMMARIES_INSTRUCTIONSïŒ - æ¿æ¢åå§åå²ïŒä¿çæèŠ
æèп什ïŒå¿ é¡»ä¿ççå å®¹ïŒ â
MUST PRESERVE:
- Active tasks and their current status
- Batch operation progress (e.g., '5/17 items completed')
- The last thing the user requested
- Decisions made and their rationale
- TODOs, open questions, and constraints
- Any commitments or follow-ups promisedæ è¯ç¬Šä¿ççç¥ â
identifierPolicy æ¯æäžç§æš¡åŒïŒ
strictïŒé»è®€ïŒïŒä¿çææ UUIDãhashãURLãæä»¶åçcustomïŒèªå®ä¹ä¿çè§åoffïŒäžç¹æ®å€ç
è§Šåæ¶æº â
- Context OverflowïŒLLM è¿å溢åºé误æ¶ïŒæå€éè¯ 3 次å猩
- Timeout CompactionïŒè¶ æ¶åå°è¯åçŒ©ïŒæå€ 2 次
- Tool Result TruncationïŒæ£æµå°è¶ å€§å·¥å ·èŸåºæ¶å æªæåéè¯
æä»¶/æ©å±äœç³» â
æ žå¿åç°ïŒOpenClaw çæ©å±äœç³»é«åºŠæš¡ååïŒextensions/ ç®åœå å« 100+ ç¬ç«æ©å±ïŒæ¶µçæž éãAI æäŸåãå·¥å ·äžå€§ç±»ã
æ©å±åç±» â
| ç±»å« | ç€ºäŸ | æ°é |
|---|---|---|
| æž éæä»¶ | slack, telegram, discord, whatsapp, signal, feishu | 30+ |
| AI æäŸå | anthropic, openai, google, amazon-bedrock, deepseek, moonshot | 30+ |
| åèœæ©å± | browser, memory-core, speech-core, image-generation-core | 20+ |
| å·¥å ·éæ | brave (æçŽ¢), exa, firecrawl, tavily, perplexity | 10+ |
| åè®®éé | ollama, vllm, sglang, litellm, openrouter | 10+ |
æä»¶ SDK â
æºç ïŒsrc/plugins/ïŒæäŸæ ååçæä»¶æ¥å£ïŒ
- Channel PluginïŒå®ç°
ChannelPluginæ¥å£ +channel-entry.tså ¥å£ - Provider PluginïŒéè¿ stream wrapper æ³šåæš¡åæäŸå
- Memory PluginïŒ
registerMemoryRuntime/registerMemoryEmbeddingProvider - Hook SystemïŒ
getGlobalHookRunner()æäŸçåœåšæé©åbeforeAgentStartïŒAgent å¯åšåbeforePromptBuildïŒæç€ºè¯æå»ºåafterTurnïŒæ¯èœ®æ§è¡å
MCP éæ â
src/agents/pi-bundle-mcp-tools.ts æ¯æ MCP (Model Context Protocol) å·¥å
·ïŒ
- è¿è¡æ¶åšæå 蜜 MCP æå¡åš
- æ¯æ stdio å HTTP äŒ èŸ
- æ¯äžª session ç¬ç«ç MCP è¿è¡æ¶
Token æ¶èåæ â
äžç±» Token ççž â
æ³šå ¥åççžïŒ
- ç³»ç»æç€ºè¯è¿é¿ïŒSkills å衚ãBootstrap æä»¶ãMemory sectionïŒ
- é²åŸ¡ïŒ
DEFAULT_MAX_SKILLS_PROMPT_CHARS = 30_000ãbootstrapMaxCharsé¢ç®æ§å¶
éå€åççžïŒ
- é¿å¯¹è¯åå²äžæçŽ¯ç§¯
- é²åŸ¡ïŒCompaction æºå¶ +
limitHistoryTurns()éå¶åå²èœ®æ¬¡
é»çåççžïŒ
- å·¥å
·è¿åç»æè¿å€§ïŒåŠ
cat倧æä»¶ïŒ - é²åŸ¡ïŒ
tool-result-truncation.tsæªæè¶ å€§ç»æ +tool-result-context-guard.tsè¿è¡æ¶å®å«
- å·¥å
·è¿åç»æè¿å€§ïŒåŠ
å¯è§æµäžå± â
æš¡åè°çšå±ïŒ
prompt-cache-observability.ts â çŒååœäžç
usage-accumulator.ts â Token 䜿çšç»è®¡
anthropic-payload-log.ts â å®æŽ payload è®°åœ
Agent æ§è¡å±ïŒ
system-prompt-report.ts â ç³»ç»æç€ºè¯æ¥å
cache-trace.ts â çŒå远螪
bootstrap-budget.ts â Bootstrap é¢ç®åæ
Prompt æå»ºå±ïŒ
context-tokens.runtime.ts â äžäžæçªå£è¿è¡æ¶
context-window-guard.ts â çªå£æº¢åºå®å«
tool-result-char-estimator.ts â å·¥å
·ç»æå笊䌰ç®Prompt Cache äŒå â
Anthropic ç prompt cache æ¯ OpenClaw éç¹äŒåçæ¹åïŒ
system-prompt-cache-boundary.tsïŒæ è®°çŒå蟹çanthropic-cache-retention.tsïŒçŒåä¿ççç¥prompt-cache-stability.tsïŒç¡®ä¿ section æåºçš³å®ä»¥æé«çŒååœäž
å€ Agent åäœ â
æ žå¿åç°ïŒOpenClaw éè¿ Subagent æºå¶å®ç°å€ Agent åäœïŒæ¯æäž€ç§æš¡åŒã
Spawn æºå¶ â
æºç ïŒsubagent-spawn.tsïŒå®ä¹äºäž€ç§æš¡åŒïŒ
type SpawnSubagentMode = "run" | "session";runïŒäžæ¬¡æ§ä»»å¡ïŒå®æåèªåšéæ¯sessionïŒæä¹ äŒè¯ïŒå¯å€æ¬¡äº€äº
Subagent çåœåšæ â
äž» Agent
â
ââ sessions_spawn(task, mode="run")
â â
â âââ åé
ç¬ç« workspace
â âââ å建ç¬ç« session
â âââ æ³šå
¥ Subagent Context
â âââ PromptMode = "minimal"
â âââ 宿å auto-announce åäž» Agent
â
ââ subagents(action="list") â æ¥çå Agent ç¶æ
ââ subagents(action="steer") â ç»å Agent è¿œå æä»€
ââ subagents(action="kill") â ç»æ¢å Agent深床éå¶ â
DEFAULT_SUBAGENT_MAX_SPAWN_DEPTH // 鲿¢æ ééåœ spawnACP (Agent Communication Protocol) â
OpenClaw è¿æ¯æ ACP è¿è¡æ¶ïŒå
讞éè¿ sessions_spawn(runtime="acp") å¯åšå€éšçŒçš AgentïŒåŠ Claude Code, Codex, Gemini CLIïŒïŒæäŸæ ååç亀äºåè®®ã
å ³é®è®Ÿè®¡å³ç â
䞺ä»ä¹é TypeScriptïŒ â
- åçåŒæ¥/äºä»¶é©±åšïŒå€©ç¶éå I/O å¯éççœå ³åºæ¯
- NPM çæçŽæ¥å¯çšïŒ
npm install -g openclawïŒ - äž Node.js è¿è¡æ¶æ çŒéæ
- æä»¶å¯ä»¥çŽæ¥çš TypeScript çŒåïŒéè¿
jiti峿¶çŒè¯
䞺ä»ä¹çšæä»¶ç³»ç»èéæ°æ®åºïŒ â
- äŒè¯æä¹ åïŒJSON æä»¶ per sessionïŒé¶äŸèµ
- è®°å¿ååšïŒSQLiteïŒåæä»¶æ°æ®åºïŒ+ åéæ©å±
- é
眮ïŒ
openclaw.jsonåæä»¶ïŒå¯çŽæ¥çŒèŸ - Workspace æä»¶ïŒMarkdown æ ŒåŒïŒAGENTS.md, SOUL.md çïŒïŒäººç±»å¯è¯»å¯çŒèŸ
- 讟计å²åŠïŒèªæç®¡åºæ¯äžïŒæä»¶ç³»ç»æ¯æç®åå¯é çæä¹ åæ¹æ¡
䞺ä»ä¹ Markdown é çœ®ïŒ â
- 人类å¯è¯»å¯çŒèŸïŒæ éç¹æ®å·¥å ·
- LLM åççè§£ Markdown æ ŒåŒ
- æ¯æçæ¬æ§å¶ïŒGit å奜ïŒ
- Token æçé«ïŒçžæ¯ JSON/YAML é 眮ïŒ
åµå ¥åŒ Agent èé RPC â
OpenClaw 䜿çšåµå
¥åŒ Pi AgentïŒpi-embedded-runnerïŒïŒå° @mariozechner/pi-coding-agent äœäžºåºçŽæ¥éæïŒèééè¿ RPC è°çšç¬ç«è¿çšã奜å€ïŒ
- æŽäœå»¶è¿ïŒæ è¿çšéŽéä¿¡åŒéïŒ
- æŽç²Ÿç»çæ§å¶ïŒçŽæ¥ææ§ session managerãå·¥å ·æ³šåïŒ
- ç»äžççåœåšæç®¡ç
Session Lane æé â
éè¿ enqueueCommandInLane() å®ç° per-session äž²è¡åïŒ
- 鲿¢åäž session çå¹¶ååå ¥
- å šå± lane çšäºè·š session çå šå±æäœ
- å Œé¡Ÿå¹¶åæ§èœåæ°æ®äžèŽæ§
éšçœ²æ¹åŒ â
NPM äžè¡å®è£ ïŒæšèïŒ â
npm install -g openclaw@latest
openclaw onboard --install-daemonç³»ç»èŠæ± â
- Node.js 24ïŒæšèïŒæ Node.js 22 LTSïŒ22.14+ïŒ
- ä»»ææäœç³»ç»ïŒLinux/macOS/WindowsïŒ
- äžäžª AI æäŸåç API key
é 眮æä»¶ â
~/.openclaw/
âââ openclaw.json # äž»é
眮
âââ workspace/ # é»è®€ Agent workspace
â âââ AGENTS.md
â âââ SOUL.md
â âââ TOOLS.md
â âââ IDENTITY.md
â âââ USER.md
â âââ MEMORY.md
â âââ skills/ # èªå®ä¹æèœ
â âââ memory/ # è®°å¿æä»¶
âââ workspace-{profile}/ # å€ Agent workspace
âââ sessions/ # äŒè¯ååš
âââ state/ # è¿è¡æ¶ç¶æ
âââ memory/
âââ {agentId}.sqlite # è®°å¿æ°æ®åºå¿«éå¯åš â
# å®è£
npm install -g openclaw@latest
# åŒå¯Œè®Ÿçœ®ïŒäº€äºåŒé
眮 + å®è£
宿€è¿çšïŒ
openclaw onboard --install-daemon
# æåŒ Web UI
openclaw dashboard
# æè¿æ¥ TelegramïŒæå¿«çç§»åšç«¯æ¥å
¥æ¹åŒïŒ
# åš openclaw.json äžé
眮 channels.telegram.tokenGateway 管ç â
openclaw gateway status # æ¥çç¶æ
openclaw gateway start # å¯åš
openclaw gateway stop # 忢
openclaw gateway restart # éå¯åèèµæº â
- 宿¹ææ¡£: https://docs.openclaw.ai
- GitHub ä»åº: https://github.com/openclaw/openclaw
- ç€Ÿåº Discord: https://discord.com/invite/clawd
- æèœåžåº: https://clawhub.ai
- 讞å¯è¯: MIT
æ¬æåºäº OpenClaw v2026.4.4 æºç åææŽçïŒæææ¶ææè¿°åç»è¿æºç éªè¯ã