-
Notifications
You must be signed in to change notification settings - Fork 8.6k
[Agent Builder] Agent plugins: initial installation support #256478
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Changes from all commits
211f9c0
b8f1be8
691908b
574a223
c53e96d
9cb3fea
e513b99
7894f92
82dd30d
3ff0676
4eab07f
517a106
3fa0cc1
c1a8b97
af9e7f5
df3f9a2
38be075
c264655
97b3df0
b0b8b5f
0aeb685
be98ca0
59f18e5
5fd4029
3c0ac0c
149cc2c
a1282ca
ad93ccd
d360483
85661b3
669d014
6a809ff
eb5bd0d
2ee9f0f
2d1150f
b04e769
59e34ac
58e41c1
e46a526
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
| Original file line number | Diff line number | Diff line change |
|---|---|---|
|
|
@@ -3096,6 +3096,291 @@ paths: | |
| x-metaTags: | ||
| - content: Kibana, Elastic Cloud Serverless | ||
| name: product_name | ||
| /api/agent_builder/plugins: | ||
| get: | ||
| description: |- | ||
| **Spaces method and path for this operation:** | ||
|
|
||
| <div><span class="operation-verb get">get</span> <span class="operation-path">/s/{space_id}/api/agent_builder/plugins</span></div> | ||
|
|
||
| Refer to [Spaces](https://www.elastic.co/docs/deploy-manage/manage-spaces) for more information. | ||
|
|
||
| List all installed plugins and their managed assets. Plugins are installable packages that bundle agent capabilities such as skills, following the [Claude agent plugin specification](https://code.claude.com/docs/en/plugins).<br/><br/>[Required authorization] Route required privileges: agentBuilder:read. | ||
| operationId: get-agent-builder-plugins | ||
| parameters: [] | ||
| responses: | ||
| '200': | ||
| content: | ||
| application/json: | ||
| examples: | ||
| listPluginsResponseExample: | ||
| description: Example response that returns one installed plugin | ||
| value: | ||
| results: | ||
| - created_at: '2025-01-01T00:00:00.000Z' | ||
| description: Financial analysis tools and skills for Claude | ||
| id: financial-analysis | ||
| manifest: | ||
| author: | ||
| name: Anthropic | ||
| url: https://www.anthropic.com | ||
| keywords: | ||
| - finance | ||
| - analysis | ||
| repository: https://github.com/anthropics/financial-services-plugins | ||
| name: financial-analysis | ||
| skill_ids: | ||
| - financial-analysis-analyze-portfolio | ||
| source_url: https://github.com/anthropics/financial-services-plugins/tree/main/financial-analysis | ||
| unmanaged_assets: | ||
| agents: [] | ||
| commands: [] | ||
| hooks: [] | ||
| lsp_servers: [] | ||
| mcp_servers: [] | ||
| output_styles: [] | ||
| updated_at: '2025-01-01T00:00:00.000Z' | ||
| version: 1.0.0 | ||
| description: Indicates a successful response | ||
| summary: List plugins | ||
| tags: | ||
| - agent builder | ||
| x-codeSamples: | ||
| - lang: curl | ||
| source: | | ||
| curl \ | ||
| -X GET "${KIBANA_URL}/api/agent_builder/plugins" \ | ||
| -H "Authorization: ApiKey ${API_KEY}" | ||
| - lang: Console | ||
| source: | | ||
| GET kbn://api/agent_builder/plugins | ||
| x-state: Technical Preview | ||
| x-metaTags: | ||
| - content: Kibana, Elastic Cloud Serverless | ||
| name: product_name | ||
| /api/agent_builder/plugins/{pluginId}: | ||
| delete: | ||
| description: |- | ||
| **Spaces method and path for this operation:** | ||
|
|
||
| <div><span class="operation-verb delete">delete</span> <span class="operation-path">/s/{space_id}/api/agent_builder/plugins/{pluginId}</span></div> | ||
|
|
||
| Refer to [Spaces](https://www.elastic.co/docs/deploy-manage/manage-spaces) for more information. | ||
|
|
||
| Delete an installed plugin by ID. This action cannot be undone.<br/><br/>[Required authorization] Route required privileges: agentBuilder:write. | ||
| operationId: delete-agent-builder-plugins-pluginid | ||
| parameters: | ||
| - description: A required header to protect against CSRF attacks | ||
| in: header | ||
|
pgayvallet marked this conversation as resolved.
|
||
| name: kbn-xsrf | ||
| required: true | ||
| schema: | ||
| example: 'true' | ||
| type: string | ||
| - description: The unique identifier of the plugin. | ||
| in: path | ||
| name: pluginId | ||
| required: true | ||
| schema: | ||
| type: string | ||
| responses: | ||
| '200': | ||
| content: | ||
| application/json: | ||
| examples: | ||
| deletePluginResponseExample: | ||
| description: Example response showing that deletion of the plugin has been successful | ||
| value: | ||
| success: true | ||
| description: Indicates a successful response | ||
| summary: Delete a plugin | ||
| tags: | ||
| - agent builder | ||
| x-codeSamples: | ||
| - lang: curl | ||
| source: | | ||
| curl \ | ||
| -X DELETE "${KIBANA_URL}/api/agent_builder/plugins/{id}" \ | ||
| -H "Authorization: ApiKey ${API_KEY}" \ | ||
| -H "kbn-xsrf: true" | ||
| - lang: Console | ||
| source: | | ||
| DELETE kbn://api/agent_builder/plugins/{id} | ||
| x-state: Technical Preview | ||
| x-metaTags: | ||
| - content: Kibana, Elastic Cloud Serverless | ||
| name: product_name | ||
| get: | ||
| description: |- | ||
| **Spaces method and path for this operation:** | ||
|
|
||
| <div><span class="operation-verb get">get</span> <span class="operation-path">/s/{space_id}/api/agent_builder/plugins/{pluginId}</span></div> | ||
|
|
||
| Refer to [Spaces](https://www.elastic.co/docs/deploy-manage/manage-spaces) for more information. | ||
|
|
||
| Get a specific plugin by ID.<br/><br/>[Required authorization] Route required privileges: agentBuilder:read. | ||
| operationId: get-agent-builder-plugins-pluginid | ||
| parameters: | ||
| - description: The unique identifier of the plugin. | ||
| in: path | ||
| name: pluginId | ||
| required: true | ||
| schema: | ||
| type: string | ||
| responses: | ||
| '200': | ||
| content: | ||
| application/json: | ||
| examples: | ||
| getPluginByIdResponseExample: | ||
| description: Example response returning a single installed plugin | ||
| value: | ||
| created_at: '2025-01-01T00:00:00.000Z' | ||
| description: Financial analysis tools and skills for Claude | ||
| id: financial-analysis | ||
| manifest: | ||
| author: | ||
| name: Anthropic | ||
| url: https://www.anthropic.com | ||
| keywords: | ||
| - finance | ||
| - analysis | ||
| repository: https://github.com/anthropics/financial-services-plugins | ||
| name: financial-analysis | ||
| skill_ids: | ||
| - financial-analysis-analyze-portfolio | ||
| source_url: https://github.com/anthropics/financial-services-plugins/tree/main/financial-analysis | ||
| unmanaged_assets: | ||
| agents: [] | ||
| commands: [] | ||
| hooks: [] | ||
| lsp_servers: [] | ||
| mcp_servers: [] | ||
| output_styles: [] | ||
| updated_at: '2025-01-01T00:00:00.000Z' | ||
| version: 1.0.0 | ||
| description: Indicates a successful response | ||
| summary: Get a plugin by id | ||
| tags: | ||
| - agent builder | ||
| x-codeSamples: | ||
| - lang: curl | ||
| source: | | ||
| curl \ | ||
| -X GET "${KIBANA_URL}/api/agent_builder/plugins/{id}" \ | ||
| -H "Authorization: ApiKey ${API_KEY}" | ||
| - lang: Console | ||
| source: | | ||
| GET kbn://api/agent_builder/plugins/{id} | ||
| x-state: Technical Preview | ||
| x-metaTags: | ||
| - content: Kibana, Elastic Cloud Serverless | ||
| name: product_name | ||
| /api/agent_builder/plugins/install: | ||
| post: | ||
| description: |- | ||
| **Spaces method and path for this operation:** | ||
|
|
||
| <div><span class="operation-verb post">post</span> <span class="operation-path">/s/{space_id}/api/agent_builder/plugins/install</span></div> | ||
|
|
||
| Refer to [Spaces](https://www.elastic.co/docs/deploy-manage/manage-spaces) for more information. | ||
|
|
||
| Install a plugin from a [GitHub Claude plugin URL](https://code.claude.com/docs/en/plugins) or a direct ZIP URL. Plugins bundle agent capabilities such as skills.<br/><br/>[Required authorization] Route required privileges: agentBuilder:write. | ||
| operationId: post-agent-builder-plugins-install | ||
| parameters: | ||
| - description: A required header to protect against CSRF attacks | ||
| in: header | ||
| name: kbn-xsrf | ||
| required: true | ||
| schema: | ||
| example: 'true' | ||
| type: string | ||
| requestBody: | ||
| content: | ||
| application/json: | ||
| examples: | ||
| installPluginFromGithubExample: | ||
| description: Example request for installing a plugin from a GitHub URL | ||
| value: | ||
| url: https://github.com/anthropics/financial-services-plugins/tree/main/financial-analysis | ||
| installPluginFromZipExample: | ||
| description: Example request for installing a plugin from a direct zip URL | ||
| value: | ||
| url: https://my-server.example.com/my-plugin.zip | ||
| installPluginWithNameOverrideExample: | ||
| description: Example request for installing a plugin with a custom name | ||
| value: | ||
| plugin_name: my-custom-plugin-name | ||
| url: https://github.com/anthropics/financial-services-plugins/tree/main/financial-analysis | ||
| schema: | ||
| additionalProperties: false | ||
| type: object | ||
| properties: | ||
| plugin_name: | ||
| description: Optional name override for the plugin. Defaults to the manifest name. | ||
| type: string | ||
| url: | ||
| description: URL to install the plugin from (GitHub URL or direct zip URL). | ||
| type: string | ||
| required: | ||
| - url | ||
| responses: | ||
| '200': | ||
| content: | ||
| application/json: | ||
| examples: | ||
| installPluginResponseExample: | ||
| description: Example response returning the definition of the installed plugin | ||
| value: | ||
| created_at: '2025-01-01T00:00:00.000Z' | ||
| description: Financial analysis tools and skills for Claude | ||
| id: financial-analysis | ||
| manifest: | ||
| author: | ||
| name: Anthropic | ||
| url: https://www.anthropic.com | ||
| keywords: | ||
| - finance | ||
| - analysis | ||
| repository: https://github.com/anthropics/financial-services-plugins | ||
|
Comment on lines
+3281
to
+3379
Contributor
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Document the ZIP upload install flow in this public spec. The PR adds direct ZIP uploads as a supported install source, but this operation only exposes the JSON 🤖 Prompt for AI Agents
pgayvallet marked this conversation as resolved.
|
||
| name: financial-analysis | ||
| skill_ids: | ||
| - financial-analysis-analyze-portfolio | ||
| source_url: https://github.com/anthropics/financial-services-plugins/tree/main/financial-analysis | ||
| unmanaged_assets: | ||
| agents: [] | ||
| commands: [] | ||
| hooks: [] | ||
| lsp_servers: [] | ||
| mcp_servers: [] | ||
| output_styles: [] | ||
| updated_at: '2025-01-01T00:00:00.000Z' | ||
| version: 1.0.0 | ||
| description: Indicates a successful response | ||
| summary: Install a plugin | ||
| tags: | ||
| - agent builder | ||
| x-codeSamples: | ||
| - lang: curl | ||
| source: | | ||
| curl \ | ||
| -X POST "${KIBANA_URL}/api/agent_builder/plugins/install" \ | ||
| -H "Authorization: ApiKey ${API_KEY}" \ | ||
| -H "kbn-xsrf: true" \ | ||
| -H "Content-Type: application/json" \ | ||
| -d '{ | ||
| "url": "https://github.com/anthropics/financial-services-plugins/tree/main/financial-analysis" | ||
| }' | ||
| - lang: Console | ||
| source: | | ||
| POST kbn://api/agent_builder/plugins/install | ||
| { | ||
| "url": "https://github.com/anthropics/financial-services-plugins/tree/main/financial-analysis" | ||
| } | ||
| x-state: Technical Preview | ||
| x-metaTags: | ||
| - content: Kibana, Elastic Cloud Serverless | ||
| name: product_name | ||
| /api/agent_builder/skills: | ||
| get: | ||
| description: |- | ||
|
|
||
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Use the declared path parameter name in the examples.
These samples use
{id}, but the path is declared as{pluginId}. Copy-pasting them as-is will hit the wrong route shape in the docs and Console examples.Suggested doc fix
Also applies to: 3232-3240
🤖 Prompt for AI Agents