christlurker's picture
FrontierAgent react demo
9d0fd45
Raw
History Blame Contribute Delete
3.33 kB
"""Pipeline spec: ``agent_team``."""
from __future__ import annotations
from frontier_agent.models.pipeline_spec import (
CompressionConfig,
ContextPolicy,
NodeDefinition,
PipelineSpec,
TransitionSpec,
)
from workflows.agent_team.identity import MAIN_ROLE_ID, PIPELINE_ID
SWARM_SPEC = PipelineSpec(
pipeline_id=PIPELINE_ID,
name="Agent Team",
description=(
"Main agent decomposes the question, spawns parallel sub-agents, "
"fan-ins their reports, verifies, then synthesises a final answer. "
"Profiles may enable the stable fast reporter node."
),
entry_point="main_agent",
terminal_nodes=["main_agent", "agent_team_reporter"],
nodes=[
NodeDefinition(
node_id="main_agent",
role_id=MAIN_ROLE_ID,
node_function=(
"workflows.agent_team.nodes.main_agent.main_agent_node"
),
context_policy=ContextPolicy(
include_fields=[
"original_question", "current_query", "language",
"task_id", "metadata",
],
),
compression=CompressionConfig(enabled=False),
output_fields=[
"final_answer", "final_content", "answer_confidence",
"evidence_cards", "assertions",
"clarified_questions",
"react_steps",
"session_turn",
"live_followups", "effective_question",
"reporter_enabled", "reporter_backend", "reporter_wall_time_s",
"reporter_deadline_monotonic_s",
"answer_status", "answer_sentinel",
"final_answer_rescued", "final_answer_rescue_mode",
"final_answer_source", "stopped_by",
],
),
NodeDefinition(
node_id="agent_team_reporter",
role_id="swarm_reporter",
node_function=(
"workflows.agent_team.nodes.reporter.agent_team_reporter"
),
context_policy=ContextPolicy(
include_fields=[
"original_question", "current_query", "language",
"task_id", "metadata",
"final_answer", "final_content",
"evidence_cards", "assertions",
"live_followups", "effective_question",
"reporter_backend", "reporter_wall_time_s",
"reporter_deadline_monotonic_s",
],
),
compression=CompressionConfig(enabled=False),
output_fields=[
"final_answer",
"final_content",
"report_markdown",
"answer_status",
"answer_sentinel",
"final_answer_source",
"final_answer_rescued",
"final_answer_rescue_mode",
],
),
],
transitions=[
TransitionSpec(
from_phase="main_agent",
to_phase="agent_team_reporter",
condition="workflows.agent_team.edges.should_run_reporter",
),
TransitionSpec(from_phase="main_agent", to_phase="__END__"),
TransitionSpec(from_phase="agent_team_reporter", to_phase="__END__"),
],
)