5) Configuration Specifications (Per Branch)
5.1 Tenant Configuration
Each branch containsconfig/tenant.yaml, which specifies which wxO tenant and environment to target.
- Dev
- QA
- PreProd
- Prod
dev branch — config/tenant.yaml (dev-qa-tenant, Draft)5.2 Environment Values
Each branch contains environment-specific configuration inconfig/values.yaml.
- Dev values
- Prod values
dev branch — config/values.yaml5.3 Agent Structure (Example)
agents/employee_onboarding/agent.yaml (evolves per branch)
Alternative: Minimal Agent Structure
- Agents can be created through the UI or YAML
- If agents are built through the UI, they should be exported as YAML and versioned in Git
- If flows are built through the UI, they should be exported as JSON and versioned in Git
- The YAML or JSON files in Git are the source of truth for version control
- The agent structure can differ significantly between branches, for example when
devincludes experimental tools
Key Agent Fields
spec_version: alwaysv1kind:nativefor wxO native agents,externalfor external agentsname: unique identifier for the agentdescription: brief description of the agent’s purposeinstructions: natural-language guidance for the LLMllm: model in the formatprovider/developer/model_id, for examplegroq/openai/gpt-oss-120bstyle: agent style such asdefault,react, orplannertools: list of tool names the agent can useknowledge_base: list of knowledge bases. Currently, only one knowledge base is supported.collaborators: list of other agents this agent can call
Note on credentials: Agents do not have credentials. Credentials such as connection IDs or
app_id values are associated with tools only. When a tool is imported through the CLI, it specifies its required connection ID. Agents use tools, and the tools handle their own authentication.Agent Deployment Workflow
- Create the agent YAML file manually
- List required tools in the agent’s
tools:section - Store the agent YAML in Git for version control
- Deploy flows separately if needed through
orchestrate tools import -k flow - Deploy the agent through
orchestrate agents import -f agent.yaml- Tools listed in
tools:are automatically deployed - Each tool specifies its own connection ID or
app_idduring import
- Tools listed in
- Test the agent in the Draft environment
- Promote to the Live environment when ready through
orchestrate agents deploy
5.4 Knowledge-Base Deployment Considerations
Knowledge bases in wxO have unique deployment characteristics that differ from agents and tools.Tenant-Scoped, Not Environment-Scoped
Unlike agents, which have separate Draft and Live states, knowledge bases are tenant-scoped:- A knowledge-base update applies to both Draft and Live environments simultaneously
- There is no concept of promoting a knowledge base from Draft to Live within a tenant
- Testing must occur in
dev-qa-tenantbefore deployment toprod-tenant
Deployment Order
Knowledge bases must be deployed before agents that reference them:Cross-Tenant Promotion
Knowledge bases must be explicitly deployed to each tenant:- Merging code from
qa-branchtostaging-branchdoes not automatically deploy the knowledge base toprod-tenant - The CI/CD pipeline must deploy knowledge bases to
prod-tenantseparately - Each tenant maintains its own knowledge-base instance
Testing Strategy
Because knowledge-base updates affect both Draft and Live:- Test in
dev-qa-tenantfirst by deploying and validating there beforeprod-tenant - Validate queries in the Draft environment before promoting the agent
- Monitor impact because knowledge-base changes immediately affect Live agents in the same tenant
Rollback Implications
Rolling back a knowledge base requires redeploying the previous version:Tool Access
- Credentials are associated with tools, not agents
- Each tool specifies its connection ID or
app_idwhen imported - Tools handle their own authentication by using the specified connection
- Agents reference tools by name in the
tools:section
6) Secrets Handling (No Secrets in Git)
- Use the customer’s secrets manager, such as Vault, AWS Secrets Manager, Azure Key Vault, or IBM Secrets Manager / Key Protect
- Jenkins fetches secrets at deploy time, exports them as environment variables, and performs substitution
- Tenant-scoped secrets ensure complete isolation because each tenant has its own set of secrets
Secret Organization by Tenant
Secrets manager structure:Example Substitution (Bash)
- Dev environment
- Prod environment
For Dev (
dev-qa-tenant):Principles:
- Secrets are materialized only inside the pipeline execution context and are never committed back to Git
- Each tenant has completely isolated secrets to prevent cross-tenant credential leakage
- Production secrets are never accessible from non-production pipelines

