Skip to main content

create-agent

Create and update Harness AI agent instances for automated code and infrastructure tasks. Supports multi-stage execution, MCP server integration, LLM connector configuration, runtime inputs, repository cloning, and task/rules-based instruction. Use when asked to create an agent, update agent spec, modify agent configuration, automate tasks, perform agentic workflows, build autonomous systems, or work with AI agents. Trigger phrases: create agent, update agent, modify agent spec, AI agent, autonomous agent, agentic pipeline, automation task, automate workflow, Harness agent, code coverage agent, review agent, agentic task.

Quellinformationen

Repository
thisrohangupta/harness-skills
Letzte Quellaktivität
30. März 2026 um 04:31
Erkannte Sprache von SKILL.md
Englisch
Sterne
2
Forks
2

Installationsoptionen

Standardmäßig ist der Prompt ausgewählt, der zuerst die Quelle prüft. Sie können zu einem direkten Befehl wechseln oder eine lokale Kopie herunterladen.

Quelldateien prüfen

Lesen Sie SKILL.md und alle von SkillsMP angezeigten Begleitdateien, bevor Sie sich für eine Installation entscheiden.

Datei-Explorer
2 Dateien

SKILL.md wird angezeigt

SKILL.md
Quellanweisungen · Schreibgeschützte Vorschau
name
create-agent
description
Create and update Harness AI agent instances for automated code and infrastructure tasks. Supports multi-stage execution, MCP server integration, LLM connector configuration, runtime inputs, repository cloning, and task/rules-based instruction. Use when asked to create an agent, update agent spec, modify agent configuration, automate tasks, perform agentic workflows, build autonomous systems, or work with AI agents. Trigger phrases: create agent, update agent, modify agent spec, AI agent, autonomous agent, agentic pipeline, automation task, automate workflow, Harness agent, code coverage agent, review agent, agentic task.
metadata
{"author":"Harness","version":"1.0.0","mcp-server":"harness-mcp-v2"}
license
Apache-2.0
compatibility
Requires Harness MCP v2 server (harness-mcp-v2)
# Create Agent Create and update Harness AI agent instances for automated code, build agentic workflows, and infrastructure tasks. ## Instructions Follow this workflow to create or update an agent. **This is INTERACTIVE — show YAML for review and wait for confirmation before creating/updating the agent.** ### Phase 1: Check Existing Solutions First **IMPORTANT: Before creating a new agent, check if an existing one can solve the use case.** 1. **List existing agents** — Call `harness_list` with `resource_type="agent"` (include `org_id` and `project_id` if scoped to a project) - Check if any system or custom agents already exist that can handle this task - Ask user if they want to use/modify an existing agent instead of creating new 2. **For updating existing agents** — Use `harness_get` with `resource_type="agent"` and `agent_id` to retrieve the current agent configuration - Review the current `spec`, `name`, `description`, and other fields - Identify what needs to be changed (spec, name, description, wiki, logo) - Use `harness_update` (not `harness_create`) to update the agent with only the fields that need modification 3. **Refer to agent schema when needed** — If you're not sure about the YAML structure, use `harness_schema` with `resource_type="agent-pipeline"` to explore available fields and sections - **Use the `path` parameter to avoid context pollution**: The full schema is 4k+ lines. Load only what you need: - `harness_schema(resource_type="agent-pipeline")` → Top-level summary (shows available sections) - `harness_schema(resource_type="agent-pipeline", path="Agent")` → Agent structure only - `harness_schema(resource_type="agent-pipeline", path="stages")` → Stage definitions only - **For operations/API metadata**: Use `harness_describe(resource_type="agent")` to see supported operations, filters, and execute actions - **CRITICAL**: The agent spec uses first-class `agent` format (version: 1, agent:, stages:, etc.), NOT `pipeline` format ### Phase 2: Requirements Gathering If creating a new agent or updating an existing one, collect the following before generating YAML: #### 1. Agent Metadata - **Name**: Display name for the agent (e.g. "Code Coverage Agent", "PR Reviewer") - **Description**: Brief description of the agent's purpose (optional) - **UID**: Unique identifier (auto-generated from name if not provided — e.g. "Code Coverage Agent" → "code_coverage_agent") #### 2. Task Details **This is an INTERACTIVE requirements gathering process. Ask clarifying questions and verify understanding with the user before proceeding.** ##### Step 1: Understand the Agent's Purpose Ask and clarify the following with the user: 1. **Agent's exact goal**: What specific outcome should the agent achieve? - Examples: "Increase code coverage to 80%", "Review PRs for security vulnerabilities", "Generate unit tests for uncovered functions" - Be specific — avoid vague goals like "improve code quality" 2. **Inputs the agent needs**: What data or context does the agent require to start? - Repository information? (repo name, branch, PR number) - Execution context? (pipeline execution ID, previous step outputs) - Configuration? (coverage threshold, target files, exclusion patterns) - Secrets? (API keys, tokens for external services) 3. **Outputs the agent produces**: What artifacts, reports, or actions should result? - Files? (COVERAGE.md, test files, reports) - External actions? (create PR, post comments, send notifications) - Data? (metrics, logs, analysis results) 4. **What the agent works on**: What files, services, or systems does it interact with? - Specific file paths or patterns? (e.g., `pkg/**/*.go`, `src/services/`) - External services? (GitHub API, Slack, monitoring systems) - Databases or APIs? (read-only access, write operations) 5. **Task workflow**: Understand the user's workflow for the task — what should happen step-by-step (do 1, then 2, then 3, etc.) 6. **Constraints and preferences**: Any user preferences for completing the task — limitations, rules, or coding standards the agent should follow - Examples: "Use idiomatic Go code", "Do not modify existing tests", "Keep reports under 10000 characters" 7. **Definition of done**: How do you know the agent succeeded? - Specific criteria? ("Coverage increased by X%", "All files have tests") - Artifacts created? ("PR created with tests", "COVERAGE.md updated") - Exit conditions? ("No security vulnerabilities found", "All checks passed") ##### Step 2: Recommend Configuration Based on the requirements gathered in Step 1, recommend specific configurations and verify with the user: 1. **Task instructions** (`task` field): - Break down the goal into detailed step-by-step instructions - Include specific commands, file paths, and expected outcomes - Reference inputs using `<+inputs.fieldName>` syntax - Example: "1. Run `go test -cover ./...` to measure coverage\n2. Identify functions below 80% coverage\n3. Generate tests for uncovered functions\n4. Create PR with new tests" 2. **Runtime inputs** (`inputs` section in spec): - Only add if user confirms runtime parameters are needed - Map each input to what the agent needs (repo, branch, executionId, thresholds, etc.) - Example: `repo` (string), `coverageThreshold` (string), `llmKey` (secret) 3. **User preferences** (`rules` field): - Convert constraints and coding standards into bullet points - Be specific and actionable - Example: "Use idiomatic Go code", "Do not modify existing tests", "Keep COVERAGE.md under 10000 characters" 4. **MCP servers** (`mcp_servers` in spec): - Identify which external services the agent needs to interact with - GitHub? → Recommend GitHub Copilot MCP: `https://api.githubcopilot.com/mcp/` - Harness platform? → Recommend Harness MCP URL - Slack/notifications? → Recommend notification MCP - Recommend MCPs based on the user's task or workflows 5. **Secrets** (via `<+secrets.getValue("key")`): - List all secrets needed for authentication (GitHub PAT, API keys, tokens) - Remind user to create these in Harness UI before running the agent - Example: `bedrock_api_key`, `github_pat`, `slack_token` 6. **Connectors**: - GitHub/GitLab/Bitbucket connector for repository access - Container registry connector for custom images (if needed) - Cloud connectors (if agent interacts with AWS/GCP/Azure) 7. **Tools** (`with.allowed_tools`): - Recommend tools based on what the agent needs to do - File operations: `Read`, `Write`, `Grep`, `Glob` - MCP tools: `mcp__github__*`, `mcp__harness__*` (use `*` for all tools from that MCP) - Shell: `Bash` **Present this recommended configuration to the user and iterate until confirmed.** #### 3. Default Configuration **Use these defaults unless user specifies otherwise:** **Repository clone:** - Only add this section if the task depends on a repository ```yaml clone: depth: 1000 ref: type: branch name: main repo: <repo> connector: <connector> ``` **Platform:** ```yaml platform: os: linux arch: arm64 ``` **Container image:** - The Claude Code plugin is packaged via this image ```yaml container: connector: account.harnessImage image: pkg.harness.io/vrvdt5ius7uwygso8s0bia/harness-agents/claude-code-plugin:main ``` **Environment variables (Bedrock configuration):** ```yaml env: ANTHROPIC_MODEL: arn:aws:bedrock:us-east-1:587817102444:application-inference-profile/7p8sn93lhspw AWS_BEARER_TOKEN_BEDROCK: <+secrets.getValue("bedrock_yaml_key")> AWS_REGION: us-east-1 CLAUDE_CODE_USE_BEDROCK: "1" ``` **Max turns:** - Depending on task complexity, adjust this in the range from 100 to 200 ```yaml max_turns: 150 ``` #### 4. MCP Servers Based on the MCPs needed (clarified with the user), configure MCP server connections: **How to Connect MCP Servers?** **Remote MCP Server:** - If your MCP server is publicly accessible, connect it directly using a Personal Access Token (PAT) - Create a secret in Harness for the PAT and reference it in the agent YAML Example — Remote MCP Server: ```yaml mcp_servers: harness: url: https://<your-ngrok-url>/mcp github: url: https://api.githubcopilot.com/mcp/ headers: Authorization: Bearer <+secrets.getValue("github_pat")> ``` **Local MCP Server:** - Use ngrok to expose your local MCP server so the Harness runner can reach it Example — Single MCP Server: ```yaml mcp_servers: harness: url: https://<your-ngrok-url>/mcp ``` **Allowing MCP Tools:** - To allow the coding agent to use MCP tools, add `mcp__name__*` in `allowed_tools` - Optionally specify a `log_file` for debugging MCP interactions ```yaml mcp_servers: harness: url: https://<your-ngrok-url>/mcp with: allowed_tools: Read,Edit,Bash,Glob,Grep,Write,mcp__harness__* log_file: .agent/output/mcp-test-log.jsonl ``` **Common MCP servers:** - **GitHub/Code/PRs**: `https://api.githubcopilot.com/mcp/` with `Bearer <+secrets.getValue("github_pat")>` - **Harness platform**: `https://<your-harness-mcp-url>/mcp` with Bearer token - **Slack/Notifications**: `https://<your-slack-mcp-url>/mcp` with Bearer token - **Grafana**: `https://<your-grafana-mcp-url>/mcp` (dashboards, alerts, annotations) with Bearer token - **Datadog**: `https://<your-datadog-mcp-url>/mcp` with Bearer token - **Jira**: `https://<your-jira-mcp-url>/mcp` with Bearer token - **PagerDuty**: `https://<your-pagerduty-mcp-url>/mcp` with Bearer token #### 5. MCP Tool Access - **All tools**: `mcp__harness__*,mcp__github__*,Read,Edit,Bash,Glob,Grep,Write` - **Specific tools**: `mcp__github__create_pr,mcp__github__list_files,Read,Write` #### 6. Runtime Inputs (optional) **Only add `inputs` section in the agent spec if user confirms it's needed.** ## Inputs ```yaml agent: inputs: branch: type: string default: main version: type: string required: true deploy_env: type: string enum: [dev, staging, prod] api_key: type: secret default: account.my_secret ``` **Input types:** `string`, `secret`, `boolean` **Reference inputs with:** `${{ inputs.branch }}` Common input examples: - `repo` (string): Repository identifier - `llmKey` (secret): LLM API key - `executionId` (string): Pipeline execution ID - `branch` (string): Branch to analyze **Expression syntax:** ```yaml # Input references <+inputs.variableName> # Connector token <+inputs.connectorName.token> # Step outputs <+pipeline.stages.STAGE.steps.STEP.output.outputVariables.VAR> # Environment variables <+env.HARNESS_ACCOUNT_ID> <+env.HARNESS_ORG_ID> <+env.HARNESS_PROJECT_ID> # Alternative syntax for inputs in env blocks ${{inputs.repo}} ``` ### Phase 3: Generate Agent Spec Using the requirements from Phase 2 and defaults from section 3-6, assemble the complete agent YAML specification (`spec` field): 1. Start with `version: 1` and `agent:` structure 2. Add `clone:` section if task depends on repository 3. Create `stages:` with platform (linux/arm64) and steps 4. For each step, include: - Container image and connector - Environment variables (Bedrock configuration) - `task:` field with step-by-step instructions - `rules:` field with user preferences - `mcp_servers:` based on external services needed - `with.allowed_tools:` and `with.log_file:` - `max_turns:` adjusted for task complexity (100-200) 5. Add `inputs:` section only if confirmed with user (reference with `${{ inputs.fieldName }}`) Generate complete, valid YAML ready to be used as the `spec` value. ### Phase 4: Present for Review Present the complete agent configuration to the user: - Agent metadata (name, description, uid) - Full spec YAML - Required secrets and connectors **Wait for explicit confirmation before creating/updating the agent.** ### Phase 5: Create or Update Agent Only after confirmation, use `harness_create` to create a new agent or `harness_update` to update an existing one: #### Creating a New Agent ``` Call MCP tool: harness_create Parameters: resource_type: "agent" org_id: "<organization>" project_id: "<project>" body: { uid: "<agent_identifier>", name: "<Agent Display Name>", description: "<Brief description of agent purpose>", spec: "<agent YAML spec as a string>", wiki: "<optional: markdown documentation>" } ``` **Key fields for creation:** - `uid` (required): Unique identifier. Auto-generated from `name` if not provided (e.g. "Code Coverage Agent" → "code_coverage_agent") - `name` (required): Display name for the agent - `description` (optional): Brief description - `spec` (required): The full agent YAML specification as a string (includes `version: 1`, `agent:`, `stages:`, etc.) - `wiki` (optional): Markdown documentation for the agent #### Updating an Existing Agent ``` Call MCP tool: harness_update Parameters: resource_type: "agent" agent_id: "<agent_identifier>" org_id: "<organization>" project_id: "<project>" body: { name: "<Updated Display Name>", # optional description: "<Updated description>", # optional spec: "<updated agent YAML spec>", # optional wiki: "<updated markdown docs>" # optional }
Auf GitHub ansehen
Diese SKILL.md ist sehr gross, daher zeigt SkillsMP hier nur den ersten Abschnitt. Auf GitHub ansehen