# SF 快速开始 SF 是一个 AI 编程代理,负责规划、执行、验证和交付,让你可以把注意力放在“要构建什么”上。本指南会带你完成 macOS、Windows 和 Linux 的安装,并启动你的第一个会话。 --- ## 前置条件 | 要求 | 最低版本 | 推荐版本 | |------|----------|----------| | **[Node.js](https://nodejs.org/)** | 24.0.0 | 24 LTS | | **[Git](https://git-scm.com/)** | 2.20+ | 最新版 | | **LLM API key** | 任意受支持提供商 | Anthropic(Claude) | 如果你还没有安装 Node.js 或 Git,请按下面对应操作系统的步骤进行。 --- ## 按操作系统安装 ### macOS > **下载链接:** [Node.js](https://nodejs.org/) | [Git](https://git-scm.com/download/mac) | [Homebrew](https://brew.sh/) **第 1 步:安装 Homebrew**(如果已安装可跳过): ```bash /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)" ``` **第 2 步:安装 Node.js 和 Git:** ```bash brew install node git ``` **第 3 步:验证依赖已安装:** ```bash node --version # 应输出 v22.x 或更高 git --version # 应输出 2.20+ ``` **第 4 步:安装 SF:** ```bash npm install -g sf-run ``` **第 5 步:设置你的 LLM provider:** ```bash # 选项 A:设置环境变量(推荐 Anthropic) export ANTHROPIC_API_KEY="sk-ant-..." # 选项 B:使用内置配置向导 sf config ``` 如果想永久保存这个 key,把 export 语句写入 `~/.zshrc`: ```bash echo 'export ANTHROPIC_API_KEY="sk-ant-..."' >> ~/.zshrc source ~/.zshrc ``` 所有 20+ provider 的完整配置方式请见 [提供商设置指南](./providers.md)。 **第 6 步:启动 SF:** ```bash cd ~/my-project # 进入任意项目目录 sf # 启动一个会话 ``` **第 7 步:确认一切正常:** ```bash sf --version # 输出已安装版本 ``` 进入会话后,输入 `/model` 以确认你的 LLM 已成功连接。 > **Apple Silicon PATH 修复:** 如果安装后找不到 `sf`,可能是 npm 的全局 bin 目录没有加入 PATH: > ```bash > echo 'export PATH="$(npm prefix -g)/bin:$PATH"' >> ~/.zshrc > source ~/.zshrc > ``` > **oh-my-zsh 冲突:** oh-my-zsh 的 git 插件定义了 `alias sf='git svn dcommit'`。可在 `~/.zshrc` 中加入 `unalias sf 2>/dev/null`,或者改用 `sf-cli`。 --- ### Windows > **下载链接:** [Node.js](https://nodejs.org/) | [Git for Windows](https://git-scm.com/download/win) | [Windows Terminal](https://aka.ms/terminal) #### 选项 A:使用 winget(推荐 Windows 10/11) **第 1 步:安装 Node.js 和 Git:** ```powershell winget install OpenJS.NodeJS.LTS winget install Git.Git ``` **第 2 步:重启终端**(关闭并重新打开 PowerShell 或 Windows Terminal)。 **第 3 步:验证依赖已安装:** ```powershell node --version # 应输出 v22.x 或更高 git --version # 应输出 2.20+ ``` **第 4 步:安装 SF:** ```powershell npm install -g sf-run ``` **第 5 步:设置你的 LLM provider:** ```powershell # 选项 A:设置环境变量(仅当前会话) $env:ANTHROPIC_API_KEY = "sk-ant-..." # 选项 B:使用内置配置向导 sf config ``` 如果要永久保存该 key,可在系统设置的环境变量中添加,或者执行: ```powershell [System.Environment]::SetEnvironmentVariable("ANTHROPIC_API_KEY", "sk-ant-...", "User") ``` 所有 20+ provider 的完整配置方式请见 [提供商设置指南](./providers.md)。 **第 6 步:启动 SF:** ```powershell cd C:\Users\you\my-project # 进入任意项目目录 sf # 启动一个会话 ``` **第 7 步:确认一切正常:** ```powershell sf --version # 输出已安装版本 ``` 进入会话后,输入 `/model` 以确认你的 LLM 已成功连接。 #### 选项 B:手动安装 1. 下载并安装 [Node.js LTS](https://nodejs.org/),安装时勾选 **“Add to PATH”** 2. 下载并安装 [Git for Windows](https://git-scm.com/download/win),使用默认选项 3. 打开一个**新的**终端,然后继续执行上面的第 3-7 步 > **Windows 提示:** > - 建议使用 **Windows Terminal** 或 **PowerShell**,体验最佳。Command Prompt 也能用,但颜色支持较弱。 > - 如果 `sf` 无法识别,先重启终端。Windows 需要新开终端才能读取更新后的 PATH。 > - **WSL2** 也可用,安装 WSL 后,在发行版内部按 Linux 说明继续。 --- ### Linux > **下载链接:** [Node.js](https://nodejs.org/) | [Git](https://git-scm.com/download/linux) | [nvm](https://github.com/nvm-sh/nvm) 先确认你的发行版,然后按对应步骤安装。 #### Ubuntu / Debian **第 1 步:安装 Node.js 和 Git:** ```bash curl -fsSL https://deb.nodesource.com/setup_24.x | sudo -E bash - sudo apt-get install -y nodejs git ``` #### Fedora / RHEL / CentOS **第 1 步:安装 Node.js 和 Git:** ```bash curl -fsSL https://rpm.nodesource.com/setup_24.x | sudo bash - sudo dnf install -y nodejs git ``` #### Arch Linux **第 1 步:安装 Node.js 和 Git:** ```bash sudo pacman -S nodejs npm git ``` #### 使用 nvm(任意发行版) **第 1 步:先安装 nvm,再安装 Node.js:** ```bash curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.40.0/install.sh | bash source ~/.bashrc # 或 ~/.zshrc nvm install 24 nvm use 24 ``` #### 所有发行版:第 2-7 步 **第 2 步:验证依赖已安装:** ```bash node --version # 应输出 v22.x 或更高 git --version # 应输出 2.20+ ``` **第 3 步:安装 SF:** ```bash npm install -g sf-run ``` **第 4 步:设置你的 LLM provider:** ```bash # 选项 A:设置环境变量(推荐 Anthropic) export ANTHROPIC_API_KEY="sk-ant-..." # 选项 B:使用内置配置向导 sf config ``` 如果想永久保存这个 key,把 export 语句写到 `~/.bashrc`(或 `~/.zshrc`)中: ```bash echo 'export ANTHROPIC_API_KEY="sk-ant-..."' >> ~/.bashrc source ~/.bashrc ``` 所有 20+ provider 的完整配置方式请见 [提供商设置指南](./providers.md)。 **第 5 步:启动 SF:** ```bash cd ~/my-project # 进入任意项目目录 sf # 启动一个会话 ``` **第 6 步:确认一切正常:** ```bash sf --version # 输出已安装版本 ``` 进入会话后,输入 `/model` 以确认你的 LLM 已成功连接。 > **`npm install -g` 遇到权限错误?** 不要用 `sudo npm`。应改为修复 npm 的全局目录: > ```bash > mkdir -p ~/.npm-global > npm config set prefix '~/.npm-global' > echo 'export PATH="$HOME/.npm-global/bin:$PATH"' >> ~/.bashrc > source ~/.bashrc > npm install -g sf-run > ``` --- ### Docker(任意操作系统) > **下载链接:** [Docker Desktop](https://www.docker.com/products/docker-desktop/) 如果你不想在宿主机安装 Node.js,可以在隔离沙箱中运行 SF。 **第 1 步:安装 Docker Desktop**(要求 4.58+)。 **第 2 步:克隆 SF 仓库:** ```bash git clone https://github.com/singularity-forge/sf-run.git cd sf-2/docker ``` **第 3 步:创建并进入沙箱:** ```bash docker sandbox create --template . --name sf-sandbox docker sandbox exec -it sf-sandbox bash ``` **第 4 步:设置 API key 并运行 SF:** ```bash export ANTHROPIC_API_KEY="sk-ant-..." sf auto "implement the feature described in issue #42" ``` 完整的配置、资源限制和 compose 文件请见 [Docker Sandbox 文档](../../../docker/README.md)。 --- ## 安装之后 ### 选择模型 完成 provider 设置后,SF 会自动选择一个默认模型。你可以在会话中随时切换: ``` /model ``` 也可以在偏好设置中按阶段配置模型,详见 [配置](./configuration.md)。 --- ## 两种工作方式 ### 步骤模式 — `/sf` 在会话内输入 `/sf`。SF 会一次执行一个工作单元,并在每一步之间暂停,通过向导展示刚完成了什么、下一步是什么。 - **没有 `.sf/` 目录**:启动讨论流程,先收集你的项目愿景 - **已有 milestone,但没有 roadmap**:讨论或研究该 milestone - **roadmap 已存在,仍有待完成的 slices**:规划下一个 slice 或执行一个 task - **进行到一半的 task**:从上次停下的地方继续 步骤模式会让你始终留在回路中,在每一步之间查看和确认输出。 ### 自动模式 — `/sf auto` 输入 `/sf auto` 后就可以离开。SF 会自主完成 research、planning、execution、verification、commit,并持续推进每个 slice,直到 milestone 完成。 ``` /sf auto ``` 完整细节请见 [自动模式](./auto-mode.md)。 --- ## 推荐工作流:两个终端 一个终端跑自动模式,另一个终端负责引导和干预。 **终端 1:让它构建** ```bash sf /sf auto ``` **终端 2:在它工作时进行引导** ```bash sf /sf discuss # 讨论架构决策 /sf status # 查看进度 /sf queue # 排队下一个 milestone ``` 两个终端都会读写同一套 `.sf/` 文件。你在终端 2 里做出的决策,会在下一个阶段边界被自动拾取。 --- ## SF 如何组织工作 ``` Milestone → 一个可交付版本(4-10 个 slice) Slice → 一个可演示的垂直能力(1-7 个 task) Task → 一个适合单个上下文窗口的工作单元 ``` 铁律是:**一个 task 必须能装进一个上下文窗口。** 装不下,就说明它应该拆成两个 task。 所有状态都保存在 `.sf/` 中: ``` .sf/ PROJECT.md — 项目当前是什么 REQUIREMENTS.md — 需求契约 DECISIONS.md — 追加式架构决策记录 KNOWLEDGE.md — 跨会话规则与模式 STATE.md — 一眼可见的状态摘要 milestones/ M001/ M001-ROADMAP.md — 带依赖关系的 slice 计划 slices/ S01/ S01-PLAN.md — task 拆解 S01-SUMMARY.md — 实际发生了什么 ``` --- ## VS Code 扩展 SF 也提供 VS Code 扩展。你可以从扩展市场安装(publisher: FluxLabs),或者在 VS Code 扩展面板中直接搜索 “SF”: - **`@sf` 聊天参与者**:在 VS Code Chat 中直接与 agent 对话 - **侧边栏仪表板**:显示连接状态、模型信息、Token 使用量 - **完整命令面板**:启动 / 停止 agent、切换模型、导出会话 CLI(`sf-run`)需要先安装好,扩展会通过 RPC 与其连接。 --- ## Web 界面 SF 也提供一个基于浏览器的可视化项目管理界面: ```bash sf --web ``` 详见 [Web 界面](./web-interface.md)。 --- ## 恢复会话 ```bash sf --continue # 或 sf -c ``` 会恢复当前目录最近一次会话。 浏览所有保存过的会话: ```bash sf sessions ``` --- ## 更新 SF SF 每 24 小时检查一次更新,并在启动时提示。你也可以手动更新: ```bash npm update -g sf-run ``` 或者在会话中执行: ``` /sf update ``` --- ## 快速排障 | 问题 | 解决方式 | |------|----------| | `command not found: sf` | 把 npm 全局 bin 目录加入 PATH(见上面的系统说明) | | `sf` 实际执行了 `git svn dcommit` | oh-my-zsh 冲突,执行 `unalias sf` 或改用 `sf-cli` | | `npm install -g sf-run` 权限错误 | 修复 npm prefix(见 Linux 说明)或改用 nvm | | 无法连接到 LLM | 用 `sf config` 检查 API key,并确认网络可用 | | `sf` 启动时卡住 | 检查 Node.js 版本:`node --version`(需要 22+) | 更多问题见 [故障排查](./troubleshooting.md)。 --- ## 下一步 - [自动模式](./auto-mode.md):深入理解自主执行 - [配置](./configuration.md):模型选择、超时和预算 - [命令参考](./commands.md):所有命令和快捷键 - [提供商设置](./providers.md):每个 provider 的详细配置 - [团队协作](./working-in-teams.md):多开发者工作流