Create rerun

Re-executes only the failed or pending specialist child tasks on a brief without re-running or duplicating specialists that already succeeded, then runs the lead synthesis once all specialist tasks are complete.

POST /v1/agent/briefs/{id}/rerun

Addresshttps://api.hanzo.ai/v1/agent/briefs/{id}/rerun
MethodPOST
Operationpost_agent_briefs_by_id_rerun
AuthAuthorization: Bearer $HANZO_API_KEY

Re-executes only the failed or pending specialist child tasks on a brief without re-running or duplicating specialists that already succeeded, then runs the lead synthesis once all specialist tasks are complete.

Request

1 field.

FieldInTypeRequiredDescription
idpathstringyesID is the brief handle (brief_...) from the path.

Response

StatusBodyMeaning
200agent.BriefRecordok
defaultproblem-detailsrefused

200 body — 45 fields.

FieldInTypeAlwaysDescription
attributionbodyagent.BriefAttribution[]—Attribution records who did what across the lead and specialist agents.
attribution[].agentIdbodystring—AgentID is the contributing agent's stable ID.
attribution[].agentNamebodystring—AgentName is the contributing agent's handle.
attribution[].citationsbodystring[]—Citations are the source citations contributed by this agent.
attribution[].functionbodystring—Function is the studio function represented by the agent.
attribution[].microUsdbodyinteger (int64)—MicroUSD is the spend attributed to this agent on the brief in integer micro-USD.
attribution[].parentIdbodystring—ParentID is the manager agent ID this agent reports to.
attribution[].rolebodystring—Role is "lead" or "specialist".
attribution[].runIdbodystring—RunID is the agent_runs execution ID that produced this contribution.
attribution[].summarybodystring—Summary is a concise excerpt of what this agent produced.
citationsbodystring[]—Citations are the deduplicated source citations across the specialist tasks and lead synthesis.
createdAtbodyinteger (int64)—CreatedAt is when the brief was submitted, as Unix seconds.
idbodystring—ID is the stable brief handle (brief_...).
leadAgentbodystring—LeadAgent is the venture lead agent's handle.
leadAgentIdbodystring—LeadAgentID is the venture lead agent's stable ID.
leadRunIdbodystring—LeadRunID is the recorded run ID of the lead synthesis once completed.
openQuestionsbodystring[]—OpenQuestions are the unresolved questions surfaced for domain review or follow-up.
questionbodystring—Question is the nonconfidential research question assigned to the venture lead.
rerunsPerformedbodyinteger (int64)—RerunsPerformed is how many failed specialist tasks were re-executed on the latest rerun.
skippedCompletedbodyinteger (int64)—SkippedCompleted is how many already-completed specialist tasks were preserved without re-running on the latest rerun.
statusbodystring—Status is the brief's lifecycle state: completed or partial_failure.
synthesisbodystring—Synthesis is the lead agent's integrated synthesis once all specialist child tasks succeed.
tasksbodyagent.BriefTask[]—Tasks are the durable specialist child tasks belonging to this brief.
tasks[].agentIdbodystring—AgentID is the specialist agent's stable handle (agent_...).
tasks[].agentNamebodystring—AgentName is the specialist agent's name in the organization.
tasks[].attemptsbodyinteger (int64)—Attempts counts how many times this specialist task has been executed.
tasks[].briefIdbodystring—BriefID is the parent research brief identifier (brief_...).
tasks[].citationsbodystring[]—Citations are the source references extracted from the specialist's output.
tasks[].errorbodystring—Error records the failure reason when status is "error".
tasks[].functionbodystring—Function is the studio function the specialist represents.
tasks[].idbodystring—ID is the stable task identifier (task_...).
tasks[].lineagebodystring[]—Lineage is the specialist's ancestor agent IDs, nearest first.
tasks[].microUsdbodyinteger (int64)—MicroUSD is the cumulative spend of this child task in integer micro-USD.
tasks[].outputbodystring—Output is the attributable text produced by the specialist when status is "done".
tasks[].parentIdbodystring—ParentID is the manager agent ID in the specialist's lineage.
tasks[].promptbodystring—Prompt is the specialist-scoped sub-brief dispatched to this agent.
tasks[].runIdbodystring—RunID is the recorded agent_runs row ID for the latest execution attempt.
tasks[].statusbodystring—Status is the durable task state: pending, done, or error.
tasks[].unsupportedClaimsbodystring[]—UnsupportedClaims are the claims the specialist flagged as lacking primary evidence.
tasks[].updatedAtbodyinteger (int64)—UpdatedAt is when the child task was last updated, as Unix seconds.
titlebodystring—Title is the short headline of the research brief.
totalMicroUsdbodyinteger (int64)—TotalMicroUSD is the total spend across all specialist tasks and the lead synthesis in integer micro-USD.
unsupportedClaimsbodystring[]—UnsupportedClaims are the claims flagged as lacking primary empirical support.
updatedAtbodyinteger (int64)—UpdatedAt is when the brief was last updated, as Unix seconds.
venturebodystring—Venture is the venture slug this research brief belongs to.

Failure carries the platform error shape — see Errors.

Examples

hanzo agent briefs rerun <id>
import { Configuration, AgentApi } from 'hanzoai';

const api = new AgentApi(new Configuration({ accessToken: process.env.HANZO_API_KEY }));
const { data } = await api.postAgentBriefsByIdRerun({ id: 'id' });
from hanzoai.cloud import ApiClient, Configuration
from hanzoai.cloud.api import AgentApi

client = ApiClient(Configuration(access_token=os.environ["HANZO_API_KEY"]))
result = AgentApi(client).post_agent_briefs_by_id_rerun(id='id')
cfg := hanzoai.NewConfiguration()
cfg.AddDefaultHeader("Authorization", "Bearer "+os.Getenv("HANZO_API_KEY"))
client := hanzoai.NewAPIClient(cfg)

resp, _, err := client.AgentAPI.PostAgentBriefsByIdRerun(context.Background()).Execute()
if err != nil {
	return err
}
use hanzo_client::apis::{configuration::Configuration, agent_api};

let mut cfg = Configuration::new();
cfg.bearer_access_token = std::env::var("HANZO_API_KEY").ok();

let result = agent_api::post_agent_briefs_by_id_rerun(&cfg, Default::default()).await?;
import ai.hanzo.cloud.ApiClient;
import ai.hanzo.cloud.api.AgentApi;

ApiClient client = new ApiClient();
client.setBearerToken(System.getenv("HANZO_API_KEY"));

var result = new AgentApi(client).postAgentBriefsByIdRerun();

The method above is the one at the current release of the document. [email protected] (npm) and [email protected] (PyPI) were generated from an earlier release, where this operation carried a different id, so it spells the method differently — regenerating the clients is what makes the two agree. SDKs →

curl -X POST https://api.hanzo.ai/v1/agent/briefs/<id>/rerun \
  -H "Authorization: Bearer $HANZO_API_KEY"

MCP reaches agent through the agent tool, which names its 51 operations with its own verbs — this one among them, under a name only MCP declares. describe explains any of them:

curl -X POST https://api.hanzo.ai/v1/mcp \
  -H "Content-Type: application/json" \
  -d '{
       "jsonrpc": "2.0",
       "id": 1,
       "method": "tools/call",
       "params": {
         "name": "describe",
         "arguments": {
           "op": "list_agents"
         }
       }
     }'

Agent API · All Hanzo APIs · Interactive reference

Was this page useful?
Broken link or missing step? Drop it in #docs on Discord or open a PR.