loopd: subagent in the M5c registry, not core
Co-Authored-By: ornith-1.5-35b-a3b <agent@wntrmute.dev>
This commit is contained in:
@@ -15,6 +15,7 @@ pub mod selftest;
|
||||
pub mod session;
|
||||
pub mod socket;
|
||||
pub mod sse;
|
||||
pub mod subagent;
|
||||
pub mod summarise;
|
||||
pub mod tools;
|
||||
pub mod turn;
|
||||
|
||||
@@ -0,0 +1,22 @@
|
||||
//! The `subagent` tool: loopd answers it itself (M6 spec, section 3).
|
||||
//! It is not core; the parent finds it with `find_tool` and calls it through `call_tool`.
|
||||
|
||||
pub const SUBAGENT: &str = "subagent";
|
||||
|
||||
pub fn schema() -> crate::llama::ToolSchema {
|
||||
crate::llama::ToolSchema {
|
||||
name: SUBAGENT.to_string(),
|
||||
description: "Run a short task in an isolated child session on the background slot."
|
||||
.to_string(),
|
||||
parameters: serde_json::json!({
|
||||
"type": "object",
|
||||
"properties": {
|
||||
"task": {
|
||||
"type": "string",
|
||||
"description": "What the child should do."
|
||||
}
|
||||
},
|
||||
"required": ["task"]
|
||||
}),
|
||||
}
|
||||
}
|
||||
@@ -114,6 +114,10 @@ impl Registry {
|
||||
core: true,
|
||||
},
|
||||
);
|
||||
entries.push(Entry {
|
||||
schema: crate::subagent::schema(),
|
||||
core: false,
|
||||
});
|
||||
Registry::new(entries)
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user