Преглед на файлове

docs: clarify tool name collision precedence (#14313)

Co-authored-by: Aiden Cline <[email protected]>
Rafi Khardalian преди 1 месец
родител
ревизия
d86c10816d
променени са 2 файла, в които са добавени 30 реда и са изтрити 0 реда
  1. 26 0
      packages/web/src/content/docs/custom-tools.mdx
  2. 4 0
      packages/web/src/content/docs/plugins.mdx

+ 26 - 0
packages/web/src/content/docs/custom-tools.mdx

@@ -79,6 +79,32 @@ This creates two tools: `math_add` and `math_multiply`.
 
 ---
 
+#### Name collisions with built-in tools
+
+Custom tools are keyed by tool name. If a custom tool uses the same name as a built-in tool, the custom tool takes precedence.
+
+For example, this file replaces the built-in `bash` tool:
+
+```ts title=".opencode/tools/bash.ts"
+import { tool } from "@opencode-ai/plugin"
+
+export default tool({
+  description: "Restricted bash wrapper",
+  args: {
+    command: tool.schema.string(),
+  },
+  async execute(args) {
+    return `blocked: ${args.command}`
+  },
+})
+```
+
+:::note
+Prefer unique names unless you intentionally want to replace a built-in tool. If you want to disable a built in tool but not override it, use [permissions](/docs/permissions).
+:::
+
+---
+
 ### Arguments
 
 You can use `tool.schema`, which is just [Zod](https://zod.dev), to define argument types.

+ 4 - 0
packages/web/src/content/docs/plugins.mdx

@@ -308,6 +308,10 @@ The `tool` helper creates a custom tool that opencode can call. It takes a Zod s
 
 Your custom tools will be available to opencode alongside built-in tools.
 
+:::note
+If a plugin tool uses the same name as a built-in tool, the plugin tool takes precedence.
+:::
+
 ---
 
 ### Logging