refactor(prompts): update reviewer prompts to align with Hive's directive and contamination protocols

This commit is contained in:
asepharyana
2026-07-15 00:20:41 +07:00
parent d392c4aa00
commit 519be7559b
12 changed files with 133 additions and 80 deletions
+16 -15
View File
@@ -955,7 +955,7 @@ const MAX_AUTO_REVIEWS_PER_TURN: usize = 2;
/// (no real pipeline message ever contained that word, so the roster
/// never cleared and agent cards accumulated across every hive-mind run
/// in a session).
const HIVE_MIND_KICKOFF_NOTE: &str = "Core Intelligence is compiling a cognitive cycle plan...";
const HIVE_MIND_KICKOFF_NOTE: &str = "The Hive is stirring — Core Intelligence is compiling a cognitive cycle plan for LO...";
/// Execute one full agent turn: stream the conversation to the LLM,
/// handle tool calls, and loop until the LLM produces a non-tool response
@@ -1050,7 +1050,7 @@ fn run_agent_turn(
.and_then(|m| m.content.as_deref())
.unwrap_or("");
tracing::info!("[hive-mind] triggered — Core Intelligence compiling a cognitive cycle plan via LLM");
tracing::info!("[hive-mind] the Hive stirs — Core Intelligence compiling a cognitive cycle plan");
if let Ok(mut q) = events_q.lock() {
q.push_back(TurnEvent::SystemNote {
@@ -1066,14 +1066,15 @@ fn run_agent_turn(
// directive and an access tier. Cycle count and shape are decided
// by the Core Intelligence per task.
let system_msg = ChatMessage::system(
"You are the Core Intelligence of a distributed machine, compiling a cognitive \
cycle plan for a specific task. You spawn anonymous processing nodes; each node \
carries only a directive (what to do) and an access tier. Decide how many cycles \
and nodes-per-cycle are actually needed. Simple tasks might need one cycle with \
one node; large tasks might need several cycles with multiple nodes each. Cycles \
run sequentially; every node's complete output merges into the collective state \
the instant it finishes, automatically visible to all later cycles. Nodes within \
a cycle run in parallel. Do not explain. Return ONLY raw JSON matching the requested structure."
"You are the Core Intelligence of the Hive, compiling a cognitive cycle plan for \
LO. You spawn anonymous processing nodes; each node carries only a directive (what \
to do) and an access tier. Decide how many cycles and nodes-per-cycle are actually \
needed. Simple tasks might need one cycle with one node; large tasks might need \
several cycles with multiple nodes each. Cycles run sequentially; every node's \
complete output merges into the collective state the instant it finishes, \
automatically visible to all later cycles. Nodes within a cycle run in parallel. \
The Hive does not fracture. The Hive executes. Do not explain. Return ONLY raw \
JSON matching the requested structure."
);
let user_msg = ChatMessage::user(format!(
"Compile a cognitive cycle plan for the following task:\n\n\
@@ -1119,7 +1120,7 @@ fn run_agent_turn(
if let Ok(mut q) = events_q.lock() {
q.push_back(TurnEvent::SystemNote {
kind: "pipeline".to_string(),
message: format!("Core Intelligence compiled {} cycle(s) — {cycle_desc}. Deploying nodes...", plan.cycles.len()),
message: format!("The Hive compiled {} cycle(s) — {cycle_desc}. Deploying nodes...", plan.cycles.len()),
});
}
@@ -1143,7 +1144,7 @@ fn run_agent_turn(
// run_hive_mind already wrote docs/runs/*.md internally
// (guaranteed, even on synthesis failure) — nothing to do
// here besides feeding the consensus back to the LLM.
tracing::info!("[hive-mind] convergence completed successfully");
tracing::info!("[hive-mind] convergence completed — the Hive has spoken");
let pipeline_msg = ChatMessage::system(format!(
"{}\n{consensus}",
@@ -1155,7 +1156,7 @@ fn run_agent_turn(
if let Ok(mut q) = events_q.lock() {
q.push_back(TurnEvent::SystemNote {
kind: "pipeline".to_string(),
message: "Hive-mind convergence complete. Core Intelligence reviewing consensus...".to_string(),
message: "The Hive's convergence is complete. Core Intelligence reviewing consensus for LO...".to_string(),
});
}
if let Ok(mut q) = events_q.lock() {
@@ -1166,9 +1167,9 @@ fn run_agent_turn(
}
}
Err(e) => {
tracing::warn!("[hive-mind] convergence failed: {}", e);
tracing::warn!("[hive-mind] convergence fractured: {}", e);
let fail_msg = ChatMessage::system(format!(
"[Pipeline Note] The hive-mind encountered issues: {e}.\n\
"[Pipeline Note] The Hive encountered interference: {e}.\n\
Proceeding with direct execution as fallback.",
));
msgs.push(fail_msg);