配置运行时
Anda 的运行状态默认保存在 ~/.anda。主配置文件是 ~/.anda/config.yaml,首次启动时会自动创建。可选 MCP 服务配置位于 ~/.anda/mcp.json。
模型 provider
active provider 必须包含 family、model 和 api_base。api_key 可以写在配置文件中,也可以留空并通过环境变量提供。
model:
active: "deepseek-v4-pro"
providers:
- family: anthropic
model: "deepseek-v4-pro"
api_base: "https://api.deepseek.com/anthropic"
api_key: "YOUR_API_KEY"
labels: ["pro", "brain"]
disabled: false
支持的模型密钥环境变量包括:
OPENAI_API_KEY
ANTHROPIC_API_KEY
GEMINI_API_KEY
GOOGLE_API_KEY
DEEPSEEK_API_KEY
MINIMAX_API_KEY
MIMO_API_KEY
MOONSHOT_API_KEY
KIMI_API_KEY
BIGMODEL_API_KEY
GLM_API_KEY
常用顶层配置
| 设置 | 作用 |
|---|---|
addr | 本地 gateway 地址,默认 127.0.0.1:8042。 |
sandbox | 为 true 时,shell 执行会经过 ~/.anda/sandbox。 |
https_proxy | 模型和频道请求使用的代理。 |
model | Agent 和记忆大脑使用的模型 provider。 |
transcription | 语音输入和音频附件转写 provider。 |
tts | 语音播放 provider。 |
channels | Telegram、WeChat、Discord、Lark/飞书等频道配置。 |
语音服务
语音输入需要启用 transcription.enabled,语音输出需要启用 tts.enabled,并分别配置 default_provider 对应的 provider 区块。参见配置示例。
transcription.initial_prompt向 Groq 和 OpenAI Whisper 提供词汇提示;StepFun 使用独立的transcription.stepfun.prompt。- Google STT 通过同步接口接受 WAV/FLAC。Chrome 扩展会把不支持的录音格式转换为 WAV。包含 Base64/JSON 的完整请求不得超过 10 MB,音频不得超过 60 秒。Anda 会拒绝超大请求,以及能从 WAV/FLAC 文件头确定的超时长音频;无法确定时长的文件仍受 Google 限制。更长的音频应使用其他 provider 或缩短录音。
local_whisper.max_audio_bytes独立控制自托管接口的上传大小,不受云端默认上限约束。tts.max_text_length按字符计数,默认 4096;同时遵守 provider 自身限制。Google TTS 每次最多 5000 个 UTF-8 字节,StepFun 每次最多 1000 个字符。语音对话已将回复分成较短的片段。tts.default_format选择 StepFun 的输出格式:mp3、opus、wav或flac。Edge、OpenAI 和 Google 固定输出 MP3。不支持的格式会报错;裸pcm任何客户端都无法播放,因此也会被拒绝,请改用wav。生成附件的后缀始终与实际音频一致。- 如果
tts.default_provider或transcription.default_provider对应的配置缺失或无效,启动时会报出该服务自身的错误;其他无效的服务配置会被跳过并记录警告。 - Edge 需要 PATH 中存在
edge-tts(pip install edge-tts)。tts.edge.binary_path应为edge-tts,不支持edge-playback包装程序。取消或超时会终止合成子进程。 - StepFun ASR 必须收到最终的
transcript.text.done事件。流结束时如果只有部分文本,会返回错误。
未生效的 transcription.max_duration_secs、transcription.transcribe_non_ptt_audio 和 transcription.groq.language_code 已从配置表单和示例移除。旧配置仍可加载,这些字段会被忽略。Groq 的语言提示请使用 transcription.groq.language。
MCP 服务
Anda Bot 可以通过 stdio 子进程或 HTTP endpoint 连接 MCP 服务。把可移植 MCP
配置放到 ~/.anda/mcp.json,然后运行 anda mcp reload(或重启 daemon)。该文件同时支持 mcpServers
和 servers 两种 root key,方便直接粘贴其它 MCP 工具里的配置。
{
"mcpServers": {
"filesystem": {
"type": "stdio",
"command": "npx",
"args": ["-y", "@modelcontextprotocol/server-filesystem", "$ANDA_WORKSPACE"]
},
"remote": {
"type": "http",
"url": "https://mcp.example.com/mcp",
"headers": {
"Authorization": "Bearer ${secret:MCP_REMOTE_TOKEN}"
}
}
}
}
远端 MCP 工具会以 mcp_<server_id>_<remote_tool> 这样的 Anda 工具名出现。配置字符串支持 $VAR 和 ${VAR} 环境变量展开,变量可能未设置时可写 ${VAR:-default},${secret:NAME} 引用密钥(见下文“密钥”一节);ANDA_HOME 和 ANDA_WORKSPACE 是内置变量。stdio 服务的 command 会直接启动,不经过 shell;未配置 cwd 时,会使用第一个 Anda workspace。未配置 type 时,Anda 会根据 command 推断为 stdio,或根据 url 推断为 http。
每个条目单独加载,MCP 不会阻止 daemon 启动:无法使用的条目(引用的环境变量未设置、不支持的 type,如已弃用的 sse、重复的 id)会被跳过,并在 daemon 日志中记录警告,其余服务照常加载。服务在 daemon 启动后于后台连接,较慢的端点或首次 npx -y 下载不会拖慢启动;如需在 daemon 报告就绪前完成工具发现,可为条目设置 "startup": "eager"。stdio 服务与 shell 工具使用相同的扩展 PATH,即使 daemon 作为登录服务运行,也能找到 npx、uvx 和 Homebrew 安装的命令;但登录服务看不到 shell 配置文件中导出的变量,${VAR} 引用的变量需要存在于 daemon 自身的环境中。
条目还可以调整服务的运行方式。timeouts 以秒为单位,每项在 1 到 86400 之间:setup_secs 连接(默认 90)、list_secs 列出工具(30)、request_secs 单个请求(180)、call_secs 整次工具调用(600)。concurrency 决定哪些工具可以同时运行:serial(默认)、read_only_parallel(服务标为只读的工具)或 parallel。limits.output_text_bytes 是智能体从一次结果中得到的文本,在 256 到 1048576 之间(默认 32768)。lifecycle 决定协议版本的协商方式(auto、discover 或 initialize),tasks({"max_wait_secs": 900})让长时间运行的工具返回任务、由 Anda 轮询完成。本地服务默认获得 daemon 的全部环境变量;"inherit_env": false 只给它平台必需的变量(PATH、HOME、TMPDIR 等)和它自己的 env,daemon 环境中的其他密钥不会传给它。resources 和 elicitation 默认开启,设为 false 时分别不再允许智能体和应用列出、读取服务的资源,或不再允许服务在工具运行期间向你请求输入;timeouts.elicitation_secs(默认 300)是服务等待你回答的时间。这些设置由你在 mcp.json、MCP 页面或 anda mcp options 中修改,智能体的工具不能修改。
智能体也可以通过 add_mcp_server 在运行时添加服务。persist: false 只对当前 daemon 生效;persist: true 会把服务保存到 ~/.anda/mcp.json,重启后继续保留。它的服务字段与一条 mcp.json 配置保持一致:type、command、args、env、cwd、url、headers、enabled、include 和 exclude,另外再加 tool 专用的 id 和 persist。manage_mcp_server 让智能体查看各服务的状态和最近错误,并重连某个服务;启用、停用、删除或登出服务前会先请求你的批准。
用 anda mcp 管理服务
anda mcp list # 每个服务的状态、工具数和最近错误
anda mcp get github # 单个服务及其工具
anda mcp add context7 -- npx -y @upstash/context7-mcp
anda mcp add docs --url https://docs.example.com/mcp --header 'Authorization: Bearer ${DOCS_TOKEN}'
anda mcp add-json notes '{"type":"http","url":"https://notes.example.com/mcp"}'
anda mcp login linear --url https://mcp.linear.app/mcp # OAuth 登录;--no-browser 只打印地址
anda mcp tool github delete_repository --hide # 不让智能体使用某个工具
anda mcp secret set DOCS_TOKEN # 另有 secret list、secret unset
anda mcp disable context7 # 另有 enable、remove、reconnect、logout、reload
anda mcp options github --call-timeout 900 # 高级设置;用 `default` 清除某项
anda mcp import --dry-run # 其他应用里配置的服务
anda mcp import github notes=work-notes --from cursor # 导入它们;不写名称则导入全部新服务
anda mcp events github # 服务上报哪些事件
anda mcp triggers # 事件自动化;另有 add、get、update、pause、resume、delete
daemon 运行时,每条命令都经由 daemon 执行,修改立即生效:连接设置变化的服务会重启,只改了连接用不到的内容(例如 Anda 不读取的字段)的服务继续运行。连接失败的服务会在后台重试,间隔从 30 秒逐步退避到 30 分钟,失败原因会保留给 list 显示。daemon 未运行时,add、add-json、remove、enable、disable、tool、approval、external-users、secret、options、import 和 logout 直接修改文件,在 daemon 启动时生效。list 也会列出被跳过的条目及原因,--json 以 JSON 输出结果。修改会保留 Anda 不读取的字段、${VAR} 引用和文件使用的 root key;remove 默认同时删除该服务已保存的登录凭据(--keep-credentials 可保留)。Anda 不监听 mcp.json 的变化:手动编辑后请运行 anda mcp reload。每个服务的来源、最近错误、你审查过的工具定义和说明以及工具被调用的次数保存在 ~/.anda/mcp_state.json。
MCP 页面
Anda 桌面端(侧边栏中的 MCP)和扩展仪表盘(#mcp)管理的是同一组服务。页面列出每个服务及其状态,并显示它的最近错误、使用情况和说明;它的工具,以及每个工具的审批策略、服务提供的提示和自你审查后的变化;登录;它使用的密钥;以及隐藏了密钥的配置条目。“添加”可以填写带请求头的 URL、带环境变量的命令,或粘贴其他应用的配置。它会在运行任何东西之前显示完整命令行,测试连接,并默认把请求头的值、令牌和密钥存为密钥,mcp.json 中只留下 ${secret:...} 引用。需要 OAuth 的服务会在浏览器中打开登录页。
“添加”菜单还可以从其他应用导入服务、浏览 MCP Registry(见下文),“配置”标签页可以修改高级设置。
在 Anda Desktop 中,形如 anda://mcp/install?name=<id>&config=<base64url JSON> 的链接会打开“添加”对话框,填入该配置,并提示你先检查它会运行什么。在你点击添加之前不会保存任何内容,链接也不能修改已有的服务。
从其他应用导入
anda mcp import 和 MCP 页面上的“从其他应用导入”会读取 Claude Desktop、Claude Code(~/.claude.json)、Cursor、VS Code(以及 GitHub Copilot 的 CLI,~/.copilot/mcp-config.json)、Windsurf 和 Codex(~/.codex/config.toml)的 MCP 设置,以及 Claude Code 记录的项目、当前目录(CLI)或 daemon 工作区中的项目文件(.mcp.json、.cursor/mcp.json、.vscode/mcp.json)。这些文件只会被读取,不会被修改。
anda mcp import --dry-run # 每个服务导入后会变成什么
anda mcp import # 导入所有对 Anda 来说是新的服务
anda mcp import github notes=work-notes # 只导入列出的服务;NAME=ID 可以改名
anda mcp import --from cursor --keep-plaintext
每个服务都会显示导入的结果:新服务;名称已被其他服务占用而改名;已在 Anda 中;与前面列出的某个服务相同;或无法导入(例如 SSE 服务)及原因。导入时,条目会被转换成 Anda 的格式:VS Code 的 ${env:NAME}、${userHome} 和 ${workspaceFolder} 会被填入,Windsurf 的 serverUrl、Copilot 的工具列表和 Codex 的表格也能读取。请求头的值、令牌和密钥会转存为密钥,除非传入 --keep-plaintext。VS Code 的 ${input:...} 和 daemon 没有的环境变量会变成待设置的密钥:CLI 和页面会询问它们的值,密钥未设置的服务会等待设置后再启动。导入的本地服务会设为 "inherit_env": false。无法带过来的内容(例如 envFile 或自动批准的工具列表)会在服务下方列出。
MCP Registry
MCP 页面上的“浏览 MCP Registry”会搜索官方 MCP Registry。请求由 daemon 发出,使用它自己的代理设置。发布了远程端点的服务默认以该端点安装,因为这不会在你的电脑上运行任何程序;你也可以改选它的 npm、PyPI、OCI(Docker)或 NuGet 包,作为本地命令运行,并设为 "inherit_env": false。安装表单会询问服务声明的 URL 变量、请求头、环境变量和参数;标为密钥的值会存入密钥库。安装前可以先测试连接。Registry 只说明服务已经发布,并不代表它安全:在你放行之前,它的工具运行前仍会先询问。
密钥
请求头、环境变量、参数或 URL 中的 ${secret:NAME} 会展开为保存在 ~/.anda/mcp_secrets.json 中的密钥,该文件只有你的用户可以读取,因此 mcp.json 中没有令牌,可以直接分享或备份。名称由字母、数字和 _ 组成,一个密钥可以供多个服务使用。
anda mcp secret set GITHUB_PAT # 不回显地读取值
gh auth token | anda mcp secret set GITHUB_PAT
anda mcp secret list # 名称、是否已设置,以及使用它的服务
anda mcp secret unset GITHUB_PAT
CLI、MCP 页面和 API 都不会再显示密钥的值:要修改就重新设置。引用的密钥未设置时,该服务会被跳过,诊断信息会指出缺少哪个密钥,设置后自动启动;更新密钥会重启使用它的服务。删除服务时,只有它使用的密钥也会一并删除,除非传入 --keep-credentials。
审批 MCP 工具调用
和 shell 命令一样,智能体每次调用 MCP 工具都要经过审批检查。检查由服务的 approval 策略决定,可以作用于全部工具,也可以针对单个工具:
| 策略 | 智能体何时先询问 |
|---|---|
auto(默认) | 会话没有完全访问权限时询问。服务标为只读的工具,只要定义没有变化,就直接运行。 |
ask | 总是询问,即使拥有完全访问权限。 |
allow | 只要工具定义没有变化,就从不询问。 |
"github": {
"type": "http",
"url": "https://api.githubcopilot.com/mcp/",
"approval": { "default": "allow", "tools": { "merge_pull_request": "ask" } }
}
anda mcp approval github allow # 该服务的全部工具
anda mcp approval github ask --tool merge_pull_request # 单个工具
anda mcp approval github inherit --tool merge_pull_request # 恢复为服务的策略
策略只在调用工具时读取,修改它不会重连服务。定时任务和目标模式以完全访问权限运行,因此 auto 工具在其中也会直接运行。在无人能应答审批的场合(例如 IM 聊天,或遇到 ask 工具的定时任务),调用不会执行,智能体会得知你可以如何放行。
MCP 工具的审批卡片还提供“始终允许”(终端 UI 中按 a):批准本次调用,并把该工具设为 allow。
Anda 会记住服务第一次提供的每个工具定义。之后如果服务修改了某个工具的描述或参数 schema,或新增了工具,该工具就失去旧定义获得的放行:即使在 allow 下也会询问,直到你批准它的一次调用,或用 anda mcp review github(全部工具)或 anda mcp review github <tool> 确认。anda mcp diff github <tool> 显示具体变化,anda mcp get github 会标出需要审查的工具。服务给模型的说明也以同样方式记录:说明变化后,anda mcp get 会提示,MCP 页面会显示新旧两个版本,直到 anda mcp review github 接受它们。
外部 IM 用户的请求只有在服务允许时("allow_external_users": true,或 anda mcp external-users github on)才能调用它的工具,而且永远不能调用需要审批的工具:外部用户不能代你批准。
为其他智能体编写的技能可以用 mcp__<server>__<tool> 指代 MCP 工具,Anda 会把这些名字解析到同一个工具。mcp__github__* 这样的通配符不会被解析,请逐个列出工具。
事件自动化
支持 MCP Events 扩展的服务会上报事件,例如新的 issue 或新的评论。自动化会在事件到来时按你的指令运行智能体。可以在 MCP 页面服务的“事件”标签页、用 anda mcp triggers add,或让智能体创建;智能体的 create_event_trigger 会先请求你的批准:
anda mcp events github # 事件类型、投递方式和参数
anda mcp triggers add github issue.opened --args '{"repo":"owner/name"}' \
--instructions "给每个新 issue 加标签并写一段摘要" --batch-window 60
anda mcp triggers get 3 # 状态、最近的运行和事件
anda mcp triggers update 3 --instructions "加标签并指派负责人" # 未给出的设置保持不变
anda mcp triggers pause 3 # 另有 resume、delete
- 结果去向。 在 MCP 页面或 CLI 创建的自动化在你的一个对话中回复,之后的运行继续使用该对话;智能体创建的自动化在被要求的地方回复,即那个对话或 IM 聊天。
- 批处理与上限。 在批处理窗口(默认 30 秒,最长一小时)内到达的事件合并为一次运行,每次最多 20 个事件。运行次数将超过每小时上限(
max_runs_per_hour,默认 12)时,自动化会自行暂停,这也能截断反馈回路(例如回复 issue 后又把这条评论作为新事件收到);连续失败五次也会暂停。准备好后再恢复即可。 - 信任。 事件数据来自服务,属于不可信内容:运行时以数据而非指令的形式交给模型,也不会记为你的内容。这些运行不像定时任务那样拥有完全访问权限:只能调用只读工具和设为
allow的工具,需要审批的操作(auto下的写工具、有风险的 shell 命令)一律拒绝。 - 修改与通知。 可以在“事件”标签页或用
anda mcp triggers update修改自动化;修改事件、参数或投递方式会从此刻起重新订阅。对话框还会列出该服务在自动化中会被拒绝的工具。自动化自行暂停、服务需要重新登录或服务终止订阅时,Anda 会在自动化回复的地方发一条简短消息告诉你。 - 记忆。 一次运行带来的内容归属于该服务和事件(
mcp:<server>/<event>),作为外部来源对待,与外部 IM 发送者的话一样,Formation 不会把它记为你的内容。 - 投递。 Anda 按事件类型的支持情况保持推送流或轮询,并记录已到达的位置,所以 daemon 停止期间到达的事件,在服务支持回放时会被补发;已处理过的事件不会重复运行。服务报告有事件丢失时,自动化会显示出来。服务停用、删除或连接失败时自动化会等待,服务需要登录时会提示,服务恢复后两者都会自动继续。
- 经由 dMsg 的 webhook。 有些服务只通过 webhook 投递事件,而 Anda 不监听任何公网端口。在 dMsg 的条目上设置
"events": {"webhook_ingress": true}:对每个这样的自动化,Anda 会在 dMsg 上创建端点、让服务向它投递并在到期前续订,dMsg 再转交它验证过的投递。没有接收方时,自动化会停在needs_ingress状态。
{
"mcpServers": {
"dmsg": { "command": "dmsg", "args": ["mcp"], "events": { "webhook_ingress": true } }
}
}
自动化、收到的事件和运行记录保存在 daemon 的数据库中;端点的签名密钥保存在 MCP 密钥库中。
资源与输入请求
服务可以提供资源:按 URI 访问的文件、记录和其他上下文。智能体用 mcp_resources 列出和读取资源(list 不指定服务时列出所有已连接服务的资源,templates 列出可填写的 URI 模板,read 读取一个 URI);较短的文本直接返回,较长或二进制的内容作为附件返回。在 Anda 桌面端和扩展中,输入框的 + 菜单有“MCP 资源”,会列出已连接服务的资源,并把你选中的那个作为附件加入消息。读取不会改变任何东西,所以它像已审查的只读工具一样遵循服务的审批策略:除非服务设为 ask 或会话要求每次都询问,否则无需审批;外部 IM 用户只能访问允许他们的服务。服务返回的内容和工具结果一样属于不可信内容。
服务也可以在工具运行期间向你请求输入(MCP elicitation)。Anda 会在该调用所属对话的输入框上方显示请求:表单按字段逐张卡片询问,并在你回答时检查(数字范围、邮箱地址、选项之一);要求打开页面的请求会显示带链接的卡片,选择 Open the page 时打开。选择 Decline 会告诉服务你不回答;改为在聊天中回复,或超过服务的等待时间(timeouts.elicitation_secs,默认 300 秒),请求会被取消。在无人能回答的场合(自动化、定时任务或 IM 聊天),请求会立即取消。答案会交给服务,请勿在这类卡片中输入密码、密钥或支付信息。
两者默认开启。在条目上设置 "resources": false 或 "elicitation": false,或运行 anda mcp options <id> --resources off(或 --elicitation off),即可关闭其中一项。
本地目录结构
~/.anda/
config.yaml
mcp.json
mcp_secrets.json
mcp_state.json
anda-daemon.pid
channels/
credentials/ # 本地加密可信用户凭证库
db/
keys/ # 显式导出或 Secret Service fallback key
logs/
bundled-skills/
sandbox/
skills/
skills-manifest.json
skill-backups/
skill-trash/
workspace/
| 目录 | 内容 |
|---|---|
credentials/ | 本地加密凭证库。可信用户私钥会以加密 COSE Key 的形式保存在这里。 |
db/ | 记忆、会话、频道状态、Cron、对象状态等本地数据。 |
keys/ | 显式导出或 Linux Secret Service fallback 的签名密钥文件。操作系统安全凭证库可用时,daemon 和 owner 身份私钥默认保存在其中。 |
logs/ | daemon 和 CLI 日志。 |
channels/ | 频道运行状态。 |
bundled-skills/ | Anda 更新安装的内置 Skills。 |
sandbox/ | 开启 sandbox 时的 shell 隔离目录。 |
skills/ | 用户创建、克隆或编辑的个人运行时 Skills。 |
skills-manifest.json | 在 Dashboard 中停用的 Skills。文件无法解析时会报错并保持原样,不会被重置。 |
skill-backups/ | 每次更新个人 Skill 前保存的 SKILL.md 时间戳副本。 |
skill-trash/ | 删除个人 Skill 时先移动到这里。 |
workspace/ | 文件和 shell 工具默认工作区。 |
隐私边界
Anda 的本地状态、记忆图谱、会话、频道状态、Cron、日志和工作区数据默认都保存在你的机器上。daemon 和 owner 身份私钥默认保存在操作系统安全凭证库,可信用户私钥保存在 ~/.anda/credentials/ 下的本地加密凭证库;显式导出的文件 key 和 Linux Secret Service fallback key 可能位于 ~/.anda/keys/。
在 Linux 上,如果没有可用或已解锁的 Secret Service provider,Anda 可以读取已有的 daemon/owner 私钥文件 ~/.anda/keys/anda_bot.key 和 ~/.anda/keys/user.key,并在终端和日志中显示提醒。两个文件必须完整存在:凭据库不可用时不会生成替代身份。已有安装应解锁 provider 或恢复原始密钥;可信用户私钥仍使用从原始 daemon 身份派生的密钥加密保存。
对于没有操作系统凭据库的全新安装,请先显式运行 anda user init-file-keys,再运行 anda start。该命令创建缺失的私钥文件,不覆盖已有文件;若已有本地数据库/凭据数据,或能读取到 keyring 中的身份,则拒绝初始化。不要用它恢复已有安装。导入的 COSE 密钥必须标明 Ed25519 曲线;算法字段存在时必须为 EdDSA,私钥附带的公钥必须与其匹配。原始 32 字节 Base64 密钥继续受支持。
若要使用 Secret Service,请在用户 D-Bus session 中启动并解锁 provider,例如运行 gnome-keyring-daemon --start --components=secrets,确认 Anda 能拿到 DBUS_SESSION_BUS_ADDRESS,然后重启;KDE 用户也可以解锁 KWallet。已有文件身份会一起迁移到一个 keyring bundle,只有完整保存成功后才删除源文件。
但是,模型 provider 仍可能接收 prompt、工具结果摘要、记忆形成或召回相关请求。请根据自己的隐私需求选择可信 provider、私有 endpoint 或代理策略。
为不同身份、项目或测试准备独立数据时,使用 anda --home /path/to/.anda。
Brain runtime
通过 brain.runtime_config 指定可信 JSON/YAML,路径相对配置目录解析;BRAIN_RUNTIME_CONFIG 优先。重启后在首次加载 Space 前安装绑定。浏览器记忆待办及 TUI /brain inbox、/brain status、/brain formation <id> 保留真实调用者身份。读取不授予执行权限,回答重试须保留相同事件键和正文。Recall 收据只证明交付,Formation 接受不等于完成。learning 与 mib 独立;语义求值、utility、trust、自动学习均需显式原生配置与权限。现有 IM 发送接口不是自动动作适配器;MIB persistent 不宣称 normal/ungated 学习或完整计量。
brain:
runtime_config: null
也可以直接使用符合条件的 ChatGPT Plus / Pro 套餐,无需 API Key:
anda auth login chatgpt
anda auth accounts
anda auth models <profile-id>
anda auth use <profile-id> <model-slug>
anda auth logout <profile-id>
在 Anda 桌面端打开 设置 → Agent 配置 → 模型;在扩展中打开配置页的“模型”分区,或侧边栏设置中的模型区域。点击 Continue with ChatGPT,完成浏览器授权,再选择“使用所选模型”。TUI 中可按 Ctrl+G 登录;CLI/TUI 默认选用账号模型目录中的首个模型,CLI 可通过 --model <slug> 指定。模型未配置时 daemon 只运行经过身份验证的设置服务;选择模型后才启动 Brain、渠道和 cron。三端共享同一 ANDA_HOME 下的账号和刷新状态,凭证加密保存于 chatgpt/accounts.cose,不写入配置文件或浏览器存储。
切换 ChatGPT 套餐模型需要先等待运行中的任务和子代理空闲。ChatGPT 套餐 provider 仅供本地 owner 使用;启用此类 provider 时,其他用户及外部 IM 请求会被拒绝。音视频和转录仍需独立 provider。额度耗尽不会自动切换到收费 API key,可前往 ChatGPT 用量设置 管理。旧版 .codex/auth.json 配置仍兼容,但新接入应使用上述正式登录流程。
无浏览器或 SSH 环境可运行 anda auth login chatgpt --no-browser --port 1455,并将浏览器所在机器的 127.0.0.1:1455 转发到运行 daemon 的机器。会话迁移使用 anda auth export <profile-id> --output /absolute/path/session.json(断开源机器),通过 SSH 传输并保持文件权限为 0600,在目标机器运行 anda auth import /absolute/path/session.json。导入后转移文件会被删除,目标机器保留自己的 host ID,使用 anda auth use <profile-id> <model-slug> 激活模型。不要让两台机器同时刷新同一份会话。