diff --git a/index.bs b/index.bs index e602129..7bfa960 100644 --- a/index.bs +++ b/index.bs @@ -118,6 +118,15 @@ A tool definition is a [=struct=] with the following [=struct/items=] :: a [=string=] uniquely identifying a tool registered within a [=model context=]'s [=model context/tool map=]; it is the same as the [=map/key=] identifying this object. + The [=tool definition/name=] SHOULD: + * Have a [=string/length=] between 1 and 128, inclusive. + * Be considered case-sensitive. + * Only consist of [=ASCII alphanumeric=] [=code points=], U+005F LOW LINE (_), U+002D HYPHEN-MINUS (-), and U+002E FULL STOP (.). + + : title + :: A [=string=] representing a human-readable title of the tool to be used in the user interface + to represent the tool. If not provided, the [=tool definition/name=] is used as the default display value. + : description :: a [=string=]. @@ -206,12 +215,18 @@ The registerTool(tool) method step 1. Let |tool name| be |tool|'s {{ModelContextTool/name}}. +1. Let |tool title| be |tool|'s {{ModelContextTool/title}}. + 1. If |tool map|[|tool name|] [=map/exists=], then [=exception/throw=] an {{InvalidStateError}} {{DOMException}}. -1. If either |tool name| or {{ModelContextTool/description}} is the empty string, then +1. If |tool name| or {{ModelContextTool/description}} is an empty string, then [=exception/throw=] an {{InvalidStateError}} {{DOMException}}. +1. If |tool name|'s [=string/length=] is greater than 128, or if |tool name| contains a + [=code point=] that is not an [=ASCII alphanumeric=], U+005F (_), U+002D (-), or U+002E (.), + then [=exception/throw=] an {{InvalidStateError}}. + 1. Let |stringified input schema| be the empty string. 1. If |tool|'s {{ModelContextTool/inputSchema}} [=map/exists=], then set |stringified input schema| @@ -240,6 +255,9 @@ The registerTool(tool) method step : [=tool definition/name=] :: |tool name| + : [=tool definition/title=] + :: |tool title| + : [=tool definition/description=] :: |tool|'s {{ModelContextTool/description}} @@ -275,6 +293,7 @@ The {{ModelContextTool}} dictionary describes a tool that can be invoked by [=ag
A unique identifier for the tool. This is used by [=agents=] to reference the tool when making tool calls. +
tool["{{ModelContextTool/title}}"]A label for the tool. This is used by the user agent to reference the tool in the user interface. +
It is recommended that this string be localized to the user's +{{NavigatorLanguage/language}}. +
tool["{{ModelContextTool/description}}"]A natural language description of the tool's functionality. This helps [=agents=] understand when and how to use the tool.