v0.4.0-alpha

KeygraphHQ/shannonv0.4.0-alphaJan 29, 2025by paulosalem

AI Summary

This alpha release introduces significant structural improvements to the simulation framework, including deeper persona specifications, JSON support for agent definitions, and the introduction of fragments for code reuse.

Key Highlights

  • Personas now have deeper specifications including personality traits, preferences, and beliefs.
  • TinyPersons can now be defined as JSON files and loaded via `TinyPerson.load_specification()`.
  • Introduction of *fragments* to allow the reuse of persona elements across different agents.
  • New `Intervention` system allows for specification of event-based modifications to the simulation.
  • Submodules now have their own folders to allow for better organization and growth.

Breaking Changes

  • Note: this will likely break some existing programs, as the API has changed in some places.

New Features

  • Deeper persona specifications (personality traits, preferences, beliefs).
  • JSON-based agent definition loading via `TinyPerson.load_specification()`.
  • Fragment system for reusing persona elements.
  • LLM-based logical `Proposition`s for monitoring agent behavior.
  • `Intervention` class for event-based simulation modifications.
  • Improved project organization with dedicated submodule folders.

Full Release Notes

## What's new
**[2025-01-29] Release 0.4.0 with various improvements. Some highlights:**
  - Personas have deeper specifications now, including  personality traits, preferences, beliefs, and more. It is likely we'll further expand this in the future. 
  - `TinyPerson`s can now be defined as JSON files as well, and loaded via the `TinyPerson.load_specification()`, for greater convenience. After loading the JSON file, you can still modify the agent programmatically. See the [examples/agents/](./examples/agents/) folder for examples.
  - Introduces the concept of *fragments* to allow the reuse of persona elements across different agents. See the [examples/fragments/](./examples/fragments/) folder for examples, and the notebook [Political Compass (customizing agents with fragments)](<./examples/Political Compass (customizing agents with fragments).ipynb>) for a demonstration.
  - Introduces LLM-based logical `Proposition`s, to facilitate the monitoring of agent behavior.
  - Introduces `Intervention`s, to allow the specification of event-based modifications to the simulation.
  - Submodules have their own folders now, to allow better organization and growth.
  
  **Note: this will likely break some existing programs, as the API has changed in some places.**

## PRs from the community and the core team
* allow configuration of Azure OpenAI embedding model by @ewheeler in https://github.com/microsoft/TinyTroupe/pull/59
* Fix spelling and grammatical errors by @terrchen in https://github.com/microsoft/TinyTroupe/pull/19
* Change to use de facto standard for dotenv sample by @webysther in https://github.com/microsoft/TinyTroupe/pull/22
* fix typo, call `semantic_memory` method of agent not self by @ewheeler in https://github.com/microsoft/TinyTroupe/pull/57
* docs: update README.md by @eltociear in https://github.com/microsoft/TinyTroupe/pull/24
* Add `matplotlib` to dependencies by @RektPunk in https://github.com/microsoft/TinyTroupe/pull/33
* variable typo #18 fixed by @rahimbaig28 in https://github.com/microsoft/TinyTroupe/pull/25
* also retry aux_act_once upon TypeError by @ewheeler in https://github.com/microsoft/TinyTroupe/pull/58
* Adds deeper persona structure, including fragments. by @paulosalem in https://github.com/microsoft/TinyTroupe/pull/86
* Merges latest development version into main. by @paulosalem in https://github.com/microsoft/TinyTroupe/pull/90

## New Contributors
* @ewheeler made their first contribution in https://github.com/microsoft/TinyTroupe/pull/59
* @terrchen made their first contribution in https://github.com/microsoft/TinyTroupe/pull/19
* @webysther made their first contribution in https://github.com/microsoft/TinyTroupe/pull/22
* @eltociear made their first contribution in https://github.com/microsoft/TinyTroupe/pull/24
* @RektPunk made their first contribution in https://github.com/microsoft/TinyTroupe/pull/33
* @rahimbaig28 made their first contribution in https://github.com/microsoft/TinyTroupe/pull/25

**Full Changelog**: https://github.com/microsoft/TinyTroupe/compare/v0.3.1-alpha...v0.4.0-alpha