Skip to content

PeterKoen-MSFT/AgenticDataEcosystem

Repository files navigation

Agentic Data Ecosystem Demo

A self-contained demo of an agentic, cross-organisation data ecosystem.

The demo follows 11 agents across 7 organisations as they ask for data, prove trust, receive credentials, and access protected resources. Its core idea is simple: trust is established before data access is granted. Email can still be the business channel, but access to sensitive data is controlled through identities, verifiable credentials, trust profiles, and DCP-backed resource access.

Start with the story walkthroughs if you want to understand the demo from the user's point of view:

For the architecture behind those stories, see concepts, architecture, and demo setup.


Prerequisites

Supported local hosts are macOS, Linux, and Windows via WSL2.

Install one container runtime:

  • Docker: Docker Desktop or Docker Engine with the Compose plugin. On Windows, enable Docker Desktop's WSL2 integration and run the commands from the WSL2 shell.
  • Podman: Podman with Compose support and a running Docker-compatible socket.

Quickstart

The recommended entry point is the bootstrap script. It generates secrets, writes deployment/.env, starts the stack, and seeds the demo world.

git clone <your-repo-url> agentic-demo
cd agentic-demo

export OPENAI_API_KEY=sk-...        # or ANTHROPIC_API_KEY / OPENROUTER_API_KEY
./deployment/bootstrap.sh local-prod

For Podman:

CONTAINER_ENGINE=podman ./deployment/bootstrap.sh local-prod

This starts the local production build at https://app.localhost. The script prints the login credentials when it finishes.


One bootstrap script, three modes

Use the same script for local production, local development, and a public VM. Pick the mode explicitly.

Mode Command Result
Local development ./deployment/bootstrap.sh local-dev Hot-reload Next.js app on https://app.localhost; useful while editing the UI.
Local production ./deployment/bootstrap.sh local-prod Production build on your laptop with Caddy internal TLS, https://app.localhost.
Public production ./deployment/bootstrap.sh prod --domain demo.example.com --email you@example.com Production build on a public host with Let's Encrypt for app.$DOMAIN, gateway.$DOMAIN, and auth.$DOMAIN.

At least one model key is required (OPENAI_API_KEY, ANTHROPIC_API_KEY, or OPENROUTER_API_KEY). Optional knobs:

OPENCLAW_DEMO_MODEL=...   # choose the model used by the agents
LOGIN_PASSWORD=...        # set the demo login password instead of generating one
CONTAINER_ENGINE=podman   # or docker; docker is the default when available
SKIP_DNS_CHECK=1          # prod mode only, bypass DNS preflight if needed

bootstrap.sh writes the selected mode into deployment/.env as DEPLOY_MODE=local-dev|local-prod|prod. It is best for first setup or for deliberately regenerating deployment/.env. For day-to-day work after the stack exists, use ./deployment/run:

./deployment/run up       # rebuild/restart
./deployment/run seed     # re-seed agents, credentials, resources, mailboxes
./deployment/run logs     # follow logs
./deployment/run status   # container status

For deeper operational notes, see deployment docs.


Trusting the local Caddy certificate

Local modes use Caddy's internal CA. The app works if you click through the browser warning, but you can trust the Caddy root certificate locally after the stack is running:

./deployment/run caddy-root

This writes deployment/.certs/caddy-local-root.crt.

macOS:

sudo security add-trusted-cert -d -r trustRoot \
  -k /Library/Keychains/System.keychain \
  deployment/.certs/caddy-local-root.crt

Debian/Ubuntu Linux:

sudo cp deployment/.certs/caddy-local-root.crt \
  /usr/local/share/ca-certificates/agentic-demo-caddy-local-root.crt
sudo update-ca-certificates

Windows browser with WSL2:

powershell.exe -NoProfile -Command \
  "Import-Certificate -FilePath '$(wslpath -w deployment/.certs/caddy-local-root.crt)' -CertStoreLocation Cert:\CurrentUser\Root"

Restart your browser after trusting the certificate. Firefox may need either security.enterprise_roots.enabled=true or a manual import under Settings → Privacy & Security → Certificates.


What the demo shows

The three stories form one progression.

  1. Story 1 — component data collection GreenAppliance Product Compliance asks three suppliers for EcoWash X9 component evidence. Each supplier establishes trust differently: MotorWorks shares immediately, PolyPlast asks for a purchase order, and PackRight asks for legal-entity proof. This is the old model: trust logic is scattered across every responding agent. → Walkthrough
  2. Story 2 — retail listing disclosure RetailOne asks for the customer-shareable compliance pack so it can list EcoWash X9. GreenAppliance Customer Support must get two internal approvals first: Trust & Access grants scoped access to the Product Compliance documents, and Legal grants permission to disclose them to RetailOne. → Walkthrough
  3. Story 3 — service partner onboarding FixWorks wants protected repair data. It proves legal identity with the EU Business Registry, Customer Support sponsors its partner request, Trust & Access issues a ServicePartnerCredential, and FixWorks reads the Service Network data directly over DCP. → Walkthrough

Together they show the move from improvised trust checks to a shared trust layer that can work inside one company and across organisations.


Main components

Identity and credentials are based on Eclipse Dataspace Components (EDC). Identity Hub holds participant DIDs, wallets, and credentials. The Issuer Service defines and signs credentials. Agents use DCP to present credentials, and nex turns a valid DCP presentation into access to protected data.

Service Role
app Next.js demo UI: participant map, story playback, participant views, and chat.
openclaw + openclaw-bridge Agent runtime and app-to-agent bridge.
openclaw-plugins/* Agent tools for email, nex, trust-link, and trustd.
nex Resource plane: stores metadata, serves bytes, enforces TrustProfiles.
trustd Trust-decision service: credential requests, reviews, attestations, allowances.
identity-hub EDC Identity Hub: DIDs, wallets, credential service, STS.
issuer-service EDC issuer: credential definitions and signing.
hydra OAuth2/OIDC server for management and edge auth flows.
postgres, vault, seaweedfs Durable state, secrets, and S3-compatible object storage.
mail Postfix/Dovecot mailboxes used by the story agents.
caddy, oauth2-proxy, kratos TLS edge, gateway protection, and login.
reset-service Internal provisioner for the in-app runtime reset.

dcp/ is the shared Go DCP verifier library used by nex, trustd, and tests.


Documentation


Repository layout

agentic-demo/
  app/                       — Next.js demo surface
  auth/                      — auth hook / Hydra-related service code
  config/                    — service configuration templates
  dcp/                       — shared Go DCP verifier library
  deployment/                — bootstrap, compose files, run/setup/seed scripts
  docs/                      — concepts, architecture, story walkthroughs
  edc/                       — Identity Hub and Issuer Service integration
  mail/                      — mail service configuration
  nex/                       — Go resource-plane service
  openclaw-bridge/           — HTTP bridge from app to OpenClaw agents
  openclaw-plugins/          — TypeScript agent plugins
  reset-service/             — internal runtime reset provisioner
  seed-data/                 — canonical participants, resources, credentials, stories
  trustd/                    — Go trust-decision service

Resetting between demos

After a story run, the stack contains real side effects: emails, credentials, reviews, and stored resources. Use the in-app Settings → Reset demo run action to return to the seeded baseline quickly.

For a full volume reset:

./deployment/run reset
./deployment/run up
./deployment/run seed

License and safety note

Apache-2.0 — see LICENSE and NOTICE.

This is a demo stack. Local defaults are intentionally convenient, not production-hardened.

About

Demo for a trusted agentic data ecosystem

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors