docs: extract Features section to docs/features.md
- Create docs/features.md with full Features documentation - Update README.md with compact summary and link to docs - Update README.ja.md with localized compact summary - Update README.zh-cn.md with localized compact summary - Remove 831 lines of duplicated content across READMEs
This commit is contained in:
290
README.zh-cn.md
290
README.zh-cn.md
@@ -123,21 +123,6 @@
|
||||
- [太复杂了?](#太复杂了)
|
||||
- [卸载](#卸载)
|
||||
- [功能特性](#功能特性)
|
||||
- [智能体:你的队友](#智能体你的队友)
|
||||
- [后台智能体:像团队一样工作](#后台智能体像团队一样工作)
|
||||
- [工具:你的队友值得更好的](#工具你的队友值得更好的)
|
||||
- [为什么只有你在用 IDE?](#为什么只有你在用-ide)
|
||||
- [会话管理](#会话管理)
|
||||
- [上下文就是一切](#上下文就是一切)
|
||||
- [多模态化。节省 Token。](#多模态化节省-token)
|
||||
- [我移除了他们的障碍](#我移除了他们的障碍)
|
||||
- [内嵌技能的 MCP 支持](#内嵌技能的-mcp-支持)
|
||||
- [再见 Claude Code。你好 Oh My OpenCode。](#再见-claude-code你好-oh-my-opencode)
|
||||
- [钩子集成](#钩子集成)
|
||||
- [配置加载器](#配置加载器)
|
||||
- [数据存储](#数据存储)
|
||||
- [兼容性开关](#兼容性开关)
|
||||
- [不仅仅是为了智能体](#不仅仅是为了智能体)
|
||||
- [配置](#配置)
|
||||
- [JSONC 支持](#jsonc-支持)
|
||||
- [Google 认证](#google-认证)
|
||||
@@ -526,271 +511,18 @@ gh repo star code-yeongyu/oh-my-opencode
|
||||
|
||||
## 功能特性
|
||||
|
||||
### 智能体:你的队友
|
||||
我们拥有众多功能,你会觉得这些功能理所当然应该存在,一旦体验过,就再也回不去了。
|
||||
详细信息请参阅 [Features Documentation](docs/features.md)。
|
||||
|
||||
- **Sisyphus** (`anthropic/claude-opus-4-5`):**默认智能体。** OpenCode 的强大 AI 编排器。使用专业子智能体进行规划、委派和执行复杂任务,采用积极的并行执行策略。强调后台任务委派和 todo 驱动的工作流程。使用 Claude Opus 4.5 配合扩展思考(32k 预算)以获得最大推理能力。
|
||||
- **oracle** (`openai/gpt-5.2`):架构、代码审查、策略。使用 GPT-5.2 进行出色的逻辑推理和深度分析。灵感来自 AmpCode。
|
||||
- **librarian** (`opencode/glm-4.7-free`):多仓库分析、文档查找、实现示例。使用 GLM-4.7 Free 进行深度代码库理解和 GitHub 研究,提供基于证据的答案。灵感来自 AmpCode。
|
||||
- **explore** (`opencode/grok-code`、`google/gemini-3-flash` 或 `anthropic/claude-haiku-4-5`):快速代码库探索和模式匹配。配置 Antigravity 认证时使用 Gemini 3 Flash,有 Claude max20 时使用 Haiku,否则使用 Grok。灵感来自 Claude Code。
|
||||
- **frontend-ui-ux-engineer** (`google/gemini-3-pro-preview`):设计师转开发者。构建华丽的 UI。Gemini 擅长创造性的、美观的 UI 代码。
|
||||
- **document-writer** (`google/gemini-3-flash`):技术写作专家。Gemini 是文字大师——写出流畅的散文。
|
||||
- **multimodal-looker** (`google/gemini-3-flash`):视觉内容专家。分析 PDF、图像、图表以提取信息。
|
||||
|
||||
主智能体会自动调用这些,但你也可以显式调用它们:
|
||||
|
||||
```
|
||||
让 @oracle 审查这个设计并提出架构
|
||||
让 @librarian 看看这是如何实现的——为什么行为一直在变化?
|
||||
让 @explore 查找这个功能的策略
|
||||
```
|
||||
|
||||
在 `oh-my-opencode.json` 中自定义智能体模型、提示和权限。参见[配置](#配置)。
|
||||
|
||||
### 后台智能体:像团队一样工作
|
||||
|
||||
如果你能让这些智能体不知疲倦地运行,永不空闲呢?
|
||||
|
||||
- 让 GPT 调试的同时 Claude 尝试不同的方法来找到根本原因
|
||||
- Gemini 编写前端的同时 Claude 处理后端
|
||||
- 启动大规模并行搜索,继续实现其他部分,然后使用搜索结果完成
|
||||
|
||||
这些工作流程在 OhMyOpenCode 中都是可能的。
|
||||
|
||||
在后台运行子智能体。主智能体在完成时收到通知。需要时等待结果。
|
||||
|
||||
**让你的智能体像你的团队一样工作。**
|
||||
|
||||
### 工具:你的队友值得更好的
|
||||
|
||||
#### 为什么只有你在用 IDE?
|
||||
|
||||
语法高亮、自动完成、重构、导航、分析——现在还有智能体在写代码...
|
||||
|
||||
**为什么只有你拥有这些工具?**
|
||||
**把它们给你的智能体,看它们升级。**
|
||||
|
||||
[OpenCode 提供 LSP](https://opencode.ai/docs/lsp/),但仅用于分析。
|
||||
|
||||
你编辑器中的功能?其他智能体无法触及。
|
||||
把你最好的工具交给你最好的同事。现在它们可以正确地重构、导航和分析。
|
||||
|
||||
- **lsp_diagnostics**:在构建前获取错误/警告
|
||||
- **lsp_prepare_rename**:验证重命名操作
|
||||
- **lsp_rename**:在工作区中重命名符号
|
||||
- **ast_grep_search**:AST 感知的代码模式搜索(25 种语言)
|
||||
- **ast_grep_replace**:AST 感知的代码替换
|
||||
- **call_omo_agent**:生成专业的 explore/librarian 智能体。支持 `run_in_background` 参数进行异步执行。
|
||||
- **delegate_task**:基于类别的任务委派,使用专业智能体。支持预配置的类别(visual、business-logic)或直接指定智能体。使用 `background_output` 检索结果,使用 `background_cancel` 取消任务。参见[类别](#类别)。
|
||||
|
||||
#### 会话管理
|
||||
|
||||
导航和搜索 OpenCode 会话历史的工具:
|
||||
|
||||
- **session_list**:列出所有 OpenCode 会话,支持按日期和数量过滤
|
||||
- **session_read**:从特定会话读取消息和历史
|
||||
- **session_search**:在会话消息中进行全文搜索
|
||||
- **session_info**:获取会话的元数据和统计信息
|
||||
|
||||
这些工具使智能体能够引用之前的对话并在会话之间保持连续性。
|
||||
|
||||
#### 上下文就是一切
|
||||
- **目录 AGENTS.md / README.md 注入器**:读取文件时自动注入 `AGENTS.md` 和 `README.md`。从文件目录向上遍历到项目根目录,收集路径上的**所有** `AGENTS.md` 文件。支持嵌套的目录特定说明:
|
||||
```
|
||||
project/
|
||||
├── AGENTS.md # 项目级上下文
|
||||
├── src/
|
||||
│ ├── AGENTS.md # src 特定上下文
|
||||
│ └── components/
|
||||
│ ├── AGENTS.md # 组件特定上下文
|
||||
│ └── Button.tsx # 读取此文件会注入所有 3 个 AGENTS.md 文件
|
||||
```
|
||||
读取 `Button.tsx` 会按顺序注入:`project/AGENTS.md` → `src/AGENTS.md` → `components/AGENTS.md`。每个目录的上下文在每个会话中只注入一次。
|
||||
- **条件规则注入器**:不是所有规则都始终适用。当条件匹配时从 `.claude/rules/` 注入规则。
|
||||
- 从文件目录向上遍历到项目根目录,加上 `~/.claude/rules/`(用户级)。
|
||||
- 支持 `.md` 和 `.mdc` 文件。
|
||||
- 通过 frontmatter 中的 `globs` 字段匹配。
|
||||
- `alwaysApply: true` 表示应始终触发的规则。
|
||||
- 规则文件示例:
|
||||
```markdown
|
||||
---
|
||||
globs: ["*.ts", "src/**/*.js"]
|
||||
description: "TypeScript/JavaScript 编码规则"
|
||||
---
|
||||
- 接口名使用 PascalCase
|
||||
- 函数名使用 camelCase
|
||||
```
|
||||
- **在线**:项目规则不是全部。这些是用于扩展能力的内置 MCP:
|
||||
- **websearch**:由 [Exa AI](https://exa.ai) 驱动的实时网络搜索
|
||||
- **context7**:官方文档查询
|
||||
- **grep_app**:跨公共 GitHub 仓库的超快代码搜索(非常适合查找实现示例)
|
||||
|
||||
#### 多模态化。节省 Token。
|
||||
|
||||
来自 AmpCode 的 look_at 工具,现在在 OhMyOpenCode 中。
|
||||
智能体不再需要读取大文件并膨胀上下文,它在内部利用另一个智能体只提取所需内容。
|
||||
|
||||
#### 我移除了他们的障碍
|
||||
- 替换内置的 grep 和 glob 工具。默认实现没有超时——可能永远挂起。
|
||||
|
||||
#### 内嵌技能的 MCP 支持
|
||||
|
||||
技能现在可以携带自己的 MCP 服务器。直接在技能 frontmatter 中或通过 `mcp.json` 文件定义 MCP 配置:
|
||||
|
||||
```yaml
|
||||
---
|
||||
description: 浏览器自动化技能
|
||||
mcp:
|
||||
playwright:
|
||||
command: npx
|
||||
args: ["-y", "@anthropic-ai/mcp-playwright"]
|
||||
---
|
||||
```
|
||||
|
||||
当你加载带有内嵌 MCP 的技能时,其工具会自动可用。`skill_mcp` 工具允许你使用完整的 schema 发现来调用这些 MCP 操作。
|
||||
|
||||
**内置技能:**
|
||||
- **playwright**:开箱即用的浏览器自动化、网页抓取、测试和截图
|
||||
|
||||
通过配置中的 `disabled_skills: ["playwright"]` 禁用内置技能。
|
||||
|
||||
### 再见 Claude Code。你好 Oh My OpenCode。
|
||||
|
||||
Oh My OpenCode 有一个 Claude Code 兼容层。
|
||||
如果你之前使用 Claude Code,你现有的配置直接可用。
|
||||
|
||||
#### 钩子集成
|
||||
|
||||
通过 Claude Code 的 `settings.json` 钩子系统运行自定义脚本。
|
||||
Oh My OpenCode 从以下位置读取和执行钩子:
|
||||
|
||||
- `~/.claude/settings.json`(用户级)
|
||||
- `./.claude/settings.json`(项目级)
|
||||
- `./.claude/settings.local.json`(本地,git 忽略)
|
||||
|
||||
支持的钩子事件:
|
||||
- **PreToolUse**:工具执行前运行。可以阻止或修改工具输入。
|
||||
- **PostToolUse**:工具执行后运行。可以添加警告或上下文。
|
||||
- **UserPromptSubmit**:用户提交提示时运行。可以阻止或注入消息。
|
||||
- **Stop**:会话空闲时运行。可以注入后续提示。
|
||||
|
||||
`settings.json` 示例:
|
||||
```json
|
||||
{
|
||||
"hooks": {
|
||||
"PostToolUse": [
|
||||
{
|
||||
"matcher": "Write|Edit",
|
||||
"hooks": [{ "type": "command", "command": "eslint --fix $FILE" }]
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
#### 配置加载器
|
||||
|
||||
**命令加载器**:从 4 个目录加载基于 markdown 的斜杠命令:
|
||||
- `~/.claude/commands/`(用户级)
|
||||
- `./.claude/commands/`(项目级)
|
||||
- `~/.config/opencode/command/`(opencode 全局)
|
||||
- `./.opencode/command/`(opencode 项目)
|
||||
|
||||
**技能加载器**:从包含 `SKILL.md` 的目录加载技能:
|
||||
- `~/.claude/skills/`(用户级)
|
||||
- `./.claude/skills/`(项目级)
|
||||
|
||||
**智能体加载器**:从 markdown 文件加载自定义智能体定义:
|
||||
- `~/.claude/agents/*.md`(用户级)
|
||||
- `./.claude/agents/*.md`(项目级)
|
||||
|
||||
**MCP 加载器**:从 `.mcp.json` 文件加载 MCP 服务器配置:
|
||||
- `~/.claude/.mcp.json`(用户级)
|
||||
- `./.mcp.json`(项目级)
|
||||
- `./.claude/.mcp.json`(本地)
|
||||
- 支持环境变量展开(`${VAR}` 语法)
|
||||
|
||||
#### 数据存储
|
||||
|
||||
**Todo 管理**:会话待办事项以 Claude Code 兼容格式存储在 `~/.claude/todos/` 中。
|
||||
|
||||
**转录**:会话活动以 JSONL 格式记录到 `~/.claude/transcripts/` 中,用于回放和分析。
|
||||
|
||||
#### 兼容性开关
|
||||
|
||||
使用 `claude_code` 配置对象禁用特定的 Claude Code 兼容功能:
|
||||
|
||||
```json
|
||||
{
|
||||
"claude_code": {
|
||||
"mcp": false,
|
||||
"commands": false,
|
||||
"skills": false,
|
||||
"agents": false,
|
||||
"hooks": false,
|
||||
"plugins": false
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
| 开关 | 当为 `false` 时,停止从以下位置加载... | 不受影响 |
|
||||
| ---------- | ------------------------------------------------------------------------------------- | ----------------------------------------------------- |
|
||||
| `mcp` | `~/.claude/.mcp.json`、`./.mcp.json`、`./.claude/.mcp.json` | 内置 MCP(context7、grep_app) |
|
||||
| `commands` | `~/.claude/commands/*.md`、`./.claude/commands/*.md` | `~/.config/opencode/command/`、`./.opencode/command/` |
|
||||
| `skills` | `~/.claude/skills/*/SKILL.md`、`./.claude/skills/*/SKILL.md` | - |
|
||||
| `agents` | `~/.claude/agents/*.md`、`./.claude/agents/*.md` | 内置智能体(oracle、librarian 等) |
|
||||
| `hooks` | `~/.claude/settings.json`、`./.claude/settings.json`、`./.claude/settings.local.json` | - |
|
||||
| `plugins` | `~/.claude/plugins/`(Claude Code 市场插件) | - |
|
||||
|
||||
所有开关默认为 `true`(启用)。省略 `claude_code` 对象以获得完整的 Claude Code 兼容性。
|
||||
|
||||
**选择性禁用特定插件** 使用 `plugins_override`:
|
||||
|
||||
```json
|
||||
{
|
||||
"claude_code": {
|
||||
"plugins_override": {
|
||||
"claude-mem@thedotmack": false,
|
||||
"some-other-plugin@marketplace": false
|
||||
}
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
这允许你在保持插件系统启用的同时,通过其完整标识符(`plugin-name@marketplace-name`)禁用特定插件。
|
||||
|
||||
### 不仅仅是为了智能体
|
||||
|
||||
当智能体蓬勃发展时,你也会收益。但我同时也想直接帮助你。
|
||||
|
||||
- **Ralph Loop**:自引用开发循环,持续运行直到任务完成。灵感来自 Anthropic 的 Ralph Wiggum 插件。**支持所有编程语言。**
|
||||
- 使用 `/ralph-loop "构建一个 REST API"` 开始,让智能体持续工作
|
||||
- 循环检测 `<promise>DONE</promise>` 来判断何时完成
|
||||
- 如果智能体在没有完成承诺的情况下停止,会自动继续
|
||||
- 结束条件:检测到完成、达到最大迭代次数(默认 100)或 `/cancel-ralph`
|
||||
- 在 `oh-my-opencode.json` 中配置:`{ "ralph_loop": { "enabled": true, "default_max_iterations": 100 } }`
|
||||
- **关键词检测器**:自动检测提示中的关键词并激活专门模式:
|
||||
- `ultrawork` / `ulw`:最大性能模式,带并行智能体编排
|
||||
- `search` / `find` / `찾아` / `検索`:最大化搜索力度,带并行 explore 和 librarian 智能体
|
||||
- `analyze` / `investigate` / `분석` / `調査`:深度分析模式,带多阶段专家咨询
|
||||
- **Todo 继续执行器**:让智能体在停止前完成所有 TODO。终结 LLM 中途放弃的慢性习惯。
|
||||
- **注释检查器**:LLM 喜欢注释。太多注释。这提醒它们减少噪音。智能地忽略有效模式(BDD、指令、文档字符串)并要求为其余部分提供理由。整洁的代码获胜。
|
||||
- **思考模式**:自动检测何时需要扩展思考并切换模式。捕获"深入思考"或"ultrathink"等短语,并动态调整模型设置以获得最大推理能力。
|
||||
- **上下文窗口监控**:实现[上下文窗口焦虑管理](https://agentic-patterns.com/patterns/context-window-anxiety-management/)。
|
||||
- 在使用率达到 70%+ 时,提醒智能体还有空间——防止草率、马虎的工作。
|
||||
- **智能体使用提醒**:当你直接调用搜索工具时,提醒你通过后台任务利用专业智能体以获得更好的结果。
|
||||
- **Anthropic 自动压缩**:当 Claude 模型达到 token 限制时,自动总结和压缩会话——无需手动干预。
|
||||
- **会话恢复**:自动从会话错误中恢复(缺失的工具结果、思考块问题、空消息)。会话不会在运行中崩溃。即使崩溃,也会恢复。
|
||||
- **自动更新检查器**:自动检查 oh-my-opencode 的新版本,并可以自动更新你的配置。在启动时显示 toast 通知,显示当前版本和 Sisyphus 状态(启用时显示"Sisyphus on steroids is steering OpenCode",否则显示"OpenCode is now on Steroids. oMoMoMoMo...")。通过在 `disabled_hooks` 中添加 `"auto-update-checker"` 禁用所有功能,或通过在 `disabled_hooks` 中添加 `"startup-toast"` 仅禁用 toast 通知。参见[配置 > 钩子](#钩子)。
|
||||
- **后台通知**:后台智能体任务完成时收到通知。
|
||||
- **会话通知**:智能体空闲时发送操作系统通知。在 macOS、Linux 和 Windows 上工作——永远不会错过智能体需要输入的时刻。
|
||||
- **空任务响应检测器**:捕获 Task 工具返回空结果的情况。警告你可能的智能体失败,这样你就不会永远等待一个已经返回空的响应。
|
||||
- **空消息清理器**:通过在发送前自动清理消息内容,防止空聊天消息导致的 API 错误。
|
||||
- **Grep 输出截断器**:Grep 可能返回大量文本。这会根据你剩余的上下文窗口动态截断输出——保持 50% 余量,上限 50k token。
|
||||
- **工具输出截断器**:同样的思路,更广的范围。截断 Grep、Glob、LSP 工具和 AST-grep 的输出。防止一次详细搜索吃掉你的整个上下文。
|
||||
- **预防性压缩**:在达到硬 token 限制前主动压缩会话。在 85% 上下文窗口使用率时运行。**默认启用。** 通过 `disabled_hooks: ["preemptive-compaction"]` 禁用。
|
||||
- **压缩上下文注入器**:在会话压缩期间保留关键上下文(AGENTS.md、当前目录信息),这样你不会丢失重要状态。
|
||||
- **思考块验证器**:验证思考块以确保正确格式,防止格式错误的思考内容导致 API 错误。
|
||||
- **Claude Code 钩子**:执行来自 Claude Code settings.json 的钩子——这是运行 PreToolUse/PostToolUse/UserPromptSubmit/Stop 钩子的兼容层。
|
||||
**概览:**
|
||||
- **智能体**:Sisyphus(主智能体)、Prometheus(规划器)、Oracle(架构/调试)、Librarian(文档/代码搜索)、Explore(快速代码库 grep)、Frontend Engineer(UI/UX)、Document Writer、Multimodal Looker
|
||||
- **后台智能体**:像真正的开发团队一样并行运行多个智能体
|
||||
- **LSP & AST 工具**:重构、重命名、诊断、AST 感知代码搜索
|
||||
- **上下文注入**:自动注入 AGENTS.md、README.md、条件规则
|
||||
- **Claude Code 兼容性**:完整的钩子系统、命令、技能、智能体、MCP
|
||||
- **内置 MCP**:websearch (Exa)、context7 (文档)、grep_app (GitHub 搜索)
|
||||
- **会话工具**:列出、读取、搜索和分析会话历史
|
||||
- **生产力功能**:Ralph Loop、Todo Enforcer、Comment Checker、Think Mode 等
|
||||
|
||||
## 配置
|
||||
|
||||
|
||||
Reference in New Issue
Block a user