Skip to main content
Choose the migration that matches your project:

Bring an existing agent into Harnest

Choose the mode that preserves the agent’s current behavior:
1

Create a Harnest project beside the existing agent

Use --framework langgraph for an existing LangGraph agent.
2

Move the agent and its dependencies

Move the source into migrated-agent, then export a managed Agent or Graph, or wrap the existing native target with Agent.advanced(...). Add only agent-owned packages to pyproject.toml.
3

Test through the harness

Advanced mode is not a dead end. Move tools, skills, MCP connections, lifecycle hooks, and other compatible pieces into managed folders when useful.

Upgrade an older Harnest project

1

Preview the migration

This command is read-only. Review its plan before continuing.
2

Apply the reviewed migration

This splits old package-root imports into their owning feature modules, rewrites lifecycle and context decorators to their first-class namespaces, and updates released OutputPolicy forms. It also migrates retired same-process Runtime Plugin packages to Harnest Extensions:The upgrade declares each existing Runtime Plugin tools/, mcp/, skills/, and subagents/ directory under the matching contributes key. It moves the old package extensions/ hook directory to lifecycle/ and declares that path under contributes.lifecycle. New Harnest Extensions do not infer content from directory names.Agent Plugin folders containing plugin.json stay under plugins/; they are declarative packages and are not part of this executable-code migration. Harnest no longer infers manifestless plugins/<name>/{mcp,skills} packages; install or rebuild those packages against the Agent Plugins standard before compiling the upgraded project.
3

Test the upgraded project

Harnest checks that reviewed files have not changed and creates backups under .harnest/upgrade-backups/. It stops when a change needs your judgment.

Switch between ADK and LangGraph

For a managed agent, change spec.framework.name in config.yaml:
Then validate the target framework:
Review native extensions, evals, sandboxes, custom nodes, and active checkpoints first. Advanced projects need a manual migration.
Follow the framework migration checklist.