⚙️ ExecutionConfig.json
{
  "initial_question": "Can AI possess true creativity?",
  "input_files": ["docs/theory_of_mind.md"],
  "max_depth": 5,
  "challenge_assumptions": true,
  "domain_constraints": ["Philosophy", "Computer Science"]
}
👁️ TabbedDisplay Output
Overview
Exchange 1
Synthesis
Question
"How do you define 'true' creativity in a way that excludes algorithmic generation?"
Response
"True creativity often implies intent and subjective experience, which current LLMs lack..."

Live Results Showcase

Explore actual dialogue transcripts and synthesis reports generated by this task in the test workspace.

Configuration Parameters

Field Type Description
initial_question* String The starting hypothesis or question to explore.
input_files List<String> Optional glob patterns for files to provide context (e.g., source code or docs).
max_depth Int Number of Q&A exchanges. Default: 5. Range: 1-20.
challenge_assumptions Boolean If true, the questioner agent will actively look for and challenge logical leaps.
domain_constraints List<String> Limits the dialogue to specific fields (e.g., "Legal", "Physics").

Task Process Lifecycle

  1. Initialization: Loads context from input_files and validates the initial_question.
  2. Agent Creation: Spawns two distinct ChatAgent instances:
    • Questioner: Probes for contradictions and fundamental principles.
    • Responder: Provides reasoned answers and acknowledges uncertainty.
  3. Dialogue Loop: Iterates through max_depth. Each step is rendered in a new UI tab.
  4. Synthesis: After the loop, the Responder agent reviews the entire transcript to summarize key insights.
  5. Artifact Generation: Produces a full Markdown transcript and links to HTML/PDF versions.

Embedded Usage (UnifiedHarness)

Invoke this task programmatically using the Cognotik embedding engine.

import com.simiacryptus.cognotik.plan.TaskType
import com.simiacryptus.cognotik.plan.tools.reasoning.SocraticDialogueTask.Companion.SocraticDialogue
import com.simiacryptus.cognotik.plan.tools.reasoning.SocraticDialogueTask.SocraticDialogueTaskExecutionConfigData

fun runDialogue(harness: UnifiedHarness, workspace: File) {
    val config = SocraticDialogueTaskExecutionConfigData(
        initial_question = "What are the ethical implications of autonomous coding agents?",
        input_files = listOf("docs/ethics/*.md"),
        max_depth = 6,
        challenge_assumptions = true,
        domain_constraints = listOf("Ethics", "Software Engineering")
    )

    harness.runTask(
        taskType = SocraticDialogue,
        typeConfig = TaskTypeConfig(), // Default settings
        executionConfig = config,
        workspace = workspace,
        autoFix = true
    )
    
    println("Dialogue complete. Check SocraticDialogueTask_full_report_*.md in workspace.")
}

Direct Instantiation

For use within custom agents or orchestration loops.

val task = SocraticDialogueTask(
    orchestrationConfig,
    SocraticDialogueTaskExecutionConfigData(
        initial_question = "Is the P vs NP problem solvable via heuristic search?",
        input_files = listOf("src/**/*.kt"),
        max_depth = 8,
        challenge_assumptions = true,
        domain_constraints = listOf("Computer Science", "Mathematics")
    )
)

Prompt Segment

The following text is injected into the orchestrator's context to describe this tool:

SocraticDialogue - Explore ideas through Socratic questioning
** Specify the initial question or hypothesis to explore
** Optionally provide input files (supports glob patterns) for context
** Configure maximum dialogue depth (default: 5 exchanges)
** Enable/disable assumption challenging
** Optionally constrain to specific topics or domains
** Creates a dialogue between questioner and responder agents
** Explores definitions, assumptions, implications, and contradictions
** Produces a structured dialogue transcript with insights