Contributing

Thanks for taking the time to contribute — we appreciate it very much!

We welcome contributions to both the core interface of AlgebraicAgents.jl, refining and extending it for improved user experience and modeling expressivity, and integrations with third-party Julia packages, extending the set of formalisms that can be accommodated within the framework and composed with each other.

Please see the online documentation for core design principles and internal details. For integrating third-party packages, consult the documentation on required and optional interface methods for custom agent types, and review the existing integration source code for examples of how to write wrappers for third-party simulation objects, including model stepping, state accessors, or plotting functions.

Contributions to AlgebraicAgents.jl are welcome in the following forms:

  • Modifying the code or documentation via a pull request.
  • Reporting bugs or suggesting enhancements in the project's GitHub Issues. If you propose a feature for future development, we are happy to discuss and take on the implementation.