You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
The Universal Tool Calling Protocol (UTCP) is a modern, flexible, and scalable standard for defining and interacting with tools across a wide variety of communication protocols. UTCP 1.0.0 introduces a modular core with a plugin-based architecture, making it more extensible, testable, and easier to package.
10
+
The Universal Tool Calling Protocol (UTCP) is a secure, scalable standard for defining and interacting with tools across a wide variety of communication protocols. UTCP 1.0.0 introduces a modular core with a plugin-based architecture, making it more extensible, testable, and easier to package.
11
11
12
12
In contrast to other protocols, UTCP places a strong emphasis on:
13
13
@@ -19,47 +19,76 @@ In contrast to other protocols, UTCP places a strong emphasis on:
19
19
20
20

21
21
22
-
## New Architecture in 1.0.0
22
+
## Repository Structure
23
23
24
-
UTCP has been refactored into a core library and a set of optional plugins.
24
+
This repository contains the complete UTCP Python implementation:
25
+
26
+
-**[`core/`](core/)** - Core `utcp` package with foundational components ([README](core/README.md))
@@ -87,7 +116,7 @@ Version 1.0.0 introduces several breaking changes. Follow these steps to migrate
87
116
3.**Update Imports**: Change your imports to reflect the new modular structure. For example, `from utcp.client.transport_interfaces.http_transport import HttpProvider` becomes `from utcp_http.http_call_template import HttpCallTemplate`.
88
117
4.**Tool Search**: If you were using the default search, the new strategy is `TagAndDescriptionWordMatchStrategy`. This is the new default and requires no changes unless you were implementing a custom strategy.
89
118
5.**Tool Naming**: Tool names are now namespaced as `manual_name.tool_name`. The client handles this automatically.
90
-
6**Variable Substitution Namespacing**: Variables that are subsituted in different `call_templates`, are first namespaced with the name of the manual with the `_` duplicated. So a key in a tool call template called `API_KEY` from the manual `manual_1` would be converted to `manual__1_API_KEY`.
119
+
6.**Variable Substitution Namespacing**: Variables that are substituted in different `call_templates`, are first namespaced with the name of the manual with the `_` duplicated. So a key in a tool call template called `API_KEY` from the manual `manual_1` would be converted to `manual__1_API_KEY`.
91
120
92
121
## Usage Examples
93
122
@@ -226,7 +255,7 @@ if __name__ == "__main__":
226
255
227
256
### 2. Providing a UTCP Manual
228
257
229
-
A `UTCPManual` describes the tools you offer. The key change is replacing `tool_provider` with `call_template`.
258
+
A `UTCPManual` describes the tools you offer. The key change is replacing `tool_provider` with `tool_call_template`.
230
259
231
260
**`server.py`**
232
261
@@ -269,7 +298,7 @@ app = FastAPI()
269
298
defutcp_discovery():
270
299
return {
271
300
"manual_version": "1.0.0",
272
-
"utcp_version": "1.0.1",
301
+
"utcp_version": "1.0.2",
273
302
"tools": [
274
303
{
275
304
"name": "get_weather",
@@ -288,7 +317,7 @@ def utcp_discovery():
288
317
"conditions": {"type": "string"}
289
318
}
290
319
},
291
-
"call_template": {
320
+
"tool_call_template": {
292
321
"call_template_type": "http",
293
322
"url": "https://example.com/api/weather",
294
323
"http_method": "GET"
@@ -311,7 +340,7 @@ You can find full examples in the [examples repository](https://github.com/unive
311
340
312
341
### `UtcpManual` and `Tool` Models
313
342
314
-
The `tool_provider` object inside a `Tool` has been replaced by `call_template`.
343
+
The `tool_provider` object inside a `Tool` has been replaced by `tool_call_template`.
315
344
316
345
```json
317
346
{
@@ -324,7 +353,7 @@ The `tool_provider` object inside a `Tool` has been replaced by `call_template`.
0 commit comments