en un clic
wxo-analyzer
// Analyzes watsonx Orchestrate (wxO) projects and generates a 3-report documentation set covering the overall solution, agents, and tools/connections/other components with Mermaid diagrams.
// Analyzes watsonx Orchestrate (wxO) projects and generates a 3-report documentation set covering the overall solution, agents, and tools/connections/other components with Mermaid diagrams.
Expert guidance for creating high-level solution architecture documents from business requirements, use cases, or problem statements. Produces three focused documents - business overview, technical architecture, and implementation plan - with sufficient detail for elaboration into detailed SOPs.
Expert guidance for generating watsonx Orchestrate native solutions from SOPs or simple prompts. Implements agents, flows, tools, and knowledge bases based on business requirements.
Build MCP servers for customer care agents following Watson Orchestrate specifications. Guides agents through tool creation, transaction patterns, authentication, widgets, and context management with strict adherence to reference specifications. Use when creating customer care MCP servers.
Expert guidance for building a Standard Operating Procedure (SOP) from a workflow diagram, Langflow JSON, n8n JSON, BPMN model or workflow description. Focuses on business problem, data requirements, and business logic in plain language.
| name | wxo-analyzer |
| description | Analyzes watsonx Orchestrate (wxO) projects and generates a 3-report documentation set covering the overall solution, agents, and tools/connections/other components with Mermaid diagrams. |
| tags | ["watsonx-orchestrate","wxo","analysis","documentation","reporting"] |
This skill analyzes watsonx Orchestrate projects to generate a 3-file documentation set that includes:
Transform a watsonx Orchestrate project directory into a clear 3-report documentation set that helps stakeholders understand:
This analyzer works with watsonx Orchestrate projects that follow the standard ADK structure:
project_directory/
├── agents/ # Agent YAML configurations
│ ├── agent1.yaml
│ └── agent2.yaml
├── tools/ # Python tools and flows
│ ├── tool1.py
│ ├── flow1.py
│ └── langflow_tool.json
├── connections/ # Connection configurations (optional)
│ └── connection1.yaml
├── knowledge_bases/ # Knowledge base configs (optional)
│ └── kb1.yaml
├── main_flow.py # Main flow orchestration (optional)
├── import-all.sh # Import script
└── README.md # Project documentation
When the user provides a directory path, analyze the structure:
Identify Project Type:
agents/ directory (agent-based project)tools/ directory (tool-based project)main_flow.py (flow-based project)connections/ directory (connection configurations)Scan for Components:
agents/tools/tools/ (Langflow)connections/knowledge_bases/main_flow.py, import-all.sh, README.md, and other implementation-relevant files present in the project rootFor each component type, extract detailed information:
Extract from each agent YAML file:
Example Agent YAML Structure:
spec_version: v1
kind: native
name: customer_service_agent
description: Handles customer inquiries and support requests
instructions: |
You are a customer service agent...
llm: groq/openai/gpt-oss-120b
tools:
- order_lookup_tool
- refund_processor
collaborators:
- escalation_agent
knowledge_base:
- customer_kb
config:
hidden: false
enable_cot: true
Extract from each Python tool file:
@tool decoratorexpect_credentials)Example Python Tool Pattern:
from ibm_watsonx_orchestrate.flow_builder import tool
@tool
def order_lookup_tool(order_id: str) -> dict:
"""
Looks up order details by order ID.
Args:
order_id: The unique order identifier
Returns:
Order details including status, items, and shipping info
"""
# Implementation
pass
Priority Rule: Analyze Python (.py) files with @flow decorator first. Only analyze JSON format flows if there is no equivalent Python implementation with the same name.
From Python Flow Files (.py with @flow decorator):
@flow decoratorExample Python Flow Pattern:
from ibm_watsonx_orchestrate.flow_builder import flow, Node
@flow
def document_processing_flow(document: str) -> dict:
"""
Processes documents through extraction and validation.
"""
# Flow implementation with nodes
pass
From JSON Flow Files (.json agentic workflow format):
Example JSON Flow Pattern:
{
"name": "Book_a_flight_flow",
"description": "Orchestrates flight booking process",
"nodes": [
{
"id": "search_flights",
"type": "tool",
"tool": "flight_search_tool"
},
{
"id": "book_flight",
"type": "tool",
"tool": "flight_booking_tool"
}
],
"edges": [
{
"source": "search_flights",
"target": "book_flight"
}
]
}
Analysis Priority:
Extract from Langflow JSON files:
Extract from connection YAML files:
Example Connection YAML Structure:
spec_version: v1
app_id: salesforce_connection
kind: oauth_auth_client_credentials_flow
description: Connection to Salesforce API
environments:
draft:
type: team
server_url: https://api.salesforce.com
Build a relationship graph showing:
The primary output of this skill is a 3-file documentation set:
Solution Overview Report
Agent Analysis Report
Tools and Components Report
In the solution overview report, keep the architecture intentionally high level:
Use cross-references between the three reports when helpful so readers can move from high-level architecture to agent details and then to tool/component implementation details.
Generate three markdown reports instead of one combined report.
This file should give readers the fastest possible understanding of the overall solution before they read the deeper reports.
# watsonx Orchestrate Solution Overview
**Project Directory**: [path]
**Analysis Date**: [date]
**Generated By**: wxo-analyzer skill
## Summary Statistics
- **Total Agents**: [count]
- **Total Tools**: [count]
- Python Tools: [count]
- Flow Tools: [count]
- Langflow Tools: [count]
- **Total Connections**: [count]
- **Total Knowledge Bases**: [count]
- **Other Key Files**: [count]
- **Total Counted Project Files in Scope**: [count]
Ensure these counts are based on actual discovered files and remain consistent across all three reports.
## Solution Purpose
[Brief description of what this project does based on agent descriptions and project assets]
## What This Solution Contains
- [Short summary of the major agents]
- [Short summary of the primary tools and flows]
- [Short summary of key external integrations]
Create a Mermaid diagram showing the overall architecture.
For the solution overview report, this diagram should stay high level:
## Architecture Overview
```mermaid
graph TB
subgraph Agents
A1[Agent 1]
A2[Agent 2]
A3[Agent 3]
end
Systems[Shared Tools and Platform Components]
Integrations[External Systems and Knowledge Sources]
A1 -->|hands off to| A2
A2 -->|collaborates with| A3
A1 -->|uses shared capabilities| Systems
A2 -->|uses shared capabilities| Systems
A3 -->|accesses business knowledge| Integrations
style A1 fill:#e1f5ff
style A2 fill:#e1f5ff
style A3 fill:#e1f5ff
style Systems fill:#fff4e1
style Integrations fill:#e8f5e9
Legend:
#### 3. High-Level Agent Relationship Summary
```markdown
## Agent Relationship Summary
- **Primary orchestrator or entry agent**: [agent name]
- **Supporting agents**: [agent names]
- **Escalation or specialist agents**: [agent names if applicable]
- **High-level collaboration pattern**: [brief summary of how work moves between agents]
- **Shared dependencies**: [shared tools, knowledge bases, or external platforms at a high level]
Keep this section concise. Do not repeat the detailed per-agent analysis here.
## Project Structure
[project_name]/
├── agents/ # [count] agents
│ ├── agent1.yaml # [Agent 1 Name]
│ └── agent2.yaml # [Agent 2 Name]
├── tools/ # [count] tools
│ ├── tool1.py # [Tool 1 Name]
│ ├── flow1.py # [Flow 1 Name]
│ └── langflow_tool.json # [Langflow Tool Name]
├── connections/ # [count] connections
│ └── connection1.yaml # [Connection 1 Name]
├── knowledge_bases/ # [count] knowledge bases
│ └── kb1.yaml # [KB 1 Name]
+├── main_flow.py # Main orchestration flow
+├── import-all.sh # Import script
+└── README.md # Project documentation
+ + +**File Descriptions**: +- **agents/**: Contains [count] agent configurations defining AI assistants +- **tools/**: Contains [count] tools including Python tools, flows, and Langflow integrations +- **connections/**: Contains [count] connection configurations for external systems +- **knowledge_bases/**: Contains [count] knowledge base configurations +- **main_flow.py**: [Description if present] +- **import-all.sh**: Script to import all components into watsonx Orchestrate + +**Counting Rules**: +- Count every in-scope file that is analyzed or referenced in the report +- Use the same totals consistently in the summary, project structure, and detailed sections +- If a file is present but not analyzed in detail, still account for it in the file inventory when it is relevant to the solution +- Clearly separate totals for agents, tools, connections, knowledge bases, and other key files +
+
+#### 4. Relationship Diagram
Create a detailed Mermaid diagram showing all relationships:
## Component Relationships
```mermaid
graph LR
subgraph "Agents"
A1[Customer Service Agent]
A2[Escalation Agent]
A3[Analytics Agent]
end
subgraph "Tools"
T1[order_lookup_tool]
T2[refund_processor]
T3[analytics_flow]
end
subgraph "Connections"
C1[salesforce_conn]
C2[payment_gateway]
end
subgraph "Knowledge Bases"
KB1[customer_kb]
KB2[product_kb]
end
A1 -->|uses| T1
A1 -->|uses| T2
A1 -->|collaborates with| A2
A1 -->|accesses| KB1
A2 -->|uses| T3
A3 -->|accesses| KB2
T1 -->|requires| C1
T2 -->|requires| C2
style A1 fill:#4a90e2,color:#fff
style A2 fill:#4a90e2,color:#fff
style A3 fill:#4a90e2,color:#fff
style T1 fill:#f5a623
style T2 fill:#f5a623
style T3 fill:#f5a623
style C1 fill:#d0d0d0
style C2 fill:#d0d0d0
style KB1 fill:#7ed321
style KB2 fill:#7ed321
Relationship Summary:
#### 5. Deployment Information
```markdown
## Deployment Information
**Import Script**: `import-all.sh`
**Import Command**:
```bash
cd [project_directory]
chmod +x import-all.sh
./import-all.sh
Prerequisites:
Post-Import Steps:
#### 6. Recommendations
```markdown
## Analysis Insights and Recommendations
### Strengths
- [Identified strengths based on analysis]
### Anti-Pattern Findings
**Architectural Issues**:
- [List any detected anti-patterns from Part 1: Mega-prompts, Agent-as-Business-Process, Invisible State, Autonomy issues, As-Is content, Research-paper chasing]
**Scale and Tooling Issues**:
- [List any detected anti-patterns from Part 2: Tool Soup, Tool Data Overload, Agent-Washing, Trust Before Verify, Happy Path Engineering, Multi-Agent Chaos, Responsiveness, Cost, Demo-Grade]
**Severity Assessment**:
- 🔴 **Critical**: [Issues that will cause production failures]
- 🟡 **Warning**: [Issues that may cause problems at scale]
- 🟢 **Advisory**: [Best practice recommendations]
### Potential Improvements
- [Suggestions for improvement based on anti-pattern detection]
- [Architectural refactoring recommendations]
- [Tool optimization opportunities]
### Dependencies to Monitor
- [Critical dependencies identified]
### Documentation Gaps
- [Missing or incomplete documentation]
---
This file should provide a dedicated agent-by-agent analysis.
For each agent, provide:
# watsonx Orchestrate Agent Analysis
**Project Name**: [Project Name]
**Project Directory**: [Path]
**Analysis Date**: [Date]
**Generated By**: wxo-analyzer skill
## Agents
### Agent: [Agent Name]
**Type**: [native/external/assistant]
**Description**: [Agent description]
**Purpose**:
[Detailed explanation of what this agent does]
**Configuration**:
- **LLM Model**: [model name]
- **Hidden**: [true/false]
- **Chain of Thought**: [enabled/disabled]
**Capabilities**:
- **Tools Used**:
- [tool1] - [brief description]
- [tool2] - [brief description]
- **Collaborators**:
- [agent1] - [when/why it collaborates]
- **Knowledge Bases**:
- [kb1] - [what information it accesses]
**Instructions Summary**:
[Key points from the agent's instructions]
**Anti-Pattern Check**:
- ✅ **Passed**: [List anti-patterns this agent avoids]
- ⚠️ **Warnings**: [List potential anti-pattern concerns]
- ❌ **Issues**: [List detected anti-patterns with severity]
**Specific Checks**:
- **Instruction Length**: [line count] - [Pass/Warning/Fail based on <100/100-200/>200 lines]
- **Tool Count**: [count] - [Pass/Warning/Fail based on <10/10-20/>20 tools]
- **State Management**: [Explicit/Implicit/None]
- **Autonomy Controls**: [Present/Partial/Missing]
- **Business Process Logic**: [None/Some/Extensive - flag if extensive]
- **Verbatim Content**: [None/Present - flag if present]
- **Failure Handling**: [Comprehensive/Basic/Missing]
**Relationships**:
- **Invokes**: [tools and collaborators]
- **Depends On**: [knowledge bases, connections via tools]
- **Referenced In**: [main flow or other orchestration assets if applicable]
---
Include an optional Mermaid diagram in this file focused only on agent collaboration and agent-to-tool/knowledge-base relationships when that helps readability.
This file should focus on implementation-facing components beyond the high-level solution and agent narratives.
For each tool and supporting component, provide:
# watsonx Orchestrate Tools and Components Analysis
**Project Name**: [Project Name]
**Project Directory**: [Path]
**Analysis Date**: [Date]
**Generated By**: wxo-analyzer skill
## Tools
### Python Tool: [Tool Name]
**Purpose**: [What this tool does]
**Type**: [Python Tool/Flow Tool/Langflow Tool]
**Description**:
[Detailed description from docstring]
**Parameters**:
| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| param1 | str | Yes | Description |
| param2 | int | No | Description |
**Returns**: [Return type and description]
**Dependencies**:
- External APIs: [list if any]
- Python Libraries: [list if any]
- Connections Required: [list connections]
**Used By**:
- [agent1]
- [agent2]
**Anti-Pattern Check**:
- **Data Volume**: [Estimated output size - flag if >10K tokens]
- **Idempotency**: [Yes/No/Unknown - flag if No or Unknown]
- **Destructiveness**: [None/Low/High - flag if High without approval gates]
- **Error Handling**: [Comprehensive/Basic/Missing]
- **Filtering**: [At source/Post-processing/None - flag if None for large datasets]
- **Binary Data**: [None/Extracted/Raw - flag if Raw]
**Example Usage**:
```python
result = tool_name(param1="value", param2=123)
Type: [basic/bearer/api_key/oauth/key_value]
Purpose: [What system this connects to]
Configuration:
Used By:
Authentication: [Description of auth method]
Purpose: [What information this KB contains]
Provider: [Built-in Milvus/AstraDB/Elasticsearch/etc.]
Configuration: [Key configuration details]
Used By:
Content Type: [Type of documents/data stored]
Include a Mermaid diagram in this file focused on tools, connections, knowledge bases, and dependency chains.
Also include counts and inventories for all in-scope component files covered by this report so the totals align with the overall solution overview.
---
## Usage Instructions
### To Use This Skill:
1. **Provide the Project Directory**:
Please analyze the watsonx Orchestrate project in: /path/to/project
2. **Specify Analysis Depth** (optional):
- **Quick**: Summary and architecture diagram only
- **Standard**: Full analysis with all sections (default)
- **Deep**: Include code snippets and detailed logic analysis
3. **Request Specific Focus** (optional):
- Focus on agents only
- Focus on tool dependencies
- Focus on connection usage
- Focus on agent collaboration patterns
### Example Request:
Please analyze the watsonx Orchestrate project in the examples/customer_service directory and generate the 3 analysis reports:
Include architecture diagrams showing agent, tool, connection, and knowledge base relationships.
### Example Request with Focus:
Analyze the meeting_deck_generator project and focus on:
---
## Output Format
### Required 3-File Output Naming Convention
1. `[project-name]-solution-overview.md`
2. `[project-name]-agent-analysis.md`
3. `[project-name]-tools-and-components-analysis.md`
Example output set:
- `customer-service-solution-overview.md`
- `customer-service-agent-analysis.md`
- `customer-service-tools-and-components-analysis.md`
### Document Headers
Use an appropriate title for each of the three reports and include consistent counts derived from the same file discovery pass.
```markdown
**Project Name**: [Project Name]
**Project Directory**: [Path]
**Analysis Date**: [Date]
**Analyzed By**: wxo-analyzer skill
**Analysis Depth**: [Quick/Standard/Deep]
---
Identify common patterns in the project:
Analyze dependencies:
Identify security considerations:
Check agents and architecture against known anti-patterns from enterprise AI deployments:
Important Note on Anti-Hallucination Instructions: When agents include anti-hallucination instructions (e.g., "never make up information," "always cite sources," "verify before responding"), acknowledge these as good practices but clarify that agents adhere to such instructions on a best-effort basis only. LLMs cannot guarantee perfect compliance with anti-hallucination rules—they are probabilistic systems that may still hallucinate despite explicit instructions. Anti-hallucination frameworks in instructions are valuable for improving behavior but should not be treated as deterministic guarantees.
The Monolithic Mega-Prompt
instructions: block, NOT the entire YAML fileALWAYS create a script to count instruction lines accurately:
# Create a script to count instruction lines for all agents
cat > count_instructions.sh << 'EOF'
#!/bin/bash
echo "Agent Instruction Line Counts"
echo "=============================="
for file in agents/native/*.yaml; do
if [ -f "$file" ]; then
agent_name=$(basename "$file" .yaml)
line_count=$(awk '/^instructions: \|/{flag=1; next} /^[a-z_]+:/{flag=0} flag' "$file" | wc -l)
echo "$agent_name: $line_count lines"
fi
done
EOF
chmod +x count_instructions.sh
./count_instructions.sh
This script:
instructions: blockThe Agent-as-Business-Process Fallacy
Invisible State
All-or-Nothing Autonomy
Passing "As-Is" Information Through the Model
Chasing the Latest Research Paper
Tool Soup
Tool Data Overload
Agent-Washing
Trust Before Verify
Happy Path Engineering
Multi-Agent Chaos
Responsiveness Afterthought
Unbounded Execution Cost
Demo-Grade Agent in Production
Issue: Cannot find agents directory Solution: Verify the project follows standard ADK structure
Issue: YAML parsing errors Solution: Check YAML syntax in agent/connection files
Issue: Missing tool descriptions Solution: Ensure Python tools have proper docstrings
Issue: Incomplete relationship mapping Solution: Verify all tool names match between agents and tool files
See the 3-file report structure above for the complete format this skill should generate.
This skill works well with:
This skill incorporates anti-pattern detection based on:
Part 1: Architectural Pitfalls (6 anti-patterns)
Part 2: Tooling, Observability, and Scale Traps (9 anti-patterns)
IMPORTANT: Comprehensive project analysis often requires multiple passes to capture all components and details.
After generating the initial 3-report documentation set:
This iterative approach ensures comprehensive coverage of all project components and their relationships.
Project Directory:
/path/to/your/watsonx-orchestrate-project
Analysis Options (optional):
- Depth: [Quick/Standard/Deep]
- Focus: [Specific areas to emphasize]
- Output Format: [Markdown (default)/JSON/HTML]