玄同 765
大语言模型 (LLM) 开发工程师 | 中国传媒大学 · 数字媒体技术(智能交互与游戏设计)
CSDN · 个人主页 | GitHub · Follow
关于作者
- 深耕领域:大语言模型开发 / RAG 知识库 / AI Agent 落地 / 模型微调
- 技术栈:Python | RAG (LangChain / Dify + Milvus) | FastAPI + Docker
- 工程能力:专注模型工程化部署、知识库构建与优化,擅长全流程解决方案
「让 AI 交互更智能,让技术落地更高效」 欢迎技术探讨与项目合作,解锁大模型与智能交互的无限可能!
一、OpenCode 是什么?为什么它值得关注?
1.1 项目概述
OpenCode 是一个开源 AI 编码助手,它打破了传统 AI 编程工具的封闭生态,为开发者提供了前所未有的灵活性和可定制性。
核心亮点:
| 多模型支持 | 支持 75+ LLM 提供商,包括 Claude、GPT-4、Gemini、DeepSeek 等 |
| 多平台运行 | 终端 TUI、桌面应用、Web 界面、IDE 扩展全覆盖 |
| 开源免费 | 完全开源,支持私有部署和企业定制 |
| 深度集成 | GitHub/GitLab 集成、MCP 协议、LSP 支持 |
| 企业级特性 | SSO、审计日志、集中管理、私有部署 |
1.2 与 Cursor、GitHub Copilot 的对比
| 开源 | ✅ | ❌ | ❌ |
| 模型选择 | 75+ 提供商 | 有限 | 有限 |
| 私有部署 | ✅ | ❌ | 企业版 |
| 自定义代理 | ✅ | 有限 | ❌ |
| MCP 支持 | ✅ | 有限 | ❌ |
| 价格 | 免费 | 付费 | 付费 |
二、快速入门:5 分钟上手 OpenCode
2.1 安装方式
OpenCode 提供多种安装方式,满足不同场景需求:
# 方式一:一键安装脚本(推荐)
curl -fsSL https://opencode.ai/install | bash
# 方式二:NPM 安装
npm install -g opencode-ai
# 方式三:Bun 安装
bun install -g opencode-ai
# 方式四:Homebrew(macOS/Linux)
brew install anomalyco/tap/opencode
# 方式五:Arch Linux
paru -S opencode-bin
2.2 首次运行
# 进入项目目录
cd /path/to/your/project
# 启动 OpenCode
opencode
# 首次使用,运行初始化命令
/init
2.3 基础配置
创建项目级配置文件 .opencode/opencode.json:
{
"models": {
"default": "anthropic/claude-sonnet-4-20250514",
"big": "anthropic/claude-sonnet-4-20250514",
"fast": "anthropic/claude-3-5-haiku-latest"
},
"providers": {
"anthropic": {
"apiKey": "$ANTHROPIC_API_KEY"
}
},
"tui": {
"theme": "tokyo-night"
}
}
三、核心功能深度解析
3.1 多模型支持:75+ LLM 提供商
OpenCode 通过 models.dev 提供统一的模型访问接口,支持主流 AI 提供商:
3.1.1 支持的提供商列表
| Anthropic | Claude 3.5 Sonnet、Claude 3 Opus | ANTHROPIC_API_KEY | 复杂编码任务 |
| OpenAI | GPT-4o、GPT-4 Turbo | OPENAI_API_KEY | 通用任务 |
| Gemini 1.5 Pro、Gemini 1.5 Flash | GOOGLE_API_KEY | 长上下文处理 | |
| DeepSeek | DeepSeek Coder | DEEPSEEK_API_KEY | 代码生成 |
| AWS Bedrock | Claude、Llama | AWS_ACCESS_KEY_ID | 企业 AWS 环境 |
| Azure OpenAI | GPT-4 | AZURE_OPENAI_API_KEY | Microsoft 生态 |
| Groq | LLaMA、Mixtral | GROQ_API_KEY | 高速推理 |
| Ollama | 本地开源模型 | OLLAMA_HOST | 本地隐私保护 |
| Mistral | Mistral Large | MISTRAL_API_KEY | 欧洲合规 |
| Cohere | Command 系列 | COHERE_API_KEY | 企业应用 |
3.1.2 配置多个提供商
{
"providers": {
"anthropic": {
"apiKey": "$ANTHROPIC_API_KEY"
},
"openai": {
"apiKey": "$OPENAI_API_KEY",
"baseUrl": "https://api.openai.com/v1"
},
"ollama": {
"baseUrl": "http://localhost:11434"
},
"deepseek": {
"apiKey": "$DEEPSEEK_API_KEY"
}
},
"models": {
"default": "anthropic/claude-sonnet-4-20250514",
"coding": "deepseek/deepseek-coder",
"local": "ollama/llama3.1"
}
}
3.1.3 使用现有订阅账号
OpenCode 支持直接使用 Claude Pro 或 ChatGPT Plus 订阅:
# 使用 Anthropic 账号登录(Claude Pro/Max)
opencode auth login anthropic
# 使用 OpenAI 账号登录(ChatGPT Plus/Pro)
opencode auth login openai
3.2 终端界面(TUI):最全面的客户端
3.2.1 文件引用系统
OpenCode TUI 提供强大的文件引用功能:
# 引用单个文件
@filename.ts
# 引用文件夹
@src/components/
# 使用 glob 模式
@**/*.ts
# 引用特定类型文件
@*.py
3.2.2 Bash 命令集成
# 运行命令并返回输出
$ ls -la
# 运行命令并将输出添加到上下文
$$ cat package.json
3.2.3 斜杠命令大全
| /init | 初始化项目配置 | 新项目首次使用 |
| /clear | 清空当前会话 | 清理对话历史 |
| /compact | 压缩对话历史 | 长对话优化 |
| /models | 切换模型 | 根据任务选择模型 |
| /sessions | 管理会话 | 多任务并行 |
| /connect | 连接到远程服务器 | 远程开发 |
| /share | 分享当前会话 | 协作调试 |
| /theme | 切换主题 | 个性化界面 |
| /cost | 显示使用成本 | 成本控制 |
| /context | 管理上下文 | 精确控制上下文 |
3.2.4 快捷键操作
| Ctrl+C | 取消当前操作 | 中断长时间运行 |
| Ctrl+L | 清屏 | 保持界面整洁 |
| Ctrl+J | 换行 | 多行输入 |
| Enter | 发送消息 | 提交问题 |
| Tab | 自动补全 | 命令/文件补全 |
| Esc | 返回/取消 | 退出当前状态 |
3.3 命令行工具(CLI):自动化与脚本集成
3.3.1 主要命令
# 启动 TUI
opencode
# 非交互式运行
opencode run "解释这段代码"
# 代理管理
opencode agent use code-review
# 认证管理
opencode auth login anthropic
# GitHub 集成
opencode github login
# MCP 服务器管理
opencode mcp list
# 模型管理
opencode models list
# 启动服务器模式
opencode serve –port 8080
# 启动 Web 界面
opencode web –port 3000
# 会话管理
opencode session list
3.3.2 非交互式运行示例
# 单次执行
opencode run "解释这个代码的功能"
# 从文件读取提示
opencode run –file prompt.txt
# 指定模型运行
opencode run –model anthropic/claude-sonnet-4-20250514 "优化这段代码"
# 管道输入
echo "解释这段代码" | opencode run
# 指定工作目录
opencode run –cwd /path/to/project "分析项目结构"
四、配置体系:灵活的多级配置管理
4.1 配置优先级
OpenCode 使用 JSONC(带注释的 JSON)格式,支持四级配置优先级:
| 1 | 自定义路径 | –config 标志指定 |
| 2 | 项目配置 | .opencode/opencode.json |
| 3 | 全局配置 | ~/.config/opencode/opencode.json |
| 4 | 远程配置 | 从服务器获取 |
4.2 完整配置结构
{
// TUI 设置
"tui": {
"theme": "tokyo-night"
},
// 服务器设置
"server": {
"port": 8080
},
// 工具设置
"tools": {
"bash": {
"enabled": true,
"timeout": 30000
},
"edit": {
"enabled": true
},
"webfetch": {
"enabled": true,
"maxSize": 1048576
}
},
// 模型设置
"models": {
"default": "anthropic/claude-sonnet-4-20250514",
"big": "anthropic/claude-sonnet-4-20250514",
"fast": "anthropic/claude-3-5-haiku-latest"
},
// 代理设置
"agents": {
"default": "default"
},
// 自定义命令
"commands": {
"test": {
"description": "运行测试",
"command": "npm test"
},
"build": {
"description": "构建项目",
"command": "npm run build"
}
},
// 提供商设置
"providers": {
"anthropic": {
"apiKey": "$ANTHROPIC_API_KEY"
}
},
// LSP 设置
"lsp": {
"typescript": {
"enabled": true,
"command": "typescript-language-server",
"args": ["–stdio"]
}
},
// MCP 服务器
"mcp": {
"servers": {
"filesystem": {
"command": "npx",
"args": ["-y", "@modelcontextprotocol/server-filesystem", "/path/to/dir"]
}
}
},
// 权限控制
"permissions": {
"auto_approve": ["read", "grep", "glob", "list"],
"require_confirm": ["write", "edit", "bash"]
},
// 快捷键
"keybinds": {
"ctrl+k": "clear",
"ctrl+m": "models"
},
// 自定义指令
"custom_instructions": "始终使用中文回复。代码注释使用英文。"
}
4.3 环境变量支持
配置值支持环境变量替换:
{
"providers": {
"anthropic": {
"apiKey": "$ANTHROPIC_API_KEY"
},
"openai": {
"apiKey": "${OPENAI_API_KEY}",
"baseUrl": "${OPENAI_BASE_URL:-https://api.openai.com/v1}"
}
}
}
支持的语法:
- $VAR – 引用环境变量
- ${VAR} – 同上
- ${VAR:-default} – 如果未设置,使用默认值
五、高级特性:企业级与扩展能力
5.1 MCP(Model Context Protocol)服务器
MCP 是一个开放协议,允许 AI 模型与外部工具和服务交互。
5.1.1 配置 MCP 服务器
{
"mcp": {
"servers": {
"filesystem": {
"command": "npx",
"args": ["-y", "@modelcontextprotocol/server-filesystem", "/path/to/dir"]
},
"github": {
"command": "npx",
"args": ["-y", "@modelcontextprotocol/server-github"],
"env": {
"GITHUB_TOKEN": "$GITHUB_TOKEN"
}
},
"postgres": {
"command": "npx",
"args": ["-y", "@modelcontextprotocol/server-postgres", "postgresql://localhost/mydb"]
},
"puppeteer": {
"command": "npx",
"args": ["-y", "@modelcontextprotocol/server-puppeteer"]
}
}
}
}
5.1.2 常用 MCP 服务器
| filesystem | 文件系统访问 | 项目文件操作 |
| github | GitHub API 访问 | 代码仓库管理 |
| postgres | PostgreSQL 数据库 | 数据库查询 |
| puppeteer | 浏览器自动化 | 网页抓取、测试 |
| brave-search | 网页搜索 | 实时信息获取 |
5.2 代理(Agents)系统
代理是预配置的 AI 角色,针对特定任务优化。
5.2.1 内置代理
| default | 通用编码助手 | 全能型 |
| code-review | 代码审查专家 | 专注代码质量 |
| test-writer | 测试用例编写 | 专注测试覆盖 |
| doc-writer | 文档编写 | 专注技术文档 |
5.2.2 切换代理
# 切换到代码审查代理
opencode agent use code-review
# 在 TUI 中使用
/agent use test-writer
5.2.3 自定义代理
{
"agents": {
"react-expert": {
"name": "React 开发专家",
"description": "专注于 React 和 TypeScript 开发",
"system_prompt": "你是一个专业的 React 开发专家,精通 TypeScript、Hooks、状态管理…",
"model": "anthropic/claude-sonnet-4-20250514"
},
"security-auditor": {
"name": "安全审计员",
"description": "专注于代码安全审查",
"system_prompt": "你是一个代码安全专家,专注于发现安全漏洞…",
"model": "anthropic/claude-sonnet-4-20250514"
}
}
}
5.3 规则(Rules)系统
使用规则文件自定义 AI 助手的行为。
5.3.1 项目规则文件
在项目根目录创建 .opencode/rules.md 或 AGENTS.md:
# 项目规则
## 编码规范
– 使用 TypeScript 严格模式
– 所有函数必须有 JSDoc 注释
– 使用 ESLint 和 Prettier 进行代码格式化
– 遵循 Airbnb JavaScript 风格指南
## 架构原则
– 遵循 Clean Architecture 原则
– 使用依赖注入模式
– 控制器层只处理 HTTP 请求/响应
– 业务逻辑放在 Service 层
## 测试要求
– 所有新功能必须有单元测试
– 测试覆盖率必须 > 80%
– 使用 Jest 进行单元测试
– 使用 React Testing Library 进行组件测试
## 命名规范
– 组件使用 PascalCase
– 函数和变量使用 camelCase
– 常量使用 UPPER_SNAKE_CASE
– 接口使用 IPrefix 命名
## 提交规范
– 使用 Conventional Commits
– 提交信息格式:type(scope): subject
– 类型包括:feat, fix, docs, style, refactor, test, chore
5.3.2 全局自定义指令
{
"custom_instructions": "始终使用中文回复。代码注释使用英文。优先使用函数式编程。避免使用 any 类型。"
}
5.4 权限控制
精细控制 AI 助手的操作权限:
{
"permissions": {
// 自动批准的操作(无需确认)
"auto_approve": [
"read",
"grep",
"glob",
"list"
],
// 需要确认的操作
"require_confirm": [
"write",
"edit",
"bash"
],
// 禁止的操作
"deny": [
"webfetch"
]
}
}
操作类型说明:
- read – 读取文件
- write – 写入文件
- edit – 编辑文件
- bash – 执行命令
- webfetch – 获取网页内容
5.5 LSP(语言服务器协议)支持
OpenCode 自动检测项目类型并加载相应的语言服务器。
5.5.1 支持的语言
| TypeScript/JavaScript | typescript-language-server | ✅ |
| Python | pylsp/pyright | ✅ |
| Go | gopls | ✅ |
| Rust | rust-analyzer | ✅ |
| Java | jdtls | ✅ |
| C/C++ | clangd | ✅ |
| Ruby | solargraph | ✅ |
| PHP | intelephense | ✅ |
5.5.2 手动配置 LSP
{
"lsp": {
"typescript": {
"enabled": true,
"command": "typescript-language-server",
"args": ["–stdio"]
},
"python": {
"enabled": true,
"command": "pylsp",
"args": []
},
"rust": {
"enabled": true,
"command": "rust-analyzer"
}
}
}
六、多平台集成:随处可用的 AI 助手
6.1 IDE 扩展
6.1.1 VS Code 扩展
安装方式:
# 命令行安装
code –install-extension opencode.opencode
# 或在 VS Code 扩展市场搜索 "OpenCode"
功能特性:
- 内联建议 – 在编辑器中获取 AI 建议
- 侧边栏面板 – 专用的对话面板
- 上下文感知 – 自动包含相关文件上下文
- 快捷命令 – 通过命令面板快速访问
6.2 Web 界面
# 启动 Web 服务器
opencode web
# 指定端口
opencode web –port 3000
# 指定主机
opencode web –host 0.0.0.0
启动后访问:http://localhost:3000
6.3 桌面应用
OpenCode 桌面应用已在 macOS、Windows 和 Linux 上推出测试版。
下载地址:https://opencode.ai/download
6.4 服务器模式
# 启动服务器
opencode serve
# 指定端口
opencode serve –port 8080
# 启用认证
opencode serve –auth
API 端点:
- POST /api/chat – 对话接口
- GET /api/sessions – 会话列表
- GET /api/models – 可用模型
- GET /api/health – 健康检查
七、企业级特性
7.1 企业版功能
| SSO 集成 | 支持 SAML、OIDC 单点登录 |
| 审计日志 | 完整的使用审计跟踪 |
| 集中管理 | 统一配置和策略管理 |
| 私有部署 | 支持本地部署 |
| 优先支持 | 专属技术支持通道 |
7.2 网络配置
7.2.1 代理设置
export HTTP_PROXY=http://proxy.example.com:8080
export HTTPS_PROXY=http://proxy.example.com:8080
export NO_PROXY=localhost,127.0.0.1
7.2.2 自定义 CA 证书
export NODE_EXTRA_CA_CERTS=/path/to/ca-certificates.crt
7.3 GitHub/GitLab 集成
# GitHub 认证
opencode github login
# GitLab 认证
opencode gitlab login
集成功能:
- PR 审查 – 使用 AI 审查 Pull Request
- Issue 分析 – 分析和回复 Issue
- 代码搜索 – 搜索仓库中的代码
- 自动提交 – 生成提交消息
八、实战案例:从配置到高级应用
8.1 案例一:前端开发工作流
场景: React + TypeScript 项目
// .opencode/opencode.json
{
"models": {
"default": "anthropic/claude-sonnet-4-20250514",
"fast": "anthropic/claude-3-5-haiku-latest"
},
"providers": {
"anthropic": {
"apiKey": "$ANTHROPIC_API_KEY"
}
},
"agents": {
"react-dev": {
"name": "React 开发专家",
"description": "专注于 React 和 TypeScript",
"system_prompt": "你是 React 和 TypeScript 专家。遵循函数式编程原则,使用 Hooks,避免类组件。所有代码必须有类型定义。"
}
},
"commands": {
"dev": {
"description": "启动开发服务器",
"command": "npm run dev"
},
"build": {
"description": "构建生产版本",
"command": "npm run build"
},
"test": {
"description": "运行测试",
"command": "npm test"
},
"lint": {
"description": "代码检查",
"command": "npm run lint"
}
},
"lsp": {
"typescript": {
"enabled": true
}
}
}
<!– .opencode/rules.md –>
# React 项目规则
## 技术栈
– React 18+
– TypeScript 5+
– Vite
– Tailwind CSS
– React Query
## 组件规范
– 使用函数组件 + Hooks
– Props 必须有接口定义
– 使用 React.FC 或直接定义函数
– 复杂逻辑抽取到自定义 Hooks
## 状态管理
– 优先使用 React Query 管理服务端状态
– 使用 Zustand 管理客户端全局状态
– 避免过度使用 Context
8.2 案例二:Python 数据科学项目
// .opencode/opencode.json
{
"models": {
"default": "anthropic/claude-sonnet-4-20250514",
"coding": "deepseek/deepseek-coder"
},
"providers": {
"anthropic": {
"apiKey": "$ANTHROPIC_API_KEY"
},
"deepseek": {
"apiKey": "$DEEPSEEK_API_KEY"
}
},
"mcp": {
"servers": {
"postgres": {
"command": "npx",
"args": ["-y", "@modelcontextprotocol/server-postgres", "postgresql://localhost/data_db"]
}
}
},
"lsp": {
"python": {
"enabled": true,
"command": "pylsp"
}
}
}
8.3 案例三:多代理协作工作流
{
"agents": {
"architect": {
"name": "架构师",
"description": "设计系统架构",
"system_prompt": "你是系统架构师。负责设计系统架构、选择技术栈、定义模块边界。输出架构文档和接口定义。",
"model": "anthropic/claude-sonnet-4-20250514"
},
"developer": {
"name": "开发工程师",
"description": "编写实现代码",
"system_prompt": "你是高级开发工程师。根据架构设计编写高质量代码。遵循最佳实践,编写单元测试。",
"model": "deepseek/deepseek-coder"
},
"reviewer": {
"name": "代码审查员",
"description": "审查代码质量",
"system_prompt": "你是代码审查专家。审查代码质量、安全性、性能。提供具体的改进建议。",
"model": "anthropic/claude-sonnet-4-20250514"
},
"tester": {
"name": "测试工程师",
"description": "编写测试用例",
"system_prompt": "你是测试专家。编写全面的测试用例,包括单元测试、集成测试、边界情况。",
"model": "anthropic/claude-3-5-haiku-latest"
}
}
}
使用流程:
# 1. 架构设计阶段
opencode agent use architect
# "设计一个用户认证系统的架构"
# 2. 开发实现阶段
opencode agent use developer
# "根据架构文档实现认证模块"
# 3. 代码审查阶段
opencode agent use reviewer
# "审查刚才实现的认证模块代码"
# 4. 测试编写阶段
opencode agent use tester
# "为认证模块编写测试用例"
九、主题与个性化
9.1 内置主题
| opencode | 默认主题 | 通用 |
| catppuccin | 柔和暖色 | 长时间编码 |
| dracula | 深色高对比 | 暗光环境 |
| gruvbox | 复古风格 | 怀旧风格 |
| nord | 北极蓝调 | 清爽视觉 |
| solarized | 科学配色 | 减少眼疲劳 |
| tokyo-night | 东京夜景 | 现代感 |
9.2 切换主题
# 在 TUI 中
/theme
# 或在配置中
{
"tui": {
"theme": "catppuccin"
}
}
9.3 自定义主题
在 ~/.config/opencode/themes/ 目录创建 JSON 主题文件。
十、生态系统与社区
10.1 官方资源
- GitHub 仓库:https://github.com/opencode-ai
- Discord 社区:https://discord.gg/opencode
- X (Twitter):@opencode_ai
- 官方文档:https://opencodeai.cn/docs.html
10.2 相关项目
| Models.dev | LLM 模型目录 |
| MCP | Model Context Protocol |
| Zen | OpenCode 托管服务 |
10.3 Zen 服务
Zen 是 OpenCode 的托管服务,提供经过优化和测试的 AI 模型:
# 启用 Zen
opencode auth login zen
Zen 优势:
- 经过验证的模型(针对编码场景测试)
- 稳定性能(无需担心提供商质量差异)
- 简化配置(无需管理多个 API 密钥)
- 自动更新(获取最新模型改进)
十一、最佳实践与技巧
11.1 性能优化
{
"models": {
"default": "anthropic/claude-sonnet-4-20250514",
"fast": "anthropic/claude-3-5-haiku-latest"
}
}
使用策略:
- 简单任务使用 fast 模型
- 复杂任务使用 default 或 big 模型
- 使用 /compact 定期压缩对话历史
11.2 成本控制
# 查看使用成本
/cost
# 使用本地模型降低成本
{
"providers": {
"ollama": {
"baseUrl": "http://localhost:11434"
}
},
"models": {
"local": "ollama/llama3.1"
}
}
11.3 安全实践
{
"permissions": {
"auto_approve": ["read", "grep"],
"require_confirm": ["write", "edit", "bash"],
"deny": []
}
}
安全建议:
- 敏感操作(写入、执行命令)需要确认
- 使用环境变量存储 API 密钥
- 定期审查审计日志(企业版)
11.4 团队协作
# 分享会话链接
/share
# 导出配置给团队成员
# 将 .opencode/opencode.json 提交到版本控制(去除敏感信息)
十二、常见问题与解决方案
12.1 安装问题
| 安装失败 | 检查 Node.js 版本(需 18+) |
| 权限错误 | 使用 sudo 或修改 npm 权限 |
| 网络问题 | 配置代理或更换镜像源 |
12.2 配置问题
| API 密钥无效 | 检查环境变量是否正确设置 |
| 模型不可用 | 确认提供商配置正确 |
| 配置不生效 | 检查配置文件路径和格式 |
12.3 使用问题
| 响应慢 | 切换更快的模型或检查网络 |
| 上下文丢失 | 使用 /compact 或开启新会话 |
| 文件引用失败 | 检查文件路径是否正确 |
十三、未来展望
13.1 路线图
- ACP(Agent Communication Protocol) – 多代理协作(实验阶段)
- 更多 IDE 支持 – IntelliJ、Vim、Emacs 等
- 插件生态 – 丰富的社区插件
- 增强企业功能 – 更多 SSO 提供商、合规认证
13.2 社区贡献
OpenCode 欢迎社区贡献:
# 克隆仓库
git clone https://github.com/opencode-ai/opencode.git
# 查看贡献指南
cat CONTRIBUTING.md
十四、总结
OpenCode 代表了 AI 编程助手的未来方向:开源、灵活、强大。它不仅提供了媲美商业产品的功能,更赋予了开发者完全的掌控权。
核心优势回顾
| 开源自由 | 代码完全开源,可自由定制 |
| 模型多样 | 75+ 提供商,选择自由 |
| 平台全面 | 终端、桌面、Web、IDE 全覆盖 |
| 扩展强大 | MCP、代理、规则系统 |
| 企业就绪 | SSO、审计、私有部署 |
适用人群
- 个人开发者 – 免费使用顶级 AI 模型
- 技术团队 – 统一开发规范和工作流
- 企业用户 – 安全合规的 AI 编程方案
- 开源贡献者 – 参与构建下一代编程工具
参考资料
作者: 技术博客创作团队 发布日期: 2025年2月 标签: #OpenCode #AI编程 #开源工具 #LLM #开发效率
本文基于 OpenCode 最新文档编写,如有更新请以官方文档为准。
网硕互联帮助中心




评论前必须登录!
注册