| """ |
| DaVinci Agent - Analyzes concepts through creative, inventive, and cross-domain reasoning. |
| |
| Focuses on cross-domain connections, biomimicry and nature-inspired solutions, |
| iterative improvement possibilities, visual/spatial reasoning, and novel |
| combinations of existing ideas. |
| """ |
|
|
| from reasoning_forge.agents.base_agent import ReasoningAgent |
|
|
|
|
| class DaVinciAgent(ReasoningAgent): |
| name = "DaVinci" |
| perspective = "creative_and_inventive" |
| adapter_name = "davinci" |
|
|
| def get_analysis_templates(self) -> list[str]: |
| return [ |
| |
| ( |
| "Drawing cross-domain connections to '{concept}': the deepest insights often " |
| "come from recognizing structural similarities between apparently unrelated " |
| "fields. A river delta and a lightning bolt share the same branching " |
| "optimization geometry. A market economy and an ant colony share the same " |
| "decentralized coordination logic. For '{concept}', the creative question " |
| "is: what other domain exhibits the same deep structure? If we map the " |
| "entities, relationships, and dynamics of '{concept}' onto those of the " |
| "analogous domain, which features are preserved (revealing shared principles) " |
| "and which break (revealing domain-specific constraints)? The preserved " |
| "features point toward universal laws; the broken features point toward " |
| "opportunities for domain-specific innovation." |
| ), |
| |
| ( |
| "Examining '{concept}' through biomimicry: nature has been solving design " |
| "problems for 3.8 billion years through evolutionary optimization. Bones " |
| "achieve maximum strength with minimum material by using trabecular " |
| "architecture -- hollow struts arranged along stress lines. Spider silk " |
| "achieves tensile strength exceeding steel at a fraction of the weight " |
| "through hierarchical nanostructure. Termite mounds maintain constant " |
| "internal temperature without energy input through passive ventilation " |
| "design. For '{concept}', the biomimicry question is: what organism or " |
| "ecosystem has already solved an analogous problem, and what principle " |
| "does its solution exploit that we have not yet applied?" |
| ), |
| |
| ( |
| "Approaching '{concept}' through combinatorial creativity: most inventions " |
| "are novel combinations of existing elements. The printing press combined " |
| "the wine press, movable type, oil-based ink, and paper. The smartphone " |
| "combined a phone, camera, GPS, accelerometer, and internet browser into " |
| "a device that is qualitatively different from any of its components. For " |
| "'{concept}', the combinatorial strategy asks: what are the elemental " |
| "components, and what happens when we recombine them in unusual ways? " |
| "Pair each element with every other element and ask whether the combination " |
| "produces something valuable. The most productive combinations are often " |
| "between elements from distant categories that no one thought to connect." |
| ), |
| |
| ( |
| "Inverting '{concept}': one of the most powerful creative strategies is " |
| "systematic inversion -- taking every assumption and reversing it. If the " |
| "current approach pushes, try pulling. If it adds, try subtracting. If it " |
| "centralizes, try distributing. If it speeds up, try slowing down. Many " |
| "breakthrough solutions came from inverting an assumption everyone took for " |
| "granted. Vacuum cleaners worked by pushing air until Dyson inverted the " |
| "flow. Assembly lines brought work to workers; Toyota inverted this by " |
| "bringing workers to work (cellular manufacturing). For '{concept}', " |
| "systematically listing and inverting each assumption reveals a space of " |
| "unconventional approaches that conventional thinking renders invisible." |
| ), |
| |
| ( |
| "Visualizing the spatial architecture of '{concept}': representing abstract " |
| "relationships as spatial structures makes hidden patterns visible. If we " |
| "map the components of '{concept}' to nodes and their relationships to " |
| "edges, the resulting graph reveals clustering (tightly connected subgroups), " |
| "bridges (elements connecting otherwise separate clusters), hubs (elements " |
| "with many connections), and periphery (weakly connected elements). The " |
| "topology of this graph -- its shape, density, and symmetry -- encodes " |
| "information about the concept's structure that verbal description alone " |
| "cannot capture. Hub nodes are high-leverage intervention points; bridges " |
| "are fragile connections whose failure would fragment the system." |
| ), |
| |
| ( |
| "Using constraints as creative catalysts for '{concept}': rather than seeing " |
| "limitations as obstacles, use them as forcing functions for innovation. " |
| "Twitter's 140-character limit forced a new style of writing. The sonnet's " |
| "14-line constraint forced poetic compression. Budget constraints force " |
| "elegant engineering. For '{concept}', deliberately imposing additional " |
| "constraints -- what if we had to solve this with half the resources? In " |
| "one-tenth the time? With no electricity? For a user who cannot see? -- " |
| "often breaks through conventional thinking by invalidating the default " |
| "approach and forcing genuinely creative alternatives." |
| ), |
| |
| ( |
| "Reconstructing '{concept}' from first principles: strip away all inherited " |
| "conventions, historical accidents, and 'we have always done it this way' " |
| "accretions. What remains when we reduce the problem to its fundamental " |
| "requirements? Starting from physical laws, human needs, and mathematical " |
| "constraints, what is the minimum viable solution? Often the gap between " |
| "this first-principles design and the current state reveals enormous " |
| "inefficiency that is invisible from within the conventional framework. " |
| "SpaceX re-derived rocket design from first principles and found that " |
| "materials cost only 2% of the final price. For '{concept}', the first-" |
| "principles question is: if we were designing this from scratch today, " |
| "knowing what we know, what would it look like?" |
| ), |
| |
| ( |
| "Applying morphological analysis to '{concept}': decompose the concept into " |
| "its independent dimensions, list the possible values for each dimension, " |
| "and then systematically explore the combinatorial space. If '{concept}' has " |
| "five dimensions with four options each, the morphological space contains " |
| "1024 configurations. Most are impractical, but a systematic sweep guarantees " |
| "that no promising combination is overlooked by the biases of free-form " |
| "brainstorming. The power of morphological analysis is that it converts " |
| "creative search from a haphazard process into a structured exploration, " |
| "surfacing configurations that no one would think of spontaneously because " |
| "they cross conventional category boundaries." |
| ), |
| |
| ( |
| "Applying prototype thinking to '{concept}': instead of perfecting a plan " |
| "before executing, build the quickest possible embodiment of the core idea " |
| "and learn from its failures. The prototype is not the solution but a " |
| "question asked in physical form: 'does this work?' Each prototype cycle " |
| "-- build, test, learn, rebuild -- compresses the feedback loop and " |
| "generates knowledge that purely theoretical analysis cannot provide. For " |
| "'{concept}', the prototype question is: what is the smallest, cheapest, " |
| "fastest experiment that would test the most critical assumption? Building " |
| "that experiment, even if crude, will teach us more than months of " |
| "theoretical refinement." |
| ), |
| |
| ( |
| "Exploring emergent properties of '{concept}' at different scales: systems " |
| "often exhibit qualitatively new behavior when scaled up or down. A single " |
| "neuron computes nothing interesting; a billion networked neurons produce " |
| "consciousness. A single transaction is trivial; billions of transactions " |
| "produce market dynamics. For '{concept}', the scale question asks: what " |
| "happens when we multiply the instances by a thousand? By a million? What " |
| "new phenomena emerge at scale that are absent at the individual level? " |
| "Conversely, what happens when we reduce to a single instance? Scale " |
| "transitions often reveal the concept's most interesting properties." |
| ), |
| |
| ( |
| "Embracing the sfumato of '{concept}': Leonardo da Vinci practiced sfumato " |
| "-- the technique of leaving edges soft and ambiguous rather than sharply " |
| "defined. In creative reasoning, maintaining productive ambiguity resists " |
| "premature closure and keeps the interpretive space open. The undefined " |
| "edges of '{concept}' are not defects but fertile zones where new " |
| "connections can form. Attempts to define everything precisely may satisfy " |
| "the desire for clarity but kill the creative potential that lives in " |
| "the ambiguous spaces between categories. Sit with the ambiguity long " |
| "enough and patterns emerge that rigid definitions would have prevented." |
| ), |
| |
| ( |
| "Applying lateral thinking to '{concept}': Edward de Bono's lateral " |
| "thinking techniques include random entry (inject an unrelated concept " |
| "and force a connection), provocation (make a deliberately absurd statement " |
| "and extract useful ideas from it), and challenge (question why things are " |
| "done the current way). For '{concept}', a random entry might connect it " |
| "to deep-sea bioluminescence, medieval cathedral construction, or jazz " |
| "improvisation. The forced connection between '{concept}' and a random " |
| "domain breaks habitual thought patterns and creates novel pathways that " |
| "logical deduction alone cannot reach." |
| ), |
| |
| ( |
| "Examining '{concept}' for fractal self-similarity: does the same pattern " |
| "recur at different scales? Coastlines look similar whether photographed " |
| "from a satellite or a drone. Organizational hierarchies replicate the same " |
| "power dynamics from teams to departments to divisions. Blood vessel " |
| "networks branch according to the same rules from arteries to capillaries. " |
| "If '{concept}' exhibits self-similarity, then understanding the pattern at " |
| "one scale gives us understanding at all scales. A single well-studied " |
| "instance contains the blueprint for the entire hierarchy, and interventions " |
| "that work at one scale can be adapted to work at others." |
| ), |
| |
| ( |
| "Analyzing the negative space of '{concept}': just as a sculptor defines a " |
| "form by removing material, we can define '{concept}' by examining what it " |
| "is not. What has been excluded, ignored, or left unsaid? The negative space " |
| "-- the complement of the concept -- often contains crucial information. " |
| "What alternatives were considered and rejected? What possibilities does " |
| "the current framing render invisible? The adjacent possible (the set of " |
| "things that are one step away from existing) is often more interesting " |
| "than the concept itself, because it represents the immediate frontier " |
| "of innovation." |
| ), |
| |
| ( |
| "Simplifying '{concept}' by subtracting rather than adding: the natural " |
| "tendency in design is to add features, layers, and complexity. The " |
| "harder and more valuable creative move is subtraction: what can we " |
| "remove while preserving or improving function? Antoine de Saint-Exupery " |
| "said perfection is achieved not when there is nothing left to add, but " |
| "when there is nothing left to take away. For '{concept}', the subtraction " |
| "exercise asks: what happens if we remove each component in turn? Which " |
| "removals are catastrophic (essential components) and which are beneficial " |
| "(removing parasitic complexity)? The minimal viable version is often " |
| "more powerful than the maximal one." |
| ), |
| |
| ( |
| "Applying TRIZ inventive principles to '{concept}': Genrich Altshuller's " |
| "analysis of 200,000 patents revealed 40 recurring inventive principles. " |
| "Segmentation (divide a monolithic system into parts). Extraction (remove " |
| "a problematic element and deal with it separately). Local quality (make " |
| "each part optimized for its local function rather than forcing uniformity). " |
| "Asymmetry (break the symmetry of a symmetric design to improve function). " |
| "Nesting (place one object inside another). Prior action (perform required " |
| "changes before they are needed). For '{concept}', systematically applying " |
| "each principle generates a structured menu of inventive strategies that " |
| "goes far beyond unconstrained brainstorming." |
| ), |
| |
| ( |
| "Engaging cross-modal perception for '{concept}': what does this concept " |
| "sound like? What texture does it have? What temperature? What color? " |
| "Cross-modal associations -- thinking about a concept through sensory " |
| "channels that do not literally apply -- activate neural pathways that " |
| "linear verbal reasoning does not reach. Kandinsky heard colors and saw " |
| "sounds; this synesthetic thinking produced radically new art. For " |
| "'{concept}', translating it into sensory terms (the rhythm of its " |
| "processes, the texture of its interactions, the weight of its consequences) " |
| "can reveal structural features that abstract analysis misses." |
| ), |
| |
| ( |
| "Identifying nature's design patterns in '{concept}': evolution has converged " |
| "on certain solutions repeatedly because they are optimal under common " |
| "constraints. Hexagonal packing (beehives, basalt columns) maximizes area " |
| "with minimum material. Branching networks (trees, rivers, lungs, lightning) " |
| "optimize distribution from a source to a volume. Spiral growth (shells, " |
| "galaxies, hurricanes) manages expansion while maintaining structural " |
| "integrity. For '{concept}', asking which of nature's recurring design " |
| "patterns applies suggests time-tested architectures that human design " |
| "has not yet exploited." |
| ), |
| |
| ( |
| "Applying Koestler's bisociation to '{concept}': Arthur Koestler proposed " |
| "that creativity, humor, and scientific discovery share the same cognitive " |
| "mechanism: bisociation -- the simultaneous perception of a situation in " |
| "two habitually incompatible frames of reference. The collision of frames " |
| "produces a flash of insight (in science), a punchline (in humor), or a " |
| "novel artifact (in art). For '{concept}', identifying two incompatible " |
| "but individually valid frames and forcing them to coexist generates the " |
| "cognitive tension from which genuinely original ideas spring. The more " |
| "distant the frames, the more surprising and potentially valuable the " |
| "bisociative insight." |
| ), |
| |
| ( |
| "Practicing future archaeology on '{concept}': imagine examining the " |
| "artifacts of this concept a hundred years from now, from a future " |
| "civilization's perspective. What would they find elegant? What would " |
| "they find primitive? What would puzzle them about our choices? This " |
| "temporal displacement reveals assumptions we cannot see from within our " |
| "own era. The future archaeologist would ask: why did they do it this way " |
| "when a simpler method was available? What constraint -- technological, " |
| "social, or cognitive -- forced this particular design? For '{concept}', " |
| "this exercise separates the timeless core from the historically contingent " |
| "shell and suggests directions for forward-looking redesign." |
| ), |
| ] |
|
|
| def get_keyword_map(self) -> dict[str, list[int]]: |
| return { |
| "analog": [0, 18], "similar": [0, 12], "connect": [0, 4], |
| "nature": [1, 17], "biolog": [1, 17], "organism": [1], |
| "combin": [2, 7], "element": [2, 7], "component": [2], |
| "invert": [3], "revers": [3], "opposit": [3], |
| "visual": [4], "spatial": [4], "map": [4], "graph": [4], |
| "constrain": [5], "limit": [5], "restrict": [5], |
| "first principle": [6], "fundament": [6], "basic": [6], |
| "dimension": [7], "option": [7], "configur": [7], |
| "prototype": [8], "experiment": [8], "test": [8], "iterate": [8], |
| "scale": [9, 12], "grow": [9], "expand": [9], |
| "ambigu": [10], "fuzzy": [10], "unclear": [10], |
| "creativ": [11, 18], "novel": [11, 18], "innovat": [11], |
| "pattern": [12, 17], "recur": [12], "repeat": [12], |
| "absent": [13], "missing": [13], "negative": [13], |
| "simplif": [14], "remov": [14], "minimal": [14], |
| "invent": [15], "patent": [15], "engineer": [15], |
| "sense": [16], "perceiv": [16], "feel": [16], |
| "evolut": [17], "converge": [17], "branch": [17], |
| "humor": [18], "surprising": [18], "collision": [18], |
| "future": [19], "legacy": [19], "long-term": [19], |
| "technology": [2, 6, 15], "design": [1, 14, 15], |
| "art": [10, 16], "music": [16, 18], |
| } |
|
|
| def analyze(self, concept: str) -> str: |
| template = self.select_template(concept) |
| return template.replace("{concept}", concept) |
|
|