[0.8.0] — 2026-06-08
agentlift import — read a live agent back into the folder (the inverse of deploy).
A new reverse pipeline reconstructs a neutral .managed-agents/ folder from a live managed
runtime, so a runtime now round-trips both ways — and migration between runtimes falls out
for free. Anthropic import is full; AWS Bedrock import covers the config-only Harness.
Migrate by pairing import with deploy — the folder is the neutral pivot:
# Anthropic → AWS Bedrock
agentlift import anthropic ./agent
agentlift deploy ./agent --target bedrock --mode harness
# …and back
agentlift import bedrock ./agent --harness-name my-agent --bedrock-region us-west-2
agentlift deploy ./agentAdded
agentlift import <anthropic|bedrock> <out> [--agent N …] [--mode harness] [--harness-id|--harness-name] [--bedrock-region R] [--dry-run]—
a read-only command (never creates/updates/archives). It fetches the live agent, maps it to
a neutral project, writes the folder, and self-verifies by re-running the real parse + plan
(printsRound-trip OKonly if the result is deployable again).--dry-runis the import
analogue ofplan(prints the mapping + diagnostics, writes nothing).- Anthropic import (full).
agents.list/agents.retrieve+skills.versions.download
recover system/description/model, built-in tools with:ask/:allowpermission policies,
URL MCP servers + per-server tool filters, custom skill content, and a coordinator's
subagents(roster ids resolved to names; selecting a coordinator pulls its subagents into
the closure automatically). Skills/MCP used identically by >1 agent are hoisted toshared/
(skills keyed by content hash, MCP by full identity) — the inverse of the planner's dedup. - Bedrock Harness import (
import bedrock --mode harness).get_harness+ S3 skill bundles,
with a reverse model-map (regional inference profile → folder Claude id, e.g.
eu.anthropic.claude-haiku-4-5-20251001-v1:0→claude-haiku-4-5),agentCoreBrowser→ web
tools,agentCoreCodeInterpreter→ sandbox builtins, andremote_mcp→ URL MCP. Single-agent
by nature, so an import never produces subagents. - New modules, mirroring the deploy pipeline in reverse (pure core + thin network edge):
import_model.py,importer.py(inverse ofplanner.py),folder_writer.py(inverse of
parser.py) — all pure and offline-tested — plus the network edgesanthropic_source.pyand
harness_source.py. - End-to-end tests.
tests/test_importer.py(the mapping contract),tests/test_import_roundtrip.py
(provider responses → folder → real parser → real planner, including subagent delegation with
shared and custom skills and MCP servers),tests/test_import_source.py(fetch wiring via
fake clients, no network),tests/test_cli_import.py, and a gated read-only live test
tests/live/test_import_anthropic.py(AGENTLIFT_LIVE_IMPORT=1). - Docs. New docs/import.md; import notes added across the convention,
how-it-works, provider-matrix, anthropic-mapping, deploy-bedrock, deploying, and limitations docs.
Notes / honest boundaries
- The Bedrock Runtime is not importable. A Runtime bakes its agent definition into an opaque
ARM64 container image (GetAgentRuntimereturns only acontainerUri), so it can't be read
back;import bedrock --mode runtimerefuses with that reason. This is the import analogue of
the deploy-time/invocationstrace boundary. Google/OpenAI import is not implemented yet. - Four one-way losses, each surfaced as a Diagnostic (never silent): knowledge inlining is
one-way (it stays in the prompt body on import); custom tools / harness inline functions are
dropped; MCP auth values are provider-side, so only the header/env-var name is recovered;
Anthropic first-party (type: anthropic) skills are referenced by id with no downloadable content. - One wire-format item pending a live download: the Anthropic skill-bundle archive layout (a
zip whose members carry the<name>/…prefix) is the documented shape but is not yet confirmed
against a live download — the unpack is defensive and emitsimport.skill_archive_shapeif the
payload is anything else (the repo's confirm-live-before-trusting rule).