Connic Composer SDK
Build Connic agents in code.
Define agents in YAML, extend them with Python, test them with hot reload against Connic cloud, and deploy them to Connic-managed environments.
Documentation • Quickstart • AI Agent Setup • Agent Templates • Dashboard
What It Is
connic-composer-sdk is the Python SDK and CLI for Connic's code-first agent workflow.
Use it to:
- define agents in YAML
- write custom tools as plain Python functions
- add middleware, schemas, sessions, retries, concurrency, and guardrails
- connect MCP servers and use Connic's predefined tools
- validate projects locally before uploading anything
- run hot-reload test sessions in isolated cloud environments
- deploy to Connic from the CLI or through a connected Git repository
Installation
pip install connic-composer-sdk
Requires Python 3.10 or newer.
Quick Start
# Create a new project
connic init my-agents --skill
cd my-agents
# Authenticate this project with Connic
connic login
# Validate the project locally
connic lint
# Start a hot-reload dev session in Connic cloud
connic dev
# Run declarative test suites against an environment
connic test
The default scaffold is intentionally minimal. If you want a starter project with working examples, use templates:
connic init my-agents --templates=invoice,customer-support --skill
Browse available templates at connic.co/agents.
The optional --skill flag installs the Connic AI coding-agent skill into both .agents/skills/connic and .claude/skills/connic so supported coding agents can use the Connic project layout, YAML fields, CLI flags, connector patterns, and best practices while editing your repo. For an existing project, run:
connic skill
In an interactive terminal, both commands detect Codex and Claude Code and ask whether to install the full Connic plugin for each detected client. The plugin bundles the same skill with Connic MCP. Declining leaves the project-local skill installation unchanged. See AI agent setup for manual and client-specific paths.
The CLI checks for SDK, project skill, Codex plugin, and Claude Code plugin updates when commands run. It checks every installed Claude Code scope separately. To check without updating, including from an AI coding-agent session, run:
connic update --check
connic update --skill updates only the project skill copies and client plugins that are already installed; it does not add missing integrations.
Example Project
my-agents/
├── agents/
│ ├── _defaults.yaml # optional — shared defaults for every agent
│ └── support-assistant.yaml
├── tools/
│ └── billing.py
├── middleware/
│ └── support-assistant.py
├── schemas/
└── requirements.txt
_defaults.yaml is optional and can live at any depth under agents/. Its values are merged into every agent at that directory level and below (deeper layers and the agent file itself override earlier ones). Lists like tools, mcp_servers, and guardrails.input/output concat with dedup-by-ref so children add to inherited entries. name and description are not allowed in defaults. Every agent file must still define version, name, and description.
agents/support-assistant.yaml
version: "1.0"
name: support-assistant
type: llm
model: connic/glm-5.2
description: "Customer support agent with billing and retrieval access"
system_prompt: |
You are a concise support agent.
Use tools when they help produce a more accurate answer.
tools:
- billing.lookup_invoice
- retrieval_query
session:
key: input.user_id
ttl: 86400
guardrails:
input:
- type: prompt_injection
mode: block
output:
- type: system_prompt_leakage
mode: block
tools/billing.py
def lookup_invoice(invoice_id: str) -> dict:
"""Look up invoice status by invoice ID.
Args:
invoice_id: The invoice identifier
Returns:
Invoice details for the requested invoice
"""
return {
"invoice_id": invoice_id,
"status": "paid",
"amount": 199.0,
"currency": "USD",
}
Run:
connic lint
connic tools
connic test
Core Concepts
Agent Types
See Agent Configuration for the full YAML reference.
llm: an LLM-driven agent with prompts, tools, MCP servers, schemas, and guardrailstool: a direct wrapper around a Python toolsequential: a pipeline that executes multiple agents in order
Tools
Custom tools are plain Python functions discovered from tools/, including nested modules. Type hints and docstrings are used to generate tool schemas automatically. Positional-only parameters, *args, and **kwargs are not supported. See Writing Tools for details.
To return a file from a tool, wrap one explicit source in ToolFile:
from connic import ToolFile
def export_invoice(invoice_id: str) -> ToolFile:
"""Generate an invoice PDF."""
pdf = build_invoice_pdf(invoice_id)
return ToolFile(
mime_type="application/pdf",
name=f"invoice-{invoice_id}.pdf",
data=pdf,
)
ToolFile accepts exactly one of data (inline bytes) or uri. It also carries an optional name and size_bytes; inline byte size is inferred and an explicitly supplied size must match. A tool may return one ToolFile or include files alongside JSON and text values in a list or tuple. Raw bytes are rejected because they do not identify a MIME type; wrap them in ToolFile(data=..., mime_type=...).
The SDK also exposes predefined Connic tools such as the ones documented in Predefined Tools:
trigger_agenttrigger_agent_atretrieval_queryretrieval_storeretrieval_deleteretrieval_list_namespacesweb_searchweb_read_pagedb_finddb_insertdb_updatedb_upsertdb_deletedb_countdb_list_collections
Middleware and Runtime Controls
Per-agent middleware lets you modify inputs, enrich context, attach files, stop execution early, and transform outputs. See Middleware.
The YAML model also supports:
- retries
- timeouts
- max iteration limits
- key-based concurrency control
- persistent sessions
- output schemas
- MCP server connections
- input and output guardrails
Related docs:
CLI Commands
| Command | Description |
|---|---|
connic init [name] |
Create a new project scaffold |
connic init [name] --templates=... |
Create a project from one or more starter templates |
connic init [name] --skill |
Create a project, install the skill, and offer detected client plugins |
connic skill |
Install the project skill and offer detected client plugins |
| `connic update [--check | --sdk |
connic login |
Save project credentials in .connic |
connic lint |
Validate agents, tools, middleware, and schemas locally |
connic tools |
List custom Python tools and signatures |
connic dev [name] |
Start an isolated cloud dev environment with hot reload |
connic test |
Run declarative test suites from tests/ against an environment |
connic deploy |
Deploy from the CLI to a Connic environment for projects without a connected Git repository |
connic migrate |
Migrate a LangChain or Google ADK project into a Connic project |
Run connic <command> --help for flags and examples.
Development Workflow
Local Validation
connic lint loads your project locally and catches issues like:
- invalid YAML
- missing required agent fields
- unresolved tool references
- duplicate agent names
- schema and middleware loading problems
Hot-Reload Testing
connic dev creates an isolated development environment in Connic cloud and syncs local changes while you iterate.
This is the main development loop when you need real connectors, predefined tools, and environment-scoped services.
Use connic test for one-shot declarative test suites from tests/, including CI runs and deploy-gate parity.
Deployment
Deployment targets Connic-managed environments.
- If your Connic project is connected to a Git repository, push to the branch configured for the target environment.
- If the project has no connected Git repository, use
connic deploy.
Documentation
| Topic | Link |
|---|---|
| Overview | connic.co/docs/v1/build/project-structure |
| Quickstart | connic.co/docs/v1/quickstart |
| Agent Configuration | connic.co/docs/v1/build/agent-configuration |
| Writing Tools | connic.co/docs/v1/build/tools |
| Middleware | connic.co/docs/v1/build/middleware |
| Predefined Tools | connic.co/docs/v1/build/tools |
| MCP | connic.co/docs/v1/build/tools/mcp |
| Testing | connic.co/docs/v1/test |
| Variables | connic.co/docs/v1/platform/environments#environment-variables |
| Guardrails | connic.co/docs/v1/build/guardrails |
| Retrieval Tools | connic.co/docs/v1/build/tools/retrieval |
| Database Tools | connic.co/docs/v1/build/tools/database |
Contributing
See CONTRIBUTING.md.
Support
License
MIT. See LICENSE.
Release files for connic-composer-sdk 0.1.43
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| connic_composer_sdk-0.1.43.tar.gz | 92.1 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| connic_composer_sdk-0.1.43-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 183.4 kB
Release files / connic_composer_sdk-0.1.43.tar.gz
| Download URL | connic_composer_sdk-0.1.43.tar.gz |
|---|---|
| Size | 92.1 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
9f4a0e071060f41aededda9f2f34a81cbf8dc8a2f91920aebad69a25a8e9caad
|
|
BLAKE2b-256 checksum How to use checksums |
af3d7748fdc9e83c83dd14967a83a126a0ba9bd624bfe0f18f3eada9e73f1fc0
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.0 CPython/3.13.13
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Aug 22, 2026.
Transparency logRelease files / connic_composer_sdk-0.1.43-py3-none-any.whl
| Download URL | connic_composer_sdk-0.1.43-py3-none-any.whl |
|---|---|
| Size | 91.3 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
ad9fe5b6fdcd6eb74f63e2d586223b49d91400f6e6b56711e0b98658266af73e
|
|
BLAKE2b-256 checksum How to use checksums |
fdcaa7113796409dff7ee27864ab7506ed662fcfe531b5366704f8e9b7493477
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.0 CPython/3.13.13
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Aug 22, 2026.
Transparency log