Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
50 changes: 0 additions & 50 deletions .github/workflows/setup-attendee.yml

This file was deleted.

36 changes: 9 additions & 27 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,15 +1,12 @@
# Render Workflow Agents Workshop
# Render Workflow Agents — TypeScript

A hands-on workshop that deploys **one agentic code-review use case** across
An example repo showing **one agentic code-review use case** deployed across
**three Render execution substrates**: an in-process web service, a web service
plus queue-backed worker, and Render Workflows.

You deploy the same multi-agent PR reviewer (`security`, `performance`, `ux`, then
a `judge`) across progressively more durable execution models. Along the way, you
open live Render URLs, inspect logs and traces in the Dashboard, and use local
development for focused test loops.

For someone facilitating this workshop, start with [`workshop/facilitator-guide.md`](workshop/facilitator-guide.md).
The same multi-agent PR reviewer (`security`, `performance`, `ux`, then a `judge`)
runs across progressively more durable execution models. Each pattern comes with a
Blueprint for one-click deployment and local development scripts for focused testing.

## The three patterns

Expand Down Expand Up @@ -41,7 +38,7 @@ uses a deterministic **mock** model, so live deploys and local tests still work.
Set `ANTHROPIC_API_KEY` or `OPENAI_API_KEY` for real reviews, or force the mock
with `AGENT_MODEL=mock`.

## Workshop path
## Deploy

Patterns 1 and 2 use Blueprints:

Expand All @@ -56,22 +53,11 @@ Pattern 3 uses both:
- [`packages/workflow-agents/render.yaml`](packages/workflow-agents/render.yaml) creates the web service and Postgres database
- `render workflows create` creates the Workflow service
- `render workflows start` triggers task runs
- `render logs`, `render deploys`, and the Dashboard help learners inspect what ran

## Interactive beats

- **Session 1 — inspect the coordination.** In queue-agents, learners trace the ack
contract in [`packages/queue-agents/src/kv.ts`](packages/queue-agents/src/kv.ts),
run the focused test with `npm run test:worker`, scale the worker, and observe
what they now own.
- **Session 2 — let agents author tasks.** In workflow-agents, learners explore the
`your-review` sandbox and work with the small `task()` API surface. The same
durability that took a whole queue in Session 1 is now a config object, a live
task run, and a Dashboard trace.
- `render logs`, `render deploys`, and the Dashboard show what ran

## Local development

Local runs are useful for tests, facilitator prep, and debugging.
Local runs are useful for tests and debugging.

For local runs, copy the example env file:

Expand Down Expand Up @@ -140,10 +126,6 @@ shared/
→ src/index.ts createUiRouter() + read APIs
→ src/page.ts dashboard HTML template

docs/ guided walkthrough (00–05)

facilitator/ facilitator notes and exercise solutions

tests/ unit, integration, and e2e tests (mock model, no API key)
→ integration/run-review.test.ts core pipeline end-to-end
→ integration/workflow-dispatch.test.ts Pattern 3 dispatch path
Expand Down Expand Up @@ -217,7 +199,7 @@ npm run typecheck # TypeScript across every workspace
```

Tests live under [`tests/`](tests) (`unit/`, `integration/`, `e2e/`). The
`worker-kv` integration test is the red-to-green check for the Session 1 exercise.
`worker-kv` integration test validates the ack/retry contract in Pattern 2.

### Troubleshooting `test:worker`

Expand Down
9 changes: 2 additions & 7 deletions package.json
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,6 @@
"packages/workflow-agents"
],
"scripts": {
"setup": "node scripts/setup-attendee.js",
"typecheck": "npm run typecheck --workspaces --if-present && tsc -p tests/tsconfig.json",
"test": "AGENT_MODEL=mock RENDER_USE_LOCAL_DEV=true node --import tsx --test \"tests/**/*.test.ts\"",
"test:unit": "AGENT_MODEL=mock node --import tsx --test \"tests/unit/**/*.test.ts\"",
Expand All @@ -24,14 +23,10 @@
"test:worker": "AGENT_MODEL=mock node --import tsx --test \"tests/integration/worker-kv.test.ts\"",
"naive:dev": "npm run dev --workspace @workshop/naive-agent",
"queue:web": "npm run web --workspace @workshop/queue-agents",
"queue:worker": "npm run worker --workspace @workshop/queue-agents",
"docker:up": "docker compose up --build",
"docker:down": "docker compose down",
"docker:logs": "docker compose logs -f"
"queue:worker": "npm run worker --workspace @workshop/queue-agents"
},
"dependencies": {
"tsx": "^4.20.5",
"yaml": "^2.9.0"
"tsx": "^4.20.5"
},
"devDependencies": {
"@types/node": "^22.10.0",
Expand Down
2 changes: 1 addition & 1 deletion packages/naive-agent/render.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
# Builds from the repo root so the npm workspaces resolve.

projects:
- name: agents-workshop-naive
- name: naive-agent
environments:
- name: production
databases:
Expand Down
2 changes: 1 addition & 1 deletion packages/queue-agents/render.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
# Builds from the repo root so the npm workspaces resolve.

projects:
- name: agents-workshop-queue
- name: queue-agents
environments:
- name: production
databases:
Expand Down
11 changes: 8 additions & 3 deletions packages/workflow-agents/render.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -3,11 +3,9 @@
# workflow-agents. Web host (Hono) + managed Postgres.
# Builds from the repo root so the npm workspaces resolve.
#
# The Workflow service is created separately with the Render CLI — see
# docs/03-workflow-agents.md.

projects:
- name: agents-workshop-workflows
- name: workflow-agents
environments:
- name: production
databases:
Expand Down Expand Up @@ -40,5 +38,12 @@ projects:
- key: RENDER_WORKFLOW_SLUG
sync: false

- key: ANTHROPIC_API_KEY
sync: false
- key: OPENAI_API_KEY
sync: false
- key: GITHUB_TOKEN
sync: false

- key: NODE_ENV
value: production
32 changes: 0 additions & 32 deletions scripts/docker-workflow-dev.sh

This file was deleted.

Loading