Agentic Workflows

Fabric agent definitions are YAML-first and runtime-neutral unless placed in a framework-specific directory.

name: example
fabric_agents:
  reviewer:
    description: Review implementation quality
    agents: config/agents.yaml
    tasks: config/tasks.yaml

agentic-fabric resolves the fabric agent, selects a runner, and delegates execution to the installed framework. The public API is intentionally small:

from agentic_fabric import discover_packages, get_fabric_agent_config, run_fabric_agent_auto

packages = discover_packages()
config = get_fabric_agent_config(packages["example"], "reviewer")
result = run_fabric_agent_auto(config, inputs={"topic": "release readiness"})

For stateful orchestration, register the same config with AgenticData:

from agentic_fabric import AgenticData

session = AgenticData(fabric_agents={"reviewer": config})
session.use_runtime("langgraph", strict=False)
result = session.run_reviewer({"topic": "release readiness"})

When no framework is installed, discovery and metadata inspection still work. Execution reports the unavailable runtime instead of failing during import.

Runtime Extras

The public runtime registry exposes install guidance for each optional framework:

from agentic_fabric import get_framework_info

for runtime in get_framework_info():
    print(runtime["name"], runtime["available"], runtime["install"])

Supported runtime extras are langgraph and strands. The CrewAI adapter is lazy and can use an externally installed CrewAI runtime, but agentic-fabric does not publish a CrewAI extra while CrewAI’s ChromaDB dependency path has an upstream critical advisory with no patched version. Install the runtime you actually execute; the package does not publish an aggregate AI or all-frameworks extra. mcp and scraping remain focused optional tool surfaces. Local CLI runners are configured profiles over external executables and do not require a Python extra:

agentic-fabric list-runners
agentic-fabric run --runner claude-code --input "Review this package"

Tool Resolution

Fabric agent tool entries are resolved lazily. Built-in filesystem tool aliases, mcp://filesystem/... aliases, and vendor://provider/operation references do not import optional framework or vendor packages until the tool is used.

For Python tools, prefer registering a factory in application startup:

from agentic_fabric.tools.registry import register_tool_factory

register_tool_factory("MyTool", lambda: MyTool(), aliases=("my-tool",))

Fully qualified module:attribute and package.module.ClassName references are allowed for agentic_fabric modules by default. External module imports must be explicitly allowlisted:

export AGENTIC_FABRIC_TOOL_IMPORT_ALLOWLIST="my_company.tools,shared_agents."

Manifest paths for agents, tasks, and knowledge are resolved relative to the fabric agent config directory and cannot escape it. Filesystem tools resolve symlinks before reading or writing and keep writes inside their configured workspace directories.

MCP Adapters

The mcp extra installs the MCP transport dependency. Provider implementation still belongs to vendor-fabric; this package only owns the runtime-visible adapter layer:

agentic-fabric-vendor-mcp
agentic-fabric-meshy-mcp

agentic-fabric-vendor-mcp exposes credential-free vendor catalog tools and public vendor-fabric data methods. agentic-fabric-meshy-mcp adapts the Meshy capability definitions from vendor_fabric.meshy.tools into MCP tool metadata. Install the matching vendor-fabric package and provider extras in the same environment before running provider-backed MCP tools. Startup errors include the install guidance plus the original import failure so a missing provider extra is distinguishable from a missing adapter dependency.