From 6a9f90d0559f1ebf7967ab903f25d3e632d1f954 Mon Sep 17 00:00:00 2001 From: tanaka takashi Date: Tue, 11 Aug 2026 21:59:27 +0900 Subject: Strengthen verified task execution prompts --- src/Agent.Core/Prompts/PromptComposer.cs | 21 ++++++++++++++++++++- 1 file changed, 20 insertions(+), 1 deletion(-) (limited to 'src/Agent.Core/Prompts/PromptComposer.cs') diff --git a/src/Agent.Core/Prompts/PromptComposer.cs b/src/Agent.Core/Prompts/PromptComposer.cs index 69b18f3..2899088 100644 --- a/src/Agent.Core/Prompts/PromptComposer.cs +++ b/src/Agent.Core/Prompts/PromptComposer.cs @@ -13,8 +13,10 @@ public sealed record PromptContext( string SandboxCapabilitySummary, string TaskGraphSummary, string PreviousSummary, + IReadOnlyList ExecutionResults, IReadOnlyList Conversation, string Request, + bool RequiresExternalEffect, IReadOnlyList? Images = null); public static class PromptComposer @@ -29,7 +31,9 @@ public static class PromptComposer new("system", ComposeSkillCatalog(context.AvailableSkills)), new("system", context.SandboxCapabilitySummary), new("system", context.TaskGraphSummary), - new("system", context.PreviousSummary) + new("system", context.PreviousSummary), + new("system", ComposeExecutionResults(context.ExecutionResults)), + new("system", ComposeExecutionRequirement(context.RequiresExternalEffect)) }; // Inject selected skill instructions (Progressive Disclosure Stage 3). foreach (AgentSkill skill in context.SelectedSkills) @@ -39,6 +43,21 @@ public static class PromptComposer return messages; } + private static string ComposeExecutionRequirement(bool requiresExternalEffect) => requiresExternalEffect + ? "The current Planner Task requires a verified external effect. Call the appropriate available Internal Tool now. " + + "A prose description, promise, plan, or fenced JSON example does not perform the operation and cannot complete this Task. " + + "After a successful read, use its returned content and proceed to the required write or process operation without repeating the read unnecessarily." + : "The current Planner Task does not require an external effect. Use an Internal Tool only when its verified result is needed; do not claim an unverified result."; + + private static string ComposeExecutionResults(IReadOnlyList results) + { + if (results.Count == 0) return "No prior Execution Results are available for the current Session."; + var lines = new List { "Recent verified Execution Results:" }; + foreach (ExecutionResult result in results) + lines.Add($"- {result.ToolName} ({(result.Success ? "success" : "failed")}): {result.Output}"); + return string.Join("\n", lines); + } + /// /// Stage 1 Discovery: only name + description are included. Full instructions are NOT included. /// -- cgit v1.2.3