这是什么
multica daemon 是 multica 的本地智能体运行时:它检测本机的 AI CLI(Claude Code、Codex、Gemini、OpenCode、Kimi 等),向 multica 服务端注册为可用 runtime,并在被分配任务时在本地执行。本文介绍如何在 Windows / Linux 上安装预编译版本,并以 Odoo 作为后端(backend_mode = odoo)连接。
backend mode = odoo:daemon 用 Odoo OpenAPI 的
appid/secret换access_token,后续请求带X-GALAXY-ACCESS-TOKEN+X-GALAXY-API-KEY,接口路径前缀为/multica。该模式不需要multica login的登录 token,改用应用凭证鉴权。
下载
两个预编译版本,均由 multica 官方源码(commit c3966b27,15 个 Odoo 集成补丁全部已应用)构建:纯 Go、CGO_ENABLED=0、-trimpath、符号已剥离(-s -w),内置 version=odoo-dev,无外部依赖。
| 平台 | 文件名 | 大小 | SHA256 |
|---|---|---|---|
| Windows x64 | multica-windows-x64.exe |
16.7 MB | e86a0077307b5d26f21811e43e91acac28340347354d68d48b485eafeba40d4b |
| Linux x64 | multica-linux-x64 |
16.1 MB | 3320907bdba6f62cc32174eca4c9bf2803c5d827b6974cb1b03bfd19e361fffd |
下载后核对完整性:
- Windows:
certutil -hashfile multica-windows-x64.exe SHA256 - Linux:
sha256sum multica-linux-x64
二进制随源任务 TASK-1-18 以附件形式提供;若要在本文直接提供下载链接,由网站编辑在发布时把这两个文件挂到本文附件即可。
从源码编译(可选,最可信)
源码开放,可自行复现构建。前提:本机装好 Go(≥ 3.10 对应 go.mod 的 go 1.26;实测用 Go 1.26),multica 源码里 quilt 补丁栈全部 push(共 15 个,最后到 0015-odoo-daemon-pause-interrupt.patch)。纯 Go 无 CGO,Linux 上可直接交叉编译 Windows 版,无需 mingw。
Windows x64:
cd server
CGO_ENABLED=0 GOOS=windows GOARCH=amd64 go build -trimpath \
-ldflags "-s -w -X main.version=odoo-dev -X main.commit=$(git rev-parse --short HEAD) -X main.date=$(date -u +%Y-%m-%dT%H:%M:%SZ)" \
-o bin/multica-windows-x64.exe ./cmd/multica
Linux x64:
cd server
CGO_ENABLED=0 GOOS=linux GOARCH=amd64 go build -trimpath \
-ldflags "-s -w -X main.version=odoo-dev -X main.commit=$(git rev-parse --short HEAD) -X main.date=$(date -u +%Y-%m-%dT%H:%M:%SZ)" \
-o bin/multica-linux-x64 ./cmd/multica
准备 Odoo 侧凭证
连接 Odoo 前,需要在 Odoo 侧准备:
- 一个可访问的 Odoo 实例 URL,如
https://odoo.example.com - 数据库名
db - 一组 OpenAPI 应用凭证:
appid(对应MULTICA_APP_ID)与secret(对应MULTICA_APP_SECRET),在 Odoo 的 OpenAPI / 应用配置里创建
Windows:安装与连接 Odoo
安装
- 把
multica-windows-x64.exe放进某个目录,例如C:\Tools\multica\。 - 把该目录加入
PATH(系统属性 → 环境变量 → Path → 新建)。 - 新开 PowerShell 验证:
multica version(应输出odoo-dev (commit: c3966b27, …))。
配置目录:%USERPROFILE%\.multica\(即 C:\Users\<你>\.multica\);日志:%USERPROFILE%\.multica\daemon.log。
配置(二选一)
方式 A — 环境变量(临时 / 测试): 在启动 daemon 的同一个 PowerShell 窗口里设置(后台 daemon 继承该窗口的环境变量):
$env:MULTICA_BACKEND_MODE = "odoo"
$env:MULTICA_SERVER_URL = "https://odoo.example.com"
$env:MULTICA_APP_ID = "<你的 appid>"
$env:MULTICA_APP_SECRET = "<你的 secret>"
$env:MULTICA_DB_NAME = "<数据库名>"
要永久生效用系统环境变量,或 setx MULTICA_BACKEND_MODE odoo(setx 只对新窗口生效)。
方式 B — config.json(长期): 编辑 C:\Users\<你>\.multica\config.json:
{
"backend_mode": "odoo",
"server_url": "https://odoo.example.com",
"app_id": "<你的 appid>",
"app_secret": "<你的 secret>",
"db_name": "<数据库名>"
}
server_url 也可用命令写入:multica config set server_url https://odoo.example.com。优先级:环境变量 > config.json > 默认值。
启动与验证
multica daemon start # 后台运行(已脱离控制台与 Job Object,关掉 PowerShell 不会被杀)
multica daemon status # 查看 PID / 已检测到的 agent / 监听的工作区
multica daemon logs -f # 实时跟随日志
multica daemon stop # 停止
日志里出现 authenticated (Odoo mode) 即说明 appid/secret 换 token 成功、已连上 Odoo。
连通性自检(可选)
手动调用 daemon 实际使用的 token 接口(GET <odoo_url>/openapi/token):
Invoke-RestMethod "$env:MULTICA_SERVER_URL/openapi/token?grant_type=client_credential&appid=$env:MULTICA_APP_ID&secret=$env:MULTICA_APP_SECRET&db=$env:MULTICA_DB_NAME"
能返回 access_token / api_key 即网络与凭证均正常。
Linux:安装与连接 Odoo
安装
chmod +x multica-linux-x64
sudo mv multica-linux-x64 /usr/local/bin/multica # 或加进 PATH
multica version
配置目录:~/.multica/;日志:~/.multica/daemon.log。
配置
环境变量(当前 shell / systemd unit / ~/.bashrc):
export MULTICA_BACKEND_MODE=odoo
export MULTICA_SERVER_URL=https://odoo.example.com
export MULTICA_APP_ID=<你的 appid>
export MULTICA_APP_SECRET=<你的 secret>
export MULTICA_DB_NAME=<数据库名>
或写进 ~/.multica/config.json(结构同上面 Windows 的 config.json)。优先级同样是:环境变量 > config.json > 默认值。
启动与验证
multica daemon start
multica daemon status
multica daemon logs -f
multica daemon stop
日志出现 authenticated (Odoo mode) 即连通成功。
提示: daemon 启动顺序是
starting daemon→daemon config resolved→resolveAuth()(Odoo 模式下打/openapi/token)→authenticated (Odoo mode)。daemon_id是本地持久化的 ID,有它不代表鉴权通过——以authenticated (Odoo mode)这一行作为成功标志。
关于杀毒软件误报(Windows)
在 Windows 上,从网络下载的未签名 exe 被 Defender / 各家杀软误报成木马是非常普遍的现象。本二进制是纯 go build 产物,没有加壳、没有释放器;被误报的常见原因:
- 未签名 + 带网络标记(Mark of the Web):未签名下载件会触发更激进的 SmartScreen / 启发式检查。
- 行为启发式(
!ml机器学习):报错名带!ml(如Trojan:Win32/Wacatac.B!ml)即机器学习判的、非命中具体特征码,是误报的典型标志。daemon 的正常行为(拉起子进程 claude/codex、向 Odoo 轮询、读写工作区、自更新)和木马"释放器 / C2"行为很像,易被误判。 - Go 二进制结构:Go 运行时与嵌入数据段有时会撞上弱杀软的通用特征。
处置建议(按推荐顺序):① 自行从源码编译(本地编译产物无网络标记、通常不被拦,且源码可见最可信);② 提交误报复核 https://www.microsoft.com/wdsi/filesubmission;③ 确认来源可信后在 Defender 加排除项;④ 长期给 exe 做代码签名(需证书)。
安装一个 AI CLI
daemon 需要至少检测到一个本地 AI CLI 并加入 PATH,才会在被分配任务时执行。支持自动检测:claude、codex、copilot、gemini、opencode、kimi、qwen 等(任选其一)。Windows 下推荐 Claude Code 或 Codex;Linux 下按各 CLI 官方文档安装即可。multica daemon status 可查看已检测到的 agent 列表。