Concordia Bridge¶
Silisocs runs on native runtime contracts by default. Concordia is no longer a required dependency for installing, importing, or running the standard runtime. The bridge exists only to help teams port older Concordia-designed agents, prefabs, or context components into Silisocs incrementally.
Install the bridge extra only when you need legacy interoperability:
Native First¶
The native runtime contracts are:
| Native concept | Primary API |
|---|---|
| Agent | silisocs.agents.base_agent.Agent |
| Action spec | silisocs.runtime.types.ActionSpec |
| Output type | silisocs.runtime.types.OutputType |
| Runtime config records | direct class_path + params specs |
| Default agent | silisocs.agents.native.NativeAgent |
| Native GM helpers | silisocs.environments.gm.components |
| Runtime engine | silisocs.simulation_engines |
Every runtime agent must implement:
class Agent:
@property
def name(self) -> str: ...
def observe(self, observation: str) -> None: ...
def act(self, action_spec) -> ActionOutput: ...
Stateful custom agents should also implement get_state() and
set_state(state) for checkpoint resume.
Bridge Boundary¶
All Concordia-shaped compatibility code lives under
silisocs.adapters.concordia. Runtime code and native extensions should not
import concordia.* directly. The adapter imports the real optional
gdm-concordia package and exposes the limited legacy surface needed by older
agents and game masters.
Legacy configs must opt in explicitly:
Use the bridge only for legacy modules that are expensive to rewrite immediately. New extensions should target native Silisocs contracts.
Porting Guidance¶
- Replace direct
concordia.*imports with native Silisocs contracts where practical. - If a legacy component expects Concordia-shaped classes, import them from
silisocs.adapters.concordiaas a temporary compatibility step. - Keep legacy world YAML stable except for the explicit
compat: concordiamarker. - Prefer native agents that build context in
act()and callself._call_model(context, action_spec).
The long-term target is simple: user-authored extensions should not need to know Concordia unless they are deliberately porting old Concordia code.
Licensing¶
The bridge extra depends on gdm-concordia, which is licensed under Apache
License 2.0. Silisocs does not vendor Concordia; keep upstream notices intact
when distributing environments that install the optional bridge extra.