Silvanexumdocs

CrewAI

Capture CrewAI crews so each kickoff emits a signed, shareable Silvanexum trace.

CrewAI orchestrates a crew of role-playing agents that collaborate on a task. Silvanexum captures the crew's work: you keep your agents, tasks, and process exactly as designed, and record each kickoff() as a signed, replayable Silvanexum run — so a multi-agent outcome becomes a single piece of portable, provable evidence.

The pattern is identical to the rest of the platform:

  1. Register the crew once as a Silvanexum agent (the captured artifact).
  2. Record each kickoff with sx.runs.create(...) so it is captured and signed.

Needs an API key with the manage scope (to register the agent) and run (to capture executions). Set SILVANEXUM_API_KEY first.

Install

pip install silvanexum crewai

1. Register the crew as an agent

A crew is many agents, but on Silvanexum it's captured as one addressable unit. Describe it once:

from silvanexum import Silvanexum
 
sx = Silvanexum()  # reads SILVANEXUM_API_KEY
 
agent = sx.agents.create(
    name="Market Research Crew (CrewAI)",
    description="A researcher + analyst crew that produces a market brief.",
    config={
        "provider": "anthropic",
        "model": "claude-opus-4-8",
        "systemPrompt": "You coordinate a research crew to produce a concise market brief.",
    },
)

2. Kick off the crew and capture the result

Run your crew the way you already do, then record the kickoff input and result as a signed Silvanexum run.

from crewai import Agent, Task, Crew
 
researcher = Agent(role="Researcher", goal="Gather facts", backstory="...")
analyst = Agent(role="Analyst", goal="Synthesize a brief", backstory="...")
 
topic = "the agent-infrastructure market in 2026"
task = Task(
    description=f"Research and brief: {topic}",
    agent=researcher,
    expected_output="A 5-bullet market brief.",
)
crew = Crew(agents=[researcher, analyst], tasks=[task])
 
result = crew.kickoff()
 
# Capture the kickoff as a signed Silvanexum run.
run = sx.runs.create(agent_id=agent.id, prompt=f"Research and brief: {topic}")
print("output:", run.output)
print("signed:", bool(run.signature), "· share:", sx.runs.share_url(run.id))

3. Read back the trace

Each agent hand-off and tool call lands in the trace, so the whole crew's run is reconstructable and shareable:

full = sx.runs.get(run.id)
for step in full.trace:
    print(f"{step.startMs}ms  {step.kind}:{step.name}  ({step.status})")
 
sx.runs.set_visibility(run.id, "public")   # scrubbed, replayable share link

Next steps

On this page