Skip to content

webdriverio/brain

Repository files navigation

brain

WebdriverIO maintainer agents, built as Managed Deep Agents and deployed to LangSmith.

Each package in this monorepo is a code-first agent that helps run the webdriverio/webdriverio project — for example triaging issues or labeling pull requests for the changelog. Agents share a common layout (agent.ts, instructions.md, connectors, channels, sandbox) and are deployed with the mda CLI.

Agents

Package Purpose
issue-triager Triage new GitHub issues: completeness, duplicates, classification, contribution invites
pr-labeler Apply PR: … changelog labels so lerna-changelog / pnpm changelog stay accurate

Packages are listed in pnpm-workspace.yaml. The Deploy Agents workflow discovers that list and can deploy all agents or a subset.

Prerequisites

  • Node.js 24.x (see .nvmrc)
  • pnpm 11 (see root packageManager)
  • Access to Managed Deep Agents private beta on LangSmith Cloud (US region)
  • A LangSmith API key and a model provider key (OPENROUTER_API_KEY for Kimi K3)

Managed Deep Agents pairs the Deep Agents harness with managed infrastructure (sandboxes, Context Hub, traces, hosted LangGraph). See the overview for when to use MDA vs self-hosted Deep Agents.

Setup

pnpm install

Each agent has an env.example. Copy it to .env inside that package and fill in secrets (never commit .env):

cp issue-triager/env.example issue-triager/.env
cp pr-labeler/env.example pr-labeler/.env

Typical secrets: LANGSMITH_API_KEY, OPENROUTER_API_KEY, GITHUB_TOKEN (PAT for sandbox gh), MDA_INGRESS_SECRET, plus per-agent GitHub App values for webhook channels. Actions stores App secrets as MDA_PR_LABELER_GITHUB_* / MDA_ISSUE_TRIAGER_GITHUB_* (cannot start with GITHUB_); CI maps them into each agent .env.

Develop locally

From an agent package:

cd issue-triager   # or pr-labeler
pnpm exec mda dev .

mda dev compiles the project and opens it in LangSmith Studio. Provider keys and connector tokens come from the package .env. Details: quickstart — run locally.

Deploy

Locally

pnpm exec mda deploy issue-triager --name issue-triager
# or
pnpm exec mda deploy pr-labeler --name pr-labeler

mda deploy syncs instructions.md and skills/** to Context Hub, uploads the compiled project, and creates/updates a LangSmith hosted deployment. See Deploy an agent.

Via GitHub Actions

Run Deploy Agents (workflow_dispatch) with agents=all or a comma-separated list (e.g. pr-labeler,issue-triager). Required repository secrets are documented in .github/workflows/deploy-agents.yml.

Add an agent

Follow the LangChain Managed Deep Agents quickstart and tutorial, then wire the package into this workspace.

1. Scaffold the project

From the repo root (TypeScript, to match existing agents):

pnpm exec mda init my-agent

Or copy an existing package (issue-triager / pr-labeler) and rename it. The CLI expects a code-first layout; file location determines role (project file reference):

my-agent/
  agent.ts              # required: export const agent = defineDeepAgent(...)
  instructions.md       # system prompt (synced to Context Hub on deploy)
  identity.ts           # optional: caller identity + credentials
  package.json
  .env                  # secrets — do not commit
  tools/                # authored LangChain tools (imported by agent.ts)
  middleware/
  connectors/           # e.g. GitHub checkout + gh CLI
  channels/             # e.g. GitHub App webhooks
  schedules/            # managed cron jobs
  skills/<name>/SKILL.md
  sandbox/              # LangSmith sandbox + setup.sh

The managed runtime owns backend, store, checkpointer, memory, skills, and the system prompt — do not set those on defineDeepAgent. Configure model, tools, middleware, subagents, and interrupts in agent.ts; put behavior policy in instructions.md.

Minimal entry:

import { ChatOpenRouter } from "@langchain/openrouter";
import { defineDeepAgent } from "managed-deepagents";

export const agent = defineDeepAgent({
  model: new ChatOpenRouter({
    model: "moonshotai/kimi-k3",
  }),
});

2. Register the package

Add the directory to pnpm-workspace.yaml:

packages:
  - 'pr-labeler'
  - 'issue-triager'
  - 'my-agent'

Then install from the repo root:

pnpm install

3. Implement and test

  1. Write instructions.md (agent policy).
  2. Add tools, connectors, channels, skills, or a sandbox as needed — see custom tools, connectors, identity, and schedules.
  3. Copy env.example.env and set keys.
  4. Run pnpm exec mda dev my-agent (or cd my-agent && pnpm exec mda dev .).
  5. Deploy with pnpm exec mda deploy my-agent --name my-agent.

For a full walkthrough of tools, memory, and cron schedules, use the tutorial. For how compilation, Context Hub, and the deploy lifecycle fit together, see How Managed Deep Agents work.

4. CI deploy

No workflow changes are required if the package is listed in pnpm-workspace.yamlDeploy Agents discovers workspace packages automatically. Add any new secrets the agent needs to the GitHub repository and to the workflow’s .env writing step if they are not already forwarded.

Docs

Topic Link
Managed Deep Agents overview docs.langchain.com
Quickstart docs.langchain.com
Tutorial docs.langchain.com
How it works docs.langchain.com
CLI / project layout docs.langchain.com
Deploy docs.langchain.com
Deep Agents (OSS harness) docs.langchain.com

About

AI workflows for WebdriverIO maintenance

Resources

Code of conduct

Security policy

Stars

Watchers

Forks

Releases

Packages

Contributors

Languages