Subchapter 23.15
references/bedrock-agents-to-agentcore-harness/eligibility.mdMarkdown3 KBView on GitHub
Check each condition against the discovery manifest. A hard-stop means the agent has a feature with no validated AgentCore Harness path — stop the migration, name the failing condition, and suggest the manual alternative. Do not migrate the eligible parts of an ineligible agent: a half-migrated agent is worse than a clear “not yet.”
State the result of every condition to the user, not just the first failure — they need the full picture to decide what to fix.
For an inline agent, evaluate these same conditions against the fields of the InvokeInlineAgent payload (the manifest built from it) rather than a stored agent — e.g. multimodal input from the payload’s model/inputs, collaboration/orchestration from its config. The rubric is identical; only the source of the fields differs.
Signal: the agent processes images or audio (vision model for image input, or documented image/audio handling). The validated harness path is text-only. Alternative: keep on Bedrock until a multimodal path is validated. (This is a true hard-stop — don’t offer a degraded “migrate anyway with image/audio dropped” path, which would contradict the hard-stop rule above.)
Signal: agentCollaborationMode is SUPERVISOR or SUPERVISOR_ROUTER. The supervisor is out of scope — do not flatten collaborators into its prompt, wire them as sub-agents, or migrate it alone (dangling references).
Alternative: each collaborator is an ordinary Bedrock agent; any that doesn’t itself collaborate can be migrated on its own (run this skill once per collaborator). Only the supervisor layer is excluded.
Signal: an associated KB is in an account/region the credentials cannot reach — so bedrock-agent-runtime:Retrieve can’t reproduce its retrieval.
Alternative: grant cross-account/region access, then re-run.
Not the KB type: every type (VECTOR/MANAGED/KENDRA/SQL) is reachable via Retrieve and eligible; type only picks the wiring (see mapping.md (opens in a new tab)).
Signal: orchestrationType is CUSTOM_ORCHESTRATION (custom orchestration Lambda). The harness runs its own loop; that control flow has no equivalent and would be silently dropped.
Alternative: re-express the logic as harness tools/prompt as a fresh design, or keep on Bedrock.
functionSchema and OpenAPI in one agent).(Eligible to migrate, but whose capability the harness can’t reproduce — classify cannot and surface to the user: Return-of-Control action groups and the guardrail. See mapping.md (opens in a new tab).)