Plugins
Plugins extend Squadron with additional tools.
Loading Plugins
plugin "playwright" {
source = "github.com/mlund01/plugin_playwright"
version = "v0.0.2"
settings {
headless = false
browser_type = "chromium"
}
}Attributes
| Attribute | Type | Description |
|---|---|---|
source | string | Plugin source (GitHub path or local path) |
version | string | Version tag or "local" for local development |
settings | block | Plugin-specific configuration (optional) |
Using Plugin Tools
Once loaded, plugin tools are available as plugins.<name>.<tool>:
agent "browser" {
tools = [plugins.playwright.browser_navigate]
}
# Or use all tools from a plugin
agent "browser" {
tools = [plugins.playwright.all]
}Plugin Paths
Plugins are stored in .squadron/plugins/<platform>/<name>/<version>/plugin (e.g. .squadron/plugins/darwin-arm64/playwright/v0.0.2/plugin).
Creating Plugins
Use the squadron-sdk to build plugins:
package main
import squadron "github.com/mlund01/squadron-sdk"
type MyPlugin struct{}
func (p *MyPlugin) Configure(settings map[string]string) error {
return nil
}
func (p *MyPlugin) ListTools() ([]*squadron.ToolInfo, error) {
return []*squadron.ToolInfo{
{
Name: "my_tool",
Description: "Does something useful",
Schema: squadron.Schema{Type: squadron.TypeObject},
},
}, nil
}
func (p *MyPlugin) Call(toolName, payload string) (string, error) {
return "result", nil
}
func main() {
squadron.Serve(&MyPlugin{})
}Build and install:
mkdir -p .squadron/plugins/darwin-arm64/myplugin/local
go build -o .squadron/plugins/darwin-arm64/myplugin/local/plugin .Last updated on