mirror of
https://github.com/memohai/Memoh.git
synced 2026-04-25 07:00:48 +09:00
deploy: d5b410d7e3
This commit is contained in:
@@ -9,7 +9,7 @@
|
|||||||
<link rel="preload stylesheet" href="/assets/style.B5ESegsT.css" as="style">
|
<link rel="preload stylesheet" href="/assets/style.B5ESegsT.css" as="style">
|
||||||
<link rel="preload stylesheet" href="/vp-icons.css" as="style">
|
<link rel="preload stylesheet" href="/vp-icons.css" as="style">
|
||||||
|
|
||||||
<script type="module" src="/assets/app.C-qdOXyL.js"></script>
|
<script type="module" src="/assets/app.CBu6txs-.js"></script>
|
||||||
<link rel="preload" href="/assets/inter-roman-latin.Di8DUHzh.woff2" as="font" type="font/woff2" crossorigin="">
|
<link rel="preload" href="/assets/inter-roman-latin.Di8DUHzh.woff2" as="font" type="font/woff2" crossorigin="">
|
||||||
<link rel="icon" href="/logo.png">
|
<link rel="icon" href="/logo.png">
|
||||||
<script id="check-dark-mode">(()=>{const e=localStorage.getItem("vitepress-theme-appearance")||"auto",a=window.matchMedia("(prefers-color-scheme: dark)").matches;(!e||e==="auto"?a:e==="dark")&&document.documentElement.classList.add("dark")})();</script>
|
<script id="check-dark-mode">(()=>{const e=localStorage.getItem("vitepress-theme-appearance")||"auto",a=window.matchMedia("(prefers-color-scheme: dark)").matches;(!e||e==="auto"?a:e==="dark")&&document.documentElement.classList.add("dark")})();</script>
|
||||||
@@ -17,7 +17,7 @@
|
|||||||
</head>
|
</head>
|
||||||
<body>
|
<body>
|
||||||
<div id="app"></div>
|
<div id="app"></div>
|
||||||
<script>window.__VP_HASH_MAP__=JSON.parse("{\"about.md\":\"BA4ADbiz\",\"blogs_2026-02-16.md\":\"cjgZmunL\",\"blogs_index.md\":\"B2P01evP\",\"channels_discord.md\":\"WNpdGj29\",\"channels_feishu.md\":\"BBJ8KQPd\",\"channels_index.md\":\"T_VHXXZf\",\"channels_qq.md\":\"B_4bodh-\",\"channels_telegram.md\":\"B9i-uoiX\",\"getting-started_access.md\":\"Ci3R9wdO\",\"getting-started_bot.md\":\"AR4RHnpe\",\"getting-started_browser.md\":\"B-tRWxYY\",\"getting-started_channels.md\":\"C0YPWL-y\",\"getting-started_container.md\":\"D49M0dHe\",\"getting-started_email.md\":\"BRkUZLh2\",\"getting-started_files.md\":\"CczR71or\",\"getting-started_heartbeat.md\":\"B-SMiJUD\",\"getting-started_mcp.md\":\"Bb2toM2o\",\"getting-started_memory.md\":\"2LaCipf1\",\"getting-started_provider-and-model.md\":\"BquaPnJe\",\"getting-started_schedule.md\":\"CNDu3SiN\",\"getting-started_search-provider.md\":\"R9B5DkBj\",\"getting-started_skills.md\":\"DzSZ-qiC\",\"getting-started_subagents.md\":\"6oBLlW8a\",\"index.md\":\"D1yGsPie\",\"installation_docker.md\":\"BYtBZBwq\",\"memory-providers_builtin.md\":\"D5BGaMgs\",\"memory-providers_index.md\":\"CTmbFtvS\",\"memory-providers_mem0.md\":\"DYavcIID\",\"memory-providers_openviking.md\":\"DRJRcuFd\",\"tts-providers_edge.md\":\"Uf8Yzj2Y\",\"tts-providers_index.md\":\"vUh5rqaG\",\"zh_concepts_identity-and-binding.md\":\"7e9GdoK6\",\"zh_concepts_index.md\":\"Brd21jcS\",\"zh_index.md\":\"CZQRt_rQ\",\"zh_style_terminology.md\":\"DLv5QofI\"}");window.__VP_SITE_DATA__=JSON.parse("{\"lang\":\"en-US\",\"dir\":\"ltr\",\"title\":\"Memoh Documentation\",\"description\":\"Multi-Member, Structured Long-Memory, Containerized AI Agent System.\",\"base\":\"/\",\"head\":[],\"router\":{\"prefetchLinks\":true},\"appearance\":true,\"themeConfig\":{\"siteTitle\":\"Memoh\",\"sidebar\":{\"/blogs/\":[{\"text\":\"Blogs\",\"link\":\"/blogs/index.md\",\"items\":[{\"text\":\"Introduction (Feb 2026)\",\"link\":\"/blogs/2026-02-16.md\"}]}],\"/\":[{\"text\":\"Overview\",\"link\":\"/index.md\"},{\"text\":\"About Memoh\",\"link\":\"/about.md\"},{\"text\":\"Installation\",\"items\":[{\"text\":\"Docker\",\"link\":\"/installation/docker.md\"}]},{\"text\":\"Getting Started\",\"items\":[{\"text\":\"LLM Provider and Model\",\"link\":\"/getting-started/provider-and-model.md\"},{\"text\":\"Bot Management\",\"link\":\"/getting-started/bot.md\"},{\"text\":\"Bot Access Control\",\"link\":\"/getting-started/access.md\"},{\"text\":\"Container Management\",\"link\":\"/getting-started/container.md\"},{\"text\":\"Files Management\",\"link\":\"/getting-started/files.md\"},{\"text\":\"Bot Skills\",\"link\":\"/getting-started/skills.md\"},{\"text\":\"MCP Connections\",\"link\":\"/getting-started/mcp.md\"},{\"text\":\"Bot Channels\",\"link\":\"/getting-started/channels.md\"},{\"text\":\"Browser Contexts\",\"link\":\"/getting-started/browser.md\"},{\"text\":\"Memory Management\",\"link\":\"/getting-started/memory.md\"},{\"text\":\"Subagents\",\"link\":\"/getting-started/subagents.md\"},{\"text\":\"Heartbeat\",\"link\":\"/getting-started/heartbeat.md\"},{\"text\":\"Scheduled Tasks\",\"link\":\"/getting-started/schedule.md\"},{\"text\":\"Search Providers\",\"link\":\"/getting-started/search-provider.md\"},{\"text\":\"Email Providers\",\"link\":\"/getting-started/email.md\"}]},{\"text\":\"Memory Providers\",\"items\":[{\"text\":\"Overview\",\"link\":\"/memory-providers/index.md\"},{\"text\":\"Built-in\",\"link\":\"/memory-providers/builtin.md\"},{\"text\":\"Mem0\",\"link\":\"/memory-providers/mem0.md\"},{\"text\":\"OpenViking\",\"link\":\"/memory-providers/openviking.md\"}]},{\"text\":\"TTS Providers\",\"items\":[{\"text\":\"Overview\",\"link\":\"/tts-providers/index.md\"},{\"text\":\"Edge TTS\",\"link\":\"/tts-providers/edge.md\"}]},{\"text\":\"Channels\",\"items\":[{\"text\":\"Overview\",\"link\":\"/channels/index.md\"},{\"text\":\"Telegram\",\"link\":\"/channels/telegram.md\"},{\"text\":\"Feishu (Lark)\",\"link\":\"/channels/feishu.md\"},{\"text\":\"Discord\",\"link\":\"/channels/discord.md\"},{\"text\":\"QQ\",\"link\":\"/channels/qq.md\"}]}],\"/zh/\":[{\"text\":\"文档总览\",\"link\":\"/zh/index.md\"}]},\"nav\":[{\"text\":\"Guides\",\"link\":\"/\"},{\"text\":\"Blogs\",\"link\":\"/blogs/\"}],\"logo\":{\"src\":\"/logo.png\",\"alt\":\"Memoh\"},\"socialLinks\":[{\"icon\":\"github\",\"link\":\"https://github.com/memohai/Memoh\"}],\"footer\":{\"message\":\"Published under AGPLv3\",\"copyright\":\"Copyright © 2024 Memoh\"},\"search\":{\"provider\":\"local\"},\"editLink\":{\"pattern\":\"https://github.com/memohai/Memoh/edit/main/docs/docs/:path\",\"text\":\"Edit on GitHub\"},\"lastUpdated\":{\"text\":\"Last Updated\",\"formatOptions\":{\"dateStyle\":\"short\",\"timeStyle\":\"medium\"}}},\"locales\":{\"root\":{\"label\":\"English\",\"lang\":\"en\"},\"zh\":{\"label\":\"简体中文\",\"lang\":\"zh\"}},\"scrollOffset\":134,\"cleanUrls\":false}");</script>
|
<script>window.__VP_HASH_MAP__=JSON.parse("{\"about.md\":\"BA4ADbiz\",\"blogs_2026-02-16.md\":\"cjgZmunL\",\"blogs_index.md\":\"B2P01evP\",\"channels_discord.md\":\"WNpdGj29\",\"channels_feishu.md\":\"BBJ8KQPd\",\"channels_index.md\":\"T_VHXXZf\",\"channels_qq.md\":\"B_4bodh-\",\"channels_telegram.md\":\"B9i-uoiX\",\"getting-started_access.md\":\"Ci3R9wdO\",\"getting-started_bot.md\":\"AR4RHnpe\",\"getting-started_browser.md\":\"B-tRWxYY\",\"getting-started_channels.md\":\"C0YPWL-y\",\"getting-started_container.md\":\"D49M0dHe\",\"getting-started_email.md\":\"BRkUZLh2\",\"getting-started_files.md\":\"CczR71or\",\"getting-started_heartbeat.md\":\"B-SMiJUD\",\"getting-started_mcp.md\":\"Bb2toM2o\",\"getting-started_memory.md\":\"2LaCipf1\",\"getting-started_provider-and-model.md\":\"BquaPnJe\",\"getting-started_schedule.md\":\"CNDu3SiN\",\"getting-started_search-provider.md\":\"R9B5DkBj\",\"getting-started_skills.md\":\"DzSZ-qiC\",\"getting-started_subagents.md\":\"6oBLlW8a\",\"index.md\":\"D1yGsPie\",\"installation_docker.md\":\"IuAKlQcI\",\"memory-providers_builtin.md\":\"D5BGaMgs\",\"memory-providers_index.md\":\"CTmbFtvS\",\"memory-providers_mem0.md\":\"DYavcIID\",\"memory-providers_openviking.md\":\"DRJRcuFd\",\"tts-providers_edge.md\":\"Uf8Yzj2Y\",\"tts-providers_index.md\":\"vUh5rqaG\",\"zh_concepts_identity-and-binding.md\":\"7e9GdoK6\",\"zh_concepts_index.md\":\"Brd21jcS\",\"zh_index.md\":\"CZQRt_rQ\",\"zh_style_terminology.md\":\"DLv5QofI\"}");window.__VP_SITE_DATA__=JSON.parse("{\"lang\":\"en-US\",\"dir\":\"ltr\",\"title\":\"Memoh Documentation\",\"description\":\"Multi-Member, Structured Long-Memory, Containerized AI Agent System.\",\"base\":\"/\",\"head\":[],\"router\":{\"prefetchLinks\":true},\"appearance\":true,\"themeConfig\":{\"siteTitle\":\"Memoh\",\"sidebar\":{\"/blogs/\":[{\"text\":\"Blogs\",\"link\":\"/blogs/index.md\",\"items\":[{\"text\":\"Introduction (Feb 2026)\",\"link\":\"/blogs/2026-02-16.md\"}]}],\"/\":[{\"text\":\"Overview\",\"link\":\"/index.md\"},{\"text\":\"About Memoh\",\"link\":\"/about.md\"},{\"text\":\"Installation\",\"items\":[{\"text\":\"Docker\",\"link\":\"/installation/docker.md\"}]},{\"text\":\"Getting Started\",\"items\":[{\"text\":\"LLM Provider and Model\",\"link\":\"/getting-started/provider-and-model.md\"},{\"text\":\"Bot Management\",\"link\":\"/getting-started/bot.md\"},{\"text\":\"Bot Access Control\",\"link\":\"/getting-started/access.md\"},{\"text\":\"Container Management\",\"link\":\"/getting-started/container.md\"},{\"text\":\"Files Management\",\"link\":\"/getting-started/files.md\"},{\"text\":\"Bot Skills\",\"link\":\"/getting-started/skills.md\"},{\"text\":\"MCP Connections\",\"link\":\"/getting-started/mcp.md\"},{\"text\":\"Bot Channels\",\"link\":\"/getting-started/channels.md\"},{\"text\":\"Browser Contexts\",\"link\":\"/getting-started/browser.md\"},{\"text\":\"Memory Management\",\"link\":\"/getting-started/memory.md\"},{\"text\":\"Subagents\",\"link\":\"/getting-started/subagents.md\"},{\"text\":\"Heartbeat\",\"link\":\"/getting-started/heartbeat.md\"},{\"text\":\"Scheduled Tasks\",\"link\":\"/getting-started/schedule.md\"},{\"text\":\"Search Providers\",\"link\":\"/getting-started/search-provider.md\"},{\"text\":\"Email Providers\",\"link\":\"/getting-started/email.md\"}]},{\"text\":\"Memory Providers\",\"items\":[{\"text\":\"Overview\",\"link\":\"/memory-providers/index.md\"},{\"text\":\"Built-in\",\"link\":\"/memory-providers/builtin.md\"},{\"text\":\"Mem0\",\"link\":\"/memory-providers/mem0.md\"},{\"text\":\"OpenViking\",\"link\":\"/memory-providers/openviking.md\"}]},{\"text\":\"TTS Providers\",\"items\":[{\"text\":\"Overview\",\"link\":\"/tts-providers/index.md\"},{\"text\":\"Edge TTS\",\"link\":\"/tts-providers/edge.md\"}]},{\"text\":\"Channels\",\"items\":[{\"text\":\"Overview\",\"link\":\"/channels/index.md\"},{\"text\":\"Telegram\",\"link\":\"/channels/telegram.md\"},{\"text\":\"Feishu (Lark)\",\"link\":\"/channels/feishu.md\"},{\"text\":\"Discord\",\"link\":\"/channels/discord.md\"},{\"text\":\"QQ\",\"link\":\"/channels/qq.md\"}]}],\"/zh/\":[{\"text\":\"文档总览\",\"link\":\"/zh/index.md\"}]},\"nav\":[{\"text\":\"Guides\",\"link\":\"/\"},{\"text\":\"Blogs\",\"link\":\"/blogs/\"}],\"logo\":{\"src\":\"/logo.png\",\"alt\":\"Memoh\"},\"socialLinks\":[{\"icon\":\"github\",\"link\":\"https://github.com/memohai/Memoh\"}],\"footer\":{\"message\":\"Published under AGPLv3\",\"copyright\":\"Copyright © 2024 Memoh\"},\"search\":{\"provider\":\"local\"},\"editLink\":{\"pattern\":\"https://github.com/memohai/Memoh/edit/main/docs/docs/:path\",\"text\":\"Edit on GitHub\"},\"lastUpdated\":{\"text\":\"Last Updated\",\"formatOptions\":{\"dateStyle\":\"short\",\"timeStyle\":\"medium\"}}},\"locales\":{\"root\":{\"label\":\"English\",\"lang\":\"en\"},\"zh\":{\"label\":\"简体中文\",\"lang\":\"zh\"}},\"scrollOffset\":134,\"cleanUrls\":false}");</script>
|
||||||
|
|
||||||
</body>
|
</body>
|
||||||
</html>
|
</html>
|
||||||
+3
-3
File diff suppressed because one or more lines are too long
@@ -1 +1 @@
|
|||||||
import{t as p}from"./chunks/theme.DPgEmSSr.js";import{R as s,a2 as i,a3 as u,a4 as c,a5 as l,a6 as f,a7 as d,a8 as m,a9 as h,aa as g,ab as A,d as v,u as y,v as C,s as P,ac as b,ad as w,ae as R,af as E}from"./chunks/framework.BZohXCq9.js";function r(e){if(e.extends){const a=r(e.extends);return{...a,...e,async enhanceApp(t){a.enhanceApp&&await a.enhanceApp(t),e.enhanceApp&&await e.enhanceApp(t)}}}return e}const n=r(p),S=v({name:"VitePressApp",setup(){const{site:e,lang:a,dir:t}=y();return C(()=>{P(()=>{document.documentElement.lang=a.value,document.documentElement.dir=t.value})}),e.value.router.prefetchLinks&&b(),w(),R(),n.setup&&n.setup(),()=>E(n.Layout)}});async function T(){globalThis.__VITEPRESS__=!0;const e=_(),a=D();a.provide(u,e);const t=c(e.route);return a.provide(l,t),a.component("Content",f),a.component("ClientOnly",d),Object.defineProperties(a.config.globalProperties,{$frontmatter:{get(){return t.frontmatter.value}},$params:{get(){return t.page.value.params}}}),n.enhanceApp&&await n.enhanceApp({app:a,router:e,siteData:m}),{app:a,router:e,data:t}}function D(){return A(S)}function _(){let e=s;return h(a=>{let t=g(a),o=null;return t&&(e&&(t=t.replace(/\.js$/,".lean.js")),o=import(t)),s&&(e=!1),o},n.NotFound)}s&&T().then(({app:e,router:a,data:t})=>{a.go().then(()=>{i(a.route,t.site),e.mount("#app")})});export{T as createApp};
|
import{t as p}from"./chunks/theme.HDxN3qOf.js";import{R as s,a2 as i,a3 as u,a4 as c,a5 as l,a6 as f,a7 as d,a8 as m,a9 as h,aa as g,ab as A,d as v,u as y,v as C,s as P,ac as b,ad as w,ae as R,af as E}from"./chunks/framework.BZohXCq9.js";function r(e){if(e.extends){const a=r(e.extends);return{...a,...e,async enhanceApp(t){a.enhanceApp&&await a.enhanceApp(t),e.enhanceApp&&await e.enhanceApp(t)}}}return e}const n=r(p),S=v({name:"VitePressApp",setup(){const{site:e,lang:a,dir:t}=y();return C(()=>{P(()=>{document.documentElement.lang=a.value,document.documentElement.dir=t.value})}),e.value.router.prefetchLinks&&b(),w(),R(),n.setup&&n.setup(),()=>E(n.Layout)}});async function T(){globalThis.__VITEPRESS__=!0;const e=_(),a=D();a.provide(u,e);const t=c(e.route);return a.provide(l,t),a.component("Content",f),a.component("ClientOnly",d),Object.defineProperties(a.config.globalProperties,{$frontmatter:{get(){return t.frontmatter.value}},$params:{get(){return t.page.value.params}}}),n.enhanceApp&&await n.enhanceApp({app:a,router:e,siteData:m}),{app:a,router:e,data:t}}function D(){return A(S)}function _(){let e=s;return h(a=>{let t=g(a),o=null;return t&&(e&&(t=t.replace(/\.js$/,".lean.js")),o=import(t)),s&&(e=!1),o},n.NotFound)}s&&T().then(({app:e,router:a,data:t})=>{a.go().then(()=>{i(a.route,t.site),e.mount("#app")})});export{T as createApp};
|
||||||
+1
-1
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
+1
-1
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
+3
-3
File diff suppressed because one or more lines are too long
+1
-1
@@ -1 +1 @@
|
|||||||
import{_ as i,o as e,c as a,ag as t}from"./chunks/framework.BZohXCq9.js";const k=JSON.parse('{"title":"Docker Installation","description":"","frontmatter":{},"headers":[],"relativePath":"installation/docker.md","filePath":"installation/docker.md","lastUpdated":1773501089000}'),n={name:"installation/docker.md"};function o(l,s,r,h,d,p){return e(),a("div",null,[...s[0]||(s[0]=[t("",65)])])}const g=i(n,[["render",o]]);export{k as __pageData,g as default};
|
import{_ as i,o as e,c as a,ag as t}from"./chunks/framework.BZohXCq9.js";const c=JSON.parse('{"title":"Docker Installation","description":"","frontmatter":{},"headers":[],"relativePath":"installation/docker.md","filePath":"installation/docker.md","lastUpdated":1773818349000}'),n={name:"installation/docker.md"};function o(l,s,r,h,d,p){return e(),a("div",null,[...s[0]||(s[0]=[t("",65)])])}const g=i(n,[["render",o]]);export{c as __pageData,g as default};
|
||||||
File diff suppressed because one or more lines are too long
+3
-3
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
+3
-3
File diff suppressed because one or more lines are too long
+3
-3
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
@@ -9,9 +9,9 @@
|
|||||||
<link rel="preload stylesheet" href="/assets/style.B5ESegsT.css" as="style">
|
<link rel="preload stylesheet" href="/assets/style.B5ESegsT.css" as="style">
|
||||||
<link rel="preload stylesheet" href="/vp-icons.css" as="style">
|
<link rel="preload stylesheet" href="/vp-icons.css" as="style">
|
||||||
|
|
||||||
<script type="module" src="/assets/app.C-qdOXyL.js"></script>
|
<script type="module" src="/assets/app.CBu6txs-.js"></script>
|
||||||
<link rel="preload" href="/assets/inter-roman-latin.Di8DUHzh.woff2" as="font" type="font/woff2" crossorigin="">
|
<link rel="preload" href="/assets/inter-roman-latin.Di8DUHzh.woff2" as="font" type="font/woff2" crossorigin="">
|
||||||
<link rel="modulepreload" href="/assets/chunks/theme.DPgEmSSr.js">
|
<link rel="modulepreload" href="/assets/chunks/theme.HDxN3qOf.js">
|
||||||
<link rel="modulepreload" href="/assets/chunks/framework.BZohXCq9.js">
|
<link rel="modulepreload" href="/assets/chunks/framework.BZohXCq9.js">
|
||||||
<link rel="modulepreload" href="/assets/getting-started_schedule.md.CNDu3SiN.lean.js">
|
<link rel="modulepreload" href="/assets/getting-started_schedule.md.CNDu3SiN.lean.js">
|
||||||
<link rel="icon" href="/logo.png">
|
<link rel="icon" href="/logo.png">
|
||||||
@@ -33,7 +33,7 @@
|
|||||||
<span class="line"><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> "enabled"</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">: </span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;">true</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">,</span></span>
|
<span class="line"><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> "enabled"</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">: </span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;">true</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">,</span></span>
|
||||||
<span class="line"><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> "max_calls"</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">: </span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;">null</span></span>
|
<span class="line"><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> "max_calls"</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">: </span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;">null</span></span>
|
||||||
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">}</span></span></code></pre></div><hr><h2 id="execution-flow" tabindex="-1">Execution Flow <a class="header-anchor" href="#execution-flow" aria-label="Permalink to "Execution Flow""></a></h2><p>When a schedule fires:</p><ol><li>The cron service triggers the schedule.</li><li>The <code>current_calls</code> counter is incremented.</li><li>If <code>max_calls</code> is set and reached, the schedule is automatically disabled.</li><li>The agent receives the <code>command</code> along with the schedule context.</li><li>The agent executes the command using its tools (e.g., web search, file read, send message).</li><li>Results can be delivered to any connected channel.</li></ol><hr><h2 id="schedule-vs-heartbeat" tabindex="-1">Schedule vs. Heartbeat <a class="header-anchor" href="#schedule-vs-heartbeat" aria-label="Permalink to "Schedule vs. Heartbeat""></a></h2><table tabindex="0"><thead><tr><th>Feature</th><th>Schedule</th><th>Heartbeat</th></tr></thead><tbody><tr><td><strong>Trigger</strong></td><td>Cron expression (flexible timing)</td><td>Fixed interval (minutes)</td></tr><tr><td><strong>Command</strong></td><td>Custom natural-language instruction</td><td>Generic "routine check" prompt</td></tr><tr><td><strong>Max Calls</strong></td><td>Optional execution limit</td><td>Unlimited</td></tr><tr><td><strong>Use Case</strong></td><td>Specific recurring tasks</td><td>Periodic autonomous thinking</td></tr></tbody></table><p>Both features complement each other: use <strong>Heartbeat</strong> for general-purpose periodic activity and <strong>Schedule</strong> for precise, task-oriented automation.</p></div></div></main><footer class="VPDocFooter" data-v-db8bf443 data-v-d067bba9><!--[--><!--]--><div class="edit-info" data-v-d067bba9><div class="edit-link" data-v-d067bba9><a class="VPLink link vp-external-link-icon no-icon edit-link-button" href="https://github.com/memohai/Memoh/edit/main/docs/docs/getting-started/schedule.md" target="_blank" rel="noreferrer" data-v-d067bba9><!--[--><span class="vpi-square-pen edit-link-icon" data-v-d067bba9></span> Edit on GitHub<!--]--></a></div><div class="last-updated" data-v-d067bba9><p class="VPLastUpdated" data-v-d067bba9 data-v-5d56f43a>Last Updated: <time datetime="2026-03-01T10:01:03.000Z" data-v-5d56f43a></time></p></div></div><nav class="prev-next" aria-labelledby="doc-footer-aria-label" data-v-d067bba9><span class="visually-hidden" id="doc-footer-aria-label" data-v-d067bba9>Pager</span><div class="pager" data-v-d067bba9><a class="VPLink link pager-link prev" href="/getting-started/heartbeat.html" data-v-d067bba9><!--[--><span class="desc" data-v-d067bba9>Previous page</span><span class="title" data-v-d067bba9>Heartbeat</span><!--]--></a></div><div class="pager" data-v-d067bba9><a class="VPLink link pager-link next" href="/getting-started/search-provider.html" data-v-d067bba9><!--[--><span class="desc" data-v-d067bba9>Next page</span><span class="title" data-v-d067bba9>Search Providers</span><!--]--></a></div></nav></footer><!--[--><!--]--></div></div></div><!--[--><!--]--></div></div><footer class="VPFooter has-sidebar" data-v-a7fd87cd data-v-a4a6e223><div class="container" data-v-a4a6e223><p class="message" data-v-a4a6e223>Published under AGPLv3</p><p class="copyright" data-v-a4a6e223>Copyright © 2024 Memoh</p></div></footer><!--[--><!--]--></div></div>
|
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">}</span></span></code></pre></div><hr><h2 id="execution-flow" tabindex="-1">Execution Flow <a class="header-anchor" href="#execution-flow" aria-label="Permalink to "Execution Flow""></a></h2><p>When a schedule fires:</p><ol><li>The cron service triggers the schedule.</li><li>The <code>current_calls</code> counter is incremented.</li><li>If <code>max_calls</code> is set and reached, the schedule is automatically disabled.</li><li>The agent receives the <code>command</code> along with the schedule context.</li><li>The agent executes the command using its tools (e.g., web search, file read, send message).</li><li>Results can be delivered to any connected channel.</li></ol><hr><h2 id="schedule-vs-heartbeat" tabindex="-1">Schedule vs. Heartbeat <a class="header-anchor" href="#schedule-vs-heartbeat" aria-label="Permalink to "Schedule vs. Heartbeat""></a></h2><table tabindex="0"><thead><tr><th>Feature</th><th>Schedule</th><th>Heartbeat</th></tr></thead><tbody><tr><td><strong>Trigger</strong></td><td>Cron expression (flexible timing)</td><td>Fixed interval (minutes)</td></tr><tr><td><strong>Command</strong></td><td>Custom natural-language instruction</td><td>Generic "routine check" prompt</td></tr><tr><td><strong>Max Calls</strong></td><td>Optional execution limit</td><td>Unlimited</td></tr><tr><td><strong>Use Case</strong></td><td>Specific recurring tasks</td><td>Periodic autonomous thinking</td></tr></tbody></table><p>Both features complement each other: use <strong>Heartbeat</strong> for general-purpose periodic activity and <strong>Schedule</strong> for precise, task-oriented automation.</p></div></div></main><footer class="VPDocFooter" data-v-db8bf443 data-v-d067bba9><!--[--><!--]--><div class="edit-info" data-v-d067bba9><div class="edit-link" data-v-d067bba9><a class="VPLink link vp-external-link-icon no-icon edit-link-button" href="https://github.com/memohai/Memoh/edit/main/docs/docs/getting-started/schedule.md" target="_blank" rel="noreferrer" data-v-d067bba9><!--[--><span class="vpi-square-pen edit-link-icon" data-v-d067bba9></span> Edit on GitHub<!--]--></a></div><div class="last-updated" data-v-d067bba9><p class="VPLastUpdated" data-v-d067bba9 data-v-5d56f43a>Last Updated: <time datetime="2026-03-01T10:01:03.000Z" data-v-5d56f43a></time></p></div></div><nav class="prev-next" aria-labelledby="doc-footer-aria-label" data-v-d067bba9><span class="visually-hidden" id="doc-footer-aria-label" data-v-d067bba9>Pager</span><div class="pager" data-v-d067bba9><a class="VPLink link pager-link prev" href="/getting-started/heartbeat.html" data-v-d067bba9><!--[--><span class="desc" data-v-d067bba9>Previous page</span><span class="title" data-v-d067bba9>Heartbeat</span><!--]--></a></div><div class="pager" data-v-d067bba9><a class="VPLink link pager-link next" href="/getting-started/search-provider.html" data-v-d067bba9><!--[--><span class="desc" data-v-d067bba9>Next page</span><span class="title" data-v-d067bba9>Search Providers</span><!--]--></a></div></nav></footer><!--[--><!--]--></div></div></div><!--[--><!--]--></div></div><footer class="VPFooter has-sidebar" data-v-a7fd87cd data-v-a4a6e223><div class="container" data-v-a4a6e223><p class="message" data-v-a4a6e223>Published under AGPLv3</p><p class="copyright" data-v-a4a6e223>Copyright © 2024 Memoh</p></div></footer><!--[--><!--]--></div></div>
|
||||||
<script>window.__VP_HASH_MAP__=JSON.parse("{\"about.md\":\"BA4ADbiz\",\"blogs_2026-02-16.md\":\"cjgZmunL\",\"blogs_index.md\":\"B2P01evP\",\"channels_discord.md\":\"WNpdGj29\",\"channels_feishu.md\":\"BBJ8KQPd\",\"channels_index.md\":\"T_VHXXZf\",\"channels_qq.md\":\"B_4bodh-\",\"channels_telegram.md\":\"B9i-uoiX\",\"getting-started_access.md\":\"Ci3R9wdO\",\"getting-started_bot.md\":\"AR4RHnpe\",\"getting-started_browser.md\":\"B-tRWxYY\",\"getting-started_channels.md\":\"C0YPWL-y\",\"getting-started_container.md\":\"D49M0dHe\",\"getting-started_email.md\":\"BRkUZLh2\",\"getting-started_files.md\":\"CczR71or\",\"getting-started_heartbeat.md\":\"B-SMiJUD\",\"getting-started_mcp.md\":\"Bb2toM2o\",\"getting-started_memory.md\":\"2LaCipf1\",\"getting-started_provider-and-model.md\":\"BquaPnJe\",\"getting-started_schedule.md\":\"CNDu3SiN\",\"getting-started_search-provider.md\":\"R9B5DkBj\",\"getting-started_skills.md\":\"DzSZ-qiC\",\"getting-started_subagents.md\":\"6oBLlW8a\",\"index.md\":\"D1yGsPie\",\"installation_docker.md\":\"BYtBZBwq\",\"memory-providers_builtin.md\":\"D5BGaMgs\",\"memory-providers_index.md\":\"CTmbFtvS\",\"memory-providers_mem0.md\":\"DYavcIID\",\"memory-providers_openviking.md\":\"DRJRcuFd\",\"tts-providers_edge.md\":\"Uf8Yzj2Y\",\"tts-providers_index.md\":\"vUh5rqaG\",\"zh_concepts_identity-and-binding.md\":\"7e9GdoK6\",\"zh_concepts_index.md\":\"Brd21jcS\",\"zh_index.md\":\"CZQRt_rQ\",\"zh_style_terminology.md\":\"DLv5QofI\"}");window.__VP_SITE_DATA__=JSON.parse("{\"lang\":\"en-US\",\"dir\":\"ltr\",\"title\":\"Memoh Documentation\",\"description\":\"Multi-Member, Structured Long-Memory, Containerized AI Agent System.\",\"base\":\"/\",\"head\":[],\"router\":{\"prefetchLinks\":true},\"appearance\":true,\"themeConfig\":{\"siteTitle\":\"Memoh\",\"sidebar\":{\"/blogs/\":[{\"text\":\"Blogs\",\"link\":\"/blogs/index.md\",\"items\":[{\"text\":\"Introduction (Feb 2026)\",\"link\":\"/blogs/2026-02-16.md\"}]}],\"/\":[{\"text\":\"Overview\",\"link\":\"/index.md\"},{\"text\":\"About Memoh\",\"link\":\"/about.md\"},{\"text\":\"Installation\",\"items\":[{\"text\":\"Docker\",\"link\":\"/installation/docker.md\"}]},{\"text\":\"Getting Started\",\"items\":[{\"text\":\"LLM Provider and Model\",\"link\":\"/getting-started/provider-and-model.md\"},{\"text\":\"Bot Management\",\"link\":\"/getting-started/bot.md\"},{\"text\":\"Bot Access Control\",\"link\":\"/getting-started/access.md\"},{\"text\":\"Container Management\",\"link\":\"/getting-started/container.md\"},{\"text\":\"Files Management\",\"link\":\"/getting-started/files.md\"},{\"text\":\"Bot Skills\",\"link\":\"/getting-started/skills.md\"},{\"text\":\"MCP Connections\",\"link\":\"/getting-started/mcp.md\"},{\"text\":\"Bot Channels\",\"link\":\"/getting-started/channels.md\"},{\"text\":\"Browser Contexts\",\"link\":\"/getting-started/browser.md\"},{\"text\":\"Memory Management\",\"link\":\"/getting-started/memory.md\"},{\"text\":\"Subagents\",\"link\":\"/getting-started/subagents.md\"},{\"text\":\"Heartbeat\",\"link\":\"/getting-started/heartbeat.md\"},{\"text\":\"Scheduled Tasks\",\"link\":\"/getting-started/schedule.md\"},{\"text\":\"Search Providers\",\"link\":\"/getting-started/search-provider.md\"},{\"text\":\"Email Providers\",\"link\":\"/getting-started/email.md\"}]},{\"text\":\"Memory Providers\",\"items\":[{\"text\":\"Overview\",\"link\":\"/memory-providers/index.md\"},{\"text\":\"Built-in\",\"link\":\"/memory-providers/builtin.md\"},{\"text\":\"Mem0\",\"link\":\"/memory-providers/mem0.md\"},{\"text\":\"OpenViking\",\"link\":\"/memory-providers/openviking.md\"}]},{\"text\":\"TTS Providers\",\"items\":[{\"text\":\"Overview\",\"link\":\"/tts-providers/index.md\"},{\"text\":\"Edge TTS\",\"link\":\"/tts-providers/edge.md\"}]},{\"text\":\"Channels\",\"items\":[{\"text\":\"Overview\",\"link\":\"/channels/index.md\"},{\"text\":\"Telegram\",\"link\":\"/channels/telegram.md\"},{\"text\":\"Feishu (Lark)\",\"link\":\"/channels/feishu.md\"},{\"text\":\"Discord\",\"link\":\"/channels/discord.md\"},{\"text\":\"QQ\",\"link\":\"/channels/qq.md\"}]}],\"/zh/\":[{\"text\":\"文档总览\",\"link\":\"/zh/index.md\"}]},\"nav\":[{\"text\":\"Guides\",\"link\":\"/\"},{\"text\":\"Blogs\",\"link\":\"/blogs/\"}],\"logo\":{\"src\":\"/logo.png\",\"alt\":\"Memoh\"},\"socialLinks\":[{\"icon\":\"github\",\"link\":\"https://github.com/memohai/Memoh\"}],\"footer\":{\"message\":\"Published under AGPLv3\",\"copyright\":\"Copyright © 2024 Memoh\"},\"search\":{\"provider\":\"local\"},\"editLink\":{\"pattern\":\"https://github.com/memohai/Memoh/edit/main/docs/docs/:path\",\"text\":\"Edit on GitHub\"},\"lastUpdated\":{\"text\":\"Last Updated\",\"formatOptions\":{\"dateStyle\":\"short\",\"timeStyle\":\"medium\"}}},\"locales\":{\"root\":{\"label\":\"English\",\"lang\":\"en\"},\"zh\":{\"label\":\"简体中文\",\"lang\":\"zh\"}},\"scrollOffset\":134,\"cleanUrls\":false}");</script>
|
<script>window.__VP_HASH_MAP__=JSON.parse("{\"about.md\":\"BA4ADbiz\",\"blogs_2026-02-16.md\":\"cjgZmunL\",\"blogs_index.md\":\"B2P01evP\",\"channels_discord.md\":\"WNpdGj29\",\"channels_feishu.md\":\"BBJ8KQPd\",\"channels_index.md\":\"T_VHXXZf\",\"channels_qq.md\":\"B_4bodh-\",\"channels_telegram.md\":\"B9i-uoiX\",\"getting-started_access.md\":\"Ci3R9wdO\",\"getting-started_bot.md\":\"AR4RHnpe\",\"getting-started_browser.md\":\"B-tRWxYY\",\"getting-started_channels.md\":\"C0YPWL-y\",\"getting-started_container.md\":\"D49M0dHe\",\"getting-started_email.md\":\"BRkUZLh2\",\"getting-started_files.md\":\"CczR71or\",\"getting-started_heartbeat.md\":\"B-SMiJUD\",\"getting-started_mcp.md\":\"Bb2toM2o\",\"getting-started_memory.md\":\"2LaCipf1\",\"getting-started_provider-and-model.md\":\"BquaPnJe\",\"getting-started_schedule.md\":\"CNDu3SiN\",\"getting-started_search-provider.md\":\"R9B5DkBj\",\"getting-started_skills.md\":\"DzSZ-qiC\",\"getting-started_subagents.md\":\"6oBLlW8a\",\"index.md\":\"D1yGsPie\",\"installation_docker.md\":\"IuAKlQcI\",\"memory-providers_builtin.md\":\"D5BGaMgs\",\"memory-providers_index.md\":\"CTmbFtvS\",\"memory-providers_mem0.md\":\"DYavcIID\",\"memory-providers_openviking.md\":\"DRJRcuFd\",\"tts-providers_edge.md\":\"Uf8Yzj2Y\",\"tts-providers_index.md\":\"vUh5rqaG\",\"zh_concepts_identity-and-binding.md\":\"7e9GdoK6\",\"zh_concepts_index.md\":\"Brd21jcS\",\"zh_index.md\":\"CZQRt_rQ\",\"zh_style_terminology.md\":\"DLv5QofI\"}");window.__VP_SITE_DATA__=JSON.parse("{\"lang\":\"en-US\",\"dir\":\"ltr\",\"title\":\"Memoh Documentation\",\"description\":\"Multi-Member, Structured Long-Memory, Containerized AI Agent System.\",\"base\":\"/\",\"head\":[],\"router\":{\"prefetchLinks\":true},\"appearance\":true,\"themeConfig\":{\"siteTitle\":\"Memoh\",\"sidebar\":{\"/blogs/\":[{\"text\":\"Blogs\",\"link\":\"/blogs/index.md\",\"items\":[{\"text\":\"Introduction (Feb 2026)\",\"link\":\"/blogs/2026-02-16.md\"}]}],\"/\":[{\"text\":\"Overview\",\"link\":\"/index.md\"},{\"text\":\"About Memoh\",\"link\":\"/about.md\"},{\"text\":\"Installation\",\"items\":[{\"text\":\"Docker\",\"link\":\"/installation/docker.md\"}]},{\"text\":\"Getting Started\",\"items\":[{\"text\":\"LLM Provider and Model\",\"link\":\"/getting-started/provider-and-model.md\"},{\"text\":\"Bot Management\",\"link\":\"/getting-started/bot.md\"},{\"text\":\"Bot Access Control\",\"link\":\"/getting-started/access.md\"},{\"text\":\"Container Management\",\"link\":\"/getting-started/container.md\"},{\"text\":\"Files Management\",\"link\":\"/getting-started/files.md\"},{\"text\":\"Bot Skills\",\"link\":\"/getting-started/skills.md\"},{\"text\":\"MCP Connections\",\"link\":\"/getting-started/mcp.md\"},{\"text\":\"Bot Channels\",\"link\":\"/getting-started/channels.md\"},{\"text\":\"Browser Contexts\",\"link\":\"/getting-started/browser.md\"},{\"text\":\"Memory Management\",\"link\":\"/getting-started/memory.md\"},{\"text\":\"Subagents\",\"link\":\"/getting-started/subagents.md\"},{\"text\":\"Heartbeat\",\"link\":\"/getting-started/heartbeat.md\"},{\"text\":\"Scheduled Tasks\",\"link\":\"/getting-started/schedule.md\"},{\"text\":\"Search Providers\",\"link\":\"/getting-started/search-provider.md\"},{\"text\":\"Email Providers\",\"link\":\"/getting-started/email.md\"}]},{\"text\":\"Memory Providers\",\"items\":[{\"text\":\"Overview\",\"link\":\"/memory-providers/index.md\"},{\"text\":\"Built-in\",\"link\":\"/memory-providers/builtin.md\"},{\"text\":\"Mem0\",\"link\":\"/memory-providers/mem0.md\"},{\"text\":\"OpenViking\",\"link\":\"/memory-providers/openviking.md\"}]},{\"text\":\"TTS Providers\",\"items\":[{\"text\":\"Overview\",\"link\":\"/tts-providers/index.md\"},{\"text\":\"Edge TTS\",\"link\":\"/tts-providers/edge.md\"}]},{\"text\":\"Channels\",\"items\":[{\"text\":\"Overview\",\"link\":\"/channels/index.md\"},{\"text\":\"Telegram\",\"link\":\"/channels/telegram.md\"},{\"text\":\"Feishu (Lark)\",\"link\":\"/channels/feishu.md\"},{\"text\":\"Discord\",\"link\":\"/channels/discord.md\"},{\"text\":\"QQ\",\"link\":\"/channels/qq.md\"}]}],\"/zh/\":[{\"text\":\"文档总览\",\"link\":\"/zh/index.md\"}]},\"nav\":[{\"text\":\"Guides\",\"link\":\"/\"},{\"text\":\"Blogs\",\"link\":\"/blogs/\"}],\"logo\":{\"src\":\"/logo.png\",\"alt\":\"Memoh\"},\"socialLinks\":[{\"icon\":\"github\",\"link\":\"https://github.com/memohai/Memoh\"}],\"footer\":{\"message\":\"Published under AGPLv3\",\"copyright\":\"Copyright © 2024 Memoh\"},\"search\":{\"provider\":\"local\"},\"editLink\":{\"pattern\":\"https://github.com/memohai/Memoh/edit/main/docs/docs/:path\",\"text\":\"Edit on GitHub\"},\"lastUpdated\":{\"text\":\"Last Updated\",\"formatOptions\":{\"dateStyle\":\"short\",\"timeStyle\":\"medium\"}}},\"locales\":{\"root\":{\"label\":\"English\",\"lang\":\"en\"},\"zh\":{\"label\":\"简体中文\",\"lang\":\"zh\"}},\"scrollOffset\":134,\"cleanUrls\":false}");</script>
|
||||||
|
|
||||||
</body>
|
</body>
|
||||||
</html>
|
</html>
|
||||||
File diff suppressed because one or more lines are too long
@@ -9,9 +9,9 @@
|
|||||||
<link rel="preload stylesheet" href="/assets/style.B5ESegsT.css" as="style">
|
<link rel="preload stylesheet" href="/assets/style.B5ESegsT.css" as="style">
|
||||||
<link rel="preload stylesheet" href="/vp-icons.css" as="style">
|
<link rel="preload stylesheet" href="/vp-icons.css" as="style">
|
||||||
|
|
||||||
<script type="module" src="/assets/app.C-qdOXyL.js"></script>
|
<script type="module" src="/assets/app.CBu6txs-.js"></script>
|
||||||
<link rel="preload" href="/assets/inter-roman-latin.Di8DUHzh.woff2" as="font" type="font/woff2" crossorigin="">
|
<link rel="preload" href="/assets/inter-roman-latin.Di8DUHzh.woff2" as="font" type="font/woff2" crossorigin="">
|
||||||
<link rel="modulepreload" href="/assets/chunks/theme.DPgEmSSr.js">
|
<link rel="modulepreload" href="/assets/chunks/theme.HDxN3qOf.js">
|
||||||
<link rel="modulepreload" href="/assets/chunks/framework.BZohXCq9.js">
|
<link rel="modulepreload" href="/assets/chunks/framework.BZohXCq9.js">
|
||||||
<link rel="modulepreload" href="/assets/getting-started_skills.md.DzSZ-qiC.lean.js">
|
<link rel="modulepreload" href="/assets/getting-started_skills.md.DzSZ-qiC.lean.js">
|
||||||
<link rel="icon" href="/logo.png">
|
<link rel="icon" href="/logo.png">
|
||||||
@@ -27,7 +27,7 @@
|
|||||||
<span class="line"><span style="--shiki-light:#6A737D;--shiki-dark:#6A737D;"># Coder Skill</span></span>
|
<span class="line"><span style="--shiki-light:#6A737D;--shiki-dark:#6A737D;"># Coder Skill</span></span>
|
||||||
<span class="line"><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;">As a coder, you always follow best practices and write clean, documented code.</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> </span></span>
|
<span class="line"><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;">As a coder, you always follow best practices and write clean, documented code.</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> </span></span>
|
||||||
<span class="line"><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;">You can use the `edit_file` and `run_command` tools to assist the user.</span></span></code></pre></div><hr><h2 id="managing-skills" tabindex="-1">Managing Skills <a class="header-anchor" href="#managing-skills" aria-label="Permalink to "Managing Skills""></a></h2><p>Manage your bot's skill set from the <strong>Skills</strong> tab in the Bot Detail page.</p><h3 id="adding-a-skill" tabindex="-1">Adding a Skill <a class="header-anchor" href="#adding-a-skill" aria-label="Permalink to "Adding a Skill""></a></h3><ol><li>Click <strong>Add Skill</strong>.</li><li>A dialog with a basic template will open in the <strong>Monaco Editor</strong>.</li><li>Fill in the <code>name</code>, <code>description</code>, and content.</li><li>Click <strong>Save</strong>.</li></ol><h3 id="editing-and-deleting" tabindex="-1">Editing and Deleting <a class="header-anchor" href="#editing-and-deleting" aria-label="Permalink to "Editing and Deleting""></a></h3><ul><li><strong>Edit</strong>: Click the pencil icon next to a skill card to modify its content or frontmatter.</li><li><strong>Delete</strong>: Click the trash icon to remove a skill from the bot's container.</li></ul><hr><h2 id="how-bots-use-skills" tabindex="-1">How Bots Use Skills <a class="header-anchor" href="#how-bots-use-skills" aria-label="Permalink to "How Bots Use Skills""></a></h2><ul><li>Skills are injected into the bot's system prompt during conversation.</li><li>The YAML frontmatter helps the system categorize and manage the skills as tools.</li><li>Modular skills allow you to easily "swap" behaviors or capabilities without rewriting the entire bot.</li></ul></div></div></main><footer class="VPDocFooter" data-v-db8bf443 data-v-d067bba9><!--[--><!--]--><div class="edit-info" data-v-d067bba9><div class="edit-link" data-v-d067bba9><a class="VPLink link vp-external-link-icon no-icon edit-link-button" href="https://github.com/memohai/Memoh/edit/main/docs/docs/getting-started/skills.md" target="_blank" rel="noreferrer" data-v-d067bba9><!--[--><span class="vpi-square-pen edit-link-icon" data-v-d067bba9></span> Edit on GitHub<!--]--></a></div><div class="last-updated" data-v-d067bba9><p class="VPLastUpdated" data-v-d067bba9 data-v-5d56f43a>Last Updated: <time datetime="2026-03-01T10:01:03.000Z" data-v-5d56f43a></time></p></div></div><nav class="prev-next" aria-labelledby="doc-footer-aria-label" data-v-d067bba9><span class="visually-hidden" id="doc-footer-aria-label" data-v-d067bba9>Pager</span><div class="pager" data-v-d067bba9><a class="VPLink link pager-link prev" href="/getting-started/files.html" data-v-d067bba9><!--[--><span class="desc" data-v-d067bba9>Previous page</span><span class="title" data-v-d067bba9>Files Management</span><!--]--></a></div><div class="pager" data-v-d067bba9><a class="VPLink link pager-link next" href="/getting-started/mcp.html" data-v-d067bba9><!--[--><span class="desc" data-v-d067bba9>Next page</span><span class="title" data-v-d067bba9>MCP Connections</span><!--]--></a></div></nav></footer><!--[--><!--]--></div></div></div><!--[--><!--]--></div></div><footer class="VPFooter has-sidebar" data-v-a7fd87cd data-v-a4a6e223><div class="container" data-v-a4a6e223><p class="message" data-v-a4a6e223>Published under AGPLv3</p><p class="copyright" data-v-a4a6e223>Copyright © 2024 Memoh</p></div></footer><!--[--><!--]--></div></div>
|
<span class="line"><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;">You can use the `edit_file` and `run_command` tools to assist the user.</span></span></code></pre></div><hr><h2 id="managing-skills" tabindex="-1">Managing Skills <a class="header-anchor" href="#managing-skills" aria-label="Permalink to "Managing Skills""></a></h2><p>Manage your bot's skill set from the <strong>Skills</strong> tab in the Bot Detail page.</p><h3 id="adding-a-skill" tabindex="-1">Adding a Skill <a class="header-anchor" href="#adding-a-skill" aria-label="Permalink to "Adding a Skill""></a></h3><ol><li>Click <strong>Add Skill</strong>.</li><li>A dialog with a basic template will open in the <strong>Monaco Editor</strong>.</li><li>Fill in the <code>name</code>, <code>description</code>, and content.</li><li>Click <strong>Save</strong>.</li></ol><h3 id="editing-and-deleting" tabindex="-1">Editing and Deleting <a class="header-anchor" href="#editing-and-deleting" aria-label="Permalink to "Editing and Deleting""></a></h3><ul><li><strong>Edit</strong>: Click the pencil icon next to a skill card to modify its content or frontmatter.</li><li><strong>Delete</strong>: Click the trash icon to remove a skill from the bot's container.</li></ul><hr><h2 id="how-bots-use-skills" tabindex="-1">How Bots Use Skills <a class="header-anchor" href="#how-bots-use-skills" aria-label="Permalink to "How Bots Use Skills""></a></h2><ul><li>Skills are injected into the bot's system prompt during conversation.</li><li>The YAML frontmatter helps the system categorize and manage the skills as tools.</li><li>Modular skills allow you to easily "swap" behaviors or capabilities without rewriting the entire bot.</li></ul></div></div></main><footer class="VPDocFooter" data-v-db8bf443 data-v-d067bba9><!--[--><!--]--><div class="edit-info" data-v-d067bba9><div class="edit-link" data-v-d067bba9><a class="VPLink link vp-external-link-icon no-icon edit-link-button" href="https://github.com/memohai/Memoh/edit/main/docs/docs/getting-started/skills.md" target="_blank" rel="noreferrer" data-v-d067bba9><!--[--><span class="vpi-square-pen edit-link-icon" data-v-d067bba9></span> Edit on GitHub<!--]--></a></div><div class="last-updated" data-v-d067bba9><p class="VPLastUpdated" data-v-d067bba9 data-v-5d56f43a>Last Updated: <time datetime="2026-03-01T10:01:03.000Z" data-v-5d56f43a></time></p></div></div><nav class="prev-next" aria-labelledby="doc-footer-aria-label" data-v-d067bba9><span class="visually-hidden" id="doc-footer-aria-label" data-v-d067bba9>Pager</span><div class="pager" data-v-d067bba9><a class="VPLink link pager-link prev" href="/getting-started/files.html" data-v-d067bba9><!--[--><span class="desc" data-v-d067bba9>Previous page</span><span class="title" data-v-d067bba9>Files Management</span><!--]--></a></div><div class="pager" data-v-d067bba9><a class="VPLink link pager-link next" href="/getting-started/mcp.html" data-v-d067bba9><!--[--><span class="desc" data-v-d067bba9>Next page</span><span class="title" data-v-d067bba9>MCP Connections</span><!--]--></a></div></nav></footer><!--[--><!--]--></div></div></div><!--[--><!--]--></div></div><footer class="VPFooter has-sidebar" data-v-a7fd87cd data-v-a4a6e223><div class="container" data-v-a4a6e223><p class="message" data-v-a4a6e223>Published under AGPLv3</p><p class="copyright" data-v-a4a6e223>Copyright © 2024 Memoh</p></div></footer><!--[--><!--]--></div></div>
|
||||||
<script>window.__VP_HASH_MAP__=JSON.parse("{\"about.md\":\"BA4ADbiz\",\"blogs_2026-02-16.md\":\"cjgZmunL\",\"blogs_index.md\":\"B2P01evP\",\"channels_discord.md\":\"WNpdGj29\",\"channels_feishu.md\":\"BBJ8KQPd\",\"channels_index.md\":\"T_VHXXZf\",\"channels_qq.md\":\"B_4bodh-\",\"channels_telegram.md\":\"B9i-uoiX\",\"getting-started_access.md\":\"Ci3R9wdO\",\"getting-started_bot.md\":\"AR4RHnpe\",\"getting-started_browser.md\":\"B-tRWxYY\",\"getting-started_channels.md\":\"C0YPWL-y\",\"getting-started_container.md\":\"D49M0dHe\",\"getting-started_email.md\":\"BRkUZLh2\",\"getting-started_files.md\":\"CczR71or\",\"getting-started_heartbeat.md\":\"B-SMiJUD\",\"getting-started_mcp.md\":\"Bb2toM2o\",\"getting-started_memory.md\":\"2LaCipf1\",\"getting-started_provider-and-model.md\":\"BquaPnJe\",\"getting-started_schedule.md\":\"CNDu3SiN\",\"getting-started_search-provider.md\":\"R9B5DkBj\",\"getting-started_skills.md\":\"DzSZ-qiC\",\"getting-started_subagents.md\":\"6oBLlW8a\",\"index.md\":\"D1yGsPie\",\"installation_docker.md\":\"BYtBZBwq\",\"memory-providers_builtin.md\":\"D5BGaMgs\",\"memory-providers_index.md\":\"CTmbFtvS\",\"memory-providers_mem0.md\":\"DYavcIID\",\"memory-providers_openviking.md\":\"DRJRcuFd\",\"tts-providers_edge.md\":\"Uf8Yzj2Y\",\"tts-providers_index.md\":\"vUh5rqaG\",\"zh_concepts_identity-and-binding.md\":\"7e9GdoK6\",\"zh_concepts_index.md\":\"Brd21jcS\",\"zh_index.md\":\"CZQRt_rQ\",\"zh_style_terminology.md\":\"DLv5QofI\"}");window.__VP_SITE_DATA__=JSON.parse("{\"lang\":\"en-US\",\"dir\":\"ltr\",\"title\":\"Memoh Documentation\",\"description\":\"Multi-Member, Structured Long-Memory, Containerized AI Agent System.\",\"base\":\"/\",\"head\":[],\"router\":{\"prefetchLinks\":true},\"appearance\":true,\"themeConfig\":{\"siteTitle\":\"Memoh\",\"sidebar\":{\"/blogs/\":[{\"text\":\"Blogs\",\"link\":\"/blogs/index.md\",\"items\":[{\"text\":\"Introduction (Feb 2026)\",\"link\":\"/blogs/2026-02-16.md\"}]}],\"/\":[{\"text\":\"Overview\",\"link\":\"/index.md\"},{\"text\":\"About Memoh\",\"link\":\"/about.md\"},{\"text\":\"Installation\",\"items\":[{\"text\":\"Docker\",\"link\":\"/installation/docker.md\"}]},{\"text\":\"Getting Started\",\"items\":[{\"text\":\"LLM Provider and Model\",\"link\":\"/getting-started/provider-and-model.md\"},{\"text\":\"Bot Management\",\"link\":\"/getting-started/bot.md\"},{\"text\":\"Bot Access Control\",\"link\":\"/getting-started/access.md\"},{\"text\":\"Container Management\",\"link\":\"/getting-started/container.md\"},{\"text\":\"Files Management\",\"link\":\"/getting-started/files.md\"},{\"text\":\"Bot Skills\",\"link\":\"/getting-started/skills.md\"},{\"text\":\"MCP Connections\",\"link\":\"/getting-started/mcp.md\"},{\"text\":\"Bot Channels\",\"link\":\"/getting-started/channels.md\"},{\"text\":\"Browser Contexts\",\"link\":\"/getting-started/browser.md\"},{\"text\":\"Memory Management\",\"link\":\"/getting-started/memory.md\"},{\"text\":\"Subagents\",\"link\":\"/getting-started/subagents.md\"},{\"text\":\"Heartbeat\",\"link\":\"/getting-started/heartbeat.md\"},{\"text\":\"Scheduled Tasks\",\"link\":\"/getting-started/schedule.md\"},{\"text\":\"Search Providers\",\"link\":\"/getting-started/search-provider.md\"},{\"text\":\"Email Providers\",\"link\":\"/getting-started/email.md\"}]},{\"text\":\"Memory Providers\",\"items\":[{\"text\":\"Overview\",\"link\":\"/memory-providers/index.md\"},{\"text\":\"Built-in\",\"link\":\"/memory-providers/builtin.md\"},{\"text\":\"Mem0\",\"link\":\"/memory-providers/mem0.md\"},{\"text\":\"OpenViking\",\"link\":\"/memory-providers/openviking.md\"}]},{\"text\":\"TTS Providers\",\"items\":[{\"text\":\"Overview\",\"link\":\"/tts-providers/index.md\"},{\"text\":\"Edge TTS\",\"link\":\"/tts-providers/edge.md\"}]},{\"text\":\"Channels\",\"items\":[{\"text\":\"Overview\",\"link\":\"/channels/index.md\"},{\"text\":\"Telegram\",\"link\":\"/channels/telegram.md\"},{\"text\":\"Feishu (Lark)\",\"link\":\"/channels/feishu.md\"},{\"text\":\"Discord\",\"link\":\"/channels/discord.md\"},{\"text\":\"QQ\",\"link\":\"/channels/qq.md\"}]}],\"/zh/\":[{\"text\":\"文档总览\",\"link\":\"/zh/index.md\"}]},\"nav\":[{\"text\":\"Guides\",\"link\":\"/\"},{\"text\":\"Blogs\",\"link\":\"/blogs/\"}],\"logo\":{\"src\":\"/logo.png\",\"alt\":\"Memoh\"},\"socialLinks\":[{\"icon\":\"github\",\"link\":\"https://github.com/memohai/Memoh\"}],\"footer\":{\"message\":\"Published under AGPLv3\",\"copyright\":\"Copyright © 2024 Memoh\"},\"search\":{\"provider\":\"local\"},\"editLink\":{\"pattern\":\"https://github.com/memohai/Memoh/edit/main/docs/docs/:path\",\"text\":\"Edit on GitHub\"},\"lastUpdated\":{\"text\":\"Last Updated\",\"formatOptions\":{\"dateStyle\":\"short\",\"timeStyle\":\"medium\"}}},\"locales\":{\"root\":{\"label\":\"English\",\"lang\":\"en\"},\"zh\":{\"label\":\"简体中文\",\"lang\":\"zh\"}},\"scrollOffset\":134,\"cleanUrls\":false}");</script>
|
<script>window.__VP_HASH_MAP__=JSON.parse("{\"about.md\":\"BA4ADbiz\",\"blogs_2026-02-16.md\":\"cjgZmunL\",\"blogs_index.md\":\"B2P01evP\",\"channels_discord.md\":\"WNpdGj29\",\"channels_feishu.md\":\"BBJ8KQPd\",\"channels_index.md\":\"T_VHXXZf\",\"channels_qq.md\":\"B_4bodh-\",\"channels_telegram.md\":\"B9i-uoiX\",\"getting-started_access.md\":\"Ci3R9wdO\",\"getting-started_bot.md\":\"AR4RHnpe\",\"getting-started_browser.md\":\"B-tRWxYY\",\"getting-started_channels.md\":\"C0YPWL-y\",\"getting-started_container.md\":\"D49M0dHe\",\"getting-started_email.md\":\"BRkUZLh2\",\"getting-started_files.md\":\"CczR71or\",\"getting-started_heartbeat.md\":\"B-SMiJUD\",\"getting-started_mcp.md\":\"Bb2toM2o\",\"getting-started_memory.md\":\"2LaCipf1\",\"getting-started_provider-and-model.md\":\"BquaPnJe\",\"getting-started_schedule.md\":\"CNDu3SiN\",\"getting-started_search-provider.md\":\"R9B5DkBj\",\"getting-started_skills.md\":\"DzSZ-qiC\",\"getting-started_subagents.md\":\"6oBLlW8a\",\"index.md\":\"D1yGsPie\",\"installation_docker.md\":\"IuAKlQcI\",\"memory-providers_builtin.md\":\"D5BGaMgs\",\"memory-providers_index.md\":\"CTmbFtvS\",\"memory-providers_mem0.md\":\"DYavcIID\",\"memory-providers_openviking.md\":\"DRJRcuFd\",\"tts-providers_edge.md\":\"Uf8Yzj2Y\",\"tts-providers_index.md\":\"vUh5rqaG\",\"zh_concepts_identity-and-binding.md\":\"7e9GdoK6\",\"zh_concepts_index.md\":\"Brd21jcS\",\"zh_index.md\":\"CZQRt_rQ\",\"zh_style_terminology.md\":\"DLv5QofI\"}");window.__VP_SITE_DATA__=JSON.parse("{\"lang\":\"en-US\",\"dir\":\"ltr\",\"title\":\"Memoh Documentation\",\"description\":\"Multi-Member, Structured Long-Memory, Containerized AI Agent System.\",\"base\":\"/\",\"head\":[],\"router\":{\"prefetchLinks\":true},\"appearance\":true,\"themeConfig\":{\"siteTitle\":\"Memoh\",\"sidebar\":{\"/blogs/\":[{\"text\":\"Blogs\",\"link\":\"/blogs/index.md\",\"items\":[{\"text\":\"Introduction (Feb 2026)\",\"link\":\"/blogs/2026-02-16.md\"}]}],\"/\":[{\"text\":\"Overview\",\"link\":\"/index.md\"},{\"text\":\"About Memoh\",\"link\":\"/about.md\"},{\"text\":\"Installation\",\"items\":[{\"text\":\"Docker\",\"link\":\"/installation/docker.md\"}]},{\"text\":\"Getting Started\",\"items\":[{\"text\":\"LLM Provider and Model\",\"link\":\"/getting-started/provider-and-model.md\"},{\"text\":\"Bot Management\",\"link\":\"/getting-started/bot.md\"},{\"text\":\"Bot Access Control\",\"link\":\"/getting-started/access.md\"},{\"text\":\"Container Management\",\"link\":\"/getting-started/container.md\"},{\"text\":\"Files Management\",\"link\":\"/getting-started/files.md\"},{\"text\":\"Bot Skills\",\"link\":\"/getting-started/skills.md\"},{\"text\":\"MCP Connections\",\"link\":\"/getting-started/mcp.md\"},{\"text\":\"Bot Channels\",\"link\":\"/getting-started/channels.md\"},{\"text\":\"Browser Contexts\",\"link\":\"/getting-started/browser.md\"},{\"text\":\"Memory Management\",\"link\":\"/getting-started/memory.md\"},{\"text\":\"Subagents\",\"link\":\"/getting-started/subagents.md\"},{\"text\":\"Heartbeat\",\"link\":\"/getting-started/heartbeat.md\"},{\"text\":\"Scheduled Tasks\",\"link\":\"/getting-started/schedule.md\"},{\"text\":\"Search Providers\",\"link\":\"/getting-started/search-provider.md\"},{\"text\":\"Email Providers\",\"link\":\"/getting-started/email.md\"}]},{\"text\":\"Memory Providers\",\"items\":[{\"text\":\"Overview\",\"link\":\"/memory-providers/index.md\"},{\"text\":\"Built-in\",\"link\":\"/memory-providers/builtin.md\"},{\"text\":\"Mem0\",\"link\":\"/memory-providers/mem0.md\"},{\"text\":\"OpenViking\",\"link\":\"/memory-providers/openviking.md\"}]},{\"text\":\"TTS Providers\",\"items\":[{\"text\":\"Overview\",\"link\":\"/tts-providers/index.md\"},{\"text\":\"Edge TTS\",\"link\":\"/tts-providers/edge.md\"}]},{\"text\":\"Channels\",\"items\":[{\"text\":\"Overview\",\"link\":\"/channels/index.md\"},{\"text\":\"Telegram\",\"link\":\"/channels/telegram.md\"},{\"text\":\"Feishu (Lark)\",\"link\":\"/channels/feishu.md\"},{\"text\":\"Discord\",\"link\":\"/channels/discord.md\"},{\"text\":\"QQ\",\"link\":\"/channels/qq.md\"}]}],\"/zh/\":[{\"text\":\"文档总览\",\"link\":\"/zh/index.md\"}]},\"nav\":[{\"text\":\"Guides\",\"link\":\"/\"},{\"text\":\"Blogs\",\"link\":\"/blogs/\"}],\"logo\":{\"src\":\"/logo.png\",\"alt\":\"Memoh\"},\"socialLinks\":[{\"icon\":\"github\",\"link\":\"https://github.com/memohai/Memoh\"}],\"footer\":{\"message\":\"Published under AGPLv3\",\"copyright\":\"Copyright © 2024 Memoh\"},\"search\":{\"provider\":\"local\"},\"editLink\":{\"pattern\":\"https://github.com/memohai/Memoh/edit/main/docs/docs/:path\",\"text\":\"Edit on GitHub\"},\"lastUpdated\":{\"text\":\"Last Updated\",\"formatOptions\":{\"dateStyle\":\"short\",\"timeStyle\":\"medium\"}}},\"locales\":{\"root\":{\"label\":\"English\",\"lang\":\"en\"},\"zh\":{\"label\":\"简体中文\",\"lang\":\"zh\"}},\"scrollOffset\":134,\"cleanUrls\":false}");</script>
|
||||||
|
|
||||||
</body>
|
</body>
|
||||||
</html>
|
</html>
|
||||||
File diff suppressed because one or more lines are too long
+1
-1
@@ -1 +1 @@
|
|||||||
{"about.md":"BA4ADbiz","blogs_2026-02-16.md":"cjgZmunL","blogs_index.md":"B2P01evP","channels_discord.md":"WNpdGj29","channels_feishu.md":"BBJ8KQPd","channels_index.md":"T_VHXXZf","channels_qq.md":"B_4bodh-","channels_telegram.md":"B9i-uoiX","getting-started_access.md":"Ci3R9wdO","getting-started_bot.md":"AR4RHnpe","getting-started_browser.md":"B-tRWxYY","getting-started_channels.md":"C0YPWL-y","getting-started_container.md":"D49M0dHe","getting-started_email.md":"BRkUZLh2","getting-started_files.md":"CczR71or","getting-started_heartbeat.md":"B-SMiJUD","getting-started_mcp.md":"Bb2toM2o","getting-started_memory.md":"2LaCipf1","getting-started_provider-and-model.md":"BquaPnJe","getting-started_schedule.md":"CNDu3SiN","getting-started_search-provider.md":"R9B5DkBj","getting-started_skills.md":"DzSZ-qiC","getting-started_subagents.md":"6oBLlW8a","index.md":"D1yGsPie","installation_docker.md":"BYtBZBwq","memory-providers_builtin.md":"D5BGaMgs","memory-providers_index.md":"CTmbFtvS","memory-providers_mem0.md":"DYavcIID","memory-providers_openviking.md":"DRJRcuFd","tts-providers_edge.md":"Uf8Yzj2Y","tts-providers_index.md":"vUh5rqaG","zh_concepts_identity-and-binding.md":"7e9GdoK6","zh_concepts_index.md":"Brd21jcS","zh_index.md":"CZQRt_rQ","zh_style_terminology.md":"DLv5QofI"}
|
{"about.md":"BA4ADbiz","blogs_2026-02-16.md":"cjgZmunL","blogs_index.md":"B2P01evP","channels_discord.md":"WNpdGj29","channels_feishu.md":"BBJ8KQPd","channels_index.md":"T_VHXXZf","channels_qq.md":"B_4bodh-","channels_telegram.md":"B9i-uoiX","getting-started_access.md":"Ci3R9wdO","getting-started_bot.md":"AR4RHnpe","getting-started_browser.md":"B-tRWxYY","getting-started_channels.md":"C0YPWL-y","getting-started_container.md":"D49M0dHe","getting-started_email.md":"BRkUZLh2","getting-started_files.md":"CczR71or","getting-started_heartbeat.md":"B-SMiJUD","getting-started_mcp.md":"Bb2toM2o","getting-started_memory.md":"2LaCipf1","getting-started_provider-and-model.md":"BquaPnJe","getting-started_schedule.md":"CNDu3SiN","getting-started_search-provider.md":"R9B5DkBj","getting-started_skills.md":"DzSZ-qiC","getting-started_subagents.md":"6oBLlW8a","index.md":"D1yGsPie","installation_docker.md":"IuAKlQcI","memory-providers_builtin.md":"D5BGaMgs","memory-providers_index.md":"CTmbFtvS","memory-providers_mem0.md":"DYavcIID","memory-providers_openviking.md":"DRJRcuFd","tts-providers_edge.md":"Uf8Yzj2Y","tts-providers_index.md":"vUh5rqaG","zh_concepts_identity-and-binding.md":"7e9GdoK6","zh_concepts_index.md":"Brd21jcS","zh_index.md":"CZQRt_rQ","zh_style_terminology.md":"DLv5QofI"}
|
||||||
|
|||||||
+3
-3
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
@@ -9,9 +9,9 @@
|
|||||||
<link rel="preload stylesheet" href="/assets/style.B5ESegsT.css" as="style">
|
<link rel="preload stylesheet" href="/assets/style.B5ESegsT.css" as="style">
|
||||||
<link rel="preload stylesheet" href="/vp-icons.css" as="style">
|
<link rel="preload stylesheet" href="/vp-icons.css" as="style">
|
||||||
|
|
||||||
<script type="module" src="/assets/app.C-qdOXyL.js"></script>
|
<script type="module" src="/assets/app.CBu6txs-.js"></script>
|
||||||
<link rel="preload" href="/assets/inter-roman-latin.Di8DUHzh.woff2" as="font" type="font/woff2" crossorigin="">
|
<link rel="preload" href="/assets/inter-roman-latin.Di8DUHzh.woff2" as="font" type="font/woff2" crossorigin="">
|
||||||
<link rel="modulepreload" href="/assets/chunks/theme.DPgEmSSr.js">
|
<link rel="modulepreload" href="/assets/chunks/theme.HDxN3qOf.js">
|
||||||
<link rel="modulepreload" href="/assets/chunks/framework.BZohXCq9.js">
|
<link rel="modulepreload" href="/assets/chunks/framework.BZohXCq9.js">
|
||||||
<link rel="modulepreload" href="/assets/memory-providers_builtin.md.D5BGaMgs.lean.js">
|
<link rel="modulepreload" href="/assets/memory-providers_builtin.md.D5BGaMgs.lean.js">
|
||||||
<link rel="icon" href="/logo.png">
|
<link rel="icon" href="/logo.png">
|
||||||
@@ -25,7 +25,7 @@
|
|||||||
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">[</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;">sparse</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">]</span></span>
|
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">[</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;">sparse</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">]</span></span>
|
||||||
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">base_url = </span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;">"http://sparse:8085"</span></span></code></pre></div><h3 id="dense-mode" tabindex="-1">Dense Mode <a class="header-anchor" href="#dense-mode" aria-label="Permalink to "Dense Mode""></a></h3><p>Requires an <strong>embedding model</strong> (configured in the provider settings) and <strong>Qdrant</strong>:</p><div class="language-bash vp-adaptive-theme"><button title="Copy Code" class="copy"></button><span class="lang">bash</span><pre class="shiki shiki-themes github-light github-dark vp-code" tabindex="0"><code><span class="line"><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;">docker</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> compose</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> --profile</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> qdrant</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> up</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> -d</span></span></code></pre></div><p>The Qdrant section must be present in <code>config.toml</code>:</p><div class="language-toml vp-adaptive-theme"><button title="Copy Code" class="copy"></button><span class="lang">toml</span><pre class="shiki shiki-themes github-light github-dark vp-code" tabindex="0"><code><span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">[</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;">qdrant</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">]</span></span>
|
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">base_url = </span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;">"http://sparse:8085"</span></span></code></pre></div><h3 id="dense-mode" tabindex="-1">Dense Mode <a class="header-anchor" href="#dense-mode" aria-label="Permalink to "Dense Mode""></a></h3><p>Requires an <strong>embedding model</strong> (configured in the provider settings) and <strong>Qdrant</strong>:</p><div class="language-bash vp-adaptive-theme"><button title="Copy Code" class="copy"></button><span class="lang">bash</span><pre class="shiki shiki-themes github-light github-dark vp-code" tabindex="0"><code><span class="line"><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;">docker</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> compose</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> --profile</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> qdrant</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> up</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> -d</span></span></code></pre></div><p>The Qdrant section must be present in <code>config.toml</code>:</p><div class="language-toml vp-adaptive-theme"><button title="Copy Code" class="copy"></button><span class="lang">toml</span><pre class="shiki shiki-themes github-light github-dark vp-code" tabindex="0"><code><span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">[</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;">qdrant</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">]</span></span>
|
||||||
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">base_url = </span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;">"http://qdrant:6334"</span></span></code></pre></div><hr><h2 id="assigning-a-memory-provider-to-a-bot" tabindex="-1">Assigning a Memory Provider to a Bot <a class="header-anchor" href="#assigning-a-memory-provider-to-a-bot" aria-label="Permalink to "Assigning a Memory Provider to a Bot""></a></h2><ol><li>Navigate to the <strong>Bots</strong> page and open your bot.</li><li>Go to the <strong>Settings</strong> tab.</li><li>Find the <strong>Memory Provider</strong> dropdown.</li><li>Select the provider you created.</li><li>Click <strong>Save</strong>.</li></ol><p>If no memory provider is selected, the bot will not use that provider configuration in its runtime settings.</p><hr><h2 id="using-memory-after-setup" tabindex="-1">Using Memory After Setup <a class="header-anchor" href="#using-memory-after-setup" aria-label="Permalink to "Using Memory After Setup""></a></h2><p>Once a memory provider is assigned to the bot, you can manage actual memories from the bot's <strong>Memory</strong> tab:</p><ul><li>Create memories manually</li><li>Extract memories from conversations</li><li>Search, edit, and delete memories</li><li>Compact or rebuild the memory store</li></ul><p>For day-to-day memory operations, continue with <a href="/getting-started/memory.html">Bot Memory Management</a>.</p></div></div></main><footer class="VPDocFooter" data-v-db8bf443 data-v-d067bba9><!--[--><!--]--><div class="edit-info" data-v-d067bba9><div class="edit-link" data-v-d067bba9><a class="VPLink link vp-external-link-icon no-icon edit-link-button" href="https://github.com/memohai/Memoh/edit/main/docs/docs/memory-providers/builtin.md" target="_blank" rel="noreferrer" data-v-d067bba9><!--[--><span class="vpi-square-pen edit-link-icon" data-v-d067bba9></span> Edit on GitHub<!--]--></a></div><div class="last-updated" data-v-d067bba9><p class="VPLastUpdated" data-v-d067bba9 data-v-5d56f43a>Last Updated: <time datetime="2026-03-14T15:11:29.000Z" data-v-5d56f43a></time></p></div></div><nav class="prev-next" aria-labelledby="doc-footer-aria-label" data-v-d067bba9><span class="visually-hidden" id="doc-footer-aria-label" data-v-d067bba9>Pager</span><div class="pager" data-v-d067bba9><a class="VPLink link pager-link prev" href="/memory-providers/index.html" data-v-d067bba9><!--[--><span class="desc" data-v-d067bba9>Previous page</span><span class="title" data-v-d067bba9>Overview</span><!--]--></a></div><div class="pager" data-v-d067bba9><a class="VPLink link pager-link next" href="/memory-providers/mem0.html" data-v-d067bba9><!--[--><span class="desc" data-v-d067bba9>Next page</span><span class="title" data-v-d067bba9>Mem0</span><!--]--></a></div></nav></footer><!--[--><!--]--></div></div></div><!--[--><!--]--></div></div><footer class="VPFooter has-sidebar" data-v-a7fd87cd data-v-a4a6e223><div class="container" data-v-a4a6e223><p class="message" data-v-a4a6e223>Published under AGPLv3</p><p class="copyright" data-v-a4a6e223>Copyright © 2024 Memoh</p></div></footer><!--[--><!--]--></div></div>
|
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">base_url = </span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;">"http://qdrant:6334"</span></span></code></pre></div><hr><h2 id="assigning-a-memory-provider-to-a-bot" tabindex="-1">Assigning a Memory Provider to a Bot <a class="header-anchor" href="#assigning-a-memory-provider-to-a-bot" aria-label="Permalink to "Assigning a Memory Provider to a Bot""></a></h2><ol><li>Navigate to the <strong>Bots</strong> page and open your bot.</li><li>Go to the <strong>Settings</strong> tab.</li><li>Find the <strong>Memory Provider</strong> dropdown.</li><li>Select the provider you created.</li><li>Click <strong>Save</strong>.</li></ol><p>If no memory provider is selected, the bot will not use that provider configuration in its runtime settings.</p><hr><h2 id="using-memory-after-setup" tabindex="-1">Using Memory After Setup <a class="header-anchor" href="#using-memory-after-setup" aria-label="Permalink to "Using Memory After Setup""></a></h2><p>Once a memory provider is assigned to the bot, you can manage actual memories from the bot's <strong>Memory</strong> tab:</p><ul><li>Create memories manually</li><li>Extract memories from conversations</li><li>Search, edit, and delete memories</li><li>Compact or rebuild the memory store</li></ul><p>For day-to-day memory operations, continue with <a href="/getting-started/memory.html">Bot Memory Management</a>.</p></div></div></main><footer class="VPDocFooter" data-v-db8bf443 data-v-d067bba9><!--[--><!--]--><div class="edit-info" data-v-d067bba9><div class="edit-link" data-v-d067bba9><a class="VPLink link vp-external-link-icon no-icon edit-link-button" href="https://github.com/memohai/Memoh/edit/main/docs/docs/memory-providers/builtin.md" target="_blank" rel="noreferrer" data-v-d067bba9><!--[--><span class="vpi-square-pen edit-link-icon" data-v-d067bba9></span> Edit on GitHub<!--]--></a></div><div class="last-updated" data-v-d067bba9><p class="VPLastUpdated" data-v-d067bba9 data-v-5d56f43a>Last Updated: <time datetime="2026-03-14T15:11:29.000Z" data-v-5d56f43a></time></p></div></div><nav class="prev-next" aria-labelledby="doc-footer-aria-label" data-v-d067bba9><span class="visually-hidden" id="doc-footer-aria-label" data-v-d067bba9>Pager</span><div class="pager" data-v-d067bba9><a class="VPLink link pager-link prev" href="/memory-providers/index.html" data-v-d067bba9><!--[--><span class="desc" data-v-d067bba9>Previous page</span><span class="title" data-v-d067bba9>Overview</span><!--]--></a></div><div class="pager" data-v-d067bba9><a class="VPLink link pager-link next" href="/memory-providers/mem0.html" data-v-d067bba9><!--[--><span class="desc" data-v-d067bba9>Next page</span><span class="title" data-v-d067bba9>Mem0</span><!--]--></a></div></nav></footer><!--[--><!--]--></div></div></div><!--[--><!--]--></div></div><footer class="VPFooter has-sidebar" data-v-a7fd87cd data-v-a4a6e223><div class="container" data-v-a4a6e223><p class="message" data-v-a4a6e223>Published under AGPLv3</p><p class="copyright" data-v-a4a6e223>Copyright © 2024 Memoh</p></div></footer><!--[--><!--]--></div></div>
|
||||||
<script>window.__VP_HASH_MAP__=JSON.parse("{\"about.md\":\"BA4ADbiz\",\"blogs_2026-02-16.md\":\"cjgZmunL\",\"blogs_index.md\":\"B2P01evP\",\"channels_discord.md\":\"WNpdGj29\",\"channels_feishu.md\":\"BBJ8KQPd\",\"channels_index.md\":\"T_VHXXZf\",\"channels_qq.md\":\"B_4bodh-\",\"channels_telegram.md\":\"B9i-uoiX\",\"getting-started_access.md\":\"Ci3R9wdO\",\"getting-started_bot.md\":\"AR4RHnpe\",\"getting-started_browser.md\":\"B-tRWxYY\",\"getting-started_channels.md\":\"C0YPWL-y\",\"getting-started_container.md\":\"D49M0dHe\",\"getting-started_email.md\":\"BRkUZLh2\",\"getting-started_files.md\":\"CczR71or\",\"getting-started_heartbeat.md\":\"B-SMiJUD\",\"getting-started_mcp.md\":\"Bb2toM2o\",\"getting-started_memory.md\":\"2LaCipf1\",\"getting-started_provider-and-model.md\":\"BquaPnJe\",\"getting-started_schedule.md\":\"CNDu3SiN\",\"getting-started_search-provider.md\":\"R9B5DkBj\",\"getting-started_skills.md\":\"DzSZ-qiC\",\"getting-started_subagents.md\":\"6oBLlW8a\",\"index.md\":\"D1yGsPie\",\"installation_docker.md\":\"BYtBZBwq\",\"memory-providers_builtin.md\":\"D5BGaMgs\",\"memory-providers_index.md\":\"CTmbFtvS\",\"memory-providers_mem0.md\":\"DYavcIID\",\"memory-providers_openviking.md\":\"DRJRcuFd\",\"tts-providers_edge.md\":\"Uf8Yzj2Y\",\"tts-providers_index.md\":\"vUh5rqaG\",\"zh_concepts_identity-and-binding.md\":\"7e9GdoK6\",\"zh_concepts_index.md\":\"Brd21jcS\",\"zh_index.md\":\"CZQRt_rQ\",\"zh_style_terminology.md\":\"DLv5QofI\"}");window.__VP_SITE_DATA__=JSON.parse("{\"lang\":\"en-US\",\"dir\":\"ltr\",\"title\":\"Memoh Documentation\",\"description\":\"Multi-Member, Structured Long-Memory, Containerized AI Agent System.\",\"base\":\"/\",\"head\":[],\"router\":{\"prefetchLinks\":true},\"appearance\":true,\"themeConfig\":{\"siteTitle\":\"Memoh\",\"sidebar\":{\"/blogs/\":[{\"text\":\"Blogs\",\"link\":\"/blogs/index.md\",\"items\":[{\"text\":\"Introduction (Feb 2026)\",\"link\":\"/blogs/2026-02-16.md\"}]}],\"/\":[{\"text\":\"Overview\",\"link\":\"/index.md\"},{\"text\":\"About Memoh\",\"link\":\"/about.md\"},{\"text\":\"Installation\",\"items\":[{\"text\":\"Docker\",\"link\":\"/installation/docker.md\"}]},{\"text\":\"Getting Started\",\"items\":[{\"text\":\"LLM Provider and Model\",\"link\":\"/getting-started/provider-and-model.md\"},{\"text\":\"Bot Management\",\"link\":\"/getting-started/bot.md\"},{\"text\":\"Bot Access Control\",\"link\":\"/getting-started/access.md\"},{\"text\":\"Container Management\",\"link\":\"/getting-started/container.md\"},{\"text\":\"Files Management\",\"link\":\"/getting-started/files.md\"},{\"text\":\"Bot Skills\",\"link\":\"/getting-started/skills.md\"},{\"text\":\"MCP Connections\",\"link\":\"/getting-started/mcp.md\"},{\"text\":\"Bot Channels\",\"link\":\"/getting-started/channels.md\"},{\"text\":\"Browser Contexts\",\"link\":\"/getting-started/browser.md\"},{\"text\":\"Memory Management\",\"link\":\"/getting-started/memory.md\"},{\"text\":\"Subagents\",\"link\":\"/getting-started/subagents.md\"},{\"text\":\"Heartbeat\",\"link\":\"/getting-started/heartbeat.md\"},{\"text\":\"Scheduled Tasks\",\"link\":\"/getting-started/schedule.md\"},{\"text\":\"Search Providers\",\"link\":\"/getting-started/search-provider.md\"},{\"text\":\"Email Providers\",\"link\":\"/getting-started/email.md\"}]},{\"text\":\"Memory Providers\",\"items\":[{\"text\":\"Overview\",\"link\":\"/memory-providers/index.md\"},{\"text\":\"Built-in\",\"link\":\"/memory-providers/builtin.md\"},{\"text\":\"Mem0\",\"link\":\"/memory-providers/mem0.md\"},{\"text\":\"OpenViking\",\"link\":\"/memory-providers/openviking.md\"}]},{\"text\":\"TTS Providers\",\"items\":[{\"text\":\"Overview\",\"link\":\"/tts-providers/index.md\"},{\"text\":\"Edge TTS\",\"link\":\"/tts-providers/edge.md\"}]},{\"text\":\"Channels\",\"items\":[{\"text\":\"Overview\",\"link\":\"/channels/index.md\"},{\"text\":\"Telegram\",\"link\":\"/channels/telegram.md\"},{\"text\":\"Feishu (Lark)\",\"link\":\"/channels/feishu.md\"},{\"text\":\"Discord\",\"link\":\"/channels/discord.md\"},{\"text\":\"QQ\",\"link\":\"/channels/qq.md\"}]}],\"/zh/\":[{\"text\":\"文档总览\",\"link\":\"/zh/index.md\"}]},\"nav\":[{\"text\":\"Guides\",\"link\":\"/\"},{\"text\":\"Blogs\",\"link\":\"/blogs/\"}],\"logo\":{\"src\":\"/logo.png\",\"alt\":\"Memoh\"},\"socialLinks\":[{\"icon\":\"github\",\"link\":\"https://github.com/memohai/Memoh\"}],\"footer\":{\"message\":\"Published under AGPLv3\",\"copyright\":\"Copyright © 2024 Memoh\"},\"search\":{\"provider\":\"local\"},\"editLink\":{\"pattern\":\"https://github.com/memohai/Memoh/edit/main/docs/docs/:path\",\"text\":\"Edit on GitHub\"},\"lastUpdated\":{\"text\":\"Last Updated\",\"formatOptions\":{\"dateStyle\":\"short\",\"timeStyle\":\"medium\"}}},\"locales\":{\"root\":{\"label\":\"English\",\"lang\":\"en\"},\"zh\":{\"label\":\"简体中文\",\"lang\":\"zh\"}},\"scrollOffset\":134,\"cleanUrls\":false}");</script>
|
<script>window.__VP_HASH_MAP__=JSON.parse("{\"about.md\":\"BA4ADbiz\",\"blogs_2026-02-16.md\":\"cjgZmunL\",\"blogs_index.md\":\"B2P01evP\",\"channels_discord.md\":\"WNpdGj29\",\"channels_feishu.md\":\"BBJ8KQPd\",\"channels_index.md\":\"T_VHXXZf\",\"channels_qq.md\":\"B_4bodh-\",\"channels_telegram.md\":\"B9i-uoiX\",\"getting-started_access.md\":\"Ci3R9wdO\",\"getting-started_bot.md\":\"AR4RHnpe\",\"getting-started_browser.md\":\"B-tRWxYY\",\"getting-started_channels.md\":\"C0YPWL-y\",\"getting-started_container.md\":\"D49M0dHe\",\"getting-started_email.md\":\"BRkUZLh2\",\"getting-started_files.md\":\"CczR71or\",\"getting-started_heartbeat.md\":\"B-SMiJUD\",\"getting-started_mcp.md\":\"Bb2toM2o\",\"getting-started_memory.md\":\"2LaCipf1\",\"getting-started_provider-and-model.md\":\"BquaPnJe\",\"getting-started_schedule.md\":\"CNDu3SiN\",\"getting-started_search-provider.md\":\"R9B5DkBj\",\"getting-started_skills.md\":\"DzSZ-qiC\",\"getting-started_subagents.md\":\"6oBLlW8a\",\"index.md\":\"D1yGsPie\",\"installation_docker.md\":\"IuAKlQcI\",\"memory-providers_builtin.md\":\"D5BGaMgs\",\"memory-providers_index.md\":\"CTmbFtvS\",\"memory-providers_mem0.md\":\"DYavcIID\",\"memory-providers_openviking.md\":\"DRJRcuFd\",\"tts-providers_edge.md\":\"Uf8Yzj2Y\",\"tts-providers_index.md\":\"vUh5rqaG\",\"zh_concepts_identity-and-binding.md\":\"7e9GdoK6\",\"zh_concepts_index.md\":\"Brd21jcS\",\"zh_index.md\":\"CZQRt_rQ\",\"zh_style_terminology.md\":\"DLv5QofI\"}");window.__VP_SITE_DATA__=JSON.parse("{\"lang\":\"en-US\",\"dir\":\"ltr\",\"title\":\"Memoh Documentation\",\"description\":\"Multi-Member, Structured Long-Memory, Containerized AI Agent System.\",\"base\":\"/\",\"head\":[],\"router\":{\"prefetchLinks\":true},\"appearance\":true,\"themeConfig\":{\"siteTitle\":\"Memoh\",\"sidebar\":{\"/blogs/\":[{\"text\":\"Blogs\",\"link\":\"/blogs/index.md\",\"items\":[{\"text\":\"Introduction (Feb 2026)\",\"link\":\"/blogs/2026-02-16.md\"}]}],\"/\":[{\"text\":\"Overview\",\"link\":\"/index.md\"},{\"text\":\"About Memoh\",\"link\":\"/about.md\"},{\"text\":\"Installation\",\"items\":[{\"text\":\"Docker\",\"link\":\"/installation/docker.md\"}]},{\"text\":\"Getting Started\",\"items\":[{\"text\":\"LLM Provider and Model\",\"link\":\"/getting-started/provider-and-model.md\"},{\"text\":\"Bot Management\",\"link\":\"/getting-started/bot.md\"},{\"text\":\"Bot Access Control\",\"link\":\"/getting-started/access.md\"},{\"text\":\"Container Management\",\"link\":\"/getting-started/container.md\"},{\"text\":\"Files Management\",\"link\":\"/getting-started/files.md\"},{\"text\":\"Bot Skills\",\"link\":\"/getting-started/skills.md\"},{\"text\":\"MCP Connections\",\"link\":\"/getting-started/mcp.md\"},{\"text\":\"Bot Channels\",\"link\":\"/getting-started/channels.md\"},{\"text\":\"Browser Contexts\",\"link\":\"/getting-started/browser.md\"},{\"text\":\"Memory Management\",\"link\":\"/getting-started/memory.md\"},{\"text\":\"Subagents\",\"link\":\"/getting-started/subagents.md\"},{\"text\":\"Heartbeat\",\"link\":\"/getting-started/heartbeat.md\"},{\"text\":\"Scheduled Tasks\",\"link\":\"/getting-started/schedule.md\"},{\"text\":\"Search Providers\",\"link\":\"/getting-started/search-provider.md\"},{\"text\":\"Email Providers\",\"link\":\"/getting-started/email.md\"}]},{\"text\":\"Memory Providers\",\"items\":[{\"text\":\"Overview\",\"link\":\"/memory-providers/index.md\"},{\"text\":\"Built-in\",\"link\":\"/memory-providers/builtin.md\"},{\"text\":\"Mem0\",\"link\":\"/memory-providers/mem0.md\"},{\"text\":\"OpenViking\",\"link\":\"/memory-providers/openviking.md\"}]},{\"text\":\"TTS Providers\",\"items\":[{\"text\":\"Overview\",\"link\":\"/tts-providers/index.md\"},{\"text\":\"Edge TTS\",\"link\":\"/tts-providers/edge.md\"}]},{\"text\":\"Channels\",\"items\":[{\"text\":\"Overview\",\"link\":\"/channels/index.md\"},{\"text\":\"Telegram\",\"link\":\"/channels/telegram.md\"},{\"text\":\"Feishu (Lark)\",\"link\":\"/channels/feishu.md\"},{\"text\":\"Discord\",\"link\":\"/channels/discord.md\"},{\"text\":\"QQ\",\"link\":\"/channels/qq.md\"}]}],\"/zh/\":[{\"text\":\"文档总览\",\"link\":\"/zh/index.md\"}]},\"nav\":[{\"text\":\"Guides\",\"link\":\"/\"},{\"text\":\"Blogs\",\"link\":\"/blogs/\"}],\"logo\":{\"src\":\"/logo.png\",\"alt\":\"Memoh\"},\"socialLinks\":[{\"icon\":\"github\",\"link\":\"https://github.com/memohai/Memoh\"}],\"footer\":{\"message\":\"Published under AGPLv3\",\"copyright\":\"Copyright © 2024 Memoh\"},\"search\":{\"provider\":\"local\"},\"editLink\":{\"pattern\":\"https://github.com/memohai/Memoh/edit/main/docs/docs/:path\",\"text\":\"Edit on GitHub\"},\"lastUpdated\":{\"text\":\"Last Updated\",\"formatOptions\":{\"dateStyle\":\"short\",\"timeStyle\":\"medium\"}}},\"locales\":{\"root\":{\"label\":\"English\",\"lang\":\"en\"},\"zh\":{\"label\":\"简体中文\",\"lang\":\"zh\"}},\"scrollOffset\":134,\"cleanUrls\":false}");</script>
|
||||||
|
|
||||||
</body>
|
</body>
|
||||||
</html>
|
</html>
|
||||||
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
+3
-3
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
Reference in New Issue
Block a user