Add M7.5 provider-attached skills system with Agent Skills spec compliance
This commit is contained in:
+11
-4
@@ -533,15 +533,22 @@ def execute_prompt_step(
|
||||
|
||||
prompt = substitute_variables(prompt_template, variables, warn_non_scalar=verbose)
|
||||
|
||||
# Inject profile system prompt if specified
|
||||
# Determine provider
|
||||
provider = provider_override or substitute_variables(step.provider, variables, warn_non_scalar=verbose)
|
||||
|
||||
# Build context from the inside out so the final order is:
|
||||
# profile system prompt -> skills -> user prompt.
|
||||
if step.skills is not None:
|
||||
from .skills import inject_skills
|
||||
skill_names = None if "*" in step.skills else step.skills
|
||||
prompt = inject_skills(prompt, provider, skill_names)
|
||||
|
||||
if step.profile:
|
||||
profile = load_profile(step.profile)
|
||||
if profile and profile.system_prompt:
|
||||
# Prepend system prompt to user prompt
|
||||
prompt = f"{profile.system_prompt}\n\n---\n\n{prompt}"
|
||||
|
||||
# Determine provider
|
||||
provider = provider_override or substitute_variables(step.provider, variables, warn_non_scalar=verbose)
|
||||
# Structured or plain-text
|
||||
|
||||
# Plain text mode - bypass structured output
|
||||
if step.plain_text:
|
||||
|
||||
Reference in New Issue
Block a user