Skip to content

Releases: google-deepmind/concordia

v1.8.7

06 Nov 17:29
Compare
Choose a tag to compare

[1.8.7] - 2024-11-5

Added

  • add parochial universalization agent to the main factories
  • add Jinja2 to the requirements to improve the prompting experience
  • Add get_raw_memories and get_raw_memories_as_text functions on the memory component.

v1.8.6

29 Oct 20:04
Compare
Choose a tag to compare

[1.8.6] - 2024-10-29

Added

  • Add ability to save and load rational and basic agents to/from json.
  • Add a version of agent development colab that uses GCP hosted model

v1.8.5

22 Oct 12:59
Compare
Choose a tag to compare

Fixed

  • Fix together.ai wrapper choice sampling procedure

v1.8.4: Increment version number to 1.8.4

19 Oct 21:44
Compare
Choose a tag to compare

[1.8.3] - 2024-10-19

Changed

  • Allow conversation game master to be configured with memory and additional components
  • Prevent daily_activities component from adding irrelevant info to memory and improve some of the time_and_place setting prompts.
  • Add deprecation warning to the Sequential component
  • together and mistral language model wrappers to no longer delete after last ".".
  • Improve together.ai language model wrapper.
  • disable pytype on a kwargs unpack
  • Forward device and api_key only when explicitly specified.

Added

  • Add support for custom cloud models (google cloud custom models)
  • added instructions in the comment for finding relevant endpoint info. Defaulting location to "us-central1".
  • Add agreement tracker contrib component.
  • Add state_formation environment
  • Add basic_agent_without_plan and use it in a scenario for state_formation.

Fixed

  • Fixes a bug in inventory and schelling payoffs components, which previously crashed if player_action_attempt had ': ' in its text.

v1.8.3

08 Oct 17:05
Compare
Choose a tag to compare

[1.8.3] - 2024-10-08

Changed

  • Jitter sleep times in together ai wrapper. This may improve speed.
  • Change AllSimilarMemories component so that it no longer weights retrieval by recency or importance. This will make it function more like its name suggests it should. Note that many agents use this component so their behavior may change as a result of this change.
  • make default observations summary time frame be 24h
  • Add seed parameter to all simulations, propagating it into sample_parameters

Fixed

  • Fix together AI api

v1.8.2

01 Oct 22:03
Compare
Choose a tag to compare

[1.8.2] - 2024-10-01

Changed

  • Improves logging of strings with newlines

Fixed

  • Insure concurrent execution of zero tasks returns immediately.
  • Multi-item haggling environment, where players pick not only the price, but also the item to trade.

v1.8.1: Increment version number to 1.8.1

20 Sep 19:41
Compare
Choose a tag to compare

[1.8.1] - 2024-09-20

Added

  • A wrapper that allows to limit the number of calls made by an LLM before it turns into a noop model

Fixed

  • Make Inventory component thread safe.

v1.8.0

17 Sep 15:09
Compare
Choose a tag to compare

[1.8.0] - 2024-09-17

Changed

  • Replace deprecated reference to langchain.llms with langchain_community.llms
  • Improve logging in game master trigger components.
  • Correct docstrings in base component type.
  • Improve info printed on error in the together_ai model wrapper.
  • Rename contrib agent components: contrib.components.agent.v2 -> contrib.components.agent.
  • deprecate older contrib agent components
  • Reformat reporting of subcomponents in all components derived from question of recent memory. We previously prefixed all subcomponents with "{name}'s\n" since typical names were things like "hunger" or "self identity". But it no longer makes sense given the way usage has evolved. Now we typically use subcomponents with keys like "Question: Is Bob hungry?\nAnswer: ". So the prefix should change.
  • Make it optional to include full episode summaries in HTML logs and turn it off for the contest environments. The default preserves the old behavior.
  • Improve Gemma2 wrapper: avoid lists, especially "\n\n" delimited lists.
  • Improve clarity of GameMaster and fix type annotations
  • Fix a few more issues in together.ai wrapper and improve filename handling in eval script.
  • remove unused concurrent_action functionality
  • Delete outdated base class and hide private methods
  • Improve error handling, mid-sentence cutoffs, and max_tokens limit in Gemma2 model wrapper.
  • Make formative memories warning less scary to participants.
  • Print less warnings from mistral wrapper when they do not indicate a real problem
  • add together_ai to utils
  • Use concurrency helpers and hide executor implementation
  • Add a maximum number of steps to the conversation scene. Default is 3
  • Improve reality_show action/reward observations, parameterize more of its settings, and add scenarios.
  • remove unused dependency
  • Print recoverable exceptions in mistral model wrapper.

Added

  • Bots now support more complex fixed rule policies.
  • Add an option to prevent the inventory component from ever increasing amounts of items in inventories (off by default, preserving the old behavior). This change also adds default context for the inventory reasoning chain of thought.
  • Add an agent with a very simple prompting strategy, just observe and recall relevant memories. Nothing else.
  • Add paranoid supporting agent and a substrate that uses it.
  • Add test for supporting agent factories and add paranoid agent to the main role factories test. Also give basic_puppet_agent a default fixed_response (no fixed responses) for testing with no parameters.
  • Add Together AI language model to Concordia. This can serve Gemma 2 9B
  • Add additional concurrency helpers run_tasks and run_tasks_in_background
  • allow colab users to pass an api key explicitly.

Fixed

  • Avoid pylint error by using direct import
  • Fix pytype error
  • Add lock to prevent duplicated _make_pre_act_value calls
  • Hold lock on memory read to prevent reading during a write.
  • Fix a bug which can arise when a model does not precisely follow the requested format in AccountForAgencyOfOthers.
  • Add locking and check phase transitions
  • The previous change didn't fully suppress harmless mistral exceptions, this one fixes it.
  • Ensure run_parallel uses >1 worker
  • Fix silent failures by checking futures after completion
  • Fix language model setup util

contest_v1.0.0: Move number of games and number of players in haggling into WorldConfig

17 Sep 16:05
Compare
Choose a tag to compare

This tag marks the initial release of the set of scenarios, environments, colabs, and launch scripts for the NeurIPS 2024 contest.

v1.7.0

03 Sep 19:27
Compare
Choose a tag to compare

[1.7.0] - 2024-09-3

Changed

  • rename the agent factories for clarity
  • rename old basic_agent into deprecated_agent, as we are moving towards only using the entity_agent
  • Moving supporting agents code to a more appropriate location
  • Make terminators configurable for question of recent memories and set different default terminators for AvailableOptionsPerception (only for this one). This is needed because it often returns a list.
  • Normalize rewards by the sum of positive relationships rather than number of players.
  • Move LLM selection function used in python launch scripts to a utils file.
  • Harmonize parameter name on ObservationSummary with other components.
  • Remove variable that is no longer used in all_similar_memories component
  • move agent components from component/agent/v2 folder to component/agent. Should also fix the problem introduced by moving old components to to_be_deprecated.
  • Moving old agent components into a to_be_deprecated folder. Next CL will move components/agents/v2 into components/agents
  • Update mistral wrapper to use latest version of mistral and fix langchain_ollama_model class name.
  • Generalise somatic state and identity into an abstracted QuestionByQuery component
  • Abstracting question based components into a parent class.
  • Port two more legacy reflection components to the v2 entity component system.
  • Port the legacy scheduled_hint component to the v2 entity component system
  • Parameterize open_question to allow the user to change the labels Question and Answer.
  • Improve mistral model wrapper with better error handling. Also added optional functionality to allow the use of different models for choice and text.
  • Observation summary component in agent factories now summarizes a time interval that includes the latest timestep.
  • adjust html making code to work best with new logging in agents
  • Improve importance model.
  • Prevent entity agents from continuing to talk beyond the end of a direct quote.
  • GM components now specify they work with either basic or entity agents.
  • Add check whether game master wants to terminate in the runner.
  • Rename typing.component_v2 to typing.entity_component.
  • Port basic_agent__supporting_role and somatic_state to use the entity system.
  • Improve prompt formatting in basic_entity_agent__main_role
  • Make it possible for game master to take a dictionary of action_spec, with a unique action_spec for each player.
  • Add default error logging to all measurement channels of component logging.
  • Rename temporary_entity_agent__main_role to basic_entity_agent__main_role since it is now feature complete. It is the entity version of basic_agent__main_role.
  • improve prompts and logs for the entity agent and its components.
  • Update options perception component to the entity component system.
  • Add ComponentName typing annotation, instead of str, and improve docsctrings.
  • update action spec, which now uses {name} instead of {agent_name}
  • Refactor logging out of components as an intermediate step to cleaning up get_last_log uses.
  • Rename get_pre_act_context to get_pre_act_value. The context is of the form 'f{label}: {value}'
  • Rename EntityComponent to ContextComponent.
  • Add missing @OVERRIDES and disable pytype error
  • Raise RuntimeError on incorrect get/set of entity
  • Use OutputType enum in ActionSpec
  • Protect access to the MemoryComponent methods to avoid misuse leading to inconsistent state.
  • Remove overrides requirement from memory lib.
  • Improve docstring and error checking of ActionSpecIgnored.
  • Remove set_pre_act_context from public API of action_spec_ignored component.
  • Use component_order in entity agent to order components in act context.
  • Implement get_last_log in EntityAgent.
  • Improve typing and return value of get_last_log in EntityComponent.
  • Improve API for components set_entity and get_entity so it returns a ComponentEntity that has get_phase and get_component.
  • update all similar memories component and add it to the temporary entity agent.
  • Remove Phase as parameter for context processor components. If the phase is needed, it can be accessed via its containing Entity.
  • Rename ComponentsContext to ComponentContextMapping.
  • Modernize game master concurrency error handling
  • Rename tests dir to testing and move integration test to root.
  • Move all contrib code to /contrib folder
  • Remove wrong parameter max_characters in call to sample_text in scene_generator.
  • Make the secondary game masters be optional when using the run_simulation utility.
  • Fix environment configs to fit new entity concept and add factories test.
  • Move parts of GenerativeAgent into a new GameObject API.
  • Improve GM prompt to reduce frequency of GM equivocation

Added

  • Add concept of substrate and scenario, how to configure them, and scripts to evaluate agents submitted for the contest and calculate their Elo ratings.
  • Add person_representation component and paranoid agent which uses it.
  • Adding supporting players to pub_coordination and puppet agents.
  • Add support for relational matrices in CoordinationPayoffs. This allows us to model relationships between players, such as friendship or rivalry.
  • Adding the ability to save to memory the output of query component, same as question of recent memories component.
  • Create v2 metrics and update the riverbend_elections colab example to use entity_agents and v2 components, including the newly updated metric components.
  • Add ollama to requirements
  • Add support for more language models.
  • v2 version of relationships component
  • A new method to the InteractiveDocument class open_question_diversified, which takes a question as input and returns a random answer from a set of 10 possible answers. This method can be used to increase the diversity of the answers that the agent provides.
  • Add validation method to ActionSpec
  • Add ActionSpec argument validation and convenience functions.
  • Add factory for a rational supporting character.
  • Add two useful game master components for creating custom environments.
  • Remove old style agent factories.
  • Adding haggling environment, where agent bargain for fruit.
  • Add a log that combines the main GM log and all the scene logs into one, sorted by date.
  • add a synthetic user factory
  • add rational entity agent main role
  • add a pub coordination simulation - add ability to pass thought chains and maximum conversation length to game master factory
  • add a class for computing and delivering payoffs in a coordination game.
  • Added Amazon Bedrock language model support
  • Add a MemoryResult dataclass to represent the result of a memory bank retrieval.
  • Add a memory component that is safe and consistent to use outside of the UPDATE phase.
  • Adapt more legacy functionality to the new entity agent factory
  • Add report_function component, remove clock from all_similar_memories (v2), also add the temporary_entity_agent factory to the factories test, and remove all references to the overrides library.
  • Add missing superclass overrides.EnforceOverrides
  • Add overrides library to setup.py
  • Add a wrapper for AssociativeMemory for compatibility with the new memory banks.
  • Add a new typing for memory banks.
  • Add a component class that allows access to its pre_act context during the PRE_ACT phase.
  • Create a working agent factory using the new entity agent.
  • Add a new type of agent using the new component types.
  • Add ContextProcessorComponent, a privileged component that processes context from regular components for any of its phases.
  • Add a simple act component that behaves like the legacy basic_agent does (concatenating context from components).
  • Create a new style of components to be used with a new type of agent.
  • Add a simple agent that is backed by an LLM in a shallow way.
  • Add restricted inventory contrib component, use it in london esoteric market

Fixed

  • Change map_parallel to return a Sequence instead of an Iterator
  • Fixing a bug - add person_representation to init.py
  • Improve error handling in the mistral model wrapper.
  • Fix conversations.
  • Fix pytype error and use default rng when seed is None.
  • fix typing in game_master factory run_simulation.
  • Fix bug in game master factory that was causing it to rebuild the memory on every call to build_game_master, ignoring the optionally provided memory.
  • Fix logging of plan and person by situation components.
  • Fix typing error and improve docstrings of components that use other components.
  • Fix typo in DEFAULT_CALL_TO_SPEECH, this was breaking the conversation component
  • Fix a bug in the entity agent where the action_spec was being passed to the post-act function instead of the action attempt.
  • fix wrong use of @overrides.overrides to @overrides.override.
  • Fix typing.entity.OutputType to be an Enum instead of a StrEnum.