关于 GenPilot
GenPilot(San)是面向开发者的开源终端 Agent 运行时,可配置模型、提示词、工具和扩展。它以原生 Go 二进制运行,支持多个 Agent、可编辑行为及可回放的运行检查。
主要功能
- 01无运行时依赖的原生 Go 二进制
- 02可配置模型、提示词和扩展
- 03并行子 Agent 与图式工作流
- 04用于 Agent 消息互通的会话组
- 05权限控制与运行回放
适用场景
- 01运行交互式或单次终端 Agent
- 02协调多个子 Agent 完成任务
- 03在不同会话间交换消息
- 04检查并调试 Agent 运行记录
MCP 相关
San 支持将 MCP 服务作为可配置扩展,并提供 `san mcp` 子命令。项目级和个人级 MCP 服务定义可分别存放于 `mcp.json` 和 `mcp.local.json`。
配置
本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。
我们还没有获取到这个服务的安装包或远程地址,请按项目 README 中的说明安装。
工具
本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。
详细介绍
San 是一款开源终端 Agent 运行时:一个原生 Go 二进制文件,无需 Node.js 或 Python。模型接触的一切——提示词、工具、提供商、扩展—— 都由你掌控,随你修改。
为什么选择 San
San 有三个特性,并且绝不为了其中一个而牺牲其他特性。
小巧 — 在你发送第一条消息前,只有约 2.3k 个 token 的运行框架会进入模型上下文;上下文窗口的其余部分都留给你的工作。磁盘上只有一个 12 MB 的二进制文件,零运行时依赖——可直接放到笔记本电脑、CI 运行器或 scratch 容器中。
快速 — 冷启动约 0.01s,完整的工具使用任务端到端约 3.3s 即可完成。让你等待的是模型,而非客户端(基准测试)。
开放 — 接入模型、技能、子 Agent 和 MCP 服务;编写自己的系统提示词、自动驾驶目标和自学习策略;在 san inspector 中重放任意运行记录。
名称由来 — San 写作 三,形似 ☰。取自《道德经》“三生万物”:一个运行时可化为任何 Agent,运行一个三步循环(推理 → 行动 → 观察)。命令始终是 san。
开放架构
概览图
自由接入——没有任何功能被硬编码。模型涵盖 Anthropic、OpenAI、Google、DeepSeek、Ollama 等十多个平台;可选择任意网络搜索后端;支持各种扩展——技能、子 Agent、MCP 服务、插件、钩子。
自主编写——你可以用文本定义 Agent 的行为,而不是受限于二进制文件中的硬编码设置。编写系统提示词(方法),将其打包成可切换的角色设定,为自动驾驶模式设定目标,并设置自学习所遵循的策略。
协同工作——可同时运行多个 Agent。子 Agent 并行运行,每个都使用最适合自己的模型;工作流将它们编排成图(方法);同一台机器上的会话还可以加入群组,彼此来回发送消息——任何可以等待的任务都会等你回来(会话群组)。
全程监督——所有运行过程都不会脱离监控。你可以选择 San 无需询问即可执行多少操作,子 Agent 会继承该设置(权限);检查器可以精确重放任何运行过程,还原模型看到的内容。
安装
Homebrew(macOS / Linux)
brew tap genai-io/san
brew install san
macOS / Linux
curl -fsSL https://raw.githubusercontent.com/genai-io/san/main/install.sh | bash
Windows(PowerShell)
irm https://raw.githubusercontent.com/genai-io/san/main/install.ps1 | iex
在 Windows 上,San 使用 PowerShell 执行命令(如果存在则使用 pwsh,否则使用内置的 Windows PowerShell);设置 SAN_SHELL=bash、powershell 或某个路径即可选择要使用的 Shell。如果两者都已安装,也可以启用另一个——在 /tools 中开启。
首次启动时运行 san,然后选择模型,并在出现提示时添加其 API 密钥。San 会自动保持最新:新版本会在后台安装,状态行会提示重启。运行 san update 可立即更新;如果通过 Homebrew 安装,则运行 brew upgrade san;在 /settings › General 中关闭后台更新(或设置 SAN_DISABLE_AUTOUPDATE=1)。模型列表、上下文窗口和价格取自 models.dev,每日刷新(设置 SAN_DISABLE_MODEL_REFRESH=1 可跳过);可在 ~/.san/models.json 中修正其中任意内容。
其他方式
卸载
# macOS / Linux
curl -fsSL https://raw.githubusercontent.com/genai-io/san/main/install.sh | bash -s uninstall
# Windows (PowerShell)
& ([scriptblock]::Create((irm https://raw.githubusercontent.com/genai-io/san/main/install.ps1))) uninstall
Go 安装(需要 Go 1.26.9+)
go install github.com/genai-io/san/cmd/san@latest
从源代码构建
git clone https://github.com/genai-io/san.git
cd san
go build -o san ./cmd/san
mkdir -p ~/.local/bin && mv san ~/.local/bin/
用法
san # interactive
san "explain this function" # one-shot
san -p "do something" # print mode (no TUI), pipe-friendly
san --continue # resume the latest session
san --resume # pick a past session to resume
子命令:inspector · agent · plugin · mcp——运行 san <command> --help 查看各命令的帮助。
| 功能 | 用法 |
|---|---|
| 模型 · 思考预算 | /models · Ctrl+T |
| 权限模式 | Shift+Tab(询问 · 自动接受 · 自动驾驶) |
| 长时间运行的任务 · 学习 | /autopilot · /goal · /evolve |
| 给其他会话发送消息 | /group join · /group members · /group hold on|off |
| 所有斜杠命令 | /help |
| 按键 | Enter 发送 · Alt+Enter 换行 · Esc 停止 · Ctrl+O 展开工具 · Ctrl+C 取消 · Ctrl+D 退出 |
docs/guides/getting-started.md
配置
凭据
| 服务 | 变量 |
|---|---|
| Anthropic(Claude) | ANTHROPIC_API_KEY 或 Vertex AI |
| OpenAI(GPT、o 系列、Codex) | OPENAI_API_KEY,或 ChatGPT 订阅(通过 /models 登录) |
| GitHub Copilot(所有 Copilot 模型) | Copilot 订阅(通过 /models 登录) |
| Google(Gemini) | GOOGLE_API_KEY,或 Vertex AI(gcloud auth application-default login + GOOGLE_CLOUD_PROJECT) |
| DeepSeek(DeepSeek V4) | DEEPSEEK_API_KEY |
| Moonshot(Kimi) | MOONSHOT_API_KEY |
| Alibaba(Qwen) | DASHSCOPE_API_KEY |
| MiniMax | MINIMAX_API_KEY |
| Z.ai(GLM / GLM Coding Plan) | BIGMODEL_API_KEY |
| SenseNova | SENSENOVA_API_KEY |
| Mimo | MIMO_API_KEY |
| Volcengine(Ark) | VOLCENGINE_API_KEY |
| Ollama(本地) | OLLAMA_BASE_URL(默认值为 http://localhost:11434/v1) |
| Agnes-AI | AGNESAI_API_KEY |
| Exa 搜索 | 无(默认) |
| Tavily 搜索 | TAVILY_API_KEY |
| Brave 搜索 | BRAVE_API_KEY |
| Serper 搜索 | SERPER_API_KEY |
配置文件与布局
设置从 ~/.san/ 和 <project>/.san/ 加载,项目设置优先于用户设置。项目指令遵循 AGENTS.md 标准:~/.san/AGENTS.md、从仓库根目录到工作目录的每个 AGENTS.md(最近的文件优先),以及根目录下由 git 忽略的 AGENTS.local.md。
用户级(~/.san/):
providers.json # Provider connections and current model
models.json # Your corrections to model windows, prices and reasoning efforts
settings.json # Permissions, hooks, env, active persona
skills.json # Skill states
personas/ # Persona bundles: system prompt parts, skills, settings
skills/ # Custom skill definitions
agents/ # Agent definitions
commands/ # Custom slash commands
plugins/ # Installed plugins
projects/ # Session transcripts + indexes
项目级(.san/):
settings.json # Permissions, hooks, disabled tools
mcp.json # MCP server definitions (team shared)
mcp.local.json # MCP server definitions (personal, git-ignored)
personas/ # Project-scoped persona bundles (override user-level)
agents/*.md # Subagent definitions
skills/*/SKILL.md # Skills
commands/*.md # Slash commands
plugins/ # Project-level plugins
plugins-local/ # Local plugins (git-ignored)
基准测试:San 与 Claude Code
与 Apple Silicon 上的 Claude Code v2.1.112 对比,使用相同模型(claude-sonnet-4-6):
| 指标 | San | Claude Code | 优势 |
|---|---|---|---|
| 下载大小 | 12 MB | 63 MB(+ Node.js 112 MB) | 小 5 倍 |
| 磁盘占用 | 38 MB | 175 MB | 小 4.6 倍 |
| 启动时间 | ~0.01s | ~0.20s | 快 20 倍 |
| 启动内存 | ~32 MB | ~189 MB | 少 5.8 倍 |
| 简单任务 | ~2.4s / 39 MB | ~10.4s / 286 MB | 快 4.3 倍,内存少 7.3 倍 |
| 工具使用任务 | ~3.3s / 39 MB | ~26.0s / 285 MB | 快 7.9 倍,内存少 7.2 倍 |
| Harness 上下文* | ~2.3k tokens | ~20.9k tokens | 精简约 9 倍 |
*上下文开销是空白首轮中的系统提示词 + 工具架构,单独测量,测试版本为 San v1.22.0 和 Claude Code v2.1.220——参见方法。其他所有行的数据均来自 v1.13.2 / v2.1.112 测试。
功能集相当——差距来自客户端开销,而非能力。 docs/operations/benchmark.md
文档
- 文档索引 — 架构、功能、运维和参考资料导航
- 架构 — 架构入口和阅读顺序
- 软件包地图 — 软件包的归属和依赖边界
- 角色 — 内置系统提示词、技能、Agent 和设置
- 系统提示词 — Slot 模型、角色、技能/Agent 注入
- 子 Agent · 技能 · 插件 · MCP
- 钩子 · 权限 · 任务
- 工作流 · 会话组 — 将子 Agent 组织成图;相互发送消息的会话
- 检查器 — 用于转录回放和调试的本地 Web UI
- 各软件包的设计文档位于
docs/packages/下 — 从软件包索引开始
相关项目
- Claude Code — Anthropic 的 AI 编码助手
- Aider — 在终端中进行 AI 结对编程
- Continue — 开源 AI 代码助手
社区
两种加入方式——中国社区可使用微信,其他用户可使用 Slack:
- 微信 — 关注公众号「极客外传」· 回复
san或三入群 - Slack — 加入我们的 Slack
参与贡献
欢迎贡献!请参阅 CONTRIBUTING.md 了解指南。
许可证
Apache License 2.0 - 详情请参阅 LICENSE。
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。