google-deepmind / google-deepmind/concordia
Allow basic and minimal prefabs to accept runtime acting policies
- Dominant language
- Python
- Stars
- 1.7k
- Forks
- 370
- PR merge metrics
- No merged PRs in 30d
Description
## Need
Applications should be able to use the library's basic or minimal entity configuration with a different final acting policy, including a human controller, without copying the prefab build implementation. The basic prefab's three perceptions, observations, memory, goal, component configuration and logging must remain intact.
## Proposed contribution
- Optional keyword-only `act_component` injection in `basic.Entity.build` and `minimal.Entity.build`.
- An alternative `act_component_factory` receives the exact order computed by the prefab, so order-aware policies do not duplicate component ordering lists.
- Reject using both injection forms together. Keep the normal ConcatAct construction and behavior unchanged when neither is supplied.
## Acceptance checks
Compare injected and ordinary entities across two turns: context types/state, model-based perception calls, observation/memory updates and logging. Verify the factory receives the normal prefab order and that direct policy injection preserves identity.
The API is policy-agnostic and can be reviewed independently of a human acting component. Tests should use existing standard acting components.
Contributor guide
Research direction
Start at basic.Entity.build and minimal.Entity.build, then inspect the existing standard acting components and prefab construction order. Add the two optional keyword-only policy forms with mutual exclusion while preserving the default path; done means injected and ordinary entities match across two turns and the factory receives the normal order.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- python
- Domain
- backend-api-design
- Issue type
- Feature
- Difficulty
- 3/5
- Estimated time
- 1-2 days
- Activity status
- Active
- Clarity
- Mostly clear
- Newbie friendliness
- 72/100