Creating Agent Extensions
A Symposium agent extension is an ACP (Agent Client Protocol) proxy that sits between the client and the agent. Proxies can intercept and transform messages, inject context, provide MCP tools, and coordinate agent behavior. Agent extensions are typically distributed as Rust crates on crates.io.
Basic Structure
Your extension crate should:
- Implement an ACP proxy using the
sacpcrate - Produce a binary that speaks ACP over stdio
- Include Symposium metadata in Cargo.toml
See the sacp cookbook on building proxies for implementation details and examples.
Cargo.toml Metadata
Add metadata to tell Symposium how to run your extension:
[package]
name = "my-extension"
version = "0.1.0"
description = "Help agents work with MyLibrary"
[package.metadata.symposium]
# Optional: specify which binary if your crate has multiple
binary = "my-extension"
# Optional: arguments to pass when spawning
args = []
# Optional: environment variables
env = { MY_CONFIG = "value" }
The name, description, and version come from the standard [package] section.
Testing Your Extension
Before publishing:
- Install locally:
cargo install --path . - Test with Symposium: add to your local config and verify it loads correctly
- Check ACP compliance: ensure your proxy handles
proxy/initializecorrectly