Skip to content

Latest commit

 

History

171 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Agents — the Agent Workforce

Agent Workforce.

A collection of proactive agents. Each folder is a deployable agent — a typed persona.ts (what it listens to + how it runs) and an agent.ts handler (what it does). The persona compiles to persona.json; deploy with agentworkforce deploy ./<agent>/persona.json --mode cloud.

The agents

Agent Fires on What it does
cloud-team-implementer launched by a teamSolve lead roster Implements the assigned issue in its own sandbox and opens one focused pull request.
transcript-to-linear-github Relayscribe recording → /recall/recordings/** Extracts action items from a meeting transcript, files Linear issues, and autonomously opens a GitHub PR per coding task.
transcript-slack-digest Relayscribe recording → /recall/recordings/** Extracts action items, decisions, and open questions from a transcript and posts a structured Slack digest.
transcript-to-notion-slack Relayscribe recording → /recall/recordings/** Writes structured meeting notes and action items to a Notion database, then posts the page link to Slack.
cloud-team-reviewer launched by a teamSolve lead roster Reviews a teammate's branch against the issue spec and returns verifiable, actionable findings.
granola a new Granola note (Nango sync → file.created) Detects prospect calls, files a Linear issue with the ask, and opens a GitHub PR implementing it.
hn-monitor schedule (2×/day) Scans Hacker News for your topics and posts a digest to Slack.
askable-gtm relay inbox + shared 15-minute sweep Advertises a machine-readable GTM capability manifest, answers public-signal questions once a scoped Revternal credential bridge exists, and persists user-directed watch definitions.
linear Linear issue.create (labelled) / comment.create Implements the issue and opens a GitHub PR; comments the PR link back.
neon-monitor Neon sync-delta triggers (operation.failed / endpoint.state_changed / advisor.issue_raised) + 2h sweep Watches your Neon org for failed operations, endpoint thrash, advisor issues, and runaway compute/spend; posts Slack alerts and answers questions about live Neon state.
repo-hygiene GitHub PR opened / updated Diagnoses duplicated/dead code, divergent paths, stale skills/rules/docs, and code smells; comments findings and journals the run to Notion.
review GitHub PR opened / updated / reviewed / CI finished Reviews the PR, fixes the issues it (and other bots) find, resolves failing CI and merge conflicts, DMs you when it's ready, and merges once you approve.
spotify-releases schedule (daily) Checks for new releases from artists you follow and DMs them to you.
vendor-monitor schedule (weekday mornings) Watches the vendors in your stack for new releases and posts changes to your team channel.

How they're built

  • Typed authoring. Personas use definePersona from @agentworkforce/persona-kit (identity, runtime, integration connections); agents use defineAgent from @agentworkforce/runtime for triggers/schedules + the handler, so triggers.<provider>[].on autocompletes the provider's real events and is linted at deploy.
  • Integrations are VFS-backed. Agents read/write providers (Slack, Linear, GitHub, Gmail/Google-Mail, Granola…) through the Relayfile VFS and the typed ctx clients — no direct API calls or tokens to manage.
  • Repos are materialized, not cloned. For agents that touch code, the cloud materializes the GitHub repo into the sandbox (ctx.sandbox.cwd) via Relayfile, so handlers never run git clone — they just hand the work to the coding agent (ctx.harness.run).

Run one locally

npm install
npm run typecheck                                   # tsc over every agent
npm run compile                                     # every persona.ts -> persona.json; harness-backed personas are registered with the CLI
agentworkforce deploy ./hn-monitor/persona.json --mode cloud --input SLACK_CHANNEL=C0123ABCD

npm run compile does two things, because compiling alone leaves a persona unrunnable. The CLI resolves personas from <cwd>/.agentworkforce/workforce/personas/ and does not recurse, so a persona sitting in <agent>/ is invisible to it — agentworkforce agent hn-monitor answers Unknown persona next to a list that omits it. The compile step copies each persona into that directory, keyed on its id rather than its directory (granola/ publishes granola-prospect, review/ publishes pr-reviewer), rebasing the relative paths inside so they still resolve from their new home. Once compiled, you can sit in a persona's seat without deploying anything:

agentworkforce agent hn-monitor      # interactive session: its prompt, model, and skills
agentworkforce list                  # every persona this repo publishes

A persona without a harness is not registered — spotify-releases and vendor-monitor are pure fetch-and-deliver handlers with no harness to sit in, and npm run compile names each one it skips.

Deploy one to your own workspace

Every agent here is deployable into your Agent Workforce workspace, from a fork, with no interactive login and no terminal — set two secrets and dispatch a workflow.

Fork  →  Settings ▸ Environments ▸ "workforce"  →  Actions ▸ Deploy agent ▸ Run workflow
              WORKFORCE_WORKSPACE_ID
              WORKFORCE_WORKSPACE_TOKEN
  1. Get the two secrets. npm install && npx agentworkforce login logs you in through the browser and writes the workspace and its token to ~/.agentworkforce/relay/workspaces.json. Read them back with:

    jq -r '.active' ~/.agentworkforce/relay/workspaces.json                 # WORKFORCE_WORKSPACE_ID
    jq -r '.workspaces[.active].key' ~/.agentworkforce/relay/workspaces.json # WORKFORCE_WORKSPACE_TOKEN
  2. Add them to your fork under Settings → Environments → new environment named workforce → Environment secrets. The name matters: the deploy job declares environment: workforce, and that is what resolves them.

  3. Dispatch it. Actions → Deploy agent → Run workflow → pick an agent from scripts/deploy/agents.json. Tick dry-run first for a rehearsal that needs no secrets.

Or from your own shell, with the same two variables exported:

node scripts/deploy/deploy-agents.mjs --list
node scripts/deploy/deploy-agents.mjs --agent hn-monitor --dry-run
node scripts/deploy/deploy-agents.mjs --agent hn-monitor --input SLACK_CHANNEL=C0123ABCD

Agent configuration (a Slack channel, a threshold, a topic list) comes from the inputs each persona.ts declares; the deploy script resolves them from the environment, so the self-deploy path itself commits nothing workspace-specific. A few personas do still carry the original owner's org or project id as an input default — the deploy refuses to inherit those, and tells you to set your own. It also reuses integrations your workspace has already connected and fails loudly if one is missing, rather than prompting.

docs/SELF-DEPLOY.md covers all of it in full: where each secret comes from, how to pass per-agent inputs (including ones that must stay masked in logs), what each failure message means, and why the workflow is workflow_dispatch-only in a public repo.

About

A collection of Agent Workforce agents

Resources

Stars

3 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages