mirror of
https://github.com/memohai/Memoh.git
synced 2026-04-27 07:16:19 +09:00
deploy: d6c47472b2
This commit is contained in:
@@ -9,7 +9,7 @@
|
||||
<link rel="preload stylesheet" href="/assets/style.BZIg-cXr.css" as="style">
|
||||
<link rel="preload stylesheet" href="/vp-icons.css" as="style">
|
||||
|
||||
<script type="module" src="/assets/app.CYut-U_Q.js"></script>
|
||||
<script type="module" src="/assets/app.B2eKQ01Y.js"></script>
|
||||
<link rel="preload" href="/assets/inter-roman-latin.Di8DUHzh.woff2" as="font" type="font/woff2" crossorigin="">
|
||||
<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>
|
||||
@@ -17,7 +17,7 @@
|
||||
</head>
|
||||
<body>
|
||||
<div id="app"></div>
|
||||
<script>window.__VP_HASH_MAP__=JSON.parse("{\"blogs_2026-02-16.md\":\"DSFOaZyb\",\"blogs_index.md\":\"liWx4LKT\",\"cli_auth.md\":\"DPl-4zFk\",\"cli_bot.md\":\"B2YOOp9H\",\"cli_channel.md\":\"T-qsPRZ9\",\"cli_chat.md\":\"LOg8zrpn\",\"cli_config.md\":\"C-0Xv0hx\",\"cli_index.md\":\"CTMBSccU\",\"cli_model.md\":\"Bp0XdM9y\",\"cli_provider.md\":\"CEEKGN01\",\"cli_schedule.md\":\"DSG0HQuo\",\"concepts_bot.md\":\"1aZ6YcT_\",\"concepts_channel.md\":\"kmh0thdg\",\"concepts_container.md\":\"CGr24tv7\",\"concepts_conversation-and-history.md\":\"CrsSw6px\",\"concepts_index.md\":\"C-_J0Dnw\",\"concepts_mcp.md\":\"Bi2x7eIb\",\"concepts_memory.md\":\"C_8mQlYI\",\"concepts_provider-and-model.md\":\"D9DoYLAT\",\"concepts_schedule.md\":\"DZlMw6iP\",\"concepts_skills.md\":\"F6zpo0BV\",\"concepts_subagents.md\":\"B1gVZCBU\",\"getting-started.md\":\"B026JaLd\",\"getting-started_create-bot.md\":\"5rz1rkV2\",\"getting-started_platform-telegram.md\":\"DnjlGtcF\",\"getting-started_provider-and-model.md\":\"Ix_AFx48\",\"index.md\":\"BxPQTo9L\",\"installation_config-toml.md\":\"DLEOCXmn\",\"installation_docker.md\":\"xaCmXfCQ\",\"troubleshooting.md\":\"DEVYH0Du\",\"zh_concepts_identity-and-binding.md\":\"BpgZjxhl\",\"zh_concepts_index.md\":\"CFVegv9w\",\"zh_index.md\":\"N8D_wq8q\",\"zh_style_terminology.md\":\"DtBRpWD7\"}");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\":\"/getting-started.md\"},{\"text\":\"Installation\",\"items\":[{\"text\":\"Docker\",\"link\":\"/installation/docker.md\"},{\"text\":\"config.toml\",\"link\":\"/installation/config-toml.md\"}]},{\"text\":\"Getting Started\",\"items\":[{\"text\":\"Provider and Model\",\"link\":\"/getting-started/provider-and-model.md\"},{\"text\":\"Create Bot\",\"link\":\"/getting-started/create-bot.md\"},{\"text\":\"telegram platform\",\"link\":\"/getting-started/platform-telegram.md\"}]},{\"text\":\"Concepts\",\"items\":[{\"text\":\"Overview\",\"link\":\"/concepts/index.md\"},{\"text\":\"Bot\",\"link\":\"/concepts/bot.md\"},{\"text\":\"Provider and Model\",\"link\":\"/concepts/provider-and-model.md\"},{\"text\":\"Schedule\",\"link\":\"/concepts/schedule.md\"},{\"text\":\"Memory\",\"link\":\"/concepts/memory.md\"},{\"text\":\"Channel\",\"link\":\"/concepts/channel.md\"},{\"text\":\"Container\",\"link\":\"/concepts/container.md\"},{\"text\":\"MCP\",\"link\":\"/concepts/mcp.md\"},{\"text\":\"Subagents\",\"link\":\"/concepts/subagents.md\"},{\"text\":\"Skills\",\"link\":\"/concepts/skills.md\"},{\"text\":\"Conversation and History\",\"link\":\"/concepts/conversation-and-history.md\"}]},{\"text\":\"CLI\",\"items\":[{\"text\":\"Overview\",\"link\":\"/cli/index.md\"},{\"text\":\"authentication\",\"link\":\"/cli/auth.md\"},{\"text\":\"config\",\"link\":\"/cli/config.md\"},{\"text\":\"provider\",\"link\":\"/cli/provider.md\"},{\"text\":\"model\",\"link\":\"/cli/model.md\"},{\"text\":\"bot\",\"link\":\"/cli/bot.md\"},{\"text\":\"channel\",\"link\":\"/cli/channel.md\"},{\"text\":\"schedule\",\"link\":\"/cli/schedule.md\"},{\"text\":\"chat\",\"link\":\"/cli/chat.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("{\"blogs_2026-02-16.md\":\"DSFOaZyb\",\"blogs_index.md\":\"liWx4LKT\",\"cli_auth.md\":\"DPl-4zFk\",\"cli_bot.md\":\"B2YOOp9H\",\"cli_channel.md\":\"T-qsPRZ9\",\"cli_chat.md\":\"LOg8zrpn\",\"cli_config.md\":\"C-0Xv0hx\",\"cli_index.md\":\"CTMBSccU\",\"cli_model.md\":\"Bw08RtnA\",\"cli_provider.md\":\"cID16uzP\",\"cli_schedule.md\":\"DSG0HQuo\",\"concepts_bot.md\":\"1aZ6YcT_\",\"concepts_channel.md\":\"kmh0thdg\",\"concepts_container.md\":\"CGr24tv7\",\"concepts_conversation-and-history.md\":\"CrsSw6px\",\"concepts_index.md\":\"C-_J0Dnw\",\"concepts_mcp.md\":\"Bi2x7eIb\",\"concepts_memory.md\":\"C_8mQlYI\",\"concepts_provider-and-model.md\":\"DxvTinZF\",\"concepts_schedule.md\":\"DZlMw6iP\",\"concepts_skills.md\":\"F6zpo0BV\",\"concepts_subagents.md\":\"B1gVZCBU\",\"getting-started.md\":\"BWV4Fvb6\",\"getting-started_create-bot.md\":\"5rz1rkV2\",\"getting-started_platform-telegram.md\":\"DnjlGtcF\",\"getting-started_provider-and-model.md\":\"BA0D0cN8\",\"index.md\":\"BxPQTo9L\",\"installation_config-toml.md\":\"DLEOCXmn\",\"installation_docker.md\":\"xaCmXfCQ\",\"troubleshooting.md\":\"DEVYH0Du\",\"zh_concepts_identity-and-binding.md\":\"BpgZjxhl\",\"zh_concepts_index.md\":\"CFVegv9w\",\"zh_index.md\":\"N8D_wq8q\",\"zh_style_terminology.md\":\"DtBRpWD7\"}");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\":\"/getting-started.md\"},{\"text\":\"Installation\",\"items\":[{\"text\":\"Docker\",\"link\":\"/installation/docker.md\"},{\"text\":\"config.toml\",\"link\":\"/installation/config-toml.md\"}]},{\"text\":\"Getting Started\",\"items\":[{\"text\":\"Provider and Model\",\"link\":\"/getting-started/provider-and-model.md\"},{\"text\":\"Create Bot\",\"link\":\"/getting-started/create-bot.md\"},{\"text\":\"telegram platform\",\"link\":\"/getting-started/platform-telegram.md\"}]},{\"text\":\"Concepts\",\"items\":[{\"text\":\"Overview\",\"link\":\"/concepts/index.md\"},{\"text\":\"Bot\",\"link\":\"/concepts/bot.md\"},{\"text\":\"Provider and Model\",\"link\":\"/concepts/provider-and-model.md\"},{\"text\":\"Schedule\",\"link\":\"/concepts/schedule.md\"},{\"text\":\"Memory\",\"link\":\"/concepts/memory.md\"},{\"text\":\"Channel\",\"link\":\"/concepts/channel.md\"},{\"text\":\"Container\",\"link\":\"/concepts/container.md\"},{\"text\":\"MCP\",\"link\":\"/concepts/mcp.md\"},{\"text\":\"Subagents\",\"link\":\"/concepts/subagents.md\"},{\"text\":\"Skills\",\"link\":\"/concepts/skills.md\"},{\"text\":\"Conversation and History\",\"link\":\"/concepts/conversation-and-history.md\"}]},{\"text\":\"CLI\",\"items\":[{\"text\":\"Overview\",\"link\":\"/cli/index.md\"},{\"text\":\"authentication\",\"link\":\"/cli/auth.md\"},{\"text\":\"config\",\"link\":\"/cli/config.md\"},{\"text\":\"provider\",\"link\":\"/cli/provider.md\"},{\"text\":\"model\",\"link\":\"/cli/model.md\"},{\"text\":\"bot\",\"link\":\"/cli/bot.md\"},{\"text\":\"channel\",\"link\":\"/cli/channel.md\"},{\"text\":\"schedule\",\"link\":\"/cli/schedule.md\"},{\"text\":\"chat\",\"link\":\"/cli/chat.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>
|
||||
</html>
|
||||
@@ -1 +1 @@
|
||||
import{t as p}from"./chunks/theme.BFKBkNR-.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.DEqXEGcv.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.QnHcOzUX.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.DEqXEGcv.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};
|
||||
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
+1
-1
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
@@ -1,4 +0,0 @@
|
||||
import{_ as i,o as a,c as e,ag as t}from"./chunks/framework.DEqXEGcv.js";const m=JSON.parse('{"title":"Model Commands","description":"","frontmatter":{},"headers":[],"relativePath":"cli/model.md","filePath":"cli/model.md","lastUpdated":1771161622000}'),d={name:"cli/model.md"};function l(h,s,n,p,o,k){return a(),e("div",null,[...s[0]||(s[0]=[t(`<h1 id="model-commands" tabindex="-1">Model Commands <a class="header-anchor" href="#model-commands" aria-label="Permalink to "Model Commands""></a></h1><p>Manage chat and embedding models.</p><h2 id="model-list" tabindex="-1">model list <a class="header-anchor" href="#model-list" aria-label="Permalink to "model list""></a></h2><p>List all models with their provider, type, and multimodal flag.</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;">memoh</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> model</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> list</span></span></code></pre></div><h2 id="model-create" tabindex="-1">model create <a class="header-anchor" href="#model-create" aria-label="Permalink to "model create""></a></h2><p>Create a new model. Prompts for provider, model ID, type, and (for embedding models) dimensions.</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;">memoh</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> model</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> create</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> [options]</span></span></code></pre></div><table tabindex="0"><thead><tr><th>Option</th><th>Description</th></tr></thead><tbody><tr><td><code>--model_id <id></code></td><td>Model ID (e.g. <code>gpt-4</code>, <code>text-embedding-3-small</code>)</td></tr><tr><td><code>--name <name></code></td><td>Display name</td></tr><tr><td><code>--provider <provider></code></td><td>Provider name</td></tr><tr><td><code>--type <type></code></td><td><code>chat</code> or <code>embedding</code></td></tr><tr><td><code>--dimensions <n></code></td><td>Embedding dimensions (required for embedding models)</td></tr><tr><td><code>--multimodal</code></td><td>Mark as multimodal</td></tr></tbody></table><p>Examples:</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;">memoh</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> model</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> create</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> --model_id</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> gpt-4</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> --provider</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> my-openai</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> --type</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> chat</span></span>
|
||||
<span class="line"><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;">memoh</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> model</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> create</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> --model_id</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> text-embedding-3-small</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> --provider</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> my-openai</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> --type</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> embedding</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> --dimensions</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> 1536</span></span>
|
||||
<span class="line"><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;">memoh</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> model</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> create</span></span>
|
||||
<span class="line"><span style="--shiki-light:#6A737D;--shiki-dark:#6A737D;"># Interactive prompts</span></span></code></pre></div><h2 id="model-delete" tabindex="-1">model delete <a class="header-anchor" href="#model-delete" aria-label="Permalink to "model delete""></a></h2><p>Delete a model by model ID.</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;">memoh</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> model</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> delete</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> --model</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;"> <</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;">model_i</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">d</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">></span></span></code></pre></div><p>Example:</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;">memoh</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> model</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> delete</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> --model</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> gpt-4</span></span></code></pre></div>`,16)])])}const c=i(d,[["render",l]]);export{m as __pageData,c as default};
|
||||
@@ -1 +0,0 @@
|
||||
import{_ as i,o as a,c as e,ag as t}from"./chunks/framework.DEqXEGcv.js";const m=JSON.parse('{"title":"Model Commands","description":"","frontmatter":{},"headers":[],"relativePath":"cli/model.md","filePath":"cli/model.md","lastUpdated":1771161622000}'),d={name:"cli/model.md"};function l(h,s,n,p,o,k){return a(),e("div",null,[...s[0]||(s[0]=[t("",16)])])}const c=i(d,[["render",l]]);export{m as __pageData,c as default};
|
||||
@@ -0,0 +1,4 @@
|
||||
import{_ as i,o as e,c as a,ag as t}from"./chunks/framework.DEqXEGcv.js";const c=JSON.parse('{"title":"Model Commands","description":"","frontmatter":{},"headers":[],"relativePath":"cli/model.md","filePath":"cli/model.md","lastUpdated":1771410627000}'),d={name:"cli/model.md"};function l(n,s,h,p,o,k){return e(),a("div",null,[...s[0]||(s[0]=[t(`<h1 id="model-commands" tabindex="-1">Model Commands <a class="header-anchor" href="#model-commands" aria-label="Permalink to "Model Commands""></a></h1><p>Manage chat and embedding models.</p><h2 id="model-list" tabindex="-1">model list <a class="header-anchor" href="#model-list" aria-label="Permalink to "model list""></a></h2><p>List all models with their provider, type, client type, and multimodal flag.</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;">memoh</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> model</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> list</span></span></code></pre></div><h2 id="model-create" tabindex="-1">model create <a class="header-anchor" href="#model-create" aria-label="Permalink to "model create""></a></h2><p>Create a new model. Prompts for provider, model ID, type, client type, and (for embedding models) dimensions.</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;">memoh</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> model</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> create</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> [options]</span></span></code></pre></div><table tabindex="0"><thead><tr><th>Option</th><th>Description</th></tr></thead><tbody><tr><td><code>--model_id <id></code></td><td>Model ID (e.g. <code>gpt-4</code>, <code>text-embedding-3-small</code>)</td></tr><tr><td><code>--name <name></code></td><td>Display name</td></tr><tr><td><code>--provider <provider></code></td><td>Provider name</td></tr><tr><td><code>--client_type <type></code></td><td>Client type: <code>openai-responses</code>, <code>openai-completions</code>, <code>anthropic-messages</code>, <code>google-generative-ai</code></td></tr><tr><td><code>--type <type></code></td><td><code>chat</code> or <code>embedding</code></td></tr><tr><td><code>--dimensions <n></code></td><td>Embedding dimensions (required for embedding models)</td></tr><tr><td><code>--multimodal</code></td><td>Mark as multimodal</td></tr></tbody></table><p>Examples:</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;">memoh</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> model</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> create</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> --model_id</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> gpt-4</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> --provider</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> my-openai</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> --client_type</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> openai-responses</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> --type</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> chat</span></span>
|
||||
<span class="line"><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;">memoh</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> model</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> create</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> --model_id</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> text-embedding-3-small</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> --provider</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> my-openai</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> --client_type</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> openai-completions</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> --type</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> embedding</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> --dimensions</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> 1536</span></span>
|
||||
<span class="line"><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;">memoh</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> model</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> create</span></span>
|
||||
<span class="line"><span style="--shiki-light:#6A737D;--shiki-dark:#6A737D;"># Interactive prompts</span></span></code></pre></div><h2 id="model-delete" tabindex="-1">model delete <a class="header-anchor" href="#model-delete" aria-label="Permalink to "model delete""></a></h2><p>Delete a model by model ID.</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;">memoh</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> model</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> delete</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> --model</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;"> <</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;">model_i</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">d</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">></span></span></code></pre></div><p>Example:</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;">memoh</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> model</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> delete</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> --model</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> gpt-4</span></span></code></pre></div>`,16)])])}const m=i(d,[["render",l]]);export{c as __pageData,m as default};
|
||||
@@ -0,0 +1 @@
|
||||
import{_ as i,o as e,c as a,ag as t}from"./chunks/framework.DEqXEGcv.js";const c=JSON.parse('{"title":"Model Commands","description":"","frontmatter":{},"headers":[],"relativePath":"cli/model.md","filePath":"cli/model.md","lastUpdated":1771410627000}'),d={name:"cli/model.md"};function l(n,s,h,p,o,k){return e(),a("div",null,[...s[0]||(s[0]=[t("",16)])])}const m=i(d,[["render",l]]);export{c as __pageData,m as default};
|
||||
@@ -1 +0,0 @@
|
||||
import{_ as s,o as a,c as e,ag as t}from"./chunks/framework.DEqXEGcv.js";const c=JSON.parse('{"title":"Provider Commands","description":"","frontmatter":{},"headers":[],"relativePath":"cli/provider.md","filePath":"cli/provider.md","lastUpdated":1771161622000}'),p={name:"cli/provider.md"};function d(l,i,h,n,r,o){return a(),e("div",null,[...i[0]||(i[0]=[t("",20)])])}const F=s(p,[["render",d]]);export{c as __pageData,F as default};
|
||||
@@ -1,4 +1,4 @@
|
||||
import{_ as s,o as a,c as e,ag as t}from"./chunks/framework.DEqXEGcv.js";const c=JSON.parse('{"title":"Provider Commands","description":"","frontmatter":{},"headers":[],"relativePath":"cli/provider.md","filePath":"cli/provider.md","lastUpdated":1771161622000}'),p={name:"cli/provider.md"};function d(l,i,h,n,r,o){return a(),e("div",null,[...i[0]||(i[0]=[t(`<h1 id="provider-commands" tabindex="-1">Provider Commands <a class="header-anchor" href="#provider-commands" aria-label="Permalink to "Provider Commands""></a></h1><p>Manage LLM providers (OpenAI, Anthropic, Ollama, etc.).</p><h2 id="provider-list" tabindex="-1">provider list <a class="header-anchor" href="#provider-list" aria-label="Permalink to "provider list""></a></h2><p>List all providers. Optionally filter by provider name.</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;">memoh</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> provider</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> list</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> [options]</span></span></code></pre></div><table tabindex="0"><thead><tr><th>Option</th><th>Description</th></tr></thead><tbody><tr><td><code>--provider <name></code></td><td>Filter by provider name</td></tr></tbody></table><p>Examples:</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;">memoh</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> provider</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> list</span></span>
|
||||
<span class="line"><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;">memoh</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> provider</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> list</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> --provider</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> my-openai</span></span></code></pre></div><h2 id="provider-create" tabindex="-1">provider create <a class="header-anchor" href="#provider-create" aria-label="Permalink to "provider create""></a></h2><p>Create a new provider. Prompts for any missing fields.</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;">memoh</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> provider</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> create</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> [options]</span></span></code></pre></div><table tabindex="0"><thead><tr><th>Option</th><th>Description</th></tr></thead><tbody><tr><td><code>--name <name></code></td><td>Provider name</td></tr><tr><td><code>--type <type></code></td><td>Client type</td></tr><tr><td><code>--base_url <url></code></td><td>Base URL for the API</td></tr><tr><td><code>--api_key <key></code></td><td>API key</td></tr></tbody></table><p>Supported client types: <code>openai</code>, <code>openai-compat</code>, <code>anthropic</code>, <code>google</code>, <code>azure</code>, <code>bedrock</code>, <code>mistral</code>, <code>xai</code>, <code>ollama</code>, <code>dashscope</code></p><p>Examples:</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;">memoh</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> provider</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> create</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> --name</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> my-ollama</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> --type</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> ollama</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> --base_url</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> http://localhost:11434</span></span>
|
||||
import{_ as i,o as a,c as e,ag as t}from"./chunks/framework.DEqXEGcv.js";const c=JSON.parse('{"title":"Provider Commands","description":"","frontmatter":{},"headers":[],"relativePath":"cli/provider.md","filePath":"cli/provider.md","lastUpdated":1771410627000}'),p={name:"cli/provider.md"};function h(l,s,n,r,d,o){return a(),e("div",null,[...s[0]||(s[0]=[t(`<h1 id="provider-commands" tabindex="-1">Provider Commands <a class="header-anchor" href="#provider-commands" aria-label="Permalink to "Provider Commands""></a></h1><p>Manage LLM providers (API endpoints and credentials).</p><h2 id="provider-list" tabindex="-1">provider list <a class="header-anchor" href="#provider-list" aria-label="Permalink to "provider list""></a></h2><p>List all providers. Optionally filter by provider name.</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;">memoh</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> provider</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> list</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> [options]</span></span></code></pre></div><table tabindex="0"><thead><tr><th>Option</th><th>Description</th></tr></thead><tbody><tr><td><code>--provider <name></code></td><td>Filter by provider name</td></tr></tbody></table><p>Examples:</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;">memoh</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> provider</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> list</span></span>
|
||||
<span class="line"><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;">memoh</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> provider</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> list</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> --provider</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> my-openai</span></span></code></pre></div><h2 id="provider-create" tabindex="-1">provider create <a class="header-anchor" href="#provider-create" aria-label="Permalink to "provider create""></a></h2><p>Create a new provider. Prompts for any missing fields.</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;">memoh</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> provider</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> create</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> [options]</span></span></code></pre></div><table tabindex="0"><thead><tr><th>Option</th><th>Description</th></tr></thead><tbody><tr><td><code>--name <name></code></td><td>Provider name</td></tr><tr><td><code>--base_url <url></code></td><td>Base URL for the API</td></tr><tr><td><code>--api_key <key></code></td><td>API key</td></tr></tbody></table><p>Examples:</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;">memoh</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> provider</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> create</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> --name</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> my-ollama</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> --base_url</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> http://localhost:11434/v1</span></span>
|
||||
<span class="line"><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;">memoh</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> provider</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> create</span></span>
|
||||
<span class="line"><span style="--shiki-light:#6A737D;--shiki-dark:#6A737D;"># Interactive prompts</span></span></code></pre></div><h2 id="provider-delete" tabindex="-1">provider delete <a class="header-anchor" href="#provider-delete" aria-label="Permalink to "provider delete""></a></h2><p>Delete a provider by name.</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;">memoh</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> provider</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> delete</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> --provider</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;"> <</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;">nam</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">e</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">></span></span></code></pre></div><p>Example:</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;">memoh</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> provider</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> delete</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> --provider</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> my-ollama</span></span></code></pre></div>`,20)])])}const F=s(p,[["render",d]]);export{c as __pageData,F as default};
|
||||
<span class="line"><span style="--shiki-light:#6A737D;--shiki-dark:#6A737D;"># Interactive prompts</span></span></code></pre></div><h2 id="provider-delete" tabindex="-1">provider delete <a class="header-anchor" href="#provider-delete" aria-label="Permalink to "provider delete""></a></h2><p>Delete a provider by name.</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;">memoh</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> provider</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> delete</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> --provider</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;"> <</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;">nam</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">e</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">></span></span></code></pre></div><p>Example:</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;">memoh</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> provider</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> delete</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> --provider</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> my-ollama</span></span></code></pre></div>`,19)])])}const F=i(p,[["render",h]]);export{c as __pageData,F as default};
|
||||
@@ -0,0 +1 @@
|
||||
import{_ as i,o as a,c as e,ag as t}from"./chunks/framework.DEqXEGcv.js";const c=JSON.parse('{"title":"Provider Commands","description":"","frontmatter":{},"headers":[],"relativePath":"cli/provider.md","filePath":"cli/provider.md","lastUpdated":1771410627000}'),p={name:"cli/provider.md"};function h(l,s,n,r,d,o){return a(),e("div",null,[...s[0]||(s[0]=[t("",19)])])}const F=i(p,[["render",h]]);export{c as __pageData,F as default};
|
||||
@@ -1 +0,0 @@
|
||||
import{_ as o,o as t,c as d,ag as a}from"./chunks/framework.DEqXEGcv.js";const h=JSON.parse('{"title":"Provider and Model","description":"","frontmatter":{},"headers":[],"relativePath":"concepts/provider-and-model.md","filePath":"concepts/provider-and-model.md","lastUpdated":1771163124000}'),r={name:"concepts/provider-and-model.md"};function i(n,e,l,s,c,m){return t(),d("div",null,[...e[0]||(e[0]=[a('<h1 id="provider-and-model" tabindex="-1">Provider and Model <a class="header-anchor" href="#provider-and-model" aria-label="Permalink to "Provider and Model""></a></h1><p>In Memoh, <strong>provider</strong> and <strong>model</strong> are separate but connected concepts:</p><ul><li>A <strong>provider</strong> is the LLM service configuration (API endpoint, key, client type)</li><li>A <strong>model</strong> is the concrete chat or embedding model under that provider</li></ul><h2 id="typical-setup" tabindex="-1">Typical Setup <a class="header-anchor" href="#typical-setup" aria-label="Permalink to "Typical Setup""></a></h2><p>At minimum, a production-ready bot usually needs:</p><ul><li>One <strong>chat</strong> model for dialog generation</li><li>One <strong>embedding</strong> model for memory indexing and retrieval</li></ul><h2 id="model-assignment-to-bot" tabindex="-1">Model Assignment to Bot <a class="header-anchor" href="#model-assignment-to-bot" aria-label="Permalink to "Model Assignment to Bot""></a></h2><p>Bots reference model IDs in settings:</p><ul><li><code>chat_model_id</code></li><li><code>memory_model_id</code></li><li><code>embedding_model_id</code></li></ul><p>This enables per-bot customization (for quality, latency, or cost).</p><h2 id="web-ui-path" tabindex="-1">Web UI Path <a class="header-anchor" href="#web-ui-path" aria-label="Permalink to "Web UI Path""></a></h2><ul><li><code>Models > Add Provider > Select Provider > Add Model</code></li><li><code>Bots > Select a bot > Settings > Choose chat/memory/embedding models</code></li></ul>',12)])])}const u=o(r,[["render",i]]);export{h as __pageData,u as default};
|
||||
@@ -1 +0,0 @@
|
||||
import{_ as o,o as t,c as d,ag as a}from"./chunks/framework.DEqXEGcv.js";const h=JSON.parse('{"title":"Provider and Model","description":"","frontmatter":{},"headers":[],"relativePath":"concepts/provider-and-model.md","filePath":"concepts/provider-and-model.md","lastUpdated":1771163124000}'),r={name:"concepts/provider-and-model.md"};function i(n,e,l,s,c,m){return t(),d("div",null,[...e[0]||(e[0]=[a("",12)])])}const u=o(r,[["render",i]]);export{h as __pageData,u as default};
|
||||
@@ -0,0 +1 @@
|
||||
import{_ as t,o,c as d,ag as a}from"./chunks/framework.DEqXEGcv.js";const m=JSON.parse('{"title":"Provider and Model","description":"","frontmatter":{},"headers":[],"relativePath":"concepts/provider-and-model.md","filePath":"concepts/provider-and-model.md","lastUpdated":1771410627000}'),i={name:"concepts/provider-and-model.md"};function r(n,e,l,s,c,p){return o(),d("div",null,[...e[0]||(e[0]=[a('<h1 id="provider-and-model" tabindex="-1">Provider and Model <a class="header-anchor" href="#provider-and-model" aria-label="Permalink to "Provider and Model""></a></h1><p>In Memoh, <strong>provider</strong> and <strong>model</strong> are separate but connected concepts:</p><ul><li>A <strong>provider</strong> is the LLM service configuration (API endpoint and key)</li><li>A <strong>model</strong> is the concrete chat or embedding model under that provider, including its <strong>client type</strong> which determines which API protocol to use</li></ul><h2 id="client-types" tabindex="-1">Client Types <a class="header-anchor" href="#client-types" aria-label="Permalink to "Client Types""></a></h2><p>Each model has a <code>client_type</code> that determines how Memoh communicates with the LLM service:</p><table tabindex="0"><thead><tr><th>Client Type</th><th>Description</th></tr></thead><tbody><tr><td><code>openai-responses</code></td><td>OpenAI Responses API</td></tr><tr><td><code>openai-completions</code></td><td>OpenAI Chat Completions API (also works with compatible services like Ollama, Mistral, etc.)</td></tr><tr><td><code>anthropic-messages</code></td><td>Anthropic Messages API</td></tr><tr><td><code>google-generative-ai</code></td><td>Google Generative AI API</td></tr></tbody></table><h2 id="typical-setup" tabindex="-1">Typical Setup <a class="header-anchor" href="#typical-setup" aria-label="Permalink to "Typical Setup""></a></h2><p>At minimum, a production-ready bot usually needs:</p><ul><li>One <strong>chat</strong> model for dialog generation</li><li>One <strong>embedding</strong> model for memory indexing and retrieval</li></ul><h2 id="model-assignment-to-bot" tabindex="-1">Model Assignment to Bot <a class="header-anchor" href="#model-assignment-to-bot" aria-label="Permalink to "Model Assignment to Bot""></a></h2><p>Bots reference model IDs in settings:</p><ul><li><code>chat_model_id</code></li><li><code>memory_model_id</code></li><li><code>embedding_model_id</code></li></ul><p>This enables per-bot customization (for quality, latency, or cost).</p><h2 id="web-ui-path" tabindex="-1">Web UI Path <a class="header-anchor" href="#web-ui-path" aria-label="Permalink to "Web UI Path""></a></h2><ul><li><code>Models > Add Provider > Select Provider > Add Model</code></li><li><code>Bots > Select a bot > Settings > Choose chat/memory/embedding models</code></li></ul>',15)])])}const g=t(i,[["render",r]]);export{m as __pageData,g as default};
|
||||
@@ -0,0 +1 @@
|
||||
import{_ as t,o,c as d,ag as a}from"./chunks/framework.DEqXEGcv.js";const m=JSON.parse('{"title":"Provider and Model","description":"","frontmatter":{},"headers":[],"relativePath":"concepts/provider-and-model.md","filePath":"concepts/provider-and-model.md","lastUpdated":1771410627000}'),i={name:"concepts/provider-and-model.md"};function r(n,e,l,s,c,p){return o(),d("div",null,[...e[0]||(e[0]=[a("",15)])])}const g=t(i,[["render",r]]);export{m as __pageData,g as default};
|
||||
File diff suppressed because one or more lines are too long
+1
-1
@@ -1 +1 @@
|
||||
import{_ as a,o as t,c as o,ag as i}from"./chunks/framework.DEqXEGcv.js";const u=JSON.parse('{"title":"About Memoh","description":"","frontmatter":{},"headers":[],"relativePath":"getting-started.md","filePath":"getting-started.md","lastUpdated":1771162384000}'),n={name:"getting-started.md"};function r(l,e,s,c,d,h){return t(),o("div",null,[...e[0]||(e[0]=[i("",31)])])}const p=a(n,[["render",r]]);export{u as __pageData,p as default};
|
||||
import{_ as t,o as a,c as o,ag as i}from"./chunks/framework.DEqXEGcv.js";const u=JSON.parse('{"title":"About Memoh","description":"","frontmatter":{},"headers":[],"relativePath":"getting-started.md","filePath":"getting-started.md","lastUpdated":1771410627000}'),n={name:"getting-started.md"};function r(l,e,s,c,d,h){return a(),o("div",null,[...e[0]||(e[0]=[i("",31)])])}const p=t(n,[["render",r]]);export{u as __pageData,p as default};
|
||||
File diff suppressed because one or more lines are too long
+1
-1
@@ -1 +1 @@
|
||||
import{_ as t,o,c as d,ag as a}from"./chunks/framework.DEqXEGcv.js";const r="/getting-started/provider-model-01-sidebar.png",l="/getting-started/provider-model-02-add-provider.png",i="/getting-started/provider-model-03-provider-dialog.png",n="/getting-started/provider-model-04-provider-selected.png",v=JSON.parse('{"title":"Configure Provider and Model","description":"","frontmatter":{},"headers":[],"relativePath":"getting-started/provider-and-model.md","filePath":"getting-started/provider-and-model.md","lastUpdated":1771162384000}'),s={name:"getting-started/provider-and-model.md"};function p(c,e,g,h,m,u){return o(),d("div",null,[...e[0]||(e[0]=[a("",34)])])}const f=t(s,[["render",p]]);export{v as __pageData,f as default};
|
||||
import{_ as t,o,c as d,ag as r}from"./chunks/framework.DEqXEGcv.js";const a="/getting-started/provider-model-01-sidebar.png",i="/getting-started/provider-model-02-add-provider.png",l="/getting-started/provider-model-03-provider-dialog.png",n="/getting-started/provider-model-04-provider-selected.png",v=JSON.parse('{"title":"Configure Provider and Model","description":"","frontmatter":{},"headers":[],"relativePath":"getting-started/provider-and-model.md","filePath":"getting-started/provider-and-model.md","lastUpdated":1771410627000}'),s={name:"getting-started/provider-and-model.md"};function p(c,e,g,h,m,u){return o(),d("div",null,[...e[0]||(e[0]=[r("",34)])])}const f=t(s,[["render",p]]);export{v as __pageData,f as default};
|
||||
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
+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
+3
-3
File diff suppressed because one or more lines are too long
+3
-3
@@ -9,9 +9,9 @@
|
||||
<link rel="preload stylesheet" href="/assets/style.BZIg-cXr.css" as="style">
|
||||
<link rel="preload stylesheet" href="/vp-icons.css" as="style">
|
||||
|
||||
<script type="module" src="/assets/app.CYut-U_Q.js"></script>
|
||||
<script type="module" src="/assets/app.B2eKQ01Y.js"></script>
|
||||
<link rel="preload" href="/assets/inter-roman-latin.Di8DUHzh.woff2" as="font" type="font/woff2" crossorigin="">
|
||||
<link rel="modulepreload" href="/assets/chunks/theme.BFKBkNR-.js">
|
||||
<link rel="modulepreload" href="/assets/chunks/theme.QnHcOzUX.js">
|
||||
<link rel="modulepreload" href="/assets/chunks/framework.DEqXEGcv.js">
|
||||
<link rel="modulepreload" href="/assets/cli_config.md.C-0Xv0hx.lean.js">
|
||||
<link rel="icon" href="/logo.png">
|
||||
@@ -23,7 +23,7 @@
|
||||
<span class="line"><span>port = 8080</span></span></code></pre></div><h2 id="config-set" tabindex="-1">config set <a class="header-anchor" href="#config-set" aria-label="Permalink to "config set""></a></h2><p>Update the config. Prompts for host and port if not provided via options.</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;">memoh</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> config</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> set</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> [options]</span></span></code></pre></div><table tabindex="0"><thead><tr><th>Option</th><th>Description</th></tr></thead><tbody><tr><td><code>--host <host></code></td><td>API host (e.g. <code>127.0.0.1</code> or <code>api.example.com</code>)</td></tr><tr><td><code>--port <port></code></td><td>API port (default: 8080)</td></tr></tbody></table><p>Examples:</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;">memoh</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> config</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> set</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> --host</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> 192.168.1.100</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> --port</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> 8080</span></span>
|
||||
<span class="line"><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;">memoh</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> config</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> set</span></span>
|
||||
<span class="line"><span style="--shiki-light:#6A737D;--shiki-dark:#6A737D;"># Interactive prompts for host and port</span></span></code></pre></div></div></div></main><footer class="VPDocFooter" data-v-c0d172cc data-v-d650fb62><!--[--><!--]--><div class="edit-info" data-v-d650fb62><div class="edit-link" data-v-d650fb62><a class="VPLink link vp-external-link-icon no-icon edit-link-button" href="https://github.com/memohai/Memoh/edit/main/docs/docs/cli/config.md" target="_blank" rel="noreferrer" data-v-d650fb62><!--[--><span class="vpi-square-pen edit-link-icon" data-v-d650fb62></span> Edit on GitHub<!--]--></a></div><div class="last-updated" data-v-d650fb62><p class="VPLastUpdated" data-v-d650fb62 data-v-744e3437>Last Updated: <time datetime="2026-02-15T13:20:22.000Z" data-v-744e3437></time></p></div></div><nav class="prev-next" aria-labelledby="doc-footer-aria-label" data-v-d650fb62><span class="visually-hidden" id="doc-footer-aria-label" data-v-d650fb62>Pager</span><div class="pager" data-v-d650fb62><a class="VPLink link pager-link prev" href="/cli/auth.html" data-v-d650fb62><!--[--><span class="desc" data-v-d650fb62>Previous page</span><span class="title" data-v-d650fb62>authentication</span><!--]--></a></div><div class="pager" data-v-d650fb62><a class="VPLink link pager-link next" href="/cli/provider.html" data-v-d650fb62><!--[--><span class="desc" data-v-d650fb62>Next page</span><span class="title" data-v-d650fb62>provider</span><!--]--></a></div></nav></footer><!--[--><!--]--></div></div></div><!--[--><!--]--></div></div><footer class="VPFooter has-sidebar" data-v-ecfbf7a9 data-v-cea6e03e><div class="container" data-v-cea6e03e><p class="message" data-v-cea6e03e>Published under AGPLv3</p><p class="copyright" data-v-cea6e03e>Copyright © 2024 Memoh</p></div></footer><!--[--><!--]--></div></div>
|
||||
<script>window.__VP_HASH_MAP__=JSON.parse("{\"blogs_2026-02-16.md\":\"DSFOaZyb\",\"blogs_index.md\":\"liWx4LKT\",\"cli_auth.md\":\"DPl-4zFk\",\"cli_bot.md\":\"B2YOOp9H\",\"cli_channel.md\":\"T-qsPRZ9\",\"cli_chat.md\":\"LOg8zrpn\",\"cli_config.md\":\"C-0Xv0hx\",\"cli_index.md\":\"CTMBSccU\",\"cli_model.md\":\"Bp0XdM9y\",\"cli_provider.md\":\"CEEKGN01\",\"cli_schedule.md\":\"DSG0HQuo\",\"concepts_bot.md\":\"1aZ6YcT_\",\"concepts_channel.md\":\"kmh0thdg\",\"concepts_container.md\":\"CGr24tv7\",\"concepts_conversation-and-history.md\":\"CrsSw6px\",\"concepts_index.md\":\"C-_J0Dnw\",\"concepts_mcp.md\":\"Bi2x7eIb\",\"concepts_memory.md\":\"C_8mQlYI\",\"concepts_provider-and-model.md\":\"D9DoYLAT\",\"concepts_schedule.md\":\"DZlMw6iP\",\"concepts_skills.md\":\"F6zpo0BV\",\"concepts_subagents.md\":\"B1gVZCBU\",\"getting-started.md\":\"B026JaLd\",\"getting-started_create-bot.md\":\"5rz1rkV2\",\"getting-started_platform-telegram.md\":\"DnjlGtcF\",\"getting-started_provider-and-model.md\":\"Ix_AFx48\",\"index.md\":\"BxPQTo9L\",\"installation_config-toml.md\":\"DLEOCXmn\",\"installation_docker.md\":\"xaCmXfCQ\",\"troubleshooting.md\":\"DEVYH0Du\",\"zh_concepts_identity-and-binding.md\":\"BpgZjxhl\",\"zh_concepts_index.md\":\"CFVegv9w\",\"zh_index.md\":\"N8D_wq8q\",\"zh_style_terminology.md\":\"DtBRpWD7\"}");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\":\"/getting-started.md\"},{\"text\":\"Installation\",\"items\":[{\"text\":\"Docker\",\"link\":\"/installation/docker.md\"},{\"text\":\"config.toml\",\"link\":\"/installation/config-toml.md\"}]},{\"text\":\"Getting Started\",\"items\":[{\"text\":\"Provider and Model\",\"link\":\"/getting-started/provider-and-model.md\"},{\"text\":\"Create Bot\",\"link\":\"/getting-started/create-bot.md\"},{\"text\":\"telegram platform\",\"link\":\"/getting-started/platform-telegram.md\"}]},{\"text\":\"Concepts\",\"items\":[{\"text\":\"Overview\",\"link\":\"/concepts/index.md\"},{\"text\":\"Bot\",\"link\":\"/concepts/bot.md\"},{\"text\":\"Provider and Model\",\"link\":\"/concepts/provider-and-model.md\"},{\"text\":\"Schedule\",\"link\":\"/concepts/schedule.md\"},{\"text\":\"Memory\",\"link\":\"/concepts/memory.md\"},{\"text\":\"Channel\",\"link\":\"/concepts/channel.md\"},{\"text\":\"Container\",\"link\":\"/concepts/container.md\"},{\"text\":\"MCP\",\"link\":\"/concepts/mcp.md\"},{\"text\":\"Subagents\",\"link\":\"/concepts/subagents.md\"},{\"text\":\"Skills\",\"link\":\"/concepts/skills.md\"},{\"text\":\"Conversation and History\",\"link\":\"/concepts/conversation-and-history.md\"}]},{\"text\":\"CLI\",\"items\":[{\"text\":\"Overview\",\"link\":\"/cli/index.md\"},{\"text\":\"authentication\",\"link\":\"/cli/auth.md\"},{\"text\":\"config\",\"link\":\"/cli/config.md\"},{\"text\":\"provider\",\"link\":\"/cli/provider.md\"},{\"text\":\"model\",\"link\":\"/cli/model.md\"},{\"text\":\"bot\",\"link\":\"/cli/bot.md\"},{\"text\":\"channel\",\"link\":\"/cli/channel.md\"},{\"text\":\"schedule\",\"link\":\"/cli/schedule.md\"},{\"text\":\"chat\",\"link\":\"/cli/chat.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("{\"blogs_2026-02-16.md\":\"DSFOaZyb\",\"blogs_index.md\":\"liWx4LKT\",\"cli_auth.md\":\"DPl-4zFk\",\"cli_bot.md\":\"B2YOOp9H\",\"cli_channel.md\":\"T-qsPRZ9\",\"cli_chat.md\":\"LOg8zrpn\",\"cli_config.md\":\"C-0Xv0hx\",\"cli_index.md\":\"CTMBSccU\",\"cli_model.md\":\"Bw08RtnA\",\"cli_provider.md\":\"cID16uzP\",\"cli_schedule.md\":\"DSG0HQuo\",\"concepts_bot.md\":\"1aZ6YcT_\",\"concepts_channel.md\":\"kmh0thdg\",\"concepts_container.md\":\"CGr24tv7\",\"concepts_conversation-and-history.md\":\"CrsSw6px\",\"concepts_index.md\":\"C-_J0Dnw\",\"concepts_mcp.md\":\"Bi2x7eIb\",\"concepts_memory.md\":\"C_8mQlYI\",\"concepts_provider-and-model.md\":\"DxvTinZF\",\"concepts_schedule.md\":\"DZlMw6iP\",\"concepts_skills.md\":\"F6zpo0BV\",\"concepts_subagents.md\":\"B1gVZCBU\",\"getting-started.md\":\"BWV4Fvb6\",\"getting-started_create-bot.md\":\"5rz1rkV2\",\"getting-started_platform-telegram.md\":\"DnjlGtcF\",\"getting-started_provider-and-model.md\":\"BA0D0cN8\",\"index.md\":\"BxPQTo9L\",\"installation_config-toml.md\":\"DLEOCXmn\",\"installation_docker.md\":\"xaCmXfCQ\",\"troubleshooting.md\":\"DEVYH0Du\",\"zh_concepts_identity-and-binding.md\":\"BpgZjxhl\",\"zh_concepts_index.md\":\"CFVegv9w\",\"zh_index.md\":\"N8D_wq8q\",\"zh_style_terminology.md\":\"DtBRpWD7\"}");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\":\"/getting-started.md\"},{\"text\":\"Installation\",\"items\":[{\"text\":\"Docker\",\"link\":\"/installation/docker.md\"},{\"text\":\"config.toml\",\"link\":\"/installation/config-toml.md\"}]},{\"text\":\"Getting Started\",\"items\":[{\"text\":\"Provider and Model\",\"link\":\"/getting-started/provider-and-model.md\"},{\"text\":\"Create Bot\",\"link\":\"/getting-started/create-bot.md\"},{\"text\":\"telegram platform\",\"link\":\"/getting-started/platform-telegram.md\"}]},{\"text\":\"Concepts\",\"items\":[{\"text\":\"Overview\",\"link\":\"/concepts/index.md\"},{\"text\":\"Bot\",\"link\":\"/concepts/bot.md\"},{\"text\":\"Provider and Model\",\"link\":\"/concepts/provider-and-model.md\"},{\"text\":\"Schedule\",\"link\":\"/concepts/schedule.md\"},{\"text\":\"Memory\",\"link\":\"/concepts/memory.md\"},{\"text\":\"Channel\",\"link\":\"/concepts/channel.md\"},{\"text\":\"Container\",\"link\":\"/concepts/container.md\"},{\"text\":\"MCP\",\"link\":\"/concepts/mcp.md\"},{\"text\":\"Subagents\",\"link\":\"/concepts/subagents.md\"},{\"text\":\"Skills\",\"link\":\"/concepts/skills.md\"},{\"text\":\"Conversation and History\",\"link\":\"/concepts/conversation-and-history.md\"}]},{\"text\":\"CLI\",\"items\":[{\"text\":\"Overview\",\"link\":\"/cli/index.md\"},{\"text\":\"authentication\",\"link\":\"/cli/auth.md\"},{\"text\":\"config\",\"link\":\"/cli/config.md\"},{\"text\":\"provider\",\"link\":\"/cli/provider.md\"},{\"text\":\"model\",\"link\":\"/cli/model.md\"},{\"text\":\"bot\",\"link\":\"/cli/bot.md\"},{\"text\":\"channel\",\"link\":\"/cli/channel.md\"},{\"text\":\"schedule\",\"link\":\"/cli/schedule.md\"},{\"text\":\"chat\",\"link\":\"/cli/chat.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>
|
||||
</html>
|
||||
+3
-3
@@ -9,9 +9,9 @@
|
||||
<link rel="preload stylesheet" href="/assets/style.BZIg-cXr.css" as="style">
|
||||
<link rel="preload stylesheet" href="/vp-icons.css" as="style">
|
||||
|
||||
<script type="module" src="/assets/app.CYut-U_Q.js"></script>
|
||||
<script type="module" src="/assets/app.B2eKQ01Y.js"></script>
|
||||
<link rel="preload" href="/assets/inter-roman-latin.Di8DUHzh.woff2" as="font" type="font/woff2" crossorigin="">
|
||||
<link rel="modulepreload" href="/assets/chunks/theme.BFKBkNR-.js">
|
||||
<link rel="modulepreload" href="/assets/chunks/theme.QnHcOzUX.js">
|
||||
<link rel="modulepreload" href="/assets/chunks/framework.DEqXEGcv.js">
|
||||
<link rel="modulepreload" href="/assets/cli_index.md.CTMBSccU.lean.js">
|
||||
<link rel="icon" href="/logo.png">
|
||||
@@ -26,7 +26,7 @@
|
||||
<span class="line"><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;">pnpm</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> build</span></span>
|
||||
<span class="line"><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;">pnpm</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> link</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> --global</span></span>
|
||||
<span class="line"><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;">memoh</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> --help</span></span></code></pre></div><p>Ensure your Memoh server is running (see <a href="/installation/docker.html">Docker installation</a>) and the API is reachable at the configured host/port (default: <code>127.0.0.1:8080</code>).</p><h2 id="configuration" tabindex="-1">Configuration <a class="header-anchor" href="#configuration" aria-label="Permalink to "Configuration""></a></h2><p>The CLI stores config in <code>~/.memoh/config.toml</code> and auth token in <code>~/.memoh/token.json</code>. Use <code>memoh config</code> to view and <code>memoh config set</code> to change host/port.</p><h2 id="commands" tabindex="-1">Commands <a class="header-anchor" href="#commands" aria-label="Permalink to "Commands""></a></h2><table tabindex="0"><thead><tr><th>Command</th><th>Description</th></tr></thead><tbody><tr><td><a href="./auth.html#login">login</a></td><td>Log in to the Memoh server</td></tr><tr><td><a href="./auth.html#logout">logout</a></td><td>Log out and clear token</td></tr><tr><td><a href="./auth.html#whoami">whoami</a></td><td>Show current user</td></tr><tr><td><a href="./config.html">config</a></td><td>Show or update CLI config (host, port)</td></tr><tr><td><a href="./provider.html">provider</a></td><td>List, create, delete LLM providers</td></tr><tr><td><a href="./model.html">model</a></td><td>List, create, delete models</td></tr><tr><td><a href="./bot.html">bot</a></td><td>List, create, update, delete bots; chat; set model</td></tr><tr><td><a href="./channel.html">channel</a></td><td>List channels; get/set bot channel config; get/set user binding</td></tr><tr><td><a href="./schedule.html">schedule</a></td><td>List, create, update, toggle, delete bot schedules</td></tr><tr><td><a href="./chat.html">chat</a></td><td>Interactive chat with a bot (default command)</td></tr><tr><td><a href="./chat.html#tui">tui</a></td><td>Terminal UI chat session</td></tr><tr><td><a href="./chat.html#version">version</a></td><td>Show CLI version</td></tr></tbody></table><p>Most commands require authentication. Run <code>memoh login</code> first.</p></div></div></main><footer class="VPDocFooter" data-v-c0d172cc data-v-d650fb62><!--[--><!--]--><div class="edit-info" data-v-d650fb62><div class="edit-link" data-v-d650fb62><a class="VPLink link vp-external-link-icon no-icon edit-link-button" href="https://github.com/memohai/Memoh/edit/main/docs/docs/cli/index.md" target="_blank" rel="noreferrer" data-v-d650fb62><!--[--><span class="vpi-square-pen edit-link-icon" data-v-d650fb62></span> Edit on GitHub<!--]--></a></div><div class="last-updated" data-v-d650fb62><p class="VPLastUpdated" data-v-d650fb62 data-v-744e3437>Last Updated: <time datetime="2026-02-15T13:20:22.000Z" data-v-744e3437></time></p></div></div><nav class="prev-next" aria-labelledby="doc-footer-aria-label" data-v-d650fb62><span class="visually-hidden" id="doc-footer-aria-label" data-v-d650fb62>Pager</span><div class="pager" data-v-d650fb62><a class="VPLink link pager-link prev" href="/concepts/conversation-and-history.html" data-v-d650fb62><!--[--><span class="desc" data-v-d650fb62>Previous page</span><span class="title" data-v-d650fb62>Conversation and History</span><!--]--></a></div><div class="pager" data-v-d650fb62><a class="VPLink link pager-link next" href="/cli/auth.html" data-v-d650fb62><!--[--><span class="desc" data-v-d650fb62>Next page</span><span class="title" data-v-d650fb62>authentication</span><!--]--></a></div></nav></footer><!--[--><!--]--></div></div></div><!--[--><!--]--></div></div><footer class="VPFooter has-sidebar" data-v-ecfbf7a9 data-v-cea6e03e><div class="container" data-v-cea6e03e><p class="message" data-v-cea6e03e>Published under AGPLv3</p><p class="copyright" data-v-cea6e03e>Copyright © 2024 Memoh</p></div></footer><!--[--><!--]--></div></div>
|
||||
<script>window.__VP_HASH_MAP__=JSON.parse("{\"blogs_2026-02-16.md\":\"DSFOaZyb\",\"blogs_index.md\":\"liWx4LKT\",\"cli_auth.md\":\"DPl-4zFk\",\"cli_bot.md\":\"B2YOOp9H\",\"cli_channel.md\":\"T-qsPRZ9\",\"cli_chat.md\":\"LOg8zrpn\",\"cli_config.md\":\"C-0Xv0hx\",\"cli_index.md\":\"CTMBSccU\",\"cli_model.md\":\"Bp0XdM9y\",\"cli_provider.md\":\"CEEKGN01\",\"cli_schedule.md\":\"DSG0HQuo\",\"concepts_bot.md\":\"1aZ6YcT_\",\"concepts_channel.md\":\"kmh0thdg\",\"concepts_container.md\":\"CGr24tv7\",\"concepts_conversation-and-history.md\":\"CrsSw6px\",\"concepts_index.md\":\"C-_J0Dnw\",\"concepts_mcp.md\":\"Bi2x7eIb\",\"concepts_memory.md\":\"C_8mQlYI\",\"concepts_provider-and-model.md\":\"D9DoYLAT\",\"concepts_schedule.md\":\"DZlMw6iP\",\"concepts_skills.md\":\"F6zpo0BV\",\"concepts_subagents.md\":\"B1gVZCBU\",\"getting-started.md\":\"B026JaLd\",\"getting-started_create-bot.md\":\"5rz1rkV2\",\"getting-started_platform-telegram.md\":\"DnjlGtcF\",\"getting-started_provider-and-model.md\":\"Ix_AFx48\",\"index.md\":\"BxPQTo9L\",\"installation_config-toml.md\":\"DLEOCXmn\",\"installation_docker.md\":\"xaCmXfCQ\",\"troubleshooting.md\":\"DEVYH0Du\",\"zh_concepts_identity-and-binding.md\":\"BpgZjxhl\",\"zh_concepts_index.md\":\"CFVegv9w\",\"zh_index.md\":\"N8D_wq8q\",\"zh_style_terminology.md\":\"DtBRpWD7\"}");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\":\"/getting-started.md\"},{\"text\":\"Installation\",\"items\":[{\"text\":\"Docker\",\"link\":\"/installation/docker.md\"},{\"text\":\"config.toml\",\"link\":\"/installation/config-toml.md\"}]},{\"text\":\"Getting Started\",\"items\":[{\"text\":\"Provider and Model\",\"link\":\"/getting-started/provider-and-model.md\"},{\"text\":\"Create Bot\",\"link\":\"/getting-started/create-bot.md\"},{\"text\":\"telegram platform\",\"link\":\"/getting-started/platform-telegram.md\"}]},{\"text\":\"Concepts\",\"items\":[{\"text\":\"Overview\",\"link\":\"/concepts/index.md\"},{\"text\":\"Bot\",\"link\":\"/concepts/bot.md\"},{\"text\":\"Provider and Model\",\"link\":\"/concepts/provider-and-model.md\"},{\"text\":\"Schedule\",\"link\":\"/concepts/schedule.md\"},{\"text\":\"Memory\",\"link\":\"/concepts/memory.md\"},{\"text\":\"Channel\",\"link\":\"/concepts/channel.md\"},{\"text\":\"Container\",\"link\":\"/concepts/container.md\"},{\"text\":\"MCP\",\"link\":\"/concepts/mcp.md\"},{\"text\":\"Subagents\",\"link\":\"/concepts/subagents.md\"},{\"text\":\"Skills\",\"link\":\"/concepts/skills.md\"},{\"text\":\"Conversation and History\",\"link\":\"/concepts/conversation-and-history.md\"}]},{\"text\":\"CLI\",\"items\":[{\"text\":\"Overview\",\"link\":\"/cli/index.md\"},{\"text\":\"authentication\",\"link\":\"/cli/auth.md\"},{\"text\":\"config\",\"link\":\"/cli/config.md\"},{\"text\":\"provider\",\"link\":\"/cli/provider.md\"},{\"text\":\"model\",\"link\":\"/cli/model.md\"},{\"text\":\"bot\",\"link\":\"/cli/bot.md\"},{\"text\":\"channel\",\"link\":\"/cli/channel.md\"},{\"text\":\"schedule\",\"link\":\"/cli/schedule.md\"},{\"text\":\"chat\",\"link\":\"/cli/chat.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("{\"blogs_2026-02-16.md\":\"DSFOaZyb\",\"blogs_index.md\":\"liWx4LKT\",\"cli_auth.md\":\"DPl-4zFk\",\"cli_bot.md\":\"B2YOOp9H\",\"cli_channel.md\":\"T-qsPRZ9\",\"cli_chat.md\":\"LOg8zrpn\",\"cli_config.md\":\"C-0Xv0hx\",\"cli_index.md\":\"CTMBSccU\",\"cli_model.md\":\"Bw08RtnA\",\"cli_provider.md\":\"cID16uzP\",\"cli_schedule.md\":\"DSG0HQuo\",\"concepts_bot.md\":\"1aZ6YcT_\",\"concepts_channel.md\":\"kmh0thdg\",\"concepts_container.md\":\"CGr24tv7\",\"concepts_conversation-and-history.md\":\"CrsSw6px\",\"concepts_index.md\":\"C-_J0Dnw\",\"concepts_mcp.md\":\"Bi2x7eIb\",\"concepts_memory.md\":\"C_8mQlYI\",\"concepts_provider-and-model.md\":\"DxvTinZF\",\"concepts_schedule.md\":\"DZlMw6iP\",\"concepts_skills.md\":\"F6zpo0BV\",\"concepts_subagents.md\":\"B1gVZCBU\",\"getting-started.md\":\"BWV4Fvb6\",\"getting-started_create-bot.md\":\"5rz1rkV2\",\"getting-started_platform-telegram.md\":\"DnjlGtcF\",\"getting-started_provider-and-model.md\":\"BA0D0cN8\",\"index.md\":\"BxPQTo9L\",\"installation_config-toml.md\":\"DLEOCXmn\",\"installation_docker.md\":\"xaCmXfCQ\",\"troubleshooting.md\":\"DEVYH0Du\",\"zh_concepts_identity-and-binding.md\":\"BpgZjxhl\",\"zh_concepts_index.md\":\"CFVegv9w\",\"zh_index.md\":\"N8D_wq8q\",\"zh_style_terminology.md\":\"DtBRpWD7\"}");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\":\"/getting-started.md\"},{\"text\":\"Installation\",\"items\":[{\"text\":\"Docker\",\"link\":\"/installation/docker.md\"},{\"text\":\"config.toml\",\"link\":\"/installation/config-toml.md\"}]},{\"text\":\"Getting Started\",\"items\":[{\"text\":\"Provider and Model\",\"link\":\"/getting-started/provider-and-model.md\"},{\"text\":\"Create Bot\",\"link\":\"/getting-started/create-bot.md\"},{\"text\":\"telegram platform\",\"link\":\"/getting-started/platform-telegram.md\"}]},{\"text\":\"Concepts\",\"items\":[{\"text\":\"Overview\",\"link\":\"/concepts/index.md\"},{\"text\":\"Bot\",\"link\":\"/concepts/bot.md\"},{\"text\":\"Provider and Model\",\"link\":\"/concepts/provider-and-model.md\"},{\"text\":\"Schedule\",\"link\":\"/concepts/schedule.md\"},{\"text\":\"Memory\",\"link\":\"/concepts/memory.md\"},{\"text\":\"Channel\",\"link\":\"/concepts/channel.md\"},{\"text\":\"Container\",\"link\":\"/concepts/container.md\"},{\"text\":\"MCP\",\"link\":\"/concepts/mcp.md\"},{\"text\":\"Subagents\",\"link\":\"/concepts/subagents.md\"},{\"text\":\"Skills\",\"link\":\"/concepts/skills.md\"},{\"text\":\"Conversation and History\",\"link\":\"/concepts/conversation-and-history.md\"}]},{\"text\":\"CLI\",\"items\":[{\"text\":\"Overview\",\"link\":\"/cli/index.md\"},{\"text\":\"authentication\",\"link\":\"/cli/auth.md\"},{\"text\":\"config\",\"link\":\"/cli/config.md\"},{\"text\":\"provider\",\"link\":\"/cli/provider.md\"},{\"text\":\"model\",\"link\":\"/cli/model.md\"},{\"text\":\"bot\",\"link\":\"/cli/bot.md\"},{\"text\":\"channel\",\"link\":\"/cli/channel.md\"},{\"text\":\"schedule\",\"link\":\"/cli/schedule.md\"},{\"text\":\"chat\",\"link\":\"/cli/chat.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>
|
||||
</html>
|
||||
+7
-7
File diff suppressed because one or more lines are too long
+7
-7
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
+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
+1
-1
@@ -1 +1 @@
|
||||
{"blogs_2026-02-16.md":"DSFOaZyb","blogs_index.md":"liWx4LKT","cli_auth.md":"DPl-4zFk","cli_bot.md":"B2YOOp9H","cli_channel.md":"T-qsPRZ9","cli_chat.md":"LOg8zrpn","cli_config.md":"C-0Xv0hx","cli_index.md":"CTMBSccU","cli_model.md":"Bp0XdM9y","cli_provider.md":"CEEKGN01","cli_schedule.md":"DSG0HQuo","concepts_bot.md":"1aZ6YcT_","concepts_channel.md":"kmh0thdg","concepts_container.md":"CGr24tv7","concepts_conversation-and-history.md":"CrsSw6px","concepts_index.md":"C-_J0Dnw","concepts_mcp.md":"Bi2x7eIb","concepts_memory.md":"C_8mQlYI","concepts_provider-and-model.md":"D9DoYLAT","concepts_schedule.md":"DZlMw6iP","concepts_skills.md":"F6zpo0BV","concepts_subagents.md":"B1gVZCBU","getting-started.md":"B026JaLd","getting-started_create-bot.md":"5rz1rkV2","getting-started_platform-telegram.md":"DnjlGtcF","getting-started_provider-and-model.md":"Ix_AFx48","index.md":"BxPQTo9L","installation_config-toml.md":"DLEOCXmn","installation_docker.md":"xaCmXfCQ","troubleshooting.md":"DEVYH0Du","zh_concepts_identity-and-binding.md":"BpgZjxhl","zh_concepts_index.md":"CFVegv9w","zh_index.md":"N8D_wq8q","zh_style_terminology.md":"DtBRpWD7"}
|
||||
{"blogs_2026-02-16.md":"DSFOaZyb","blogs_index.md":"liWx4LKT","cli_auth.md":"DPl-4zFk","cli_bot.md":"B2YOOp9H","cli_channel.md":"T-qsPRZ9","cli_chat.md":"LOg8zrpn","cli_config.md":"C-0Xv0hx","cli_index.md":"CTMBSccU","cli_model.md":"Bw08RtnA","cli_provider.md":"cID16uzP","cli_schedule.md":"DSG0HQuo","concepts_bot.md":"1aZ6YcT_","concepts_channel.md":"kmh0thdg","concepts_container.md":"CGr24tv7","concepts_conversation-and-history.md":"CrsSw6px","concepts_index.md":"C-_J0Dnw","concepts_mcp.md":"Bi2x7eIb","concepts_memory.md":"C_8mQlYI","concepts_provider-and-model.md":"DxvTinZF","concepts_schedule.md":"DZlMw6iP","concepts_skills.md":"F6zpo0BV","concepts_subagents.md":"B1gVZCBU","getting-started.md":"BWV4Fvb6","getting-started_create-bot.md":"5rz1rkV2","getting-started_platform-telegram.md":"DnjlGtcF","getting-started_provider-and-model.md":"BA0D0cN8","index.md":"BxPQTo9L","installation_config-toml.md":"DLEOCXmn","installation_docker.md":"xaCmXfCQ","troubleshooting.md":"DEVYH0Du","zh_concepts_identity-and-binding.md":"BpgZjxhl","zh_concepts_index.md":"CFVegv9w","zh_index.md":"N8D_wq8q","zh_style_terminology.md":"DtBRpWD7"}
|
||||
|
||||
+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.BZIg-cXr.css" as="style">
|
||||
<link rel="preload stylesheet" href="/vp-icons.css" as="style">
|
||||
|
||||
<script type="module" src="/assets/app.CYut-U_Q.js"></script>
|
||||
<script type="module" src="/assets/app.B2eKQ01Y.js"></script>
|
||||
<link rel="preload" href="/assets/inter-roman-latin.Di8DUHzh.woff2" as="font" type="font/woff2" crossorigin="">
|
||||
<link rel="modulepreload" href="/assets/chunks/theme.BFKBkNR-.js">
|
||||
<link rel="modulepreload" href="/assets/chunks/theme.QnHcOzUX.js">
|
||||
<link rel="modulepreload" href="/assets/chunks/framework.DEqXEGcv.js">
|
||||
<link rel="modulepreload" href="/assets/installation_docker.md.xaCmXfCQ.lean.js">
|
||||
<link rel="icon" href="/logo.png">
|
||||
@@ -30,7 +30,7 @@
|
||||
<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:#032F62;--shiki-dark:#9ECBFF;"> logs</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> containerd</span><span style="--shiki-light:#6A737D;--shiki-dark:#6A737D;"> # View containerd logs</span></span>
|
||||
<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:#032F62;--shiki-dark:#9ECBFF;"> config</span><span style="--shiki-light:#6A737D;--shiki-dark:#6A737D;"> # Validate configuration</span></span>
|
||||
<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:#032F62;--shiki-dark:#9ECBFF;"> build</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> --no-cache</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> && </span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;">docker</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> compose</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> up</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> -d</span><span style="--shiki-light:#6A737D;--shiki-dark:#6A737D;"> # Full rebuild</span></span></code></pre></div><h2 id="security-warnings" tabindex="-1">Security Warnings <a class="header-anchor" href="#security-warnings" aria-label="Permalink to "Security Warnings""></a></h2><ul><li>The main service runs with privileged container access — only run in trusted environments</li><li>You must change all default passwords and secrets before production use</li><li>Use HTTPS in production</li></ul></div></div></main><footer class="VPDocFooter" data-v-c0d172cc data-v-d650fb62><!--[--><!--]--><div class="edit-info" data-v-d650fb62><div class="edit-link" data-v-d650fb62><a class="VPLink link vp-external-link-icon no-icon edit-link-button" href="https://github.com/memohai/Memoh/edit/main/docs/docs/installation/docker.md" target="_blank" rel="noreferrer" data-v-d650fb62><!--[--><span class="vpi-square-pen edit-link-icon" data-v-d650fb62></span> Edit on GitHub<!--]--></a></div><div class="last-updated" data-v-d650fb62><p class="VPLastUpdated" data-v-d650fb62 data-v-744e3437>Last Updated: <time datetime="2026-02-15T13:20:22.000Z" data-v-744e3437></time></p></div></div><nav class="prev-next" aria-labelledby="doc-footer-aria-label" data-v-d650fb62><span class="visually-hidden" id="doc-footer-aria-label" data-v-d650fb62>Pager</span><div class="pager" data-v-d650fb62><a class="VPLink link pager-link prev" href="/getting-started.html" data-v-d650fb62><!--[--><span class="desc" data-v-d650fb62>Previous page</span><span class="title" data-v-d650fb62>About Memoh</span><!--]--></a></div><div class="pager" data-v-d650fb62><a class="VPLink link pager-link next" href="/installation/config-toml.html" data-v-d650fb62><!--[--><span class="desc" data-v-d650fb62>Next page</span><span class="title" data-v-d650fb62>config.toml</span><!--]--></a></div></nav></footer><!--[--><!--]--></div></div></div><!--[--><!--]--></div></div><footer class="VPFooter has-sidebar" data-v-ecfbf7a9 data-v-cea6e03e><div class="container" data-v-cea6e03e><p class="message" data-v-cea6e03e>Published under AGPLv3</p><p class="copyright" data-v-cea6e03e>Copyright © 2024 Memoh</p></div></footer><!--[--><!--]--></div></div>
|
||||
<script>window.__VP_HASH_MAP__=JSON.parse("{\"blogs_2026-02-16.md\":\"DSFOaZyb\",\"blogs_index.md\":\"liWx4LKT\",\"cli_auth.md\":\"DPl-4zFk\",\"cli_bot.md\":\"B2YOOp9H\",\"cli_channel.md\":\"T-qsPRZ9\",\"cli_chat.md\":\"LOg8zrpn\",\"cli_config.md\":\"C-0Xv0hx\",\"cli_index.md\":\"CTMBSccU\",\"cli_model.md\":\"Bp0XdM9y\",\"cli_provider.md\":\"CEEKGN01\",\"cli_schedule.md\":\"DSG0HQuo\",\"concepts_bot.md\":\"1aZ6YcT_\",\"concepts_channel.md\":\"kmh0thdg\",\"concepts_container.md\":\"CGr24tv7\",\"concepts_conversation-and-history.md\":\"CrsSw6px\",\"concepts_index.md\":\"C-_J0Dnw\",\"concepts_mcp.md\":\"Bi2x7eIb\",\"concepts_memory.md\":\"C_8mQlYI\",\"concepts_provider-and-model.md\":\"D9DoYLAT\",\"concepts_schedule.md\":\"DZlMw6iP\",\"concepts_skills.md\":\"F6zpo0BV\",\"concepts_subagents.md\":\"B1gVZCBU\",\"getting-started.md\":\"B026JaLd\",\"getting-started_create-bot.md\":\"5rz1rkV2\",\"getting-started_platform-telegram.md\":\"DnjlGtcF\",\"getting-started_provider-and-model.md\":\"Ix_AFx48\",\"index.md\":\"BxPQTo9L\",\"installation_config-toml.md\":\"DLEOCXmn\",\"installation_docker.md\":\"xaCmXfCQ\",\"troubleshooting.md\":\"DEVYH0Du\",\"zh_concepts_identity-and-binding.md\":\"BpgZjxhl\",\"zh_concepts_index.md\":\"CFVegv9w\",\"zh_index.md\":\"N8D_wq8q\",\"zh_style_terminology.md\":\"DtBRpWD7\"}");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\":\"/getting-started.md\"},{\"text\":\"Installation\",\"items\":[{\"text\":\"Docker\",\"link\":\"/installation/docker.md\"},{\"text\":\"config.toml\",\"link\":\"/installation/config-toml.md\"}]},{\"text\":\"Getting Started\",\"items\":[{\"text\":\"Provider and Model\",\"link\":\"/getting-started/provider-and-model.md\"},{\"text\":\"Create Bot\",\"link\":\"/getting-started/create-bot.md\"},{\"text\":\"telegram platform\",\"link\":\"/getting-started/platform-telegram.md\"}]},{\"text\":\"Concepts\",\"items\":[{\"text\":\"Overview\",\"link\":\"/concepts/index.md\"},{\"text\":\"Bot\",\"link\":\"/concepts/bot.md\"},{\"text\":\"Provider and Model\",\"link\":\"/concepts/provider-and-model.md\"},{\"text\":\"Schedule\",\"link\":\"/concepts/schedule.md\"},{\"text\":\"Memory\",\"link\":\"/concepts/memory.md\"},{\"text\":\"Channel\",\"link\":\"/concepts/channel.md\"},{\"text\":\"Container\",\"link\":\"/concepts/container.md\"},{\"text\":\"MCP\",\"link\":\"/concepts/mcp.md\"},{\"text\":\"Subagents\",\"link\":\"/concepts/subagents.md\"},{\"text\":\"Skills\",\"link\":\"/concepts/skills.md\"},{\"text\":\"Conversation and History\",\"link\":\"/concepts/conversation-and-history.md\"}]},{\"text\":\"CLI\",\"items\":[{\"text\":\"Overview\",\"link\":\"/cli/index.md\"},{\"text\":\"authentication\",\"link\":\"/cli/auth.md\"},{\"text\":\"config\",\"link\":\"/cli/config.md\"},{\"text\":\"provider\",\"link\":\"/cli/provider.md\"},{\"text\":\"model\",\"link\":\"/cli/model.md\"},{\"text\":\"bot\",\"link\":\"/cli/bot.md\"},{\"text\":\"channel\",\"link\":\"/cli/channel.md\"},{\"text\":\"schedule\",\"link\":\"/cli/schedule.md\"},{\"text\":\"chat\",\"link\":\"/cli/chat.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("{\"blogs_2026-02-16.md\":\"DSFOaZyb\",\"blogs_index.md\":\"liWx4LKT\",\"cli_auth.md\":\"DPl-4zFk\",\"cli_bot.md\":\"B2YOOp9H\",\"cli_channel.md\":\"T-qsPRZ9\",\"cli_chat.md\":\"LOg8zrpn\",\"cli_config.md\":\"C-0Xv0hx\",\"cli_index.md\":\"CTMBSccU\",\"cli_model.md\":\"Bw08RtnA\",\"cli_provider.md\":\"cID16uzP\",\"cli_schedule.md\":\"DSG0HQuo\",\"concepts_bot.md\":\"1aZ6YcT_\",\"concepts_channel.md\":\"kmh0thdg\",\"concepts_container.md\":\"CGr24tv7\",\"concepts_conversation-and-history.md\":\"CrsSw6px\",\"concepts_index.md\":\"C-_J0Dnw\",\"concepts_mcp.md\":\"Bi2x7eIb\",\"concepts_memory.md\":\"C_8mQlYI\",\"concepts_provider-and-model.md\":\"DxvTinZF\",\"concepts_schedule.md\":\"DZlMw6iP\",\"concepts_skills.md\":\"F6zpo0BV\",\"concepts_subagents.md\":\"B1gVZCBU\",\"getting-started.md\":\"BWV4Fvb6\",\"getting-started_create-bot.md\":\"5rz1rkV2\",\"getting-started_platform-telegram.md\":\"DnjlGtcF\",\"getting-started_provider-and-model.md\":\"BA0D0cN8\",\"index.md\":\"BxPQTo9L\",\"installation_config-toml.md\":\"DLEOCXmn\",\"installation_docker.md\":\"xaCmXfCQ\",\"troubleshooting.md\":\"DEVYH0Du\",\"zh_concepts_identity-and-binding.md\":\"BpgZjxhl\",\"zh_concepts_index.md\":\"CFVegv9w\",\"zh_index.md\":\"N8D_wq8q\",\"zh_style_terminology.md\":\"DtBRpWD7\"}");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\":\"/getting-started.md\"},{\"text\":\"Installation\",\"items\":[{\"text\":\"Docker\",\"link\":\"/installation/docker.md\"},{\"text\":\"config.toml\",\"link\":\"/installation/config-toml.md\"}]},{\"text\":\"Getting Started\",\"items\":[{\"text\":\"Provider and Model\",\"link\":\"/getting-started/provider-and-model.md\"},{\"text\":\"Create Bot\",\"link\":\"/getting-started/create-bot.md\"},{\"text\":\"telegram platform\",\"link\":\"/getting-started/platform-telegram.md\"}]},{\"text\":\"Concepts\",\"items\":[{\"text\":\"Overview\",\"link\":\"/concepts/index.md\"},{\"text\":\"Bot\",\"link\":\"/concepts/bot.md\"},{\"text\":\"Provider and Model\",\"link\":\"/concepts/provider-and-model.md\"},{\"text\":\"Schedule\",\"link\":\"/concepts/schedule.md\"},{\"text\":\"Memory\",\"link\":\"/concepts/memory.md\"},{\"text\":\"Channel\",\"link\":\"/concepts/channel.md\"},{\"text\":\"Container\",\"link\":\"/concepts/container.md\"},{\"text\":\"MCP\",\"link\":\"/concepts/mcp.md\"},{\"text\":\"Subagents\",\"link\":\"/concepts/subagents.md\"},{\"text\":\"Skills\",\"link\":\"/concepts/skills.md\"},{\"text\":\"Conversation and History\",\"link\":\"/concepts/conversation-and-history.md\"}]},{\"text\":\"CLI\",\"items\":[{\"text\":\"Overview\",\"link\":\"/cli/index.md\"},{\"text\":\"authentication\",\"link\":\"/cli/auth.md\"},{\"text\":\"config\",\"link\":\"/cli/config.md\"},{\"text\":\"provider\",\"link\":\"/cli/provider.md\"},{\"text\":\"model\",\"link\":\"/cli/model.md\"},{\"text\":\"bot\",\"link\":\"/cli/bot.md\"},{\"text\":\"channel\",\"link\":\"/cli/channel.md\"},{\"text\":\"schedule\",\"link\":\"/cli/schedule.md\"},{\"text\":\"chat\",\"link\":\"/cli/chat.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>
|
||||
</html>
|
||||
@@ -9,9 +9,9 @@
|
||||
<link rel="preload stylesheet" href="/assets/style.BZIg-cXr.css" as="style">
|
||||
<link rel="preload stylesheet" href="/vp-icons.css" as="style">
|
||||
|
||||
<script type="module" src="/assets/app.CYut-U_Q.js"></script>
|
||||
<script type="module" src="/assets/app.B2eKQ01Y.js"></script>
|
||||
<link rel="preload" href="/assets/inter-roman-latin.Di8DUHzh.woff2" as="font" type="font/woff2" crossorigin="">
|
||||
<link rel="modulepreload" href="/assets/chunks/theme.BFKBkNR-.js">
|
||||
<link rel="modulepreload" href="/assets/chunks/theme.QnHcOzUX.js">
|
||||
<link rel="modulepreload" href="/assets/chunks/framework.DEqXEGcv.js">
|
||||
<link rel="modulepreload" href="/assets/troubleshooting.md.DEVYH0Du.lean.js">
|
||||
<link rel="icon" href="/logo.png">
|
||||
@@ -23,7 +23,7 @@
|
||||
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">data_root = </span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;">"/opt/memoh/data"</span></span></code></pre></div><ol start="2"><li>Clean up the stale containerd container (if it exists):</li></ol><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;"> exec</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> memoh-containerd</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> ctr</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> -n</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> default</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> containers</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> rm</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> mcp-</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;"><</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;">bot-i</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">d</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">></span></span></code></pre></div><ol start="3"><li>Restart the server:</li></ol><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:#032F62;--shiki-dark:#9ECBFF;"> restart</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> server</span></span></code></pre></div><blockquote><p><strong>Note</strong>: If you also run the server locally (outside Docker), keep the Docker config (<code>docker/config/config.docker.toml</code>) separate from your local <code>config.toml</code>, and update <code>docker-compose.yml</code> to mount the Docker-specific config instead.</p></blockquote><h2 id="mcp-container-image-update-not-taking-effect-after-rebuild" tabindex="-1">MCP Container: Image update not taking effect after rebuild <a class="header-anchor" href="#mcp-container-image-update-not-taking-effect-after-rebuild" aria-label="Permalink to "MCP Container: Image update not taking effect after rebuild""></a></h2><h3 id="symptom-1" tabindex="-1">Symptom <a class="header-anchor" href="#symptom-1" aria-label="Permalink to "Symptom""></a></h3><p>After updating <code>Dockerfile.containerd</code> (e.g., adding Node.js/Python to the MCP image), rebuilding and restarting the containerd container, MCP tools still fail with errors like:</p><div class="language- vp-adaptive-theme"><button title="Copy Code" class="copy"></button><span class="lang"></span><pre class="shiki shiki-themes github-light github-dark vp-code" tabindex="0"><code><span class="line"><span>exec: "npx": executable file not found in $PATH</span></span></code></pre></div><h3 id="cause-1" tabindex="-1">Cause <a class="header-anchor" href="#cause-1" aria-label="Permalink to "Cause""></a></h3><p>The containerd entrypoint script (<code>containerd-entrypoint.sh</code>) skips image import if the image already exists in containerd's image store:</p><div class="language-sh vp-adaptive-theme"><button title="Copy Code" class="copy"></button><span class="lang">sh</span><pre class="shiki shiki-themes github-light github-dark vp-code" tabindex="0"><code><span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">if</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;"> !</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;"> ctr</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> -n</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> default</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> images</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> check</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> "name==${</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">MCP_IMAGE</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;">}"</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> ...</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">; </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">then</span></span>
|
||||
<span class="line"><span style="--shiki-light:#6A737D;--shiki-dark:#6A737D;"> # import</span></span>
|
||||
<span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">fi</span></span></code></pre></div><p>Since <code>containerd_data</code> is a persistent Docker volume, the old MCP image survives across container restarts. The new image embedded in the rebuilt Docker image is never imported.</p><h3 id="solution-1" tabindex="-1">Solution <a class="header-anchor" href="#solution-1" aria-label="Permalink to "Solution""></a></h3><ol><li>Remove the old MCP image from containerd:</li></ol><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;"> exec</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> memoh-containerd</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> ctr</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> -n</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> default</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> images</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> rm</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> docker.io/library/memoh-mcp:latest</span></span></code></pre></div><ol start="2"><li>Restart the containerd container to trigger re-import:</li></ol><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:#032F62;--shiki-dark:#9ECBFF;"> restart</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> containerd</span></span></code></pre></div><ol start="3"><li>Verify the new image was imported (size should be significantly larger if Node.js/Python were added):</li></ol><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;"> exec</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> memoh-containerd</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> ctr</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> -n</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> default</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> images</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> ls</span></span></code></pre></div><ol start="4"><li>Delete the bot's MCP container and recreate it from the bot detail page so it uses the new image.</li></ol></div></div></main><footer class="VPDocFooter" data-v-c0d172cc data-v-d650fb62><!--[--><!--]--><div class="edit-info" data-v-d650fb62><div class="edit-link" data-v-d650fb62><a class="VPLink link vp-external-link-icon no-icon edit-link-button" href="https://github.com/memohai/Memoh/edit/main/docs/docs/troubleshooting.md" target="_blank" rel="noreferrer" data-v-d650fb62><!--[--><span class="vpi-square-pen edit-link-icon" data-v-d650fb62></span> Edit on GitHub<!--]--></a></div><div class="last-updated" data-v-d650fb62><p class="VPLastUpdated" data-v-d650fb62 data-v-744e3437>Last Updated: <time datetime="2026-02-12T18:15:09.000Z" data-v-744e3437></time></p></div></div><nav class="prev-next" aria-labelledby="doc-footer-aria-label" data-v-d650fb62><span class="visually-hidden" id="doc-footer-aria-label" data-v-d650fb62>Pager</span><div class="pager" data-v-d650fb62><!----></div><div class="pager" data-v-d650fb62><a class="VPLink link pager-link next" href="/index.html" data-v-d650fb62><!--[--><span class="desc" data-v-d650fb62>Next page</span><span class="title" data-v-d650fb62>Overview</span><!--]--></a></div></nav></footer><!--[--><!--]--></div></div></div><!--[--><!--]--></div></div><footer class="VPFooter has-sidebar" data-v-ecfbf7a9 data-v-cea6e03e><div class="container" data-v-cea6e03e><p class="message" data-v-cea6e03e>Published under AGPLv3</p><p class="copyright" data-v-cea6e03e>Copyright © 2024 Memoh</p></div></footer><!--[--><!--]--></div></div>
|
||||
<script>window.__VP_HASH_MAP__=JSON.parse("{\"blogs_2026-02-16.md\":\"DSFOaZyb\",\"blogs_index.md\":\"liWx4LKT\",\"cli_auth.md\":\"DPl-4zFk\",\"cli_bot.md\":\"B2YOOp9H\",\"cli_channel.md\":\"T-qsPRZ9\",\"cli_chat.md\":\"LOg8zrpn\",\"cli_config.md\":\"C-0Xv0hx\",\"cli_index.md\":\"CTMBSccU\",\"cli_model.md\":\"Bp0XdM9y\",\"cli_provider.md\":\"CEEKGN01\",\"cli_schedule.md\":\"DSG0HQuo\",\"concepts_bot.md\":\"1aZ6YcT_\",\"concepts_channel.md\":\"kmh0thdg\",\"concepts_container.md\":\"CGr24tv7\",\"concepts_conversation-and-history.md\":\"CrsSw6px\",\"concepts_index.md\":\"C-_J0Dnw\",\"concepts_mcp.md\":\"Bi2x7eIb\",\"concepts_memory.md\":\"C_8mQlYI\",\"concepts_provider-and-model.md\":\"D9DoYLAT\",\"concepts_schedule.md\":\"DZlMw6iP\",\"concepts_skills.md\":\"F6zpo0BV\",\"concepts_subagents.md\":\"B1gVZCBU\",\"getting-started.md\":\"B026JaLd\",\"getting-started_create-bot.md\":\"5rz1rkV2\",\"getting-started_platform-telegram.md\":\"DnjlGtcF\",\"getting-started_provider-and-model.md\":\"Ix_AFx48\",\"index.md\":\"BxPQTo9L\",\"installation_config-toml.md\":\"DLEOCXmn\",\"installation_docker.md\":\"xaCmXfCQ\",\"troubleshooting.md\":\"DEVYH0Du\",\"zh_concepts_identity-and-binding.md\":\"BpgZjxhl\",\"zh_concepts_index.md\":\"CFVegv9w\",\"zh_index.md\":\"N8D_wq8q\",\"zh_style_terminology.md\":\"DtBRpWD7\"}");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\":\"/getting-started.md\"},{\"text\":\"Installation\",\"items\":[{\"text\":\"Docker\",\"link\":\"/installation/docker.md\"},{\"text\":\"config.toml\",\"link\":\"/installation/config-toml.md\"}]},{\"text\":\"Getting Started\",\"items\":[{\"text\":\"Provider and Model\",\"link\":\"/getting-started/provider-and-model.md\"},{\"text\":\"Create Bot\",\"link\":\"/getting-started/create-bot.md\"},{\"text\":\"telegram platform\",\"link\":\"/getting-started/platform-telegram.md\"}]},{\"text\":\"Concepts\",\"items\":[{\"text\":\"Overview\",\"link\":\"/concepts/index.md\"},{\"text\":\"Bot\",\"link\":\"/concepts/bot.md\"},{\"text\":\"Provider and Model\",\"link\":\"/concepts/provider-and-model.md\"},{\"text\":\"Schedule\",\"link\":\"/concepts/schedule.md\"},{\"text\":\"Memory\",\"link\":\"/concepts/memory.md\"},{\"text\":\"Channel\",\"link\":\"/concepts/channel.md\"},{\"text\":\"Container\",\"link\":\"/concepts/container.md\"},{\"text\":\"MCP\",\"link\":\"/concepts/mcp.md\"},{\"text\":\"Subagents\",\"link\":\"/concepts/subagents.md\"},{\"text\":\"Skills\",\"link\":\"/concepts/skills.md\"},{\"text\":\"Conversation and History\",\"link\":\"/concepts/conversation-and-history.md\"}]},{\"text\":\"CLI\",\"items\":[{\"text\":\"Overview\",\"link\":\"/cli/index.md\"},{\"text\":\"authentication\",\"link\":\"/cli/auth.md\"},{\"text\":\"config\",\"link\":\"/cli/config.md\"},{\"text\":\"provider\",\"link\":\"/cli/provider.md\"},{\"text\":\"model\",\"link\":\"/cli/model.md\"},{\"text\":\"bot\",\"link\":\"/cli/bot.md\"},{\"text\":\"channel\",\"link\":\"/cli/channel.md\"},{\"text\":\"schedule\",\"link\":\"/cli/schedule.md\"},{\"text\":\"chat\",\"link\":\"/cli/chat.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("{\"blogs_2026-02-16.md\":\"DSFOaZyb\",\"blogs_index.md\":\"liWx4LKT\",\"cli_auth.md\":\"DPl-4zFk\",\"cli_bot.md\":\"B2YOOp9H\",\"cli_channel.md\":\"T-qsPRZ9\",\"cli_chat.md\":\"LOg8zrpn\",\"cli_config.md\":\"C-0Xv0hx\",\"cli_index.md\":\"CTMBSccU\",\"cli_model.md\":\"Bw08RtnA\",\"cli_provider.md\":\"cID16uzP\",\"cli_schedule.md\":\"DSG0HQuo\",\"concepts_bot.md\":\"1aZ6YcT_\",\"concepts_channel.md\":\"kmh0thdg\",\"concepts_container.md\":\"CGr24tv7\",\"concepts_conversation-and-history.md\":\"CrsSw6px\",\"concepts_index.md\":\"C-_J0Dnw\",\"concepts_mcp.md\":\"Bi2x7eIb\",\"concepts_memory.md\":\"C_8mQlYI\",\"concepts_provider-and-model.md\":\"DxvTinZF\",\"concepts_schedule.md\":\"DZlMw6iP\",\"concepts_skills.md\":\"F6zpo0BV\",\"concepts_subagents.md\":\"B1gVZCBU\",\"getting-started.md\":\"BWV4Fvb6\",\"getting-started_create-bot.md\":\"5rz1rkV2\",\"getting-started_platform-telegram.md\":\"DnjlGtcF\",\"getting-started_provider-and-model.md\":\"BA0D0cN8\",\"index.md\":\"BxPQTo9L\",\"installation_config-toml.md\":\"DLEOCXmn\",\"installation_docker.md\":\"xaCmXfCQ\",\"troubleshooting.md\":\"DEVYH0Du\",\"zh_concepts_identity-and-binding.md\":\"BpgZjxhl\",\"zh_concepts_index.md\":\"CFVegv9w\",\"zh_index.md\":\"N8D_wq8q\",\"zh_style_terminology.md\":\"DtBRpWD7\"}");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\":\"/getting-started.md\"},{\"text\":\"Installation\",\"items\":[{\"text\":\"Docker\",\"link\":\"/installation/docker.md\"},{\"text\":\"config.toml\",\"link\":\"/installation/config-toml.md\"}]},{\"text\":\"Getting Started\",\"items\":[{\"text\":\"Provider and Model\",\"link\":\"/getting-started/provider-and-model.md\"},{\"text\":\"Create Bot\",\"link\":\"/getting-started/create-bot.md\"},{\"text\":\"telegram platform\",\"link\":\"/getting-started/platform-telegram.md\"}]},{\"text\":\"Concepts\",\"items\":[{\"text\":\"Overview\",\"link\":\"/concepts/index.md\"},{\"text\":\"Bot\",\"link\":\"/concepts/bot.md\"},{\"text\":\"Provider and Model\",\"link\":\"/concepts/provider-and-model.md\"},{\"text\":\"Schedule\",\"link\":\"/concepts/schedule.md\"},{\"text\":\"Memory\",\"link\":\"/concepts/memory.md\"},{\"text\":\"Channel\",\"link\":\"/concepts/channel.md\"},{\"text\":\"Container\",\"link\":\"/concepts/container.md\"},{\"text\":\"MCP\",\"link\":\"/concepts/mcp.md\"},{\"text\":\"Subagents\",\"link\":\"/concepts/subagents.md\"},{\"text\":\"Skills\",\"link\":\"/concepts/skills.md\"},{\"text\":\"Conversation and History\",\"link\":\"/concepts/conversation-and-history.md\"}]},{\"text\":\"CLI\",\"items\":[{\"text\":\"Overview\",\"link\":\"/cli/index.md\"},{\"text\":\"authentication\",\"link\":\"/cli/auth.md\"},{\"text\":\"config\",\"link\":\"/cli/config.md\"},{\"text\":\"provider\",\"link\":\"/cli/provider.md\"},{\"text\":\"model\",\"link\":\"/cli/model.md\"},{\"text\":\"bot\",\"link\":\"/cli/bot.md\"},{\"text\":\"channel\",\"link\":\"/cli/channel.md\"},{\"text\":\"schedule\",\"link\":\"/cli/schedule.md\"},{\"text\":\"chat\",\"link\":\"/cli/chat.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>
|
||||
</html>
|
||||
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