1. MacOS 上从零跑通 DevEco Code 的真实场景
DevEco Code 是华为面向 HarmonyOS 开发场景推出的终端 AI Agent 工具,基于 OpenCode 深度定制,专门针对 ArkTS 语法、声明式 UI、Stage 模型和 Hvigor 构建系统做了优化。它和 DevEco Studio 内置的 CodeGenie 最大的区别在于:CodeGenie 是 Copilot 模式,被动补全代码;DevEco Code 是 Agent 模式,你描述需求,它主动读文件、写代码、跑命令、修 Bug。适合谁?适合已经在 MacOS 上做鸿蒙开发、想用自然语言批量生成 ArkTS 页面和卡片、又不想被 IDE 插件绑死的开发者。
但 MacOS 的坑和 Windows 完全不一样。Homebrew 路径分 Intel 和 Apple Silicon 两套,Node.js 全局安装动不动就 EACCES 权限报错,Shell 从 bash 换成 zsh 后配置文件加载顺序也变了。我见过太多人卡在npm install -g那一步就放弃了。这篇就按“装环境 → 配 Key → 写 settings.json → 验证请求 → 排错 → 卸载”的完整链路走一遍,每一步都给可复制的命令和配置片段。你跟着敲,半小时内能让 DevEco Code 在终端里跑起来并成功发出第一次模型请求。
2. 前置环境:Homebrew、Node.js 与 TaoToken 统一 Key
2.1 先确认你的 Mac 架构
这一步不能跳过,因为后面所有路径都跟它有关。
uname -m # Apple Silicon 输出 arm64 # Intel 输出 x86_64Apple Silicon 的 Homebrew 装在/opt/homebrew/,Intel 装在/usr/local/。本文默认按 Apple Silicon 写,Intel 用户把路径里的/opt/homebrew换成/usr/local即可。
2.2 安装 Xcode Command Line Tools
这是编译原生 npm 模块(比如 node-pty)的前提:
xcode-select --install弹窗点“安装”,等它下完。验证:
xcode-select -p # 期望输出 /Library/Developer/CommandLineTools2.3 安装 Homebrew 并配国内镜像
export HOMEBREW_API_DOMAIN="https://mirrors.tuna.tsinghua.edu.cn/homebrew-bottles/api" export HOMEBREW_BOTTLE_DOMAIN="https://mirrors.tuna.tsinghua.edu.cn/homebrew-bottles" export HOMEBREW_BREW_GIT_REMOTE="https://mirrors.tuna.tsinghua.edu.cn/git/homebrew/brew.git" export HOMEBREW_CORE_GIT_REMOTE="https://mirrors.tuna.tsinghua.edu.cn/git/homebrew/homebrew-core.git" /bin/bash -c "$(curl -fsSL https://mirrors.tuna.tsinghua.edu.cn/git/homebrew/install/raw/HEAD/install.sh)"装完把 Homebrew 写进 PATH:
echo 'eval "$(/opt/homebrew/bin/brew shellenv)"' >> ~/.zprofile eval "$(/opt/homebrew/bin/brew shellenv)" brew --version2.4 用 fnm 装 Node.js 20 LTS
强烈建议用 fnm 而不是 Homebrew 直接装 node,因为 fnm 的全局安装目录在用户目录下,永远不会遇到 EACCES 权限问题。
brew install fnm echo 'eval "$(fnm env --use-on-cd --shell zsh --node-dist-mirror https://npmmirror.com/mirrors/node)"' >> ~/.zshrc source ~/.zshrc fnm install 20 fnm default 20 fnm use 20 node -v # 期望 v20.x.x npm -v # 期望 10.x.x2.5 配置 npm 镜像并拿到 TaoToken Key
npm config set registry https://registry.npmmirror.com npm config get registry接下来是 TaoToken 的部分。TaoToken 提供统一的 Key 和 API 通道,把多个模型供应商收敛到一个入口,你只需要维护一份 Key,不用在 DeepSeek、通义、智谱之间来回切换配置。先去控制台创建 Key:
- 控制台入口:https://taotoken.net/console?utm_source=taotoken_aicg_blog_end&utm_medium=csdn&utm_campaign=rewrite&utm_content=console
- API Keys 管理:https://taotoken.net/api-keys?utm_source=taotoken_aicg_blog_end&utm_medium=csdn&utm_campaign=rewrite&utm_content=api-keys
创建后复制形如sk-xxxxxxxx的 Key,先存到环境变量里,别硬编码进配置文件:
echo 'export TAOTOKEN_API_KEY="sk-你的Key"' >> ~/.zshrc source ~/.zshrc echo $TAOTOKEN_API_KEYTaoToken 的 API 基础地址是https://taotoken.net/api,兼容 OpenAI 的/v1/chat/completions格式,所以任何支持 OpenAI 兼容接口的工具都能直接接。接入文档在这里:https://taotoken.net/doc?utm_source=taotoken_aicg_blog_end&utm_medium=csdn&utm_campaign=rewrite&utm_content=doc
3. 安装 DevEco Code 并写入 settings.json 骨架
3.1 全局安装
npm install -g @deveco/deveco-code deveco --version which deveco如果which deveco输出的是~/.fnm/...或~/Library/Application Support/fnm/...下的路径,说明走的是 fnm 的用户级目录,权限没问题。
3.2 首次启动与目录结构
cd ~/HarmonyOSProjects/MyApp deveco首次启动会自动建目录、跑数据库迁移。核心目录是~/.deveco/:
~/.deveco/ ├── data.db # 对话历史 SQLite ├── ai/ │ ├── config.json # 模型配置(下面重点讲) │ ├── memory.md # 全局记忆 │ └── prompts/ # 自定义提示词 ├── auth/credentials.json └── logs/deveco-code.log3.3 settings.json / config.json 骨架
DevEco Code 的模型配置写在~/.deveco/ai/config.json。下面这份骨架把 TaoToken 作为统一 provider 接进去,你只需要替换 Key 的引用方式。注意:JSON 里不能直接读环境变量,所以要么把 Key 明文写进去(本地个人机器可接受),要么用启动脚本注入。这里给明文版骨架,方便你直接复制:
{ "provider": { "taotoken": { "name": "TaoToken", "api_base": "https://taotoken.net/api", "api_key": "sk-你的TaoTokenKey", "models": { "deepseek-chat": { "tool_call": true, "context_window": 65536, "max_tokens": 8192, "temperature": 0.7 }, "deepseek-coder": { "tool_call": true, "context_window": 65536, "max_tokens": 8192, "temperature": 0.3 }, "qwen-plus": { "tool_call": true, "context_window": 131072, "max_tokens": 8192, "temperature": 0.7 } } } }, "preferences": { "default_model": "deepseek-coder", "auto_compact_threshold": 80, "theme": "dark", "language": "zh-CN" } }字段说明用表格对照更清楚:
| 字段 | 含义 | 建议值 |
|---|---|---|
| api_base | TaoToken 统一入口 | https://taotoken.net/api |
| api_key | 控制台创建的 Key | sk-开头 |
| tool_call | 是否支持函数调用 | Agent 模式必须 true |
| context_window | 上下文窗口 | 按模型实际填 |
| temperature | 生成温度 | 代码任务 0.3,对话 0.7 |
| default_model | 默认模型 | deepseek-coder |
注意:
api_base只写到https://taotoken.net/api,不要自己拼/v1,适配器会按 OpenAI 兼容规范补全路径。写错了会直接 404。
3.4 用 /model 验证配置被读到
启动 deveco 后输入:
/model如果列表里出现taotoken/deepseek-coder、taotoken/qwen-plus,说明 config.json 解析成功。选不中或列表为空,八成是 JSON 语法错误,用下面命令校验:
python3 -m json.tool ~/.deveco/ai/config.json4. 验证请求:发一次真实调用并看返回
4.1 先用 curl 直连 TaoToken 确认 Key 有效
在配 DevEco Code 之前,先用 curl 排除 Key 和网络问题:
curl https://taotoken.net/api/v1/chat/completions \ -H "Authorization: Bearer $TAOTOKEN_API_KEY" \ -H "Content-Type: application/json" \ -d '{ "model": "deepseek-chat", "messages": [{"role": "user", "content": "只回复两个字:通了"}], "stream": false }'期望返回里能看到"content": "通了"之类的字段。如果返回 401,是 Key 错了;返回 404,是路径拼错了;超时,是网络问题,先解决网络再往下走。
4.2 在 DevEco Code 里发第一次请求
cd ~/HarmonyOSProjects/MyApp deveco进入 TUI 后输入:
请读取当前项目的 module.json5,告诉我这个模块注册了哪些 Ability。如果 Agent 能自动读文件并给出正确回答,说明 TaoToken 通道 + 工具调用全部打通。这一步成功,后面生成代码、改文件就都能用了。
4.3 生成一段 ArkTS 验证代码能力
在 pages 目录下新建一个 DemoPage.ets,实现一个带搜索框和列表的页面, 列表数据用 @State 管理,搜索框输入时过滤列表。确认后 DevEco Code 会展示 diff,按提示确认写入。然后切到 DevEco Studio 用 Previewer 看效果。这一步能跑通,说明整条链路(Key → 模型 → 工具 → 文件写入)完全就绪。
5. 本篇常见错排查
5.1 npm install -g 报 EACCES
npm ERR! code EACCES npm ERR! path /opt/homebrew/lib/node_modules/@deveco原因是你用了 Homebrew 装的 node,全局目录归 root。两个解法:一是改用 fnm(推荐,本文就是这么做的),二是改 npm 全局目录到用户空间:
mkdir -p ~/.npm-global npm config set prefix '~/.npm-global' echo 'export PATH=~/.npm-global/bin:$PATH' >> ~/.zshrc source ~/.zshrc5.2 node-gyp 编译失败
gyp ERR! stack Error: `make` failed with exit code: 2基本是 Xcode CLT 没装好或架构不匹配。重装:
sudo rm -rf /Library/Developer/CommandLineTools xcode-select --install再确认终端没跑在 Rosetta 下:
arch # 期望 arm64,不是 x86_645.3 TaoToken 请求 401 / 404
401 是 Key 问题:确认~/.zshrc里的TAOTOKEN_API_KEY和控制台一致,改完记得source ~/.zshrc。404 是路径问题:api_base必须是https://taotoken.net/api,不要多写或少写/v1。改完 config.json 后用python3 -m json.tool校验语法。
5.4 模型列表为空
config.json 里 JSON 尾逗号、中文引号是最常见的坑。用编辑器把引号全换成英文半角,删掉最后一个字段后的逗号,再重启 deveco。
5.5 终端中文乱码
echo 'export LANG=en_US.UTF-8' >> ~/.zshrc echo 'export LC_ALL=en_US.UTF-8' >> ~/.zshrc source ~/.zshrc5.6 彻底卸载与残留清理
想干净移除,按顺序来:
deveco uninstall npm uninstall -g @deveco/deveco-code rm -rf ~/.deveco npm cache clean --force验证:
deveco --version # 期望 command not found ls ~/.deveco # 期望 No such file or directory如果连 Node.js 和 Homebrew 也要卸,再执行fnm uninstall 20、brew uninstall fnm,最后跑 Homebrew 官方卸载脚本。项目里的.deveco-rules.md记忆文件按需删:
find ~/HarmonyOSProjects -name ".deveco-rules.md" -delete6. 后续怎么用:按场景分流
环境跑通后,日常使用分三条线。纯排障和接入配置问题,回到 API Keys 和接入文档对照检查:https://taotoken.net/api-keys?utm_source=taotoken_aicg_blog_end&utm_medium=csdn&utm_campaign=rewrite&utm_content=api-keys 和 https://taotoken.net/doc?utm_source=taotoken_aicg_blog_end&utm_medium=csdn&utm_campaign=rewrite&utm_content=doc 。想快速验证某个模型回答质量、对比不同模型输出,直接用模型对话页面:https://taotoken.net/chat?utm_source=taotoken_aicg_blog_end&utm_medium=csdn&utm_campaign=rewrite&utm_content=chat 。如果你打算长期用 DevEco Code 做编码和 Agent 任务,建议上 Coding Plan,额度和并发更稳:https://taotoken.net/coding-plan?utm_source=taotoken_aicg_blog_end&utm_medium=csdn&utm_campaign=rewrite&utm_content=coding-plan 。
最后给个实用习惯:每个鸿蒙项目根目录放一份.deveco-rules.md,写清模块结构、编码规范、主题色、路由注册位置。DevEco Code 每次启动会读它,生成的代码风格会稳定很多,不用每次在对话里重复交代。这个文件配合 TaoToken 的统一 Key,基本就是 MacOS 上鸿蒙 AI 开发的最小可用闭环了。