ARTICLE DETAIL

资讯详情

深耕商务建站与企业官网运营的一线实战洞察。

OpenCode 开源编码代理:安装通道、目录优先级与 build / plan / general Agent 体系详解

OpenCode 开源编码代理:安装通道、目录优先级与 build / plan / general Agent 体系详解 OpenCode 开源编码代理安装通道、目录优先级与 build / plan / general Agent 体系详解【免费下载链接】opencodeThe open source coding agent.项目地址: https://gitcode.com/GitHub_Trending/openc/opencode本文基于 OpenCode 仓库根目录的丹麦语版 READMEREADME.da.md及其对应的真实实现展开覆盖三条主线OpenCode 的完整安装通道一键脚本与各包管理器、安装脚本的目录优先级与 PATH 处理逻辑、以及内置 build / plan 双 Agent 加 general 子代理的权限模型。读完后你可以独立完成安装与升级、理解二进制落盘位置并能从源码层面解释每个 Agent 的权限边界。1. OpenCode 是什么OpenCode 自称 “The open source AI-kodeagent”开源 AI 编码代理。它的主入口是一个终端 TUI在项目目录中运行opencode命令即可进入交互式编码会话同时项目提供了一个处于 BETA 阶段的桌面应用。本仓库是多包 monorepo核心实现位于 packages/opencode 包中本文涉及的关键证据包括安装脚本install仓库根目录的 bash 脚本Agent 定义packages/opencode/src/agent/agent.tsAgent 行为测试packages/opencode/test/agent/agent.test.ts卸载命令packages/opencode/src/cli/cmd/uninstall.ts2. 安装方式README 提供了“YOLO”式一键安装与各包管理器安装两大类通道以下完整继承原文档内容。2.1 一键安装脚本# YOLO curl -fsSL https://opencode.ai/install | bash仓库根目录的 install 脚本即该类安装器的参考实现。从脚本的usage()帮助文本install#L10-L27可以看到它实际支持的参数参数说明-h, --help显示帮助信息-v, --version version安装指定版本例如1.0.180-b, --binary path从本地二进制安装跳过所有下载与检测逻辑--no-modify-path不修改 shell 配置文件.zshrc、.bashrc 等对应的调用形态为curl -fsSL https://opencode.ai/install | bash -s -- --version 1.0.180 ./install --binary /path/to/opencode脚本内部还有几个值得注意的健壮性设计均为源码可确认事实平台矩阵仅接受linux-x64、linux-arm64、darwin-x64、darwin-arm64、windows-x64五种组合其余直接报错退出install#L103-L110。Rosetta 检测在 Intel 转译运行的 macOSsysctl.proc_translated 1上会自动改用 arm64 二进制。AVX2 baseline 检测x64 平台上若 CPU 不支持 AVX2Linux 查/proc/cpuinfo、macOS 查hw.optional.avx2_0、Windows 通过 PowerShell 调IsProcessorFeaturePresent(40)下载目标会自动追加-baseline后缀。musl 检测Alpine 或ldd --version输出含 musl 的 Linux 会下载-musl变体。版本校验check_version()会先执行已安装的opencode --version若目标版本已安装则直接退出install#L221-L235指定版本时还会先对 release 做 HEAD 请求404 则报 “Release vX not found”。PATH 自动写入脚本按当前 shellfish / zsh / bash / ash / sh选择对应配置文件追加 PATH 语句已有相同内容则跳过在 GitHub Actions 环境中会额外写入$GITHUB_PATHinstall#L362-L444。2.2 包管理器安装npm i -g opencode-ailatest # 或用 bun/pnpm/yarn scoop install opencode # Windows choco install opencode # Windows brew install anomalyco/tap/opencode # macOS 与 Linux推荐始终最新 brew install opencode # macOS 与 Linux官方 brew formula更新频率较低 sudo pacman -S opencode # Arch Linux (Stable) paru -S opencode-bin # Arch Linux (AUR 最新版) mise use -g opencode # 所有操作系统 nix run nixpkgs#opencode # 或 github:anomalyco/opencode 获取最新 dev 分支提示原文档 TIP安装前先移除 0.1.x 之前的旧版本。仓库中的卸载命令 packages/opencode/src/cli/cmd/uninstall.ts 会清理.opencode/bin相关的 PATH 配置行包括 bash 的export PATH、fish 的fish_add_path以及# opencode标记注释可作为移除旧安装的参考实现。2.3 桌面应用BETAOpenCode 也以桌面应用形式发布可从 releases 页或官网下载页获取。各平台安装包命名如下原文档表格平台下载文件macOS (Apple Silicon)opencode-desktop-mac-arm64.dmgmacOS (Intel)opencode-desktop-mac-x64.dmgWindowsopencode-desktop-windows-x64.exeLinux.deb、.rpm或 AppImage包管理器渠道# macOS (Homebrew) brew install --cask opencode-desktop # Windows (Scoop) scoop bucket add extras; scoop install extras/opencode-desktop桌面端源码位于 packages/desktop其主进程在 WSL 场景下还会探测$HOME/.opencode/bin/opencode这一典型安装路径见 packages/desktop/src/main/wsl/runtime.ts与下文安装目录的默认 fallback 相互印证。3. 安装目录的优先级README 指出安装脚本按以下顺序确定安装路径$OPENCODE_INSTALL_DIR—— 自定义安装目录$XDG_BIN_DIR—— 遵循 XDG Base Directory Specification 的目录$HOME/bin—— 标准用户 bin 目录若存在或可创建$HOME/.opencode/bin—— 默认 fallback配合环境变量的用法示例原文档OPENCODE_INSTALL_DIR/usr/local/bin curl -fsSL https://opencode.ai/install | bash XDG_BIN_DIR$HOME/.local/bin curl -fsSL https://opencode.ai/install | bash需要说明的证据边界仓库根目录的 install 脚本当前将安装目录硬编码为$HOME/.opencode/binINSTALL_DIR$HOME/.opencode/bin并mkdir -p。因此上述四级优先级描述的是官方https://opencode.ai/install托管安装器的行为约定而本仓库脚本可确认的是默认落盘位置、PATH 写入逻辑与 GITHUB_PATH 处理。若你在 CI 或受限环境中安装以$HOME/.opencode/bin作为二进制落盘位置做后续引用如桌面端 WSL 探测逻辑是最稳妥的假设。4. Agent 体系build、plan 与 generalREADME 描述了 OpenCode 的两个内置 Agent——可在会话中用Tab键切换——以及一个内部子代理build—— 默认 Agent拥有完整的开发工作权限plan—— 只读 Agent用于分析与代码探索默认拒绝文件编辑执行 bash 命令前会请求许可适合探索陌生代码库或规划改动general—— 面向复杂搜索与多步任务的子代理内部使用可通过在消息中general调用这段描述与源码高度吻合。三个原生 Agent 在 packages/opencode/src/agent/agent.ts 中以mode: primarybuild、plan和mode: subagentgeneral的方式注册其权限由Permission.merge分层合并4.1 build默认 Agentbuild 在默认权限之上放开了两个动作agent.ts#L141-L155question: allow—— 允许 Agent 主动向用户提问plan_enter: allow—— 允许进入 plan 模式默认权限基线agent.ts#L119-L136本身已包含若干安全约束doom_loop: ask、外部目录写入ask、读取*.env/*.env.*需要确认*.env.example除外、question默认deny、plan_enter/plan_exit默认deny。build 之所以“全权限”是相对这些收紧项的放开而非无任何约束。用户配置cfg.permission始终通过Permission.merge叠加在最上层可覆盖上述默认值。4.2 plan写保护 Agentplan Agent 的权限覆盖agent.ts#L156-L181精确对应 README 的“拒绝文件编辑”描述edit: { *: deny }—— 拒绝一切编辑但允许写两个“计划文件”例外路径.opencode/plans/*.md与全局数据目录下的plans/*.md即 plan 模式可以落盘规划文档只是不能改代码task: { general: deny }—— plan 模式下默认禁止调用 general 子代理plan_exit: allow—— 允许退出 plan 模式返回 build。测试用例直接验证了这些行为packages/opencode/test/agent/agent.test.ts 断言 “plan agent denies the general subagent by default”Permission.evaluate(task, general, plan.permission)返回deny并在特定规则集下返回allow。4.3 general多步子代理general 的定义agent.ts#L182-L195描述为 “General-purpose agent for researching complex questions and executing multi-step tasks”其唯一额外收紧项是todowrite: deny子代理不写 TODO 清单。从源码结构看CLI 的 run 命令在执行子任务时默认subagent_type即general见 packages/opencode/src/cli/cmd/run/tool.ts这与 README “通过general在消息中调用” 的说明一致。此外源码中还存在一个未在 README 展开的explore只读搜索子代理agent.ts#L196-L218其权限仅开放 grep / glob / list / read / web 检索等只读工具可作为 plan 模式探索场景的补充参考。5. 贡献与衍生项目命名约定README 最后给出两条社区规范贡献提交 pull request 前应先阅读 CONTRIBUTING.md。衍生项目声明如果你的项目名包含 “opencode”例如 “opencode-dashboard”、“opencode-mobile”但并非 OpenCode 团队开发应在你的 README 中明确注明该项目与 OpenCode 团队无隶属关系。6. 延伸阅读路径主题仓库路径安装脚本含参数、平台检测、PATH 写入installAgent 注册与权限合并packages/opencode/src/agent/agent.tsAgent 权限测试packages/opencode/test/agent/agent.test.ts卸载 / PATH 清理packages/opencode/src/cli/cmd/uninstall.ts桌面端BETA含 WSL 集成packages/desktop贡献规范CONTRIBUTING.md多语言 README 索引README.md【免费下载链接】opencodeThe open source coding agent.项目地址: https://gitcode.com/GitHub_Trending/openc/opencode创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表
PREV
查看更多资讯
NEXT
返回资讯列表