| name | cmo-agent |
| description | Expert knowledge for working with CMOAgent — a dual-purpose perpetual agent that maps both Marketing and Leadership purposes to separate LoRA adapters. Covers execute_with_purpose(), get_adapter_for_purpose(), get_status(), the purpose-to-adapter mapping pattern, adapter switching internals, and integration with LeadershipAgent and PurposeDrivenAgent.
|
CMO Agent Skill
Overview
CMOAgent is a dual-purpose agent that executes tasks through either the
Marketing or Leadership LoRA adapter based on the task type.
from cmo_agent import CMOAgent
cmo = CMOAgent(agent_id="cmo-001")
await cmo.initialize()
Key Concepts
Dual Purpose Mapping
cmo.purpose_adapter_mapping
cmo.get_adapter_for_purpose("marketing")
cmo.get_adapter_for_purpose("leadership")
cmo.get_adapter_for_purpose("finance")
execute_with_purpose()
The core CMO capability — execute a task using a specific adapter:
result = await cmo.execute_with_purpose(
{"type": "brand_audit", "data": {"brand": "Acme"}},
purpose_type="marketing",
)
result = await cmo.execute_with_purpose(
{"type": "budget_review"},
purpose_type="leadership",
)
Important: adapter_name is always restored after execution, even on error.
Default Purpose Type
result = await cmo.execute_with_purpose({"type": "campaign"})
Custom Adapter Names
cmo = CMOAgent(
agent_id="cmo-001",
marketing_adapter_name="brand-v2",
leadership_adapter_name="exec-leadership-v2",
)
get_status()
Returns full dual-purpose status:
status = await cmo.get_status()
status["agent_type"]
status["primary_adapter"]
status["purposes"]["marketing"]["adapter"]
status["purposes"]["leadership"]["adapter"]
status["purpose_adapter_mapping"]
get_agent_type()
cmo.get_agent_type()
Inheritance Chain
PurposeDrivenAgent → LeadershipAgent → CMOAgent
All LeadershipAgent methods (make_decision, get_decision_history, …)
and all PurposeDrivenAgent methods (events, goals, MCP, …) are available.
Common Patterns
decision = await cmo.make_decision(
context={"campaign_budget": 500_000},
mode="autonomous",
)
await cmo.subscribe_to_event("campaign_update", handler)
await cmo.handle_event({"type": "campaign_update", "data": {}})
Installation
pip install cmo-agent