Captures the full pipeline recipe (graft->quant->splice->config->serve) with every gotcha found this session, the 3 gibberish suspects, and the diagnostic ladder (validate native-config no-MTP coherence FIRST) for a fresh session to finish the chase. Also stages the NVFP4 scripts + 512-row calib. Recent decisions: NEO-CODE seat swap (R36), webhook ALLOWED_HOST_LIST fix. Lessons: validate-tracer-bullet-first, mtp-graft-dropped-at-load, gitea-204-red-herring.
132 lines
5.3 KiB
JSON
132 lines
5.3 KiB
JSON
[
|
|
{
|
|
"type": "function",
|
|
"function": {
|
|
"name": "bifrost.soong-lab.set_name",
|
|
"parameters": {
|
|
"type": "object",
|
|
"required": ["name"],
|
|
"properties": {
|
|
"name": { "type": "string", "maxLength": 128, "minLength": 1 }
|
|
}
|
|
},
|
|
"description": "Set the agent's name (its display name; export slugifies it)."
|
|
}
|
|
},
|
|
{
|
|
"type": "function",
|
|
"function": {
|
|
"name": "bifrost.soong-lab.set_role",
|
|
"parameters": {
|
|
"type": "object",
|
|
"required": ["role"],
|
|
"properties": {
|
|
"role": {
|
|
"enum": ["assistant", "thoughtful-assistant", "character", "thoughtful-character"],
|
|
"type": "string"
|
|
}
|
|
}
|
|
},
|
|
"description": "Set the agent's model-role — one of: assistant (general), thoughtful-assistant (reasoning general), character (RP/writing-tuned), thoughtful-character (reasoning RP). Export ships it as the native agents.define `role`."
|
|
}
|
|
},
|
|
{
|
|
"type": "function",
|
|
"function": {
|
|
"name": "bifrost.soong-lab.set_ocean",
|
|
"parameters": {
|
|
"type": "object",
|
|
"properties": {
|
|
"A": { "type": "number", "maximum": 1, "minimum": -1 },
|
|
"C": { "type": "number", "maximum": 1, "minimum": -1 },
|
|
"E": { "type": "number", "maximum": 1, "minimum": -1 },
|
|
"N": { "type": "number", "maximum": 1, "minimum": -1 },
|
|
"O": { "type": "number", "maximum": 1, "minimum": -1 }
|
|
},
|
|
"minProperties": 1
|
|
},
|
|
"description": "Merge OCEAN dials (each in [-1,1]); re-derives the disposition."
|
|
}
|
|
},
|
|
{
|
|
"type": "function",
|
|
"function": {
|
|
"name": "bifrost.soong-lab.edit_prompt",
|
|
"parameters": {
|
|
"type": "object",
|
|
"required": ["system_prompt"],
|
|
"properties": {
|
|
"system_prompt": { "type": "string", "maxLength": 32768, "minLength": 1 }
|
|
}
|
|
},
|
|
"description": "Replace the authored role/instructions block (the exported system prompt)."
|
|
}
|
|
},
|
|
{
|
|
"type": "function",
|
|
"function": {
|
|
"name": "bifrost.soong-lab.attach_tool",
|
|
"parameters": {
|
|
"type": "object",
|
|
"required": ["id", "name"],
|
|
"properties": {
|
|
"id": { "type": "string", "maxLength": 256, "minLength": 1 },
|
|
"name": { "type": "string", "maxLength": 256, "minLength": 1 },
|
|
"description": { "type": "string", "maxLength": 2048 }
|
|
}
|
|
},
|
|
"description": "Attach (upsert by id) a tool the designed agent will bind via Bifrost."
|
|
}
|
|
},
|
|
{
|
|
"type": "function",
|
|
"function": {
|
|
"name": "bifrost.soong-lab.author_first_message",
|
|
"parameters": {
|
|
"type": "object",
|
|
"required": ["first_message"],
|
|
"properties": {
|
|
"first_message": { "type": "string", "maxLength": 32768, "minLength": 1 }
|
|
}
|
|
},
|
|
"description": "Set the agent's in-character opening turn (tone + format by example)."
|
|
}
|
|
},
|
|
{
|
|
"type": "function",
|
|
"function": {
|
|
"name": "bifrost.soong-lab.edit_psych_profile",
|
|
"parameters": {
|
|
"type": "object",
|
|
"required": ["psych_profile"],
|
|
"properties": {
|
|
"psych_profile": { "type": "string", "maxLength": 8192, "minLength": 1 }
|
|
}
|
|
},
|
|
"description": "Author the character's Psychological Profile & Experience — a ~150-300 word prose lens (the self-report producer reads it every turn) covering four dimensions: disposition/appraisal bent, attention/salience focus, values/yardstick, and formative history. Integrate them as one paragraph and CLOSE ON ATTENTION — what the character characteristically notices ('...notices who is unwell, what is left unsaid'). Guardrails: (1) NEVER name a per-event output emotion ('is anxious', 'feels hurt') — naming PRIMES it, so it fires regardless of the event; describe the bent and let emotion follow from the appraisal. (2) Magnitude lives in the OCEAN dials, not the prose (don't narrate 'comes apart'/'takes it hard'). (3) Appraisal-STYLE yes ('reads others charitably until she can't'), output-emotion no. (4) Salience is character-relative — never rewrite what happened."
|
|
}
|
|
},
|
|
{
|
|
"type": "function",
|
|
"function": {
|
|
"name": "bifrost.soong-lab.generate_portrait",
|
|
"parameters": {
|
|
"type": "object",
|
|
"required": ["description"],
|
|
"properties": {
|
|
"description": { "type": "string", "maxLength": 500, "minLength": 1 },
|
|
"style_mode": { "enum": ["anime", "cartoon", "photoreal"], "type": "string" }
|
|
}
|
|
},
|
|
"description": "Generate the agent's persona portrait NOW from a visual `description` you author — the persona's LOOK (e.g. 'a stern woman in her 40s, short dark hair, sharp jaw'). A persona is personality, not appearance, so YOU compose the appearance in conversation and pass it here; describe only the subject, never the art style. `style_mode` (anime | cartoon | photoreal) selects the curated render style — the style preset owns the look. Generation runs in the background; the portrait pane shows it when ready. Offer/generate a portrait once the look is settled."
|
|
}
|
|
},
|
|
{
|
|
"type": "function",
|
|
"function": {
|
|
"name": "bifrost.soong-lab.export",
|
|
"parameters": { "type": "object", "properties": {} },
|
|
"description": "Export the native payload + sidecar bundle (stub — lands in E5)."
|
|
}
|
|
}
|
|
] |