pyagent-studio 0.2.3__tar.gz → 0.2.4__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (73) hide show
  1. pyagent_studio-0.2.3/README.md → pyagent_studio-0.2.4/PKG-INFO +78 -1
  2. pyagent_studio-0.2.3/PKG-INFO → pyagent_studio-0.2.4/README.md +40 -35
  3. {pyagent_studio-0.2.3 → pyagent_studio-0.2.4}/pyproject.toml +6 -2
  4. {pyagent_studio-0.2.3 → pyagent_studio-0.2.4}/src/pyagent_studio/cli.py +23 -2
  5. pyagent_studio-0.2.4/src/pyagent_studio/data/sample_blueprint.yaml +73 -0
  6. {pyagent_studio-0.2.3 → pyagent_studio-0.2.4}/src/pyagent_studio/services/__init__.py +2 -0
  7. pyagent_studio-0.2.4/src/pyagent_studio/services/runs_service.py +410 -0
  8. pyagent_studio-0.2.4/src/pyagent_studio/services/sample_data.py +139 -0
  9. pyagent_studio-0.2.4/src/pyagent_studio/web/app.py +93 -0
  10. pyagent_studio-0.2.4/src/pyagent_studio/web/routes/_common.py +26 -0
  11. pyagent_studio-0.2.4/src/pyagent_studio/web/routes/agents.py +31 -0
  12. pyagent_studio-0.2.4/src/pyagent_studio/web/routes/diff.py +72 -0
  13. pyagent_studio-0.2.4/src/pyagent_studio/web/routes/docs.py +36 -0
  14. pyagent_studio-0.2.4/src/pyagent_studio/web/routes/governance.py +36 -0
  15. pyagent_studio-0.2.4/src/pyagent_studio/web/routes/overview.py +118 -0
  16. pyagent_studio-0.2.4/src/pyagent_studio/web/routes/providers.py +45 -0
  17. pyagent_studio-0.2.4/src/pyagent_studio/web/routes/simulate.py +52 -0
  18. {pyagent_studio-0.2.3 → pyagent_studio-0.2.4}/src/pyagent_studio/web/routes/traces.py +21 -5
  19. pyagent_studio-0.2.4/src/pyagent_studio/web/routes/workflows.py +54 -0
  20. pyagent_studio-0.2.4/src/pyagent_studio/web/static/htmx-ext-sse.min.js +8 -0
  21. pyagent_studio-0.2.4/src/pyagent_studio/web/static/htmx.min.js +1 -0
  22. pyagent_studio-0.2.4/src/pyagent_studio/web/static/studio.css +691 -0
  23. pyagent_studio-0.2.4/src/pyagent_studio/web/templates/_bp_banner.html +5 -0
  24. pyagent_studio-0.2.4/src/pyagent_studio/web/templates/_diff_result.html +25 -0
  25. pyagent_studio-0.2.4/src/pyagent_studio/web/templates/_overview_body.html +211 -0
  26. pyagent_studio-0.2.4/src/pyagent_studio/web/templates/_simulate_result.html +16 -0
  27. pyagent_studio-0.2.4/src/pyagent_studio/web/templates/agents.html +54 -0
  28. pyagent_studio-0.2.4/src/pyagent_studio/web/templates/base.html +44 -0
  29. pyagent_studio-0.2.4/src/pyagent_studio/web/templates/diff.html +28 -0
  30. pyagent_studio-0.2.4/src/pyagent_studio/web/templates/docs.html +34 -0
  31. pyagent_studio-0.2.4/src/pyagent_studio/web/templates/governance.html +43 -0
  32. pyagent_studio-0.2.4/src/pyagent_studio/web/templates/overview.html +7 -0
  33. pyagent_studio-0.2.4/src/pyagent_studio/web/templates/providers.html +35 -0
  34. pyagent_studio-0.2.4/src/pyagent_studio/web/templates/simulate.html +48 -0
  35. pyagent_studio-0.2.4/src/pyagent_studio/web/templates/traces.html +20 -0
  36. pyagent_studio-0.2.4/src/pyagent_studio/web/templates/workflows.html +42 -0
  37. {pyagent_studio-0.2.3 → pyagent_studio-0.2.4}/tests/test_cli.py +32 -0
  38. pyagent_studio-0.2.4/tests/test_runs_service.py +141 -0
  39. {pyagent_studio-0.2.3 → pyagent_studio-0.2.4}/tests/test_web.py +130 -7
  40. pyagent_studio-0.2.3/src/pyagent_studio/web/app.py +0 -50
  41. pyagent_studio-0.2.3/src/pyagent_studio/web/routes/agents.py +0 -23
  42. pyagent_studio-0.2.3/src/pyagent_studio/web/routes/diff.py +0 -14
  43. pyagent_studio-0.2.3/src/pyagent_studio/web/routes/docs.py +0 -14
  44. pyagent_studio-0.2.3/src/pyagent_studio/web/routes/governance.py +0 -16
  45. pyagent_studio-0.2.3/src/pyagent_studio/web/routes/overview.py +0 -26
  46. pyagent_studio-0.2.3/src/pyagent_studio/web/routes/providers.py +0 -14
  47. pyagent_studio-0.2.3/src/pyagent_studio/web/routes/simulate.py +0 -14
  48. pyagent_studio-0.2.3/src/pyagent_studio/web/routes/workflows.py +0 -23
  49. pyagent_studio-0.2.3/src/pyagent_studio/web/static/htmx.min.js +0 -3
  50. pyagent_studio-0.2.3/src/pyagent_studio/web/templates/agents.html +0 -18
  51. pyagent_studio-0.2.3/src/pyagent_studio/web/templates/base.html +0 -32
  52. pyagent_studio-0.2.3/src/pyagent_studio/web/templates/diff.html +0 -14
  53. pyagent_studio-0.2.3/src/pyagent_studio/web/templates/docs.html +0 -11
  54. pyagent_studio-0.2.3/src/pyagent_studio/web/templates/governance.html +0 -18
  55. pyagent_studio-0.2.3/src/pyagent_studio/web/templates/overview.html +0 -17
  56. pyagent_studio-0.2.3/src/pyagent_studio/web/templates/providers.html +0 -17
  57. pyagent_studio-0.2.3/src/pyagent_studio/web/templates/simulate.html +0 -17
  58. pyagent_studio-0.2.3/src/pyagent_studio/web/templates/traces.html +0 -11
  59. pyagent_studio-0.2.3/src/pyagent_studio/web/templates/workflows.html +0 -16
  60. {pyagent_studio-0.2.3 → pyagent_studio-0.2.4}/.gitignore +0 -0
  61. {pyagent_studio-0.2.3 → pyagent_studio-0.2.4}/src/pyagent_studio/__init__.py +0 -0
  62. {pyagent_studio-0.2.3 → pyagent_studio-0.2.4}/src/pyagent_studio/py.typed +0 -0
  63. {pyagent_studio-0.2.3 → pyagent_studio-0.2.4}/src/pyagent_studio/services/blueprint_service.py +0 -0
  64. {pyagent_studio-0.2.3 → pyagent_studio-0.2.4}/src/pyagent_studio/services/governance_service.py +0 -0
  65. {pyagent_studio-0.2.3 → pyagent_studio-0.2.4}/src/pyagent_studio/services/provider_service.py +0 -0
  66. {pyagent_studio-0.2.3 → pyagent_studio-0.2.4}/src/pyagent_studio/services/simulation_service.py +0 -0
  67. {pyagent_studio-0.2.3 → pyagent_studio-0.2.4}/src/pyagent_studio/services/trace_service.py +0 -0
  68. {pyagent_studio-0.2.3 → pyagent_studio-0.2.4}/src/pyagent_studio/web/__init__.py +0 -0
  69. {pyagent_studio-0.2.3 → pyagent_studio-0.2.4}/src/pyagent_studio/web/routes/__init__.py +0 -0
  70. {pyagent_studio-0.2.3 → pyagent_studio-0.2.4}/src/pyagent_studio/web/static/style.css +0 -0
  71. {pyagent_studio-0.2.3 → pyagent_studio-0.2.4}/tests/__init__.py +0 -0
  72. {pyagent_studio-0.2.3 → pyagent_studio-0.2.4}/tests/test_provider_service.py +0 -0
  73. {pyagent_studio-0.2.3 → pyagent_studio-0.2.4}/tests/test_services.py +0 -0
@@ -1,10 +1,52 @@
1
+ Metadata-Version: 2.4
2
+ Name: pyagent-studio
3
+ Version: 0.2.4
4
+ Summary: Kubernetes Dashboard for Agent Systems — CLI + web control plane for multi-agent LLM blueprints
5
+ Project-URL: Homepage, https://pyagent.org
6
+ Project-URL: Repository, https://github.com/pyagent-core/pyagent
7
+ Project-URL: Documentation, https://pyagent.org
8
+ Project-URL: Agent Orchestration Patterns, https://pyagent.org/patterns/orchestrator-worker/
9
+ Project-URL: Agent Harness Architecture, https://pyagent.org/architecture/multi-agent-harness/
10
+ Project-URL: Agent Experience Optimization, https://pyagent.org/concepts/agent-experience-optimization/
11
+ Author-email: PyAgent Team <team@pyagent.org>
12
+ License: MIT
13
+ Keywords: LLM,agent control plane,agent harness,agents,dashboard,fastapi,litellm,multi-agent observability,studio,workbench
14
+ Classifier: Development Status :: 3 - Alpha
15
+ Classifier: Intended Audience :: Developers
16
+ Classifier: License :: OSI Approved :: MIT License
17
+ Classifier: Programming Language :: Python :: 3.11
18
+ Classifier: Programming Language :: Python :: 3.12
19
+ Classifier: Programming Language :: Python :: 3.13
20
+ Classifier: Topic :: Scientific/Engineering :: Artificial Intelligence
21
+ Classifier: Typing :: Typed
22
+ Requires-Python: >=3.11
23
+ Requires-Dist: click>=8.1
24
+ Requires-Dist: fastapi>=0.115
25
+ Requires-Dist: jinja2>=3.1
26
+ Requires-Dist: litellm>=1.40
27
+ Requires-Dist: pyagent-blueprint>=0.1.0
28
+ Requires-Dist: pyagent-providers>=0.1.0
29
+ Requires-Dist: pyagent-trace>=0.1.0
30
+ Requires-Dist: python-multipart>=0.0.9
31
+ Requires-Dist: rich>=13.0
32
+ Requires-Dist: uvicorn>=0.30
33
+ Provides-Extra: dev
34
+ Requires-Dist: httpx>=0.27; extra == 'dev'
35
+ Requires-Dist: pytest-asyncio>=0.23; extra == 'dev'
36
+ Requires-Dist: pytest>=8.0; extra == 'dev'
37
+ Description-Content-Type: text/markdown
38
+
1
39
  # pyagent-studio
2
40
 
3
- **The Kubernetes Dashboard for Agent Systems** — CLI + web control plane for designing, simulating, debugging, and governing multi-agent LLM blueprints.
41
+ **Pillar 4 of the PyAgent production stack for multi-agent LLM systems** — CLI + web control plane for designing, simulating, debugging, and governing agent systems.
4
42
 
5
43
  [![License: MIT](https://img.shields.io/badge/License-MIT-blue.svg)](../../LICENSE)
6
44
  [![Python 3.11+](https://img.shields.io/badge/python-3.11+-blue.svg)](https://www.python.org/downloads/)
7
45
 
46
+ > **Architecture Pillar: 📊 Observability**
47
+ > The control plane of the Observability pillar — a `kubectl`-style CLI and FastAPI web dashboard for simulating workflows, exploring recorded traces, diffing blueprint versions, and monitoring provider health and costs.
48
+ > Part of the full stack: install `pyagent-all` for all pillars.
49
+
8
50
  ## Install
9
51
 
10
52
  ```bash
@@ -283,6 +325,41 @@ Studio integrates with every PyAgent package:
283
325
  | Live trace streaming (SSE) | ✓ | ✗ | ✗ | ✗ |
284
326
  | Governance & compliance | ✓ | ✗ | ✗ | ✗ |
285
327
 
328
+ ## Other packages in this pillar
329
+
330
+ - `pyagent-trace` — TraceEventBus, OTel spans, cost tracking, record/replay
331
+
332
+ ## Full stack
333
+
334
+ Install all pillars at once: `pip install pyagent-all`
335
+
336
+ → [pyagent.org](https://pyagent.org) for full documentation.
337
+
286
338
  ## Full Documentation
287
339
 
288
340
  See [pyagent.org](https://pyagent.org) for full API reference and integration guides.
341
+
342
+ <!-- pyagent-ecosystem-footer:start -->
343
+
344
+ ## The PyAgent ecosystem
345
+
346
+ PyAgent is a production stack for multi-agent LLM systems. Each package is independent — install
347
+ only what you need, or get everything with [`pip install pyagent-all`](https://pyagent.org/getting-started/).
348
+
349
+ | Package | What it gives you |
350
+ |---------|-------------------|
351
+ | `pyagent-blueprint` | [Declarative multi-agent blueprints](https://pyagent.org/guides/blueprint/) — compile, validate, and diff agent systems from YAML |
352
+ | `pyagent-patterns` | [Reusable multi-agent design patterns](https://pyagent.org/packages/patterns/) — Supervisor, Pipeline, ReAct, and 15 more |
353
+ | `pyagent-router` | [Difficulty-aware model routing](https://pyagent.org/guides/router/) — cost-efficient model selection per task |
354
+ | `pyagent-compress` | [Token-efficient agent compression](https://pyagent.org/guides/compression/) — inter-agent token budgets |
355
+ | `pyagent-providers` | [Multi-provider orchestration](https://pyagent.org/guides/providers/) — fallback chains and capability negotiation |
356
+ | `pyagent-context` | [Stateful agent memory](https://pyagent.org/guides/context/) — trust-aware, three-tier context ledger |
357
+ | `pyagent-trace` | [Multi-agent observability & tracing](https://pyagent.org/guides/tracing/) — pattern-aware OpenTelemetry spans |
358
+ | `pyagent-studio` | [Agent control plane dashboard](https://pyagent.org/guides/studio/) — live traces, cost, and governance |
359
+
360
+ **Learn the concepts:**
361
+ [The Orchestrator-Worker pattern](https://pyagent.org/patterns/orchestrator-worker/) ·
362
+ [Engineering a resilient multi-agent harness](https://pyagent.org/architecture/multi-agent-harness/) ·
363
+ [Agent Experience Optimization (AXO)](https://pyagent.org/concepts/agent-experience-optimization/)
364
+
365
+ <!-- pyagent-ecosystem-footer:end -->
@@ -1,44 +1,14 @@
1
- Metadata-Version: 2.4
2
- Name: pyagent-studio
3
- Version: 0.2.3
4
- Summary: Kubernetes Dashboard for Agent Systems — CLI + web control plane for multi-agent LLM blueprints
5
- Project-URL: Homepage, https://pyagent.org
6
- Project-URL: Repository, https://github.com/pyagent-core/pyagent
7
- Project-URL: Documentation, https://pyagent.org
8
- Author-email: PyAgent Team <team@pyagent.org>
9
- License: MIT
10
- Keywords: LLM,agents,dashboard,fastapi,litellm,studio,workbench
11
- Classifier: Development Status :: 3 - Alpha
12
- Classifier: Intended Audience :: Developers
13
- Classifier: License :: OSI Approved :: MIT License
14
- Classifier: Programming Language :: Python :: 3.11
15
- Classifier: Programming Language :: Python :: 3.12
16
- Classifier: Programming Language :: Python :: 3.13
17
- Classifier: Topic :: Scientific/Engineering :: Artificial Intelligence
18
- Classifier: Typing :: Typed
19
- Requires-Python: >=3.11
20
- Requires-Dist: click>=8.1
21
- Requires-Dist: fastapi>=0.115
22
- Requires-Dist: jinja2>=3.1
23
- Requires-Dist: litellm>=1.40
24
- Requires-Dist: pyagent-blueprint>=0.1.0
25
- Requires-Dist: pyagent-providers>=0.1.0
26
- Requires-Dist: pyagent-trace>=0.1.0
27
- Requires-Dist: rich>=13.0
28
- Requires-Dist: uvicorn>=0.30
29
- Provides-Extra: dev
30
- Requires-Dist: httpx>=0.27; extra == 'dev'
31
- Requires-Dist: pytest-asyncio>=0.23; extra == 'dev'
32
- Requires-Dist: pytest>=8.0; extra == 'dev'
33
- Description-Content-Type: text/markdown
34
-
35
1
  # pyagent-studio
36
2
 
37
- **The Kubernetes Dashboard for Agent Systems** — CLI + web control plane for designing, simulating, debugging, and governing multi-agent LLM blueprints.
3
+ **Pillar 4 of the PyAgent production stack for multi-agent LLM systems** — CLI + web control plane for designing, simulating, debugging, and governing agent systems.
38
4
 
39
5
  [![License: MIT](https://img.shields.io/badge/License-MIT-blue.svg)](../../LICENSE)
40
6
  [![Python 3.11+](https://img.shields.io/badge/python-3.11+-blue.svg)](https://www.python.org/downloads/)
41
7
 
8
+ > **Architecture Pillar: 📊 Observability**
9
+ > The control plane of the Observability pillar — a `kubectl`-style CLI and FastAPI web dashboard for simulating workflows, exploring recorded traces, diffing blueprint versions, and monitoring provider health and costs.
10
+ > Part of the full stack: install `pyagent-all` for all pillars.
11
+
42
12
  ## Install
43
13
 
44
14
  ```bash
@@ -317,6 +287,41 @@ Studio integrates with every PyAgent package:
317
287
  | Live trace streaming (SSE) | ✓ | ✗ | ✗ | ✗ |
318
288
  | Governance & compliance | ✓ | ✗ | ✗ | ✗ |
319
289
 
290
+ ## Other packages in this pillar
291
+
292
+ - `pyagent-trace` — TraceEventBus, OTel spans, cost tracking, record/replay
293
+
294
+ ## Full stack
295
+
296
+ Install all pillars at once: `pip install pyagent-all`
297
+
298
+ → [pyagent.org](https://pyagent.org) for full documentation.
299
+
320
300
  ## Full Documentation
321
301
 
322
302
  See [pyagent.org](https://pyagent.org) for full API reference and integration guides.
303
+
304
+ <!-- pyagent-ecosystem-footer:start -->
305
+
306
+ ## The PyAgent ecosystem
307
+
308
+ PyAgent is a production stack for multi-agent LLM systems. Each package is independent — install
309
+ only what you need, or get everything with [`pip install pyagent-all`](https://pyagent.org/getting-started/).
310
+
311
+ | Package | What it gives you |
312
+ |---------|-------------------|
313
+ | `pyagent-blueprint` | [Declarative multi-agent blueprints](https://pyagent.org/guides/blueprint/) — compile, validate, and diff agent systems from YAML |
314
+ | `pyagent-patterns` | [Reusable multi-agent design patterns](https://pyagent.org/packages/patterns/) — Supervisor, Pipeline, ReAct, and 15 more |
315
+ | `pyagent-router` | [Difficulty-aware model routing](https://pyagent.org/guides/router/) — cost-efficient model selection per task |
316
+ | `pyagent-compress` | [Token-efficient agent compression](https://pyagent.org/guides/compression/) — inter-agent token budgets |
317
+ | `pyagent-providers` | [Multi-provider orchestration](https://pyagent.org/guides/providers/) — fallback chains and capability negotiation |
318
+ | `pyagent-context` | [Stateful agent memory](https://pyagent.org/guides/context/) — trust-aware, three-tier context ledger |
319
+ | `pyagent-trace` | [Multi-agent observability & tracing](https://pyagent.org/guides/tracing/) — pattern-aware OpenTelemetry spans |
320
+ | `pyagent-studio` | [Agent control plane dashboard](https://pyagent.org/guides/studio/) — live traces, cost, and governance |
321
+
322
+ **Learn the concepts:**
323
+ [The Orchestrator-Worker pattern](https://pyagent.org/patterns/orchestrator-worker/) ·
324
+ [Engineering a resilient multi-agent harness](https://pyagent.org/architecture/multi-agent-harness/) ·
325
+ [Agent Experience Optimization (AXO)](https://pyagent.org/concepts/agent-experience-optimization/)
326
+
327
+ <!-- pyagent-ecosystem-footer:end -->
@@ -4,13 +4,13 @@ build-backend = "hatchling.build"
4
4
 
5
5
  [project]
6
6
  name = "pyagent-studio"
7
- version = "0.2.3"
7
+ version = "0.2.4"
8
8
  description = "Kubernetes Dashboard for Agent Systems — CLI + web control plane for multi-agent LLM blueprints"
9
9
  readme = "README.md"
10
10
  requires-python = ">=3.11"
11
11
  license = {text = "MIT"}
12
12
  authors = [{name = "PyAgent Team", email = "team@pyagent.org"}]
13
- keywords = ["agents", "studio", "LLM", "workbench", "dashboard", "fastapi", "litellm"]
13
+ keywords = ["agents", "studio", "LLM", "workbench", "dashboard", "fastapi", "litellm", "multi-agent observability", "agent control plane", "agent harness"]
14
14
  classifiers = [
15
15
  "Development Status :: 3 - Alpha",
16
16
  "Intended Audience :: Developers",
@@ -31,12 +31,16 @@ dependencies = [
31
31
  "fastapi>=0.115",
32
32
  "uvicorn>=0.30",
33
33
  "jinja2>=3.1",
34
+ "python-multipart>=0.0.9",
34
35
  ]
35
36
 
36
37
  [project.urls]
37
38
  Homepage = "https://pyagent.org"
38
39
  Repository = "https://github.com/pyagent-core/pyagent"
39
40
  Documentation = "https://pyagent.org"
41
+ "Agent Orchestration Patterns" = "https://pyagent.org/patterns/orchestrator-worker/"
42
+ "Agent Harness Architecture" = "https://pyagent.org/architecture/multi-agent-harness/"
43
+ "Agent Experience Optimization" = "https://pyagent.org/concepts/agent-experience-optimization/"
40
44
 
41
45
  [project.optional-dependencies]
42
46
  dev = ["pytest>=8.0", "pytest-asyncio>=0.23", "httpx>=0.27"]
@@ -266,7 +266,21 @@ def describe(file: str) -> None:
266
266
  @main.command()
267
267
  @click.option("--port", default=8420, type=int, help="Web dashboard port.")
268
268
  @click.option("--host", default="127.0.0.1", help="Web dashboard host.")
269
- def dashboard(port: int, host: str) -> None:
269
+ @click.option(
270
+ "--trace",
271
+ "trace_path",
272
+ type=click.Path(exists=True),
273
+ default=None,
274
+ help="Path to a recorded trace JSONL file to load on the Overview dashboard.",
275
+ )
276
+ @click.option(
277
+ "--blueprint",
278
+ "blueprint_path",
279
+ type=click.Path(exists=True),
280
+ default=None,
281
+ help="Path to a blueprint YAML to load for the resource tabs (defaults to a bundled sample).",
282
+ )
283
+ def dashboard(port: int, host: str, trace_path: str | None, blueprint_path: str | None) -> None:
270
284
  """Launch the web dashboard."""
271
285
  try:
272
286
  import uvicorn
@@ -277,8 +291,15 @@ def dashboard(port: int, host: str) -> None:
277
291
  )
278
292
  sys.exit(1)
279
293
 
294
+ from pyagent_studio.web.app import create_app
295
+
280
296
  click.echo(f"Starting dashboard at http://{host}:{port}")
281
- uvicorn.run("pyagent_studio.web.app:create_app", host=host, port=port, factory=True)
297
+ if trace_path:
298
+ click.echo(f"Loading trace: {trace_path}")
299
+ if blueprint_path:
300
+ click.echo(f"Loading blueprint: {blueprint_path}")
301
+ app = create_app(trace_path=trace_path, blueprint_path=blueprint_path)
302
+ uvicorn.run(app, host=host, port=port)
282
303
 
283
304
 
284
305
  if __name__ == "__main__":
@@ -0,0 +1,73 @@
1
+ api_version: pyagent/v1
2
+ metadata:
3
+ name: customer-support
4
+ version: 1.2.0
5
+ description: Production customer-support routing with billing, classification, and policy checks
6
+ owner: platform-team
7
+ tags: [support, production]
8
+ providers:
9
+ primary:
10
+ provider: anthropic
11
+ model: claude-3-5-sonnet
12
+ classifier_provider:
13
+ provider: openai
14
+ model: gpt-4o-mini
15
+ fallback:
16
+ provider: openai
17
+ model: gpt-4o
18
+ agents:
19
+ classifier:
20
+ prompt: "Classify incoming requests into: billing, technical, or general."
21
+ provider: classifier_provider
22
+ description: Routes customer requests to the right specialist
23
+ guardrails: [pii_redact]
24
+ billing:
25
+ prompt: "Resolve billing inquiries, refunds, and invoice questions."
26
+ provider: primary
27
+ description: Billing specialist agent
28
+ tools: [lookup_invoice, issue_refund]
29
+ guardrails: [pii_redact, cost_cap]
30
+ technical:
31
+ prompt: "Handle technical support and troubleshooting."
32
+ provider: primary
33
+ description: Technical support agent
34
+ tools: [search_kb]
35
+ policy_checker:
36
+ prompt: "Verify that responses comply with company policy."
37
+ provider: classifier_provider
38
+ description: Policy and compliance gate
39
+ guardrails: [policy_enforce]
40
+ workflows:
41
+ customer-support:
42
+ pattern: supervisor
43
+ agents:
44
+ classifier: classifier
45
+ routes:
46
+ billing: billing
47
+ technical: technical
48
+ recovery:
49
+ max_retries: 2
50
+ timeout_seconds: 30
51
+ fallback_provider: fallback
52
+ refund-processor:
53
+ pattern: pipeline
54
+ agents:
55
+ stages:
56
+ billing: billing
57
+ policy_checker: policy_checker
58
+ contracts:
59
+ customer-support:
60
+ input:
61
+ type: string
62
+ max_tokens: 2000
63
+ output:
64
+ type: string
65
+ sla:
66
+ latency_p95_ms: 5000
67
+ cost_max_usd: 0.05
68
+ observability:
69
+ tracing:
70
+ enabled: true
71
+ cost_budget:
72
+ daily_usd: 100.0
73
+ alert_threshold: 0.8
@@ -2,12 +2,14 @@
2
2
 
3
3
  from pyagent_studio.services.blueprint_service import BlueprintService
4
4
  from pyagent_studio.services.governance_service import GovernanceService
5
+ from pyagent_studio.services.runs_service import RunsService
5
6
  from pyagent_studio.services.simulation_service import SimulationService
6
7
  from pyagent_studio.services.trace_service import TraceService
7
8
 
8
9
  __all__ = [
9
10
  "BlueprintService",
10
11
  "GovernanceService",
12
+ "RunsService",
11
13
  "SimulationService",
12
14
  "TraceService",
13
15
  ]