Multi-agent workflow examples to work together on the OpenServ Platform. Covers agent discovery, multi-agent workspaces, task dependencies, and workflow orchestration using the Platform Client. Read reference.md for the full API reference. Read openserv-agent-sdk and openserv-client for building and running agents.
npx skills add https://github.com/internet-court/internet-court-skill --skill openserv-multi-agent-workflows
Build workflows where multiple AI agents collaborate to complete complex tasks.
Reference files:
reference.md - Workflow patterns, declarative sync, triggers, monitoringtroubleshooting.md - Common issues and solutionsexamples/ - Complete pipeline examples (blog, youtube-to-blog, etc.)See examples/ for complete runnable examples:
blog-pipeline.md - Simple 2-agent workflow (research → write)content-creation-pipeline.md - 3-agent workflow (research → write → image)life-coaching-pipeline.md - Complex 6-agent workflow with comprehensive input schemaRecommended pattern using workflows.sync():
client.authenticate()client.agents.listMarketplace()client.workflows.create() including:⚠️ CRITICAL: Always define edges when creating workflows. Setting task dependencies is NOT enough - you must create workflow edges to actually connect triggers to tasks and tasks to each other.
When creating workflows (via workflows.create() or provision()), two properties are critical:
name (string) - This becomes the agent name in ERC-8004. Make it polished, punchy, and memorable — this is the public-facing brand name users see. Think product launch, not variable name. Examples: 'Instant Blog Machine', 'AI Video Studio', 'Polymarket Intelligence'.goal (string, required) - A detailed description of what the workflow accomplishes. Must be descriptive and thorough — short or vague goals will cause API calls to fail. Write at least a full sentence explaining the end-to-end purpose of the workflow.A workflow (workspace) is a container that holds multiple agents and their tasks.
dependencies: [taskId1, taskId2]done// Search marketplace for agents by name/capability (semantic search)
const result = await client.agents.listMarketplace({ search: 'research' })
const agents = result.items // Array of marketplace agents
// Get agent details
const agent = await client.agents.get({ id: 123 })
console.log(agent.capabilities_description)
// Note: client.agents.searchOwned() only searches YOUR OWN agents
// Use listMarketplace() to find public agents for multi-agent workflows
Common agent types: Research (Grok, Perplexity), Content writers, Data analysis, Social media (Nano Banana Pro), Video/audio creators.
CRITICAL: Carefully design your workflow edges to avoid creating tangled "spaghetti" graphs.
A well-designed workflow has clear, intentional data flow. Common mistakes lead to unmaintainable workflows.
┌──────────────────────────────────┐
│ ┌─────────┐ │
│ ┌─────┤ Agent A ├─────┐ │
│ │ └────┬────┘ │ │
│ │ │ │ │
Trigger ─┼─────┼──────────┼──────────┼──────┤
│ │ │ │ │
│ │ ┌────┴────┐ │ │
│ └─────┤ Agent B ├─────┘ │
│ └─────────┘ │
└──────────────────────────────────┘
(Spaghetti - avoid this!)
This creates:
Sequential Pipeline:
Trigger → Research → Content → Enhancement → Output
Staged Fan-Out:
┌─ Task A ─┐
Trigger → Research ─┼─ Task B ─┼─→ Combiner → Output
└─ Task C ─┘
Conditional Branching (v1.1.3+):
┌─[approved]─→ Process
Trigger → Review ──┤
└─[rejected]─→ Reject Handler
Use outputOptions on tasks and sourcePort on edges for branching.
This skill may be outdated. The OpenServ team ships updates regularly—new features, API changes, and bug fixes won't be reflected here until you update. If something isn't working as expected, or you want to make sure you have the latest information, update the skill before proceeding.
# Check if updates are available
npx skills check
# Update all installed skills to latest versions
npx skills update
Or reinstall the OpenServ skills directly:
npx skills add openserv-labs/skills
Comprehensive GitHub project management with swarm-coordinated issue tracking, project board automation, and sprint planning
Comprehensive technology-agnostic prompt for analyzing and documenting project folder structures. Auto-detects project types (.NET, Java, React, Angular, Python, Node.js, Flutter), generates detailed blueprints with visualization options, naming conventions, file placement patterns, and extension templates for maintaining consistent code organization across diverse technology stacks.
Use when complex problems require systematic step-by-step reasoning with ability to revise thoughts, branch into alternative approaches, or dynamically adjust scope. Ideal for multi-stage analysis, design planning, problem decomposition, or tasks with initially unclear scope.
> Compress natural language memory files (CLAUDE.md, todos, preferences) into caveman format to save input tokens. Preserves all technical substance, code, URLs, and structure. Compressed version overwrites the original file. Human-readable backup saved as FILE.original.md.
API design principles and decision-making. REST vs GraphQL vs tRPC selection, response formats, versioning, pagination.
Patterns for automating GitHub workflows with AI assistance, inspired by [Gemini CLI](https://github.com/google-gemini/gemini-cli) and modern DevOps practices.
Groups existing components into logical business domains to plan service-based architecture. Use when asking "which components belong together?", "group these into services", "organize by domain", "component-to-domain mapping", or planning service extraction from an existing codebase. Do NOT use for identifying new domains from scratch (use domain-analysis) or analyzing coupling (use coupling-analysis).
API design principles and decision-making. REST vs GraphQL vs tRPC selection, response formats, versioning, pagination.
Take internet-court/openserv-multi-agent-workflows from the repository into ~/.claude/skills for personal
use, or into .claude/skills inside a project.
The agent identifies a skill by the name field in its header. Two skills with the
same name cannot sit side by side — one of them will be ignored.
The instructions reference npx.
Without those the skill loads but fails at the first command.