Skip to main content
Every project selects a framework and authoring mode in config.yaml:

Managed mode

Managed mode is the portable default. Harnest discovers your resources and builds the selected framework target.
A nested LangGraph Agent cannot consume a discovered child subagents/ folder. Express that topology in the portable root graph.

Advanced mode

In advanced mode, you construct a native target and export it through Agent.advanced(...). Before moving a project from managed to advanced mode, run the read-only audit:
Preserve agent.py; do not run init over the project.

Switch frameworks

Changing spec.framework.name is simple. Validating the behavior is the migration.
1

Establish the current baseline

Preserve the source and run the existing unit tests.
2

Find native dependencies

Inspect agent.py, native extensions, custom graph nodes, nested SubAgents, sandboxes, eval assets, and active checkpoints.
3

Change the framework

Update only spec.framework.name. Do not add Harnest-owned framework packages to pyproject.toml.
4

Test the target

Run harnest test AGENT_DIR, any authorized smoke tests, and harnest serve AGENT_DIR.
Committed session state can survive a switch. Active framework checkpoints cannot be translated. Finish or deliberately abandon in-progress runs first.

Choose a framework

All choices use the same Harnest agent card, sessions, API, events, WebSocket protocol, and playground.

Version compatibility

Harnest installs a tested framework version and records it in the manifest. Upgrade Harnest to adopt a newer version; do not override it in pyproject.toml.