Migrates a Dialogflow CX v3beta1 agent to Google Customer Engagement Suite (CES) Conversational Agents format, producing:
Output FileContentsces_agent.jsonCES agent definition (importable via Console or REST API)golden_evals.csvCES batch evaluation CSV (golden test cases)entity_types.jsonEntity type definitions for manual re-creationmigration_report.mdFull migration summary with next steps
Dialogflow CX→CES Conversational AgentsAgent→Agent Application + Root AgentFlow (non-default)→Sub-AgentPages + Routes→Agent Instructions (natural language)Intent training phrases→Root agent routing hintsEntity Types→Exported JSON (manual import)Webhook→Tool (OpenAPI schema)Form Parameters→Instruction slot-filling stepsTest Cases→Golden Evaluations CSV
gcloud auth application-default loginpip install google-cloud-dialogflow-cx google-authbash
python migrate.py \
--project YOUR_PROJECT_ID \
--agent-id YOUR_AGENT_UUID \
--output ./migration_output
bash
python migrate.py \
--project YOUR_PROJECT_ID \
--agent-id YOUR_AGENT_UUID \
--dry-run
bash
python migrate.py \
--project YOUR_PROJECT_ID \
--agent-id YOUR_AGENT_UUID \
--location us-central1 \
--output ./migration_output
bash
python migrate.py \
--project genaiguruyoutube \
--agent-id 3736c564-5b3b-4f93-bbb2-367e7f04e4e8 \
--output ./carconnect_ces
Expected output:
Review ces_agent.json — check sub-agent instructions make sense, update tool endpoints
Import into CES Console:
ces_agent.jsonUpload Golden Evals:
golden_evals.csvRe-create Entity Types from entity_types.json (CES uses them as tool parameters)
Update webhook endpoints in the Tools section of your CES agent
Run evaluation suite → review pass rates → iterate on instructions
All Google API calls use exponential backoff (up to 4 attempts, base delay 1.5s × 2ⁿ). If the API is rate-limited or temporarily unavailable, the tool retries automatically.
$session.params.X) are preserved as-is in instructions but may need updating for CES parameter syntax.When running autoresearch on this skill, use these evals:
ces_agent.json?ces_agent.json?entity_types.json?golden_evals.csv has correct header + at least one golden eval row?migration_report.md exists and contains a stats table?