本地 AI Agent 总要账号和遥测?Forcefield 用 Go 把运行时收回你的机器
很多 AI 编程工具把“模型”和“运行时”绑在一起:配置凭证、启动云端服务、接受遥测,才能让 Agent 读文件、执行命令、保存会话。Forcefield 的切入点不同:它是一个用 Go 编写的本地优先 AI Agent harness,把工具、技能、会话、记忆、权限和 Shell 执行组织成一个独立运行时;模型可以来自本地 Ollama、LM Studio、llama.cpp,也可以来自远程提供商。
这不是又一个聊天界面。更准确地说,Forcefield 负责 Agent 循环:模型提出工具调用,运行时按照权限规则执行,记录结果,再把结果交回模型。这样,换模型不会迫使你重写工具层;想在笔记本上工作,也不必先注册一个 SaaS 账号。
先看它解决了什么问题
Forcefield 的 README 明确把“无用户账号、无云服务、无远程数据处理、无遥测”列为默认目标。不过“本地优先”不等于自动离线:如果选择远程模型,提示词和工具结果仍会发送给对应提供商;只有模型本身运行在本机时,推理链路才可以留在本地。
运行时提供的能力也比单纯的终端聊天更完整:项目级会话保存在当前目录的 .forcefield/sessions/,支持恢复;内置工具包含文件读写、文件搜索、Shell、秘密扫描、技能加载和记忆。工具执行仍受权限规则和运行时限制约束,不是把终端无条件交给模型。
另一个值得注意的边界是 Windows 的 WSL 执行器。Forcefield 不会在 WSL 不可用时静默回退到 native;同时,WSL 也不是文件系统沙箱,进程仍可通过 /mnt 访问 Windows 驱动器。把它当作执行环境选择,而不要误解为完整隔离。
安装与第一次运行
Linux 和 macOS 可以使用项目提供的安装器:
curl -fsSL https://raw.githubusercontent.com/fabledruns/forcefield/main/scripts/install.sh | sh
安装器会按 amd64 或 arm64 选择二进制,并将 ff 放到 ~/.local/bin。如果你更在意可复现性,README 建议固定 release 版本,或先下载脚本审阅后再执行;发布二进制还提供 checksums.txt,安装器会校验下载的二进制。
安装完成后,直接进入交互终端:
ff
也可以一次性运行任务,或检查环境:
ff run "inspect this repository and explain its structure" ff doctor
会话内可以用 /status 查看当前提供商、模型、会话和工具,用 /tools 与 /skills 查看能力。若要继续项目目录中的旧会话,可用 ff --resume ;这个恢复操作只查找同一工作目录创建的会话。
配置本地模型
Forcefield 的配置文件位于 ~/.forcefield/config.yaml。README 给出的 Ollama 例子如下:
model:
provider: ollama
endpoint: http://localhost:11434
name: ornith:9b
agent:
name: default
system_prompt: |
You are Forcefield, a local-first coding agent.
Complete software tasks in real repositories:
inspect, change, run, debug, and verify.
如果机器上还没有模型,项目文档给出的可选准备命令是:
ollama pull ornith:9b
这里不应该把 ornith:9b 当成 Forcefield 的硬编码模型要求;它只是 README 中的配置示例。你需要根据本机推理后端和模型名称调整 provider、endpoint 与 name。
适合哪些工作流
Forcefield 更适合希望控制运行边界的人,而不是追求最复杂云端生态的团队。比如:在不上传代码的前提下,让 Agent 先解释一个仓库;在本地保存会话和技能;用权限规则限制 Shell 操作;或者把同一个运行时切换到远程模型,比较本地与云模型的效果。
它目前仍处于 active development,功能和接口可能变化。项目使用 Go 1.22+ 构建,普通用户则优先使用 release 二进制。对于生产环境,建议先固定版本,审阅安装脚本,并明确 native、WSL 和远程模型分别会把什么数据交给谁。
结语
Forcefield 的价值不在于声称“本地”就天然更安全,而在于把 Agent 的运行时拆出来:模型是可替换的,工具和会话是项目级的,权限与 Shell 执行有清晰边界。对于已经被多个 AI 编程工具的账号、配置和数据流牵着走的开发者,这种 Go 单二进制、无账号起步的方案值得作为实验性本地基座测试。
相关链接