配置文件
AtomCode 的配置采用 TOML 格式,支持多个 provider 并行存在、随时切换。本页讲清每一个字段的含义和常见 provider 的示例配置。
配置文件位置
默认路径:
- macOS / Linux:
~/.atomcode/config.toml - Windows:
%USERPROFILE%\.atomcode\config.toml
也可以通过 --config /path/to/config.toml 指定任意路径。首次运行时,若该文件不存在,欢迎界面会引导你完成初始化。
最小示例
default_provider = "deepseek"
[providers.deepseek]
type = "openai"
api_key = "sk-xxxxxxxxxxxxxxxx"
model = "deepseek-chat"
base_url = "https://api.deepseek.com/v1"
context_window = 64000
这个配置已经可以启动 atomcode 并与 DeepSeek 对话。
顶层字段
| 字段 | 类型 | 说明 |
|---|---|---|
default_provider | string | 启动时默认使用的 provider 名(必须是 [providers.*] 中定义过的 key) |
default_workdir | string? | 默认工作目录。用 /cd 切换目录时自动写回这里,下次启动恢复 |
providers | table | provider 名到 ProviderConfig 的映射 |
ProviderConfig 字段
每一个 [providers.xxx] 表下可用的字段:
| 字段 | 类型 | 必填 | 说明 |
|---|---|---|---|
type | string | 是 | provider 协议类型,目前支持 openai、claude、ollama |
api_key | string? | 视情况 | API Key。ollama 可不填。OAuth 登录的 provider 不含此字段,token 从 ~/.atomcode/auth.toml 自动读取 |
model | string | 是 | 模型名,比如 deepseek-chat、gpt-4o、claude-sonnet-4-6 |
base_url | string? | 否 | API 基地址。openai 类型需要指向实际接口,留空使用 OpenAI 官方 |
context_window | integer | 否 | 模型上下文窗口(tokens),默认 64000。ollama 默认 8000 |
max_tokens | integer? | 否 | 单次响应的最大输出 token 数。留空则使用 context_window / 4 |
system_prompt | string? | 否 | 覆盖默认系统提示。大多数场景不需要 |
user_agent | string? | 否 | 覆盖 HTTP 请求的 User-Agent,当上游接口屏蔽通用 UA 时使用 |
为什么默认 64K 而不是 128K?
即便模型官方声称支持 128K+,其有效注意力窗口通常要小得多,过大上下文反而会触发"迷失在中段"的问题,并且阻止 AtomCode 的上下文压缩策略生效。64K 是经验上最稳的默认值,若你确定模型表现良好,可自行上调。
常见 provider 配置示例
Claude (Anthropic)
[providers.claude]
type = "claude"
api_key = "sk-ant-..."
model = "claude-sonnet-4-6"
context_window = 128000
OpenAI
[providers.openai]
type = "openai"
api_key = "sk-..."
model = "gpt-4o"
context_window = 128000
DeepSeek
[providers.deepseek]
type = "openai"
api_key = "sk-..."
model = "deepseek-chat"
base_url = "https://api.deepseek.com/v1"
context_window = 64000
智谱 GLM
[providers.glm]
type = "openai"
api_key = "..."
model = "glm-4-plus"
base_url = "https://open.bigmodel.cn/api/paas/v4"
context_window = 128000
通义千问 Qwen
[providers.qwen]
type = "openai"
api_key = "sk-..."
model = "qwen-plus"
base_url = "https://dashscope.aliyuncs.com/compatible-mode/v1"
context_window = 128000
SiliconFlow
[providers.siliconflow]
type = "openai"
api_key = "sk-..."
model = "Qwen/Qwen2.5-72B-Instruct"
base_url = "https://api.siliconflow.cn/v1"
Ollama(本地)
[providers.ollama]
type = "ollama"
model = "llama3.2"
base_url = "http://localhost:11434"
context_window = 8000
注意
Ollama 模型 function calling 的兼容性参差不齐,弱一些的本地模型可能无法稳定触发工具调用。建议优先尝试 Qwen2.5 / Llama3.2 的 Instruct 版本。
多 provider 与快速切换
配置文件允许同时存在任意数量的 provider:
default_provider = "claude"
[providers.claude]
type = "claude"
api_key = "sk-ant-..."
model = "claude-sonnet-4-6"
[providers.deepseek]
type = "openai"
api_key = "sk-..."
model = "deepseek-chat"
base_url = "https://api.deepseek.com/v1"
[providers.local]
type = "ollama"
model = "qwen2.5:14b"
base_url = "http://localhost:11434"
在 TUI 中可以用 /provider 在这些条目之间切换,用 /model 只切换当前 provider 下的模型。命令行启动时也支持一次性覆盖:
atomcode --provider deepseek --model deepseek-reasoner
编辑配置的三种方式
- 手动编辑 —— 直接用你喜欢的编辑器打开
~/.atomcode/config.toml。 - TUI 内
/config—— 在 atomcode 内部直接调用默认编辑器打开配置文件。 - TUI 内
/provider—— 交互式地添加、编辑、删除 provider,改动会自动落盘。