配置
配置
Memo 使用 config.toml 来管理提供商选择、模型配置覆盖和 MCP 服务器。
本页重点介绍每个键的含义以及 Memo 如何在运行时解析模型行为。
配置文件位置#
默认:
~/.memo/config.toml
如果设置了 MEMO_HOME:
- 配置路径变为
$MEMO_HOME/config.toml
Web 认证配置:
- 默认路径为
~/.memo/server.yaml - 可通过
MEMO_SERVER_CONFIG指定自定义路径
配置如何应用#
Memo 运行时使用以下顺序的配置:
- 通过
current_provider选择活跃提供商。 - 读取该提供商的
model。 - 从
model_profiles解析模型配置覆盖。 - 从
context_window策略解析会话上下文窗口。
TUI 中的 /models 切换会为选定的提供商/模型重新运行此解析。
提供商配置#
最小示例
current_provider = "deepseek"
[[providers.deepseek]]
name = "deepseek"
env_api_key = "DEEPSEEK_API_KEY"
model = "deepseek-chat"
base_url = "https://api.deepseek.com"
多个提供商
current_provider = "deepseek"
[[providers.deepseek]]
name = "deepseek"
env_api_key = "DEEPSEEK_API_KEY"
model = "deepseek-chat"
base_url = "https://api.deepseek.com"
[[providers.openai]]
name = "openai"
env_api_key = "OPENAI_API_KEY"
model = "gpt-4.1-mini"
base_url = "https://api.openai.com/v1"
提供商键
current_provider- 新会话的默认提供商名称。
- 必须匹配一个已配置的提供商
name。
providers.<name>.name- 在
/models中显示的提供商标识符。
- 在
providers.<name>.env_api_key- 用作第一优先级 API 密钥查找的环境变量名称。
providers.<name>.model- 发送到上游 API 的模型 ID。
providers.<name>.base_url(可选)- OpenAI 兼容端点。
- 适用于自定义网关或兼容提供商。
模型配置(覆盖)#
Memo 对模型能力使用保守默认值,并通过本地 config.toml 覆盖来控制请求选项:
[model_profiles.gpt-5]
supports_parallel_tool_calls = true
supports_reasoning_content = true
context_window = 272000
# 提供商特定覆盖,键格式:"<provider>:<model>"
[model_profiles."openai:gpt-5"]
supports_parallel_tool_calls = false
支持的字段
supports_parallel_tool_calls- 控制 Memo 是否发送
parallel_tool_calls。
- 控制 Memo 是否发送
supports_reasoning_content- 控制推理内容是否携带在工具调用后续轮次中。
context_window- Memo 运行时使用的会话提示/上下文硬限制。
- 必须是正数。
键格式
[model_profiles.<model>]- 模型级覆盖,适用于所有使用此模型名称的提供商。
[model_profiles."provider:model"]- 提供商特定覆盖,适用于一个提供商 + 模型对。
- 因为键中有
:,所以使用引号。
示例:
[model_profiles.gpt-5]适用于任何使用gpt-5的提供商。[model_profiles."openai:gpt-5"]仅在提供商为openai且模型为gpt-5时适用。
上下文窗口策略#
会话上下文窗口按以下优先级解析:
model_profiles."provider:model".context_windowmodel_profiles."<model>".context_window- 默认
120000
Memo 在启动时应用此设置,并在使用 /models 切换模型时重新应用。
实际示例
[model_profiles.gpt-5]
context_window = 272000
[model_profiles."openai:gpt-5"]
context_window = 128000
结果:
openai:gpt-5->128000- 其他使用
gpt-5的提供商 ->272000 - 任何没有
context_window覆盖的模型 ->120000
MCP 服务器配置#
本地 Stdio MCP
[mcp_servers.local_tools]
command = "npx"
args = ["-y", "@modelcontextprotocol/server-filesystem", "/your/path"]
# 可选
# type = "stdio"
# stderr = "inherit" # 或 "pipe" / "ignore"
# [mcp_servers.local_tools.env]
# FOO = "bar"
远程 Streamable HTTP MCP
[mcp_servers.remote]
type = "streamable_http"
url = "https://your-mcp-server.com/mcp"
bearer_token_env_var = "MCP_TOKEN"
# 可选自定义头部
# http_headers = { "X-Team" = "platform" }
# 或 headers = { "X-Team" = "platform" }
使用 CLI 管理 MCP#
memo mcp list
memo mcp get <name>
memo mcp add <name> -- <command...>
memo mcp add <name> --url <url> --bearer-token-env-var <ENV_VAR>
memo mcp remove <name>
也可使用:
memo mcp help
streamable_http MCP 服务器支持 OAuth 登录/注销:
memo mcp login <name> [--scopes read,write]
memo mcp logout <name>
运行时环境变量#
模型调用必需
<provider.env_api_key>:提供商配置中配置的环境变量名,用作第一优先级的 API 密钥查找。OPENAI_API_KEY:当提供商特定密钥缺失时的回退 API 密钥。DEEPSEEK_API_KEY:当提供商特定密钥和OPENAI_API_KEY都缺失时的回退 API 密钥。
常用可选
MEMO_HOME:覆盖 Memo 主目录。
Skills 发现#
Memo 在启动时自动发现 Agent Skills(SKILL.md)并将可用的 skill 元数据附加到运行时系统提示中。
发现路径
- 项目范围:项目根目录
.<agent>/skills目录(例如:.agents/skills、.claude/skills、.codex/skills) - 用户范围:
$MEMO_HOME/skills(或~/.memo/skills) - 不扫描:Memo 主目录外的
~/.xxx/skills隐藏目录
最小 SKILL.md
---
name: doc-writing
description: Generate and update technical documentation.
---
# Doc Writing
Memo 读取 name + description frontmatter,并将每个发现的 skill 暴露给模型:
- <name>: <description> (file: <absolute-path-to-SKILL.md>)
用户可以通过在提示中提及 $skill-name 来显式调用(例如:$doc-writing)。
默认激活 Skills
可以持久化默认激活 skill 集合:
# 未设置:默认激活所有已发现 skills
# []:默认不激活任何 skill
active_skills = [
"/absolute/path/to/.codex/skills/doc-writing/SKILL.md"
]
active_skills 保存的是 SKILL.md 的绝对路径。
高级工具/运行时开关
MEMO_SHELL_TOOL_TYPE:unified_exec(默认)/shell/shell_command/disabled。MEMO_FS_ALLOWED_ROOTS:文件系统工具额外允许访问的根目录,逗号分隔。MEMO_ENABLE_MEMORY_TOOL=0:禁用get_memory。MEMO_ENABLE_COLLAB_TOOLS=0:禁用子代理工具。MEMO_SUBAGENT_COMMAND:用于生成子代理的命令。MEMO_SUBAGENT_MAX_AGENTS:最大并发运行的子代理数(默认4)。MEMO_TOOL_RESULT_MAX_CHARS:单个工具结果在省略提示前保留的最大字符数。MEMO_SANDBOX_WRITABLE_ROOTS:逗号分隔的绝对路径,附加到本地写入工具的写入沙箱根目录。
MCP 配置认证
<bearer_token_env_var>:如果在 MCP 服务器配置中设置,Memo 会读取此环境变量并为该服务器注入Authorization: Bearer <token>。
注意
SHELL、USER和USERNAME是作为运行时回退读取的系统环境变量;它们不是 Memo 特定的功能开关。