relai 0.3.4__tar.gz → 0.3.5__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.

Potentially problematic release.


This version of relai might be problematic. Click here for more details.

Files changed (33) hide show
  1. {relai-0.3.4/relai.egg-info → relai-0.3.5}/PKG-INFO +4 -4
  2. {relai-0.3.4 → relai-0.3.5}/README.md +3 -3
  3. {relai-0.3.4 → relai-0.3.5}/pyproject.toml +1 -1
  4. {relai-0.3.4 → relai-0.3.5}/relai/maestro/optimizer.py +15 -12
  5. {relai-0.3.4 → relai-0.3.5/relai.egg-info}/PKG-INFO +4 -4
  6. {relai-0.3.4 → relai-0.3.5}/LICENSE.md +0 -0
  7. {relai-0.3.4 → relai-0.3.5}/relai/__init__.py +0 -0
  8. {relai-0.3.4 → relai-0.3.5}/relai/_client.py +0 -0
  9. {relai-0.3.4 → relai-0.3.5}/relai/_exceptions.py +0 -0
  10. {relai-0.3.4 → relai-0.3.5}/relai/benchmark.py +0 -0
  11. {relai-0.3.4 → relai-0.3.5}/relai/critico/__init__.py +0 -0
  12. {relai-0.3.4 → relai-0.3.5}/relai/critico/critico.py +0 -0
  13. {relai-0.3.4 → relai-0.3.5}/relai/critico/evaluate.py +0 -0
  14. {relai-0.3.4 → relai-0.3.5}/relai/data.py +0 -0
  15. {relai-0.3.4 → relai-0.3.5}/relai/exporter.py +0 -0
  16. {relai-0.3.4 → relai-0.3.5}/relai/flags.py +0 -0
  17. {relai-0.3.4 → relai-0.3.5}/relai/logger.py +0 -0
  18. {relai-0.3.4 → relai-0.3.5}/relai/maestro/__init__.py +0 -0
  19. {relai-0.3.4 → relai-0.3.5}/relai/maestro/graph.py +0 -0
  20. {relai-0.3.4 → relai-0.3.5}/relai/maestro/params.py +0 -0
  21. {relai-0.3.4 → relai-0.3.5}/relai/maestro/utils.py +0 -0
  22. {relai-0.3.4 → relai-0.3.5}/relai/mocker/__init__.py +0 -0
  23. {relai-0.3.4 → relai-0.3.5}/relai/mocker/base_mocker.py +0 -0
  24. {relai-0.3.4 → relai-0.3.5}/relai/mocker/persona.py +0 -0
  25. {relai-0.3.4 → relai-0.3.5}/relai/mocker/tool.py +0 -0
  26. {relai-0.3.4 → relai-0.3.5}/relai/schema/visual.py +0 -0
  27. {relai-0.3.4 → relai-0.3.5}/relai/simulator.py +0 -0
  28. {relai-0.3.4 → relai-0.3.5}/relai/utils.py +0 -0
  29. {relai-0.3.4 → relai-0.3.5}/relai.egg-info/SOURCES.txt +0 -0
  30. {relai-0.3.4 → relai-0.3.5}/relai.egg-info/dependency_links.txt +0 -0
  31. {relai-0.3.4 → relai-0.3.5}/relai.egg-info/requires.txt +0 -0
  32. {relai-0.3.4 → relai-0.3.5}/relai.egg-info/top_level.txt +0 -0
  33. {relai-0.3.4 → relai-0.3.5}/setup.cfg +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: relai
3
- Version: 0.3.4
3
+ Version: 0.3.5
4
4
  Summary: An SDK for building reliable AI agents
5
5
  Author-email: RELAI <priyatham@relai.ai>, RELAI <wwx@relai.ai>
6
6
  License: Apache License
@@ -236,7 +236,7 @@ Dynamic: license-file
236
236
  </p>
237
237
 
238
238
 
239
- **RELAI** is an SDK for building **reliable AI agents**. It streamlines the hardest parts of agent development—**simulation**, **evaluation**, and **optimization**—so you can iterate quickly with confidence.
239
+ **RELAI** is a platform for building **reliable AI agents**. It streamlines the hardest parts of agent development—**simulation**, **evaluation**, and **optimization**—so you can iterate quickly with confidence.
240
240
 
241
241
  **What you get**
242
242
  - **Agent Simulation** — Create full/partial environments, define LLM personas, mock MCP servers & tools, and generate synthetic data. Optionally condition simulation on real samples to better match production.
@@ -373,7 +373,7 @@ async def main() -> None:
373
373
  batch_size=2, # Base batch size to use for individual optimization steps. Defaults to 4.
374
374
  explore_radius=1, # A positive integer controlling the aggressiveness of exploration during optimization.
375
375
  explore_factor=0.5, # A float between 0 to 1 controlling the exploration-exploitation trade-off.
376
- verbose=False, # If True, additional information will be printed during the optimization step.
376
+ verbose=True, # If True, additional information will be printed during the optimization step.
377
377
  )
378
378
  params.save("saved_config.json") # save optimized params for future usage
379
379
 
@@ -384,7 +384,7 @@ async def main() -> None:
384
384
  await maestro.optimize_structure(
385
385
  total_rollouts=10, # Total number of rollouts to use for optimization.
386
386
  code_paths=["stock-assistant.py"], # A list of paths corresponding to code implementations of the agent.
387
- verbose=False, # If True, additional information will be printed during the optimization step.
387
+ verbose=True, # If True, additional information will be printed during the optimization step.
388
388
  )
389
389
 
390
390
 
@@ -12,7 +12,7 @@
12
12
  </p>
13
13
 
14
14
 
15
- **RELAI** is an SDK for building **reliable AI agents**. It streamlines the hardest parts of agent development—**simulation**, **evaluation**, and **optimization**—so you can iterate quickly with confidence.
15
+ **RELAI** is a platform for building **reliable AI agents**. It streamlines the hardest parts of agent development—**simulation**, **evaluation**, and **optimization**—so you can iterate quickly with confidence.
16
16
 
17
17
  **What you get**
18
18
  - **Agent Simulation** — Create full/partial environments, define LLM personas, mock MCP servers & tools, and generate synthetic data. Optionally condition simulation on real samples to better match production.
@@ -149,7 +149,7 @@ async def main() -> None:
149
149
  batch_size=2, # Base batch size to use for individual optimization steps. Defaults to 4.
150
150
  explore_radius=1, # A positive integer controlling the aggressiveness of exploration during optimization.
151
151
  explore_factor=0.5, # A float between 0 to 1 controlling the exploration-exploitation trade-off.
152
- verbose=False, # If True, additional information will be printed during the optimization step.
152
+ verbose=True, # If True, additional information will be printed during the optimization step.
153
153
  )
154
154
  params.save("saved_config.json") # save optimized params for future usage
155
155
 
@@ -160,7 +160,7 @@ async def main() -> None:
160
160
  await maestro.optimize_structure(
161
161
  total_rollouts=10, # Total number of rollouts to use for optimization.
162
162
  code_paths=["stock-assistant.py"], # A list of paths corresponding to code implementations of the agent.
163
- verbose=False, # If True, additional information will be printed during the optimization step.
163
+ verbose=True, # If True, additional information will be printed during the optimization step.
164
164
  )
165
165
 
166
166
 
@@ -30,7 +30,7 @@ dependencies = [
30
30
  "opentelemetry-instrumentation>=0.58b0",
31
31
  "openinference-instrumentation>=0.1.38",
32
32
  ]
33
- version = "0.3.4"
33
+ version = "0.3.5"
34
34
 
35
35
  [tool.setuptools.packages.find]
36
36
  where = ["."]
@@ -160,7 +160,7 @@ class Maestro:
160
160
  return str(agent_outputs)
161
161
 
162
162
  async def _evaluate(
163
- self, awaitables: list[Awaitable], criticos: list[Critico], verbose: bool = False, print_flag: str = ""
163
+ self, awaitables: list[Awaitable], criticos: list[Critico], verbose: bool = True, print_flag: str = ""
164
164
  ) -> tuple[list[dict[str, Any]], list[AgentLog]]:
165
165
  """
166
166
  Run and evaluate the current version of the agent through a set of awaitables.
@@ -169,7 +169,7 @@ class Maestro:
169
169
  awaitables (list[Awaitable]): A list of awaitables, each representing a run of the agent
170
170
  criticos (list[Critico]): A list of Critico objects, each corresponding to an awaitable
171
171
  verbose (bool): If True, additional information will be printed during evaluation.
172
- Defaults to False.
172
+ Defaults to True.
173
173
  print_flag (str): A string to be put next to the printed info when `verbose` is True.
174
174
  Used to distinguish printed info from different types of evaluations.
175
175
 
@@ -227,7 +227,7 @@ class Maestro:
227
227
  self,
228
228
  batch_size: int,
229
229
  sampler: ProportionalSampler,
230
- verbose: bool = False,
230
+ verbose: bool = True,
231
231
  group_id: str | None = None,
232
232
  pbar: tqdm | None = None,
233
233
  ) -> bool:
@@ -244,7 +244,7 @@ class Maestro:
244
244
  `batch_size` of them will be used for preliminary examinations.
245
245
  sampler (ProportionalSampler): Sampler to use for selecting setups.
246
246
  verbose (bool): If True, additional information will be printed during the iterate step.
247
- Defaults to False.
247
+ Defaults to True.
248
248
  group_id (str, optional): An optional group ID to associate all runs together. If not provided,
249
249
  a new UUID will be generated.
250
250
  pbar (tqdm, optional): A progress bar to display the progress of the iteration. Defaults to None.
@@ -376,7 +376,7 @@ class Maestro:
376
376
  batch_size: int = 8,
377
377
  explore_radius: int = 5,
378
378
  explore_factor: float = 0.5,
379
- verbose: bool = False,
379
+ verbose: bool = True,
380
380
  ):
381
381
  """
382
382
  Optimize the configs (parameters) of the agent.
@@ -392,7 +392,7 @@ class Maestro:
392
392
  while a lower value allocates more rollouts to ensure the discovered configs are thoroughly evaluated.
393
393
  Defaults to 0.5.
394
394
  verbose (bool): If True, related information will be printed during the optimization step.
395
- Defaults to False.
395
+ Defaults to True.
396
396
 
397
397
  Raises:
398
398
  ValueError: If the input parameters are not valid.
@@ -414,7 +414,7 @@ class Maestro:
414
414
  num_rounds: int = int(total_rollouts / (iterate_steps * group_size * 4 + select_steps * group_size))
415
415
  total_rollouts = num_rounds * (iterate_steps * group_size * 4 + select_steps * group_size)
416
416
 
417
- print("optimize_config settings:")
417
+ print("\n" + "=" * 30 + "optimize_config settings" + "=" * 30)
418
418
  print(" total_rollouts: ", total_rollouts)
419
419
  print(" (adjusted) batch_size: ", group_size * 2)
420
420
  print(" explore_radius: ", explore_radius)
@@ -577,7 +577,10 @@ class Maestro:
577
577
  if self.log_to_platform:
578
578
  await sync_to_platform()
579
579
  print(
580
- f"Results of round {round + 1}/{num_rounds} uploaded to RELAI platform, visualization id: {self.config_opt_viz_id}"
580
+ (
581
+ f"Results of round {round + 1}/{num_rounds} uploaded to RELAI platform, "
582
+ f"visualization id: {self.config_opt_viz_id}\n\n\n"
583
+ )
581
584
  )
582
585
 
583
586
  async def optimize_structure(
@@ -585,7 +588,7 @@ class Maestro:
585
588
  total_rollouts: int,
586
589
  description: Optional[str] = None,
587
590
  code_paths: Optional[list[str]] = None,
588
- verbose: bool = False,
591
+ verbose: bool = True,
589
592
  ) -> str:
590
593
  """
591
594
  Propose structural changes (i.e. changes that cannot be achieved by setting parameters alone) to
@@ -599,13 +602,13 @@ class Maestro:
599
602
  code_paths (list[str], optional): A list of paths corresponding to code files containing
600
603
  the implementation of the agent.
601
604
  verbose (bool): If True, additional information will be printed during the optimization.
602
- Defaults to False.
605
+ Defaults to True.
603
606
 
604
607
  Returns:
605
608
  str: Suggestion for structural changes to the agent.
606
609
  """
607
610
 
608
- print("optimize_structure settings:")
611
+ print("\n" + "=" * 30 + "optimize_structure settings" + "=" * 30)
609
612
  print(" total_rollouts: ", total_rollouts)
610
613
  print("=" * 80 + "\n\n")
611
614
 
@@ -674,6 +677,6 @@ class Maestro:
674
677
 
675
678
  if self.log_to_platform:
676
679
  uid = await sync_to_platform()
677
- print(f"Results uploaded to RELAI platform, visualization id: {uid}")
680
+ print(f"Results uploaded to RELAI platform, visualization id: {uid}\n\n\n")
678
681
 
679
682
  return suggestion
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: relai
3
- Version: 0.3.4
3
+ Version: 0.3.5
4
4
  Summary: An SDK for building reliable AI agents
5
5
  Author-email: RELAI <priyatham@relai.ai>, RELAI <wwx@relai.ai>
6
6
  License: Apache License
@@ -236,7 +236,7 @@ Dynamic: license-file
236
236
  </p>
237
237
 
238
238
 
239
- **RELAI** is an SDK for building **reliable AI agents**. It streamlines the hardest parts of agent development—**simulation**, **evaluation**, and **optimization**—so you can iterate quickly with confidence.
239
+ **RELAI** is a platform for building **reliable AI agents**. It streamlines the hardest parts of agent development—**simulation**, **evaluation**, and **optimization**—so you can iterate quickly with confidence.
240
240
 
241
241
  **What you get**
242
242
  - **Agent Simulation** — Create full/partial environments, define LLM personas, mock MCP servers & tools, and generate synthetic data. Optionally condition simulation on real samples to better match production.
@@ -373,7 +373,7 @@ async def main() -> None:
373
373
  batch_size=2, # Base batch size to use for individual optimization steps. Defaults to 4.
374
374
  explore_radius=1, # A positive integer controlling the aggressiveness of exploration during optimization.
375
375
  explore_factor=0.5, # A float between 0 to 1 controlling the exploration-exploitation trade-off.
376
- verbose=False, # If True, additional information will be printed during the optimization step.
376
+ verbose=True, # If True, additional information will be printed during the optimization step.
377
377
  )
378
378
  params.save("saved_config.json") # save optimized params for future usage
379
379
 
@@ -384,7 +384,7 @@ async def main() -> None:
384
384
  await maestro.optimize_structure(
385
385
  total_rollouts=10, # Total number of rollouts to use for optimization.
386
386
  code_paths=["stock-assistant.py"], # A list of paths corresponding to code implementations of the agent.
387
- verbose=False, # If True, additional information will be printed during the optimization step.
387
+ verbose=True, # If True, additional information will be printed during the optimization step.
388
388
  )
389
389
 
390
390
 
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes