ARTICLE DETAIL

资讯详情

深耕郑州网站建设与运营推广的一线实战洞察。

鸿蒙 PC 上跑 AI Agent:Claude Code 与 Codex CLI 部署实战

鸿蒙 PC 上跑 AI Agent:Claude Code 与 Codex CLI 部署实战 1. 鸿蒙 PC 上的 AI Agent 生态现状1.1 为什么要在鸿蒙 PC 上跑 AI Agent鸿蒙 PC 版从正式亮相到现在我一直在真机上折腾各种开发工具链。说实话最开始我对它的定位是能跑就行但用了几个月之后发现这台机器在 AI Agent 场景下的表现比我预期好不少。原因有三点第一鸿蒙的微内核架构在资源调度上确实有优势后台挂一个 Agent 进程再开 IDE内存占用比同配置的 Windows 机器低一截第二鸿蒙原生支持分布式软总线意味着你的 Agent 可以跨设备调用手机、平板甚至 IoT 设备的算力这在多端协同场景下很有想象力第三终端环境是类 Unix 的大部分命令行工具迁移过来只需要重新编译不需要大改。但问题也很明显——生态太新了。很多主流 AI Agent 工具压根没有鸿蒙原生版本官方文档里也找不到安装指引。我踩过的坑包括但不限于Node 版本不兼容导致 Claude Code 装完跑不起来、Codex CLI 的二进制在鸿蒙上缺动态库、某些依赖 Python 的 Agent 框架因为底层库编译问题直接卡死。所以这篇文章的核心目的就是把我实测能跑通的工具、跑不通的原因、以及绕过去的方案全部整理出来让后来的人少走弯路。这篇文章适合三类人看一是手里已经有鸿蒙 PC 或者准备入手的开发者想知道这台机器到底能不能当 AI 开发主力机二是正在做鸿蒙应用开发、想在自己的 App 里集成 AI Agent 能力的工程师三是对 AI Agent 感兴趣、想找一个相对干净的环境来折腾的爱好者。不管你是哪种我都会尽量把每一步写清楚包括我用的具体版本号、遇到的报错信息、以及最终怎么解决的。1.2 当前可用的工具全景速览先给一个全局视角。截至我写这篇文章的时候在鸿蒙 PC 上能比较顺畅跑起来的 AI Agent 相关工具大致可以分成四类类别代表工具鸿蒙 PC 支持情况主要用途终端型 Coding AgentClaude Code、Codex CLI需手动配置基本可用代码生成、终端命令执行本地模型推理LM Studio、Ollama可用性能取决于硬件本地跑模型隐私敏感场景Agent 开发框架LangChain、LangGraph、Spring AI部分可用需调依赖搭建自定义 Agent 工作流包管理与环境Harmonybrew原生适配安装和管理上述工具这个表格里的支持情况是我个人实测的结论不是官方声明。比如 Claude Code官方并没有说支持鸿蒙但它本质是一个 Node.js 应用只要 Node 环境配好就能跑。Codex CLI 稍微麻烦一点因为它是 Rust 编译的二进制需要确认鸿蒙的 glibc 版本和动态链接库是否匹配。LangChain 这类 Python 框架反而最简单因为 Python 的跨平台性最好pip 能装的基本都能跑。注意鸿蒙 PC 目前有两个分支——一个是华为官方的 HarmonyOS PC 版一个是开源鸿蒙OpenHarmony的 PC 移植版。两者的底层虽然同源但软件包管理和系统调用接口有差异。我下面提到的所有操作如果没有特别说明都是在开源鸿蒙 PC 版上验证的。官方版的操作逻辑类似但部分命令可能需要调整。2. 环境准备从零搭建可用的终端环境2.1 系统版本确认与基础依赖安装在装任何 AI Agent 工具之前先把系统底子打好。这一步很多人会跳过结果后面遇到各种莫名其妙的报错。我建议你按顺序执行以下检查第一确认系统版本和架构。打开终端执行uname -a cat /etc/os-release你需要关注两个信息内核版本和 CPU 架构。目前鸿蒙 PC 主要跑在 ARM64比如麒麟系列和 x86_64开源鸿蒙的 PC 移植版两种架构上。这直接决定了你后面下载二进制文件时选哪个版本。我曾经在一个 x86 的鸿蒙虚拟机上装了 ARM 版的 Node结果自然是跑不起来浪费了半小时。第二安装基础编译工具链。鸿蒙 PC 默认可能没有完整的 build-essential需要手动补sudo apt update sudo apt install -y build-essential git curl wget python3 python3-pip如果你用的是开源鸿蒙的包管理器命令可能是ohpm或者hpm具体看你刷的哪个镜像。我用的那个版本是基于 Debian 的所以 apt 还能用。如果你的系统里没有 apt那就需要先通过 Harmonybrew 来装这些基础工具。第三配置 Node.js 环境。这是跑 Claude Code 和大部分 Agent 工具的前提。我强烈建议不要用系统自带的 Node版本太老。用 nvm 来管理curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.7/install.sh | bash source ~/.bashrc nvm install 20 nvm use 20 node -v这里选 Node 20 是有原因的。Claude Code 官方要求 Node 18 以上但我实测 Node 20 的兼容性最好Node 22 在某些鸿蒙的库环境下会有 SSL 相关的问题。装完之后记得把 nvm 的初始化脚本加到.bashrc或者.zshrc里不然每次开新终端都要重新 source。2.2 Harmonybrew 的安装与配置Harmonybrew 是我在鸿蒙 PC 上发现的最实用的包管理工具相当于 macOS 上的 Homebrew。它解决了一个核心痛点很多 AI Agent 工具依赖的底层库比如 openssl、sqlite、ffmpeg在鸿蒙的官方源里要么没有要么版本不对。Harmonybrew 把这些都打包好了一条命令就能装。安装方法很简单/bin/bash -c $(curl -fsSL https://harmonybrew.com/install.sh)装完之后需要把 Harmonybrew 的路径加到环境变量里echo eval $(/opt/harmonybrew/bin/brew shellenv) ~/.bashrc source ~/.bashrc brew --version如果能看到版本号输出说明安装成功。接下来我建议先装几个常用的依赖brew install openssl sqlite3 ffmpeg ripgrepripgrep特别重要因为 Claude Code 内部用 rg 来做代码搜索如果系统里没有它会报错或者降级到很慢的搜索方式。openssl则是很多网络请求库的底层依赖鸿蒙自带的版本有时候缺某些加密算法。实操心得Harmonybrew 的源在国内访问速度还可以但偶尔会抽风。如果安装过程中卡住可以试试换源具体方法是在~/.harmonybrewrc里加上国内镜像地址。不过这个镜像地址经常变建议去 Harmonybrew 的官方社区看最新的。2.3 终端环境的美化与效率工具虽然这一步不是必须的但一个好的终端环境能显著提升你折腾 Agent 的效率。我在鸿蒙 PC 上用的是zshoh-my-zshstarship的组合brew install zsh starship chsh -s $(which zsh) sh -c $(curl -fsSL https://raw.githubusercontent.com/ohmyzsh/ohmyzsh/master/tools/install.sh)然后在.zshrc里加上eval $(starship init zsh)。Starship 的好处是它会自动显示当前目录的 git 状态、Node 版本、Python 虚拟环境等信息你在多个 Agent 项目之间切换的时候不容易搞混。另外强烈建议装一个tmuxbrew install tmux为什么因为跑 AI Agent 的时候经常需要同时开好几个终端窗口——一个跑 Agent 主进程一个看日志一个手动执行命令调试。tmux 可以让你在一个 SSH 会话里管理多个窗格而且即使终端断开Agent 进程也不会被杀掉。我有一次跑一个长任务忘了开 tmux结果网络波动导致 SSH 断连跑了半小时的任务直接没了血的教训。3. Claude Code 在鸿蒙 PC 上的完整部署3.1 安装与首次配置Claude Code 是目前在鸿蒙 PC 上体验最好的终端型 Coding Agent没有之一。它的安装本身不复杂但鸿蒙环境下有几个坑需要提前知道。安装命令npm install -g anthropic-ai/claude-code装完之后执行claude --version如果能看到版本号说明二进制没问题。但第一次运行claude的时候它可能会报错说找不到某些动态库。我遇到的是缺libssl.so.3解决方法是用 Harmonybrew 装 openssl 之后手动建一个软链接sudo ln -s /opt/harmonybrew/lib/libssl.so.3 /usr/lib/libssl.so.3 sudo ln -s /opt/harmonybrew/lib/libcrypto.so.3 /usr/lib/libcrypto.so.3然后重新运行claude应该就能进入交互界面了。首次使用需要登录Claude Code 支持两种认证方式一种是直接登录 Anthropic 账号另一种是用 API Key。如果你在国内直接登录可能会遇到网络问题这时候可以用 API Key 的方式在环境变量里设置export ANTHROPIC_API_KEYyour-api-key-here注意API Key 不要直接写在.bashrc里然后提交到 git。建议用一个单独的.env文件然后加到.gitignore。我见过有人把 Key 推到公开仓库结果被扫到之后一夜之间跑了上千美元的账单。3.2 接入本地模型LM Studio 的配置方法Claude Code 默认是调用 Anthropic 的云端模型但如果你有隐私需求或者想省钱可以把它接到本地跑的模型上。LM Studio 是我在鸿蒙 PC 上测试下来最稳定的本地推理工具它提供了一个 OpenAI 兼容的 API 接口。首先装 LM Studiobrew install --cask lm-studio打开之后在模型市场里下载一个适合你硬件配置的模型。鸿蒙 PC 如果是 16GB 内存建议跑 7B 左右的量化模型比如 Qwen2.5-7B-Instruct 的 Q4 版本。下载完之后在 LM Studio 的 Local Server 标签页里启动服务默认端口是 1234。然后配置 Claude Code 使用这个本地接口。Claude Code 本身不直接支持 OpenAI 格式的 API但可以通过设置ANTHROPIC_BASE_URL来指向一个兼容层。我用的方案是跑一个轻量的代理转换服务npm install -g openai-to-anthropic-proxy openai-to-anthropic-proxy --port 8080 --target http://localhost:1234/v1然后在另一个终端里export ANTHROPIC_BASE_URLhttp://localhost:8080 export ANTHROPIC_API_KEYdummy-key claude这样 Claude Code 就会把请求发到本地的 LM Studio 上。实测下来7B 模型在代码补全和简单重构任务上够用但复杂逻辑推理还是差点意思。如果你有 32GB 内存可以试试 14B 的模型体验会好很多。3.3 VS Code 集成与终端命令执行Claude Code 有一个 VS Code 扩展可以在编辑器里直接调用。在鸿蒙 PC 上装 VS Code 本身就需要一点技巧因为官方没有提供鸿蒙版的安装包。我的做法是用 Harmonybrew 装一个社区维护的版本brew install --cask vscode-oss装完之后在 VS Code 的扩展市场里搜索 Claude Code安装官方扩展。然后在设置里配置claude-code.executablePath指向你刚才装的claude二进制路径。Claude Code 最强大的功能之一是它能直接执行终端命令。比如你让它帮我看看当前目录下哪个文件最大它会自动跑du -sh * | sort -rh | head -5然后把结果解读给你。这个功能在鸿蒙 PC 上完全可用但有一个前提你的终端环境变量要配好不然它执行的命令可能找不到路径。我遇到过一个典型问题Claude Code 执行npm install的时候报错说找不到 npm。原因是它用的 shell 是/bin/sh而我的 nvm 配置只写在了.bashrc里。解决方法是在.profile里也加上 nvm 的初始化脚本因为/bin/sh会读.profile。4. Codex CLI 与其他 Agent 工具的适配4.1 Codex CLI 安装与常见报错处理Codex CLI 是另一个我很常用的终端 Agent它的优势是启动速度快、对系统资源占用低。但它在鸿蒙 PC 上的安装比 Claude Code 麻烦因为它是 Rust 编译的二进制对系统库的版本比较敏感。安装方式有两种。第一种是用 npmnpm install -g openai/codex第二种是直接下载二进制。我推荐第二种因为 npm 装的时候有时候会编译原生模块在鸿蒙上容易失败。去 Codex CLI 的 release 页面下载对应架构的二进制然后chmod x codex sudo mv codex /usr/local/bin/ codex --version如果运行时报GLIBC_2.xx not found说明你的鸿蒙系统 glibc 版本太低。这时候要么升级系统要么用 Harmonybrew 装一个更新的 glibc 然后通过LD_LIBRARY_PATH指定。我用的后者brew install glibc export LD_LIBRARY_PATH/opt/harmonybrew/lib:$LD_LIBRARY_PATH把这个 export 加到.bashrc里不然每次开新终端都要重新设。Codex CLI 的常用命令我整理了一个速查表命令作用使用场景/compact压缩当前对话历史上下文快满的时候/model切换模型需要在不同模型间对比时/resume恢复上次会话意外退出后继续/clear清空对话开始新任务这几个命令在鸿蒙 PC 上都能正常用。我特别喜欢/compact因为鸿蒙 PC 的内存相对有限长时间对话之后上下文会占很多内存compact 一下能释放不少。4.2 基于 Rust 的轻量 Agent 工具尝试除了 Claude Code 和 Codex CLI我还试过几个基于 Rust 的轻量 Agent 工具比如aichat和shell-gpt。这类工具的特点是二进制小、启动快、依赖少在鸿蒙 PC 上跑起来很舒服。以aichat为例brew install aichat aichat --help它支持多种模型后端配置方式是在~/.config/aichat/config.yaml里写model: openai:gpt-4 clients: - type: openai api_key: your-key api_base: https://api.openai.com/v1如果你用本地模型把api_base改成 LM Studio 的地址就行。aichat的好处是它有一个-e参数可以直接执行 shell 命令aichat -e 找出当前目录下所有超过 100MB 的文件它会生成命令并询问你是否执行。这个功能在鸿蒙 PC 上很实用因为鸿蒙的终端命令和标准 Linux 有些差异有时候你记不清某个命令的具体参数让 Agent 帮你生成比查文档快。4.3 Agent 开发框架的依赖调优如果你不只是想用现成的 Agent 工具而是想自己开发 Agent那 LangChain、LangGraph、Spring AI 这些框架在鸿蒙 PC 上的适配就很重要了。Python 系的框架LangChain、LangGraph基本无障碍因为 Python 的跨平台性最好。我实测 LangChain 0.3.x 在鸿蒙 PC 上跑得很稳只需要注意一点某些依赖包比如numpy、pandas在 ARM 架构上需要从源码编译装的时候会比较慢。建议用pip install --prefer-binary来优先使用预编译的 wheel。Java 系的 Spring AI 稍微麻烦一点因为需要 JDK。鸿蒙 PC 上可以装 OpenJDKbrew install openjdk21然后配置JAVA_HOME。Spring AI 的依赖解析本身没问题但如果你用到某些 native 库比如做向量检索的可能需要额外编译。避坑技巧在鸿蒙 PC 上装 Python 包的时候如果遇到error: command gcc failed大概率是缺python3-dev。用sudo apt install python3-dev补上就行。另外建议用venv而不是conda因为 conda 在鸿蒙上的兼容性不如 venv 稳定。5. 实操案例用 Claude Code 在鸿蒙 PC 上开发一个 Django 项目5.1 项目初始化与 Agent 协作流程光说工具怎么装没意思我拿一个真实项目来演示整个流程。需求很简单用 Django 写一个待办事项 API支持增删改查。我全程用 Claude Code 来辅助开发记录下每个环节的实际体验。首先创建项目目录并初始化mkdir todo-api cd todo-api python3 -m venv venv source venv/bin/activate pip install django djangorestframework django-admin startproject todoapi . python manage.py startapp todos然后启动 Claude Codeclaude在交互界面里我输入的第一条指令是帮我配置 Django REST framework创建一个 Todo 模型字段包括 title、completed、created_at然后生成对应的 serializer 和 viewset。Claude Code 会先读取当前目录的文件结构然后生成代码。它修改了settings.py添加rest_framework和todos到INSTALLED_APPS创建了todos/models.py、todos/serializers.py、todos/views.py还更新了todoapi/urls.py注册路由。整个过程大概花了 30 秒比我手动写快很多。但这里有一个坑Claude Code 生成的代码默认用的是django.contrib.auth的用户模型如果你还没有跑migrate它会报错。所以正确的顺序是先生成代码然后手动跑python manage.py makemigrations python manage.py migrate5.2 数据库迁移与接口测试迁移完成之后用 Claude Code 生成测试用例claude 为 todos 应用生成 pytest 测试用例覆盖 CRUD 所有接口它会创建todos/tests.py里面包含用pytest-django写的测试。但你需要先装 pytestpip install pytest pytest-django然后在pytest.ini里配置DJANGO_SETTINGS_MODULE。Claude Code 会自动帮你创建这个文件但有时候它会忘记加--ds参数导致 pytest 找不到 Django 配置。如果遇到这个问题手动在pytest.ini里加上[pytest] DJANGO_SETTINGS_MODULE todoapi.settings python_files tests.py test_*.py *_tests.py跑测试pytest -v我实测下来Claude Code 生成的测试用例大概有 80% 能直接跑通剩下 20% 需要微调主要是断言条件写得太严格或者 URL 路径拼错。但即使这样也省了我至少一半的时间。5.3 性能调优与 Agent 的边界项目跑起来之后我用abApache Bench做了一轮压力测试ab -n 1000 -c 10 http://127.0.0.1:8000/api/todos/结果发现 QPS 只有 200 左右对于一个小 API 来说偏低。我让 Claude Code 分析瓶颈它建议加数据库索引和启用查询缓存。我按照它的建议在completed字段上加了db_indexTrueQPS 提升到了 350 左右。但这里也暴露了 Agent 的边界它给出的优化建议是通用性的没有考虑到鸿蒙 PC 上 SQLite 的写入性能本身就有瓶颈。如果要进一步优化需要换 PostgreSQL但 PostgreSQL 在鸿蒙上的安装又是另一个坑。所以我的体会是Agent 能帮你做 70% 的常规工作但最后 30% 的深度优化还是得靠人。6. 常见问题与排查技巧实录6.1 安装类问题速查报错信息可能原因解决方法GLIBC_2.xx not found系统 glibc 版本低用 Harmonybrew 装 glibc 并设 LD_LIBRARY_PATHnpm: command not foundNode 未安装或 PATH 未配用 nvm 装 Node 20检查 .bashrclibssl.so.3: cannot open缺 openssl 动态库brew install openssl后建软链接Permission denied二进制没有执行权限chmod xConnection refused本地模型服务未启动检查 LM Studio 的 Local Server 是否开启6.2 运行类问题与性能优化Agent 跑起来之后最常见的问题是响应慢。在鸿蒙 PC 上响应慢通常有三个原因一是模型本身太大硬件带不动二是网络请求走了代理延迟高三是系统内存不足频繁 swap。排查方法先用htop看 CPU 和内存占用。如果内存占用超过 80%说明需要换更小的模型或者加内存。如果 CPU 占用高但内存正常可能是模型推理本身的计算量大可以考虑用量化程度更高的模型比如从 Q4 换成 Q2。网络方面如果你用的是云端 API可以在终端里curl -w curl-format.txt -o /dev/null -s https://api.anthropic.com来测延迟。curl-format.txt的内容是time_namelookup: %{time_namelookup}\n time_connect: %{time_connect}\n time_starttransfer: %{time_starttransfer}\n time_total: %{time_total}\n如果time_connect超过 500ms说明网络链路有问题可以考虑换一个 API 端点或者用本地模型。6.3 独家避坑经验分享第一个坑不要在鸿蒙 PC 上同时跑多个 Agent。我有一次同时开了 Claude Code 和 Codex CLI两个都在跑代码生成任务结果内存直接爆了系统卡死。后来我养成了习惯跑重任务之前先free -h看一下可用内存不够就先关掉其他应用。第二个坑鸿蒙的终端默认编码可能不是 UTF-8。我有一次让 Agent 生成包含中文注释的代码结果保存出来全是乱码。解决方法是在.bashrc里加上export LANGen_US.UTF-8 export LC_ALLen_US.UTF-8第三个坑Harmonybrew 装的某些库和系统自带的库版本冲突。比如系统自带的libcurl和 brew 装的libcurl同时存在时某些程序会链接到错误的版本。排查方法是ldd $(which claude)看它实际链接的是哪个路径的库。如果发现链接到了系统路径但版本不对可以用LD_PRELOAD强制指定。第四个坑Claude Code 的/compact命令在鸿蒙上偶尔会卡住。我分析下来是因为它要调用一个外部进程来压缩上下文而那个进程在鸿蒙上的启动速度比较慢。如果卡住超过 10 秒直接 CtrlC 然后重新进就行对话历史不会丢。7. 后续扩展与持续更新计划7.1 值得关注的新工具与方向鸿蒙 PC 的 AI Agent 生态变化很快我目前关注几个方向。一是华为自己在推的盘古大模型和鸿蒙的深度集成如果官方能出一个原生的 Agent 运行时那体验会比现在用第三方工具好很多。二是一些基于 Rust 的新兴 Agent 框架比如rig和swiftide它们的二进制体积小、启动快很适合鸿蒙这种资源受限的环境。三是 MCPModel Context Protocol的普及如果更多工具支持 MCP那在鸿蒙上集成不同 Agent 的成本会大幅降低。我自己的计划是每个月更新一次这篇文章把新测通的工具加进来把失效的方法标注出来。如果你也在鸿蒙 PC 上折腾 AI Agent欢迎交流你踩过的坑和跑通的方案。7.2 给不同阶段读者的建议如果你是刚入手鸿蒙 PC 的新手我的建议是先别急着装一堆工具。先把 Node、Python、Harmonybrew 这三个基础环境配好然后从 Claude Code 开始跑通一个最简单的让 Agent 帮我写一个 Hello World的流程。有了这个正反馈之后再逐步尝试本地模型和自定义 Agent 开发。如果你是有经验的开发者想用鸿蒙 PC 做主力开发机那我的建议是做好心理准备你会遇到很多在 macOS 和 Linux 上不会遇到的问题但解决这些问题的过程本身也是学习。而且鸿蒙的分布式能力确实有独特价值如果你的项目涉及多端协同那这台机器值得投入时间。如果你是在做鸿蒙应用开发想在自己的 App 里集成 AI 能力那建议直接看华为官方的 AI 框架文档第三方 Agent 工具更多是辅助开发的角色不是最终产品的一部分。最后分享一个小技巧在鸿蒙 PC 上跑 Agent 的时候把~/.cache目录挂到一个 tmpfs 上能显著减少磁盘 I/O。具体做法是在/etc/fstab里加一行tmpfs /home/youruser/.cache tmpfs defaults,size2G 0 0然后sudo mount -a。这样 Agent 产生的临时文件都在内存里速度快很多而且重启自动清理。我实测下来Claude Code 的响应速度大概能快 15% 左右。
返回列表