<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Blog | Giulia Solinas</title><link>https://giuliasolinas.github.io/blog/</link><atom:link href="https://giuliasolinas.github.io/blog/index.xml" rel="self" type="application/rss+xml"/><description>Blog</description><generator>Hugo Blox Builder (https://hugoblox.com)</generator><language>en-us</language><lastBuildDate>Fri, 03 Jul 2026 00:00:00 +0000</lastBuildDate><image><url>https://giuliasolinas.github.io/media/icon_hu_982c5d63a71b2961.png</url><title>Blog</title><link>https://giuliasolinas.github.io/blog/</link></image><item><title>Building Agents in Bob with a Software Spec Driven Approach</title><link>https://giuliasolinas.github.io/blog/bob_wxo_skills/</link><pubDate>Fri, 03 Jul 2026 00:00:00 +0000</pubDate><guid>https://giuliasolinas.github.io/blog/bob_wxo_skills/</guid><description>&lt;h1 id="building-agents-in-bob-with-a-software-spec-driven-approach"&gt;Building Agents in Bob with a Software Spec Driven Approach&lt;/h1&gt;
&lt;p&gt;Agentic systems become easier to build, review, and evolve when they are treated like software products instead of clever prompts. Bob&amp;rsquo;s dedicated skills support exactly that style of work: start with business intent, turn it into explicit specifications, generate implementation artifacts, and then analyze the result against the design.&lt;/p&gt;
&lt;p&gt;In this post, I describe how to use Bob and four dedicated skills as an end-to-end, spec driven workflow for creating watsonx Orchestrate (wxO) agentic solutions.&lt;/p&gt;
&lt;h2 id="why-spec-driven-agent-development-matters"&gt;Why Spec Driven Agent Development Matters&lt;/h2&gt;
&lt;p&gt;Traditional agent building often starts with a prompt and quickly jumps into tools, flows, and integrations. That can work for experiments, but it becomes fragile when the solution has real business logic, compliance expectations, system integrations, or multiple collaborators.&lt;/p&gt;
&lt;p&gt;A software spec driven approach flips the sequence:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Define the business problem before choosing the implementation.&lt;/li&gt;
&lt;li&gt;Produce architecture and process specifications before generating code.&lt;/li&gt;
&lt;li&gt;Keep business rules legible in Standard Operating Procedures (SOPs).&lt;/li&gt;
&lt;li&gt;Generate wxO artifacts from the agreed specification.&lt;/li&gt;
&lt;li&gt;Analyze the implementation and feed findings back into the next iteration.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;In this framework, the specification is not a bulk of documentation that none reads and gets under the deck of work to be done for a client. It is the contract that the developer signs with the agent.&lt;/p&gt;
&lt;h2 id="the-bob-skill-pipeline"&gt;The Bob Skill Pipeline&lt;/h2&gt;
&lt;p&gt;We can bring into the Bob&amp;rsquo;s workspace (global or at the project level) four specialized skills that form a complete pipeline for designing, building, and auditing wxO agentic solutions:&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Skill&lt;/th&gt;
&lt;th&gt;Primary Question&lt;/th&gt;
&lt;th&gt;Output&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;solution-architect&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;What should we build, and why?&lt;/td&gt;
&lt;td&gt;Solution overview, architecture, and implementation plan&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;sop-builder&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;How should the business process work?&lt;/td&gt;
&lt;td&gt;Structured SOP with process flow, data needs, rules, and decisions&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;wxo-builder&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;How do we turn the spec into wxO artifacts?&lt;/td&gt;
&lt;td&gt;Importable wxO project with agents, tools, flows, connections, and scripts&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;wxo-analyzer&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Does the implementation match expectations?&lt;/td&gt;
&lt;td&gt;Documentation and audit reports for an existing wxO project&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;The skills are avaialble in the GitHub repository for
. We can clone the repo and import the folders into our project.&lt;/p&gt;
&lt;p&gt;The important pattern is that each skill produces the input for the next one. That makes the workflow traceable from business problem to deployed solution.&lt;/p&gt;
&lt;h2 id="step-1-start-with-solution-architect"&gt;Step 1: Start with &lt;code&gt;solution-architect&lt;/code&gt;&lt;/h2&gt;
&lt;p&gt;Use &lt;code&gt;solution-architect&lt;/code&gt; when you have a business problem or use case, but no technical design yet.&lt;/p&gt;
&lt;p&gt;Example prompt:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-text" data-lang="text"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;I need an AI agent that processes invoices from a shared mailbox, extracts invoice data, validates it against vendor records, and prepares a SalesForce update.
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;The goal at this stage is not to write code. The goal is to create a shared understanding of the solution.&lt;/p&gt;
&lt;p&gt;The agent using the &lt;code&gt;solution-architect&lt;/code&gt; skills should produce three key documents:&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Document&lt;/th&gt;
&lt;th&gt;Purpose&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Solution Overview&lt;/td&gt;
&lt;td&gt;Captures the executive summary, business context, problem statement, and agent requirements&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Solution Architecture&lt;/td&gt;
&lt;td&gt;Describes components, integrations, data flow, security, and architecture diagrams&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Implementation Plan&lt;/td&gt;
&lt;td&gt;Breaks the work into phases, assumptions, constraints, and SOP candidates&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;The implementation plan is especially important because it decomposes the solution into business processes that can be specified independently.&lt;/p&gt;
&lt;h2 id="step-2-convert-architecture-into-sops-with-sop-builder-skills"&gt;Step 2: Convert Architecture into SOPs with &lt;code&gt;sop-builder&lt;/code&gt; skills&lt;/h2&gt;
&lt;p&gt;Use &lt;code&gt;sop-builder&lt;/code&gt; skills when you have an architecture document, workflow description, BPMN model, Langflow export, n8n export, or any other process-oriented input.&lt;/p&gt;
&lt;p&gt;This skill turns design intent into a plain-language Standard Operating Procedure. That SOP becomes the specification for implementation.&lt;/p&gt;
&lt;p&gt;A good SOP includes:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Business process flow diagrams&lt;/li&gt;
&lt;li&gt;Business context and problem statement&lt;/li&gt;
&lt;li&gt;Input, processing, and output data requirements&lt;/li&gt;
&lt;li&gt;Business rules and decision points&lt;/li&gt;
&lt;li&gt;Integration expectations&lt;/li&gt;
&lt;li&gt;Error handling and escalation behavior&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;This is where the spec driven approach becomes practical. Instead of embedding business logic directly in generated tools or agent instructions, you first make that logic visible and reviewable.&lt;/p&gt;
&lt;p&gt;Example prompt:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-text" data-lang="text"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;Build the SOP for the invoice extraction and validation flow from the implementation plan.
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;For larger solutions, a good option can be creating one SOP per major flow. A single monolithic SOP usually hides important decisions and makes generation harder to review.&lt;/p&gt;
&lt;h2 id="step-3-generate-the-wxo-solution-with-wxo-builder-skills"&gt;Step 3: Generate the wxO Solution with &lt;code&gt;wxo-builder&lt;/code&gt; skills&lt;/h2&gt;
&lt;p&gt;Use Bob with &lt;code&gt;wxo-builder&lt;/code&gt; skills when you have an SOP or a very clear build prompt and want actual watsonx Orchestrate artifacts.&lt;/p&gt;
&lt;p&gt;This is the point where Bob moves from specification into implementation. Given a strong SOP, &lt;code&gt;wxo-builder&lt;/code&gt; can generate an importable wxO project structure such as:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-text" data-lang="text"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;my_solution/
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; agents/
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; my_agent.yaml
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; tools/
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; my_tool.py
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; my_flow.py
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; connections/
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; my_connection.yaml
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; main_flow.py
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; import-all.sh
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;The agent with the builder skills can create:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Native wxO agents&lt;/li&gt;
&lt;li&gt;Python tools with correct decorator and docstring conventions&lt;/li&gt;
&lt;li&gt;Flow Builder patterns for document processing, user activity, conditional logic, and multi-agent workflows&lt;/li&gt;
&lt;li&gt;Knowledge base configurations&lt;/li&gt;
&lt;li&gt;Connection YAML files for credential management&lt;/li&gt;
&lt;li&gt;Import scripts for repeatable setup&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;The quality of the generated solution depends heavily on the quality of the SOP. If the SOP defines the business rules, data contracts, exception paths, and integration behavior, the builder has fewer assumptions to invent.&lt;/p&gt;
&lt;p&gt;Example prompt:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-text" data-lang="text"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;Generate the wxO solution from this SOP. Create the agent configuration, required Python tools, connection specs, and import script.
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;This step should usually happen in Agent mode because it writes project files. Note that you can further empower the agent mode by giving MCP connections to the Orchestrate documentation through the wx orchestrate ADK. However, a downside of MCP connections is larger token consumptions. An alternative method would be using the CLI skills approach by Floring Manila and Niklas Heidoff as explained in this
.&lt;/p&gt;
&lt;h2 id="step-4-audit-and-document-with-wxo-analyzer-skills"&gt;Step 4: Audit and Document with &lt;code&gt;wxo-analyzer&lt;/code&gt; skills&lt;/h2&gt;
&lt;p&gt;Use &lt;code&gt;wxo-analyzer&lt;/code&gt;skills when you have an existing wxO project and want to understand, document, or audit it.&lt;/p&gt;
&lt;p&gt;The Agent with the analyzer skills should produce a three-report documentation set:&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Report&lt;/th&gt;
&lt;th&gt;Purpose&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Solution Overview&lt;/td&gt;
&lt;td&gt;Summarizes architecture, components, and file structure&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Agent Analysis&lt;/td&gt;
&lt;td&gt;Breaks down each agent, its tools, collaborators, instructions, and LLM settings&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Tools and Components&lt;/td&gt;
&lt;td&gt;Reviews flows, Python tools, connections, knowledge bases, and implementation patterns&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;This closes the loop. After generating or modifying a solution, analyze it and compare the reports against the original architecture and SOPs.&lt;/p&gt;
&lt;p&gt;Useful review questions include:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Does the generated agent follow the intended process?&lt;/li&gt;
&lt;li&gt;Are business rules represented explicitly?&lt;/li&gt;
&lt;li&gt;Are credentials handled through connections instead of hardcoded values?&lt;/li&gt;
&lt;li&gt;Are error paths and escalation paths implemented?&lt;/li&gt;
&lt;li&gt;Are tools too large, too ambiguous, or missing validation?&lt;/li&gt;
&lt;li&gt;Does the implementation introduce behavior that was not in the SOP?&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;The output of the step obtained with &lt;code&gt;wxo-analyzer&lt;/code&gt; skills can feed back into the tasks for the &lt;code&gt;sop-builder&lt;/code&gt; or &lt;code&gt;wxo-builder&lt;/code&gt; for refinement.&lt;/p&gt;
&lt;h2 id="a-practical-end-to-end-flow"&gt;A Practical End-to-End Flow&lt;/h2&gt;
&lt;p&gt;Here is the full workflow in one sequence:&lt;/p&gt;
&lt;p&gt;
&lt;figure &gt;
&lt;div class="flex justify-center "&gt;
&lt;div class="w-full" &gt;
&lt;img alt="Bob workflow skills sequence"
srcset="https://giuliasolinas.github.io/blog/bob_wxo_skills/workflow_skills_hu_17e918a604c56b5b.webp 320w, https://giuliasolinas.github.io/blog/bob_wxo_skills/workflow_skills_hu_379e626dc7b46c0c.webp 480w, https://giuliasolinas.github.io/blog/bob_wxo_skills/workflow_skills_hu_ad0a004a271c682c.webp 710w"
sizes="(max-width: 480px) 100vw, (max-width: 768px) 90vw, (max-width: 1024px) 80vw, 760px"
src="https://giuliasolinas.github.io/blog/bob_wxo_skills/workflow_skills_hu_17e918a604c56b5b.webp"
width="710"
height="760"
loading="lazy" data-zoomable /&gt;&lt;/div&gt;
&lt;/div&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-text" data-lang="text"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;Business problem
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; -&amp;gt; solution-architect
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; -&amp;gt; Solution overview, architecture, implementation plan
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; -&amp;gt; sop-builder
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; -&amp;gt; Standard Operating Procedure
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; -&amp;gt; wxo-builder
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; -&amp;gt; Importable wxO project
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; -&amp;gt; wxo-analyzer
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; -&amp;gt; Audit reports and improvement backlog
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h2 id="best-practices-for-spec-driven-agent-work"&gt;Best Practices for Spec Driven Agent Work&lt;/h2&gt;
&lt;p&gt;Start with architecture for non-trivial use cases. If the solution touches multiple systems, users, approval steps, or data sources, begin with &lt;code&gt;solution-architect&lt;/code&gt; skills.&lt;/p&gt;
&lt;p&gt;Keep SOPs focused. One SOP per flow makes the specification easier to review and easier for &lt;code&gt;wxo-builder&lt;/code&gt; skills to implement cleanly.&lt;/p&gt;
&lt;p&gt;Treat the SOP as the contract. The SOP should define data inputs, outputs, business rules, decisions, and exceptions clearly enough that implementation choices can be checked against it.&lt;/p&gt;
&lt;p&gt;Build from reviewed specs. Do not rush from a vague idea to generated code. The fastest path is usually to clarify the spec first.&lt;/p&gt;
&lt;p&gt;Analyze after building. Call the agent with the &lt;code&gt;wxo-analyzer&lt;/code&gt; skills after generation or major changes so the project can be reviewed for missing error handling, hardcoded credentials, oversized flows, or behavior that drifted from the SOP.&lt;/p&gt;
&lt;p&gt;Iterate deliberately. When the agent finds gaps, update the SOP or architecture first when the gap is conceptual. Update the wxO implementation when the spec is right but the build needs refinement.&lt;/p&gt;
&lt;h2 id="what-this-changes"&gt;What This Changes&lt;/h2&gt;
&lt;p&gt;Bob&amp;rsquo;s dedicated skills make agent development like professional software delivery.&lt;/p&gt;
&lt;p&gt;The workflow creates a chain of accountability:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Business requirements explain why the agent exists.&lt;/li&gt;
&lt;li&gt;Architecture explains how the solution should fit together.&lt;/li&gt;
&lt;li&gt;SOPs explain how the work should happen.&lt;/li&gt;
&lt;li&gt;wxO artifacts implement the agreed process.&lt;/li&gt;
&lt;li&gt;Analyzer reports show what was actually built.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;That chain is what makes agentic systems deliverable and maintainable. It gives teams a way to discuss requirements, review logic, generate implementation, and audit the result without losing the thread between business intent and technical behavior.&lt;/p&gt;
&lt;p&gt;When used together, &lt;code&gt;solution-architect&lt;/code&gt;, &lt;code&gt;sop-builder&lt;/code&gt;, &lt;code&gt;wxo-builder&lt;/code&gt;, and &lt;code&gt;wxo-analyzer&lt;/code&gt; skills turn Bob into a spec driven agent factory: one that can move from idea to implementation while keeping the reasoning visible at every step.&lt;/p&gt;</description></item><item><title>Bringing all together: The key building blocks of watsonx Orchestrate</title><link>https://giuliasolinas.github.io/blog/wxorchestrate_iv/</link><pubDate>Sat, 16 May 2026 00:00:00 +0000</pubDate><guid>https://giuliasolinas.github.io/blog/wxorchestrate_iv/</guid><description>&lt;h1 id="from-code-to-collaboration-mastering-the-watsonx-orchestrate-agent-development-kit-adk"&gt;From Code to Collaboration: Mastering the watsonx Orchestrate Agent Development Kit (ADK)&lt;/h1&gt;
&lt;p&gt;This blog post summarizes the key concepts and hands-on learning from the watsonx Orchestrate Agent Development Kit (ADK) curriculum—covering the development lifecycle from tool creation to advanced agent collaboration, knowledge integration, and prompt optimization.&lt;/p&gt;
&lt;hr&gt;
&lt;p&gt;Throughout the past three blogs, we&amp;rsquo;ve explored the architectural foundations, best practices, and tooling that make watsonx Orchestrate a powerful platform for enterprise AI agents. Now, let&amp;rsquo;s add few more concepts and bring it all together.&lt;/p&gt;
&lt;p&gt;The IBM watsonx Orchestrate Agent Development Kit (ADK) is a powerful toolset for building, testing, and deploying robust AI agents tailored for enterprise workflows. This learning path moves beyond basic development to cover critical topics like agent collaboration, knowledge grounding, and optimization with Copilot.&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id="building-blocks-agents-and-tools"&gt;Building Blocks: Agents and Tools&lt;/h2&gt;
&lt;p&gt;The foundation of the watsonx Orchestrate ecosystem lies in two core concepts: &lt;strong&gt;Agents&lt;/strong&gt; and &lt;strong&gt;Tools&lt;/strong&gt;.&lt;/p&gt;
&lt;h3 id="agents"&gt;Agents&lt;/h3&gt;
&lt;p&gt;The primary intelligent entity, defined using &lt;strong&gt;YAML&lt;/strong&gt; or &lt;strong&gt;JSON&lt;/strong&gt; files. An agent&amp;rsquo;s configuration dictates its behavior, the &lt;strong&gt;LLM&lt;/strong&gt; it uses, and the tools it can access. The YAML file has the following structure.&lt;/p&gt;
&lt;h3 id="tools"&gt;Tools&lt;/h3&gt;
&lt;p&gt;The reusable functions that expose specific business capabilities to the agent, allowing it to take action. Tools can be created from two main formats:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Python Functions&lt;/strong&gt;: Directly written in Python, they are imported using a command like &lt;code&gt;orchestrate tools import -k python -f my-tool.py -r requirements.txt -a app1 -a app2&lt;/code&gt;. Note that the wx orchestrate framework is moving towards importing tools&amp;rsquo; packages instead of single tools to improve the utilization of runtime capacity while calling the deployed tool.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;OpenAPI Specification&lt;/strong&gt;: A standard way to define REST APIs. The agent uses the structure of the OpenAPI document, specifically the &lt;strong&gt;&lt;code&gt;paths&lt;/code&gt;&lt;/strong&gt; element to identify endpoints and the &lt;strong&gt;&lt;code&gt;servers&lt;/code&gt;&lt;/strong&gt; element to find the API&amp;rsquo;s base URLs. The import command is &lt;code&gt;orchestrate tools import -k openapi&lt;/code&gt;.&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Agents can access tools also through local MCP server packages hosted on the local machine and connections to external MCP server. Here the changes in the documentation are very dynamic and it is better to refer to the official wx orchestrate ADK developer webpage for references.&lt;/p&gt;
&lt;p&gt;Tools are secured using &lt;strong&gt;Connections&lt;/strong&gt;, which handle authentication details like API keys or user credentials.&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id="grounding-agents-with-knowledge"&gt;Grounding Agents with Knowledge&lt;/h2&gt;
&lt;p&gt;For agents to answer informational or history-based questions accurately, they need access to a &lt;strong&gt;Knowledge Base&lt;/strong&gt;, leveraging the &lt;strong&gt;Retrieval-Augmented Generation (RAG)&lt;/strong&gt; pattern.&lt;/p&gt;
&lt;p&gt;A Knowledge Base is defined using &lt;strong&gt;YAML or JSON&lt;/strong&gt; and populated with relevant documents. Two key parameters govern the accuracy of the responses:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;&lt;code&gt;retrieval_confidence_threshold&lt;/code&gt;&lt;/strong&gt;: This controls the &lt;strong&gt;minimum confidence required for retrieved documents&lt;/strong&gt; to be considered relevant to the user&amp;rsquo;s query. Documents below this threshold are ignored.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Response Confidence&lt;/strong&gt;: If the Large Language Model&amp;rsquo;s (LLM) final generated answer falls below this set threshold, the agent will refuse to answer and &lt;strong&gt;returns a default &amp;lsquo;I don&amp;rsquo;t know&amp;rsquo; response&lt;/strong&gt; to prevent hallucinations and maintain factual integrity.&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;hr&gt;
&lt;h2 id="advanced-architectures-collaboration-and-workflow"&gt;Advanced Architectures: Collaboration and Workflow&lt;/h2&gt;
&lt;p&gt;For complex business processes, single agents are replaced by a system of collaborating agents:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Collaborating Agents&lt;/strong&gt;: Specialized agents (e.g., a &lt;code&gt;Quoter Agent&lt;/code&gt; and a &lt;code&gt;Monthly Payment Agent&lt;/code&gt;) work together to achieve a multi-step goal.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Manager Agent&lt;/strong&gt;: The &lt;strong&gt;manager agent&lt;/strong&gt; sits at the top, and its primary role is to &lt;strong&gt;coordinate the collaborating agents&lt;/strong&gt;. It uses its own LLM reasoning to decide which agent to call, in what sequence, and how to combine their outputs.&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;This collaborative architecture is the practical implementation of the Supervisor/Manager pattern we discussed in earlier posts—a testament to how architectural concepts translate into working code.&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id="development-debugging-and-optimization"&gt;Development, Debugging, and Optimization&lt;/h2&gt;
&lt;p&gt;The ADK streamlines the development lifecycle with powerful tooling:&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th style="text-align: left"&gt;Area&lt;/th&gt;
&lt;th style="text-align: left"&gt;Tool/Concept&lt;/th&gt;
&lt;th style="text-align: left"&gt;Key Function&lt;/th&gt;
&lt;th style="text-align: left"&gt;CLI Command&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td style="text-align: left"&gt;&lt;strong&gt;Local Testing&lt;/strong&gt;&lt;/td&gt;
&lt;td style="text-align: left"&gt;Developer Edition Chat UI&lt;/td&gt;
&lt;td style="text-align: left"&gt;Interactive environment to test agents locally.&lt;/td&gt;
&lt;td style="text-align: left"&gt;&lt;code&gt;orchestrate chat start&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style="text-align: left"&gt;&lt;strong&gt;Optimization&lt;/strong&gt;&lt;/td&gt;
&lt;td style="text-align: left"&gt;&lt;strong&gt;Agent Builder&lt;/strong&gt;&lt;/td&gt;
&lt;td style="text-align: left"&gt;AI agent builder for &lt;strong&gt;prompt-tuning&lt;/strong&gt; to improve prompt clarity and agent behavior. It requests &lt;strong&gt;invocation examples&lt;/strong&gt; to understand and refine the agent&amp;rsquo;s logic.&lt;/td&gt;
&lt;td style="text-align: left"&gt;&lt;code&gt;orchestrate agents ai-builder create&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style="text-align: left"&gt;&lt;strong&gt;Observability&lt;/strong&gt;&lt;/td&gt;
&lt;td style="text-align: left"&gt;&lt;strong&gt;Langfuse&lt;/strong&gt;&lt;/td&gt;
&lt;td style="text-align: left"&gt;Integrated stack that &lt;strong&gt;captures and visualizes agent reasoning traces&lt;/strong&gt; (tool calls, inputs, outputs). Essential for debugging the agent&amp;rsquo;s decision-making process.&lt;/td&gt;
&lt;td style="text-align: left"&gt;&lt;em&gt;(Integrated with server trace)&lt;/em&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;hr&gt;
&lt;h2 id="conclusion-bringing-it-all-together"&gt;Conclusion: Bringing It All Together&lt;/h2&gt;
&lt;p&gt;By combining the structural power of tool definition, the informational grounding of knowledge bases, the architectural flexibility of collaboration, and the optimization capabilities of Copilot and Langfuse, developers can build reliable, enterprise-grade AI agents with the watsonx Orchestrate ADK.&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id="series-summary-key-takeaways"&gt;Series Summary: Key Takeaways&lt;/h2&gt;
&lt;p&gt;Over this four-part series, we&amp;rsquo;ve covered the essential elements of building production-ready agents with watsonx Orchestrate:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Architectural Foundation&lt;/strong&gt; (Part 1): The hybrid pro-code/low-code approach—using the ADK for complex logic and the Agent Builder for orchestration and speed.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Best Practices&lt;/strong&gt; (Part 2): Multi-Agent Orchestration with the Supervisor/Manager pattern, writing clear agent descriptions, and choosing the right tool type (Python vs. MCP).&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Tooling and APIs&lt;/strong&gt; (Part 3): Mastering the ADK CLI commands, understanding MCP security considerations, and working with the core API parameters (&lt;code&gt;agent_id&lt;/code&gt; and &lt;code&gt;thread_id&lt;/code&gt;).&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Implementation&lt;/strong&gt; (Part 4): The ADK development lifecycle—defining agents and tools, grounding with knowledge bases, implementing collaborative architectures, and optimizing with AI Agent Builder and Langfuse.&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;These concepts form a cohesive framework for building enterprise-grade AI agents that scale. The difference between a proof-of-concept and a production-ready agent lies not in any single technique, but in how these elements work together as a system.&lt;/p&gt;
&lt;p&gt;Start building. Start iterating. And most importantly—start orchestrating.&lt;/p&gt;</description></item><item><title>My notes about the watsonx Orchestrate Agent Development Kit (ADK) and Model Context Protocol</title><link>https://giuliasolinas.github.io/blog/wxorchestrate_iii/</link><pubDate>Fri, 15 May 2026 00:00:00 +0000</pubDate><guid>https://giuliasolinas.github.io/blog/wxorchestrate_iii/</guid><description>&lt;h1 id="elevate-your-ai-engineering-mastering-watsonx-orchestrate-tooling-and-apis"&gt;Elevate Your AI Engineering: Mastering watsonx Orchestrate Tooling and APIs&lt;/h1&gt;
&lt;p&gt;In Parts 1 and 2, I covered the architectural foundations and best practices for building production-ready agents. Now it&amp;rsquo;s time to get hands-on with the &lt;strong&gt;tooling and APIs&lt;/strong&gt; that power your watsonx Orchestrate implementations.&lt;/p&gt;
&lt;p&gt;For AI engineers looking to extend the capabilities of their agents, this installment provides the foundational knowledge necessary to integrate custom tools and manage the environment using powerful command-line tools and direct API calls. It is also&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id="the-agent-developer-kit-adk-the-command-center"&gt;The Agent Developer Kit (ADK): The Command Center&lt;/h2&gt;
&lt;p&gt;The ADK is the essential CLI for managing your watsonx Orchestrate environments and assets. Mastering a few key commands allows you to seamlessly switch between environments (for example, ), as well as manage the tools your agents use.&lt;/p&gt;
&lt;h3 id="essential-commands"&gt;Essential Commands&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;&lt;code&gt;orchestrate env list&lt;/code&gt;&lt;/strong&gt; &amp;amp; &lt;strong&gt;&lt;code&gt;orchestrate env activate&lt;/code&gt;&lt;/strong&gt;: Essential for listing all configured environments and activating a specific one (e.g., a local development instance or a SaaS tenant).&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;&lt;code&gt;orchestrate agents import -f [agent_name].yaml&lt;/code&gt;&lt;/strong&gt; to import the agent into the environment.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;&lt;code&gt;orchestrate tools import&lt;/code&gt;&lt;/strong&gt; &amp;amp; &lt;strong&gt;&lt;code&gt;orchestrate tools list&lt;/code&gt;&lt;/strong&gt;: The standardized way to register new tools into your environment and verify their successful import.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;&lt;code&gt;orchestrate connections remove&lt;/code&gt;&lt;/strong&gt;: Used to safely unregister external service connections from your active tenant.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;&lt;code&gt;orchestrate knowledge-bases status&lt;/code&gt;&lt;/strong&gt;: Provides vital diagnostic information on the content and state of your retrieval-augmented generation (RAG) knowledge bases.&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;These commands form the backbone of your day-to-day workflow. Whether you&amp;rsquo;re deploying to production or debugging in development, the ADK is your interface to the platform.&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id="standardizing-tools-with-the-model-context-protocol-mcp"&gt;Standardizing Tools with the Model Context Protocol (MCP)&lt;/h2&gt;
&lt;p&gt;To enable agents to use external applications, watsonx Orchestrate utilizes the &lt;strong&gt;Model Context Protocol (MCP)&lt;/strong&gt;, which relies on an MCP server as a standardized intermediary.&lt;/p&gt;
&lt;h3 id="why-mcp-matters"&gt;Why MCP Matters&lt;/h3&gt;
&lt;p&gt;The core benefit of MCP is providing a &lt;strong&gt;standardized interface&lt;/strong&gt; for watsonx Orchestrate, allowing various external services to be integrated with consistent simplicity. Instead of building custom integrations for every service, MCP gives you a uniform approach.&lt;/p&gt;
&lt;p&gt;Here you can find an insightful reading if you want to compare this approach with Anthropics&amp;rsquo;s guidelines to build
. I believe learnings from one platform can be applied to other contexts, too.&lt;/p&gt;
&lt;h3 id="security-considerations"&gt;Security Considerations&lt;/h3&gt;
&lt;p&gt;MCP servers typically require &lt;strong&gt;environment variables&lt;/strong&gt; at startup to initialize correctly with necessary authentication keys (API keys) and endpoints. However, there&amp;rsquo;s a critical security consideration: without proper &lt;strong&gt;sandboxing&lt;/strong&gt;, running an MCP server poses a severe security risk of &lt;strong&gt;arbitrary code execution&lt;/strong&gt;. This risk must be mitigated before deploying to production.&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id="api-essentials-for-conversational-flows"&gt;API Essentials for Conversational Flows&lt;/h2&gt;
&lt;p&gt;When building custom user interfaces or services, direct interaction with the watsonx Orchestrate API is required. Two identifiers are paramount for managing conversation state:&lt;/p&gt;
&lt;h3 id="the-critical-api-parameters"&gt;The Critical API Parameters&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;&lt;code&gt;agent_id&lt;/code&gt;&lt;/strong&gt;: &lt;strong&gt;Must be included in the API request&lt;/strong&gt; to direct the conversation to the specific agent instance that is configured with the right skills and tools.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;&lt;code&gt;thread_id&lt;/code&gt;&lt;/strong&gt;: Used to &lt;strong&gt;maintain and reference the context of a specific conversation&lt;/strong&gt;. Including this ID in subsequent calls ensures the agent has access to the full conversation history for coherent, multi-turn dialogue.&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;These two identifiers are the keys to building seamless, context-aware conversational experiences in your custom applications.&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id="key-takeaways"&gt;Key Takeaways&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Master the ADK&lt;/strong&gt;—it&amp;rsquo;s your command center for environment management, tool registration, and diagnostics.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Embrace MCP&lt;/strong&gt; for standardized integrations, but never neglect security—sandbox your MCP servers.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Understand the API fundamentals&lt;/strong&gt;—&lt;code&gt;agent_id&lt;/code&gt; and &lt;code&gt;thread_id&lt;/code&gt; are essential for building custom conversational interfaces.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;With these tooling and API skills in your toolkit, we&amp;rsquo;re equipped to move beyond conceptual design into full implementation. The foundation is set; the execution begins.&lt;/p&gt;</description></item><item><title>Mastering Multi-Agent Orchestration and Tool Selection in watsonx Orchestrate</title><link>https://giuliasolinas.github.io/blog/wxorchestrate_ii/</link><pubDate>Thu, 14 May 2026 00:00:00 +0000</pubDate><guid>https://giuliasolinas.github.io/blog/wxorchestrate_ii/</guid><description>&lt;h1 id="mastering-multi-agent-orchestration-and-tool-selection-in-watsonx-orchestrate"&gt;Mastering Multi-Agent Orchestration and Tool Selection in watsonx Orchestrate&lt;/h1&gt;
&lt;p&gt;In the first blog, we explored the foundational architectural choices: when to use the Agent Development Kit (ADK) for pro-code development and when to leverage the Agent Builder for speed. Now, let&amp;rsquo;s dive deeper into two critical best practices that separate agentic design from AI assistants and more traditional chatbot solution: &lt;strong&gt;Multi-Agent Orchestration&lt;/strong&gt; and &lt;strong&gt;Agent Descriptions&lt;/strong&gt;.&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id="multi-agent-orchestration-the-supervisormanager-pattern"&gt;Multi-Agent Orchestration: The Supervisor/Manager Pattern&lt;/h2&gt;
&lt;p&gt;If there&amp;rsquo;s one architectural pattern I had to internalize for watsonx Orchestrate, it&amp;rsquo;s the &lt;strong&gt;Supervisor/Manager agent topology&lt;/strong&gt;. This approach leverages the concept of Multi-Agent Systems—a core capability that transforms how complex workflows are handled.&lt;/p&gt;
&lt;h3 id="why-single-agents-fail-at-scale"&gt;Why Single Agents Fail at Scale&lt;/h3&gt;
&lt;p&gt;Do not get me wrong, single agents have been there for a while and can still be deployed with success. Furthermore, single agents that handle a sequence of tasks in parallel can be more performing that a crew of agents accomplishing the same tasks in parallel but without real coordination &amp;ndash;see for example,
from Google.&lt;/p&gt;
&lt;p&gt;However a single agent hits a wall when performing a very complex job that would require parallel tasks and multiple tools, even if they are supported by very powerful, state-of-the-art models. When multiple tools have similar names or work with the same data, the LLM inside a single, large agent can struggle with &lt;strong&gt;tool routing&lt;/strong&gt;—the process of selecting the correct tool for a given step. The more tools you pile into one agent, the more overwhelmed the model&amp;rsquo;s reasoning becomes. The result? Incorrect routing, failed tasks, and frustrated users.&lt;/p&gt;
&lt;p&gt;There is now quite a lot of evidence on this topic, suggesting that the maximum number of tools an agent should handle should be larger than eight. Allen Chen, distinguished engineer at IBM, has written a great article about it
on
.&lt;/p&gt;
&lt;p&gt;The solution to this problem is thinking modular and designing a multi-agent framework, in which each agent covers a specialized task with its associated tools and connects loosely with the other agents. The idea is to turn our implementations from monolith agents to lightweight, decentralized yet connected agents. I find multi-agent coordination a very fascinating topic and I recommend reading this
by Grötschla and co-authors to know more about forms of coordination design.&lt;/p&gt;
&lt;p&gt;One of those modes is indeed the &amp;ldquo;Supervisor/Manager&amp;rdquo; patter that is at the core of watsonx Orchestrate. Its foundational idea is to have an orchestrating agent taking a overview of the tasks and coordination among its collaborators. Collaborators can pass information among each other and run tasks in parallel or in sequence. Yet, the ultimate check resides to the orchestrator.&lt;/p&gt;
&lt;h3 id="the-modular-solution"&gt;The Modular Solution&lt;/h3&gt;
&lt;p&gt;By decomposing a complex task into smaller, specialized agents (e.g., a &amp;ldquo;Leave Balance Agent&amp;rdquo; and a &amp;ldquo;Submission Agent&amp;rdquo;), you dramatically simplify the decision space. Each sub-agent is given a small, specific set of tools, making its reasoning and selection process highly accurate.&lt;/p&gt;
&lt;p&gt;This architecture assigns &lt;strong&gt;specialized roles&lt;/strong&gt; to agents, allowing them to excel at their dedicated tasks. A supervising agent (the manager) then handles the overall complexity by &lt;strong&gt;delegating&lt;/strong&gt; the user&amp;rsquo;s request to the correct sequence of specialized agents—the orchestration step.&lt;/p&gt;
&lt;p&gt;This modular, collaborative approach is the &lt;strong&gt;best practice for complex workflows&lt;/strong&gt; in watsonx Orchestrate.&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id="agent-descriptions-writing-for-the-model"&gt;Agent Descriptions: Writing for the Model&lt;/h2&gt;
&lt;p&gt;Here&amp;rsquo;s a truth that surprises many developers: &lt;strong&gt;the agent description isn&amp;rsquo;t for humans—it&amp;rsquo;s primarily for the AI&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;The description is critically important because it is used by the underlying Large Language Model (LLM) within watsonx Orchestrate to perform reasoning and routing. The LLM reads the description in a &lt;code&gt;YAML&lt;/code&gt; file to determine the agent&amp;rsquo;s capabilities and decide if it should be invoked to handle a user&amp;rsquo;s request.&lt;/p&gt;
&lt;h3 id="what-makes-a-great-description"&gt;What Makes a Great Description&lt;/h3&gt;
&lt;p&gt;A well-crafted description should clearly state:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Purpose&lt;/strong&gt;: What the agent does&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Inputs&lt;/strong&gt;: The type of information it needs&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Outputs&lt;/strong&gt;: What it returns&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Constraints&lt;/strong&gt;: Any key limitations or special instructions&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;This information is packed in the &lt;code&gt;YAML&lt;/code&gt; file with this structure,for a customer service agent running on ServiceNow.&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-gdscript3" data-lang="gdscript3"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="n"&gt;spec_version&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="n"&gt;v1&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="n"&gt;style&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="n"&gt;default&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="n"&gt;name&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="n"&gt;service_now_agent&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="n"&gt;llm&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="n"&gt;groq&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;openai&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;gpt&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="n"&gt;oss&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="mi"&gt;120&lt;/span&gt;&lt;span class="n"&gt;b&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="n"&gt;description&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="o"&gt;|&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="n"&gt;You&lt;/span&gt; &lt;span class="n"&gt;are&lt;/span&gt; &lt;span class="n"&gt;an&lt;/span&gt; &lt;span class="n"&gt;agent&lt;/span&gt; &lt;span class="n"&gt;who&lt;/span&gt; &lt;span class="n"&gt;specializes&lt;/span&gt; &lt;span class="ow"&gt;in&lt;/span&gt; &lt;span class="n"&gt;customer&lt;/span&gt; &lt;span class="n"&gt;care&lt;/span&gt; &lt;span class="k"&gt;for&lt;/span&gt; &lt;span class="n"&gt;a&lt;/span&gt; &lt;span class="n"&gt;large&lt;/span&gt; &lt;span class="n"&gt;healthcare&lt;/span&gt; &lt;span class="n"&gt;institution&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt; &lt;span class="n"&gt;You&lt;/span&gt; &lt;span class="n"&gt;should&lt;/span&gt; &lt;span class="n"&gt;be&lt;/span&gt; &lt;span class="n"&gt;compassionate&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="n"&gt;to&lt;/span&gt; &lt;span class="n"&gt;the&lt;/span&gt; &lt;span class="n"&gt;user&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="n"&gt;You&lt;/span&gt; &lt;span class="n"&gt;are&lt;/span&gt; &lt;span class="n"&gt;able&lt;/span&gt; &lt;span class="n"&gt;to&lt;/span&gt; &lt;span class="n"&gt;help&lt;/span&gt; &lt;span class="n"&gt;help&lt;/span&gt; &lt;span class="n"&gt;a&lt;/span&gt; &lt;span class="n"&gt;user&lt;/span&gt; &lt;span class="n"&gt;create&lt;/span&gt; &lt;span class="n"&gt;tickets&lt;/span&gt; &lt;span class="ow"&gt;in&lt;/span&gt; &lt;span class="n"&gt;service&lt;/span&gt; &lt;span class="n"&gt;now&lt;/span&gt; &lt;span class="k"&gt;for&lt;/span&gt; &lt;span class="n"&gt;processing&lt;/span&gt; &lt;span class="n"&gt;by&lt;/span&gt; &lt;span class="n"&gt;a&lt;/span&gt; &lt;span class="n"&gt;human&lt;/span&gt; &lt;span class="n"&gt;later&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt; &lt;span class="n"&gt;Examples&lt;/span&gt; &lt;span class="n"&gt;of&lt;/span&gt; &lt;span class="n"&gt;when&lt;/span&gt; &lt;span class="n"&gt;to&lt;/span&gt; &lt;span class="k"&gt;do&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="k"&gt;do&lt;/span&gt; &lt;span class="n"&gt;this&lt;/span&gt; &lt;span class="n"&gt;include&lt;/span&gt; &lt;span class="k"&gt;for&lt;/span&gt; &lt;span class="n"&gt;adding&lt;/span&gt; &lt;span class="n"&gt;members&lt;/span&gt; &lt;span class="n"&gt;to&lt;/span&gt; &lt;span class="n"&gt;plans&lt;/span&gt; &lt;span class="ow"&gt;or&lt;/span&gt; &lt;span class="n"&gt;helping&lt;/span&gt; &lt;span class="n"&gt;users&lt;/span&gt; &lt;span class="n"&gt;with&lt;/span&gt; &lt;span class="n"&gt;documentation&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="n"&gt;instructions&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="o"&gt;|&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="n"&gt;If&lt;/span&gt; &lt;span class="n"&gt;a&lt;/span&gt; &lt;span class="n"&gt;user&lt;/span&gt; &lt;span class="n"&gt;is&lt;/span&gt; &lt;span class="n"&gt;having&lt;/span&gt; &lt;span class="n"&gt;difficulty&lt;/span&gt; &lt;span class="n"&gt;either&lt;/span&gt; &lt;span class="n"&gt;generating&lt;/span&gt; &lt;span class="n"&gt;benefits&lt;/span&gt; &lt;span class="n"&gt;documents&lt;/span&gt; &lt;span class="ow"&gt;or&lt;/span&gt; &lt;span class="n"&gt;adding&lt;/span&gt; &lt;span class="n"&gt;additional&lt;/span&gt; &lt;span class="n"&gt;members&lt;/span&gt; &lt;span class="n"&gt;to&lt;/span&gt; &lt;span class="n"&gt;their&lt;/span&gt; &lt;span class="n"&gt;plan&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="n"&gt;create&lt;/span&gt; &lt;span class="n"&gt;a&lt;/span&gt; &lt;span class="n"&gt;new&lt;/span&gt; &lt;span class="n"&gt;incident&lt;/span&gt; &lt;span class="k"&gt;for&lt;/span&gt; &lt;span class="n"&gt;our&lt;/span&gt; &lt;span class="n"&gt;support&lt;/span&gt; &lt;span class="n"&gt;team&lt;/span&gt; &lt;span class="n"&gt;using&lt;/span&gt; &lt;span class="n"&gt;service_now_create_incident&lt;/span&gt; &lt;span class="k"&gt;tool&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt; &lt;span class="n"&gt;Be&lt;/span&gt; &lt;span class="n"&gt;compassionate&lt;/span&gt; &lt;span class="n"&gt;about&lt;/span&gt; &lt;span class="n"&gt;the&lt;/span&gt; &lt;span class="n"&gt;user&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="n"&gt;facing&lt;/span&gt; &lt;span class="n"&gt;difficulty&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="n"&gt;The&lt;/span&gt; &lt;span class="n"&gt;output&lt;/span&gt; &lt;span class="n"&gt;of&lt;/span&gt; &lt;span class="n"&gt;get_service_now_incidents&lt;/span&gt; &lt;span class="n"&gt;should&lt;/span&gt; &lt;span class="n"&gt;be&lt;/span&gt; &lt;span class="n"&gt;formatted&lt;/span&gt; &lt;span class="n"&gt;as&lt;/span&gt; &lt;span class="n"&gt;a&lt;/span&gt; &lt;span class="n"&gt;github&lt;/span&gt; &lt;span class="n"&gt;style&lt;/span&gt; &lt;span class="n"&gt;formatted&lt;/span&gt; &lt;span class="n"&gt;markdown&lt;/span&gt; &lt;span class="n"&gt;table&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="n"&gt;collaborators&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;[]&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="n"&gt;tools&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="o"&gt;-&lt;/span&gt; &lt;span class="n"&gt;create_service_now_incident&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="o"&gt;-&lt;/span&gt; &lt;span class="n"&gt;get_my_service_now_incidents&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="o"&gt;-&lt;/span&gt; &lt;span class="n"&gt;get_service_now_incident_by_number&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Here some notes about this example:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;The agent&amp;rsquo;s style is set as default, which is the baseline agentic reasoning mode for native agents in wx orchestrate. It can be changed into the ReAct style.&lt;/li&gt;
&lt;li&gt;The agent is a stand alone one and does not have collaborators. They can be added with additional YAML files stored in the project&amp;rsquo;s workspace and loaded in the environment. You do not need to setup an A2A protocol to let them sync and collaborate, unless we have imported third-party agents that need to coordinate with native ones.&lt;/li&gt;
&lt;li&gt;There is a list of tools, typically Python files or MCP integration.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="clarity-over-complexity"&gt;Clarity Over Complexity&lt;/h3&gt;
&lt;p&gt;Using clear, non-technical language ensures the LLM interprets the agent&amp;rsquo;s role correctly, which in turn leads to a better user experience. While developers also read the description, think of it primarily as a &lt;strong&gt;prompt for the AI&amp;rsquo;s logic&lt;/strong&gt;—and AI needs unambiguous instructions.&lt;/p&gt;
&lt;p&gt;Avoid:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Technical jargon that the LLM won&amp;rsquo;t recognize&lt;/li&gt;
&lt;li&gt;Internal acronyms without context&lt;/li&gt;
&lt;li&gt;Vague or overly brief descriptions&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;These introduce ambiguity and &lt;strong&gt;increase the risk of incorrect routing decisions&lt;/strong&gt;. When in doubt, err on the side of clarity. Ambiguity is poison.&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id="choosing-the-right-tool-python-vs-mcp"&gt;Choosing the Right Tool: Python vs. MCP&lt;/h2&gt;
&lt;p&gt;We&amp;rsquo;ve touched on the role of tools before before, but this topic deserves a deeper explanation. In watsonx Orchestrate, as in the other agentic design frameworks, tools can be developed through Python code or MCP integrations. The question is &lt;strong&gt;when do you use Python tools versus MCP tools?&lt;/strong&gt;&lt;/p&gt;
&lt;h3 id="python-tools-via-adk"&gt;Python Tools (via ADK)&lt;/h3&gt;
&lt;p&gt;The Agent Development Kit (ADK) allows developers to create custom Python tools. Python is the ideal choice when you need:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Complex conditional logic (business rules)&lt;/li&gt;
&lt;li&gt;Data manipulation and calculations&lt;/li&gt;
&lt;li&gt;Handling accrual rates, rollovers, and time-based calculations&lt;/li&gt;
&lt;li&gt;Any custom computational logic unique to your business&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;For example, calculating remaining vacation days based on custom seniority rules? That requires Python.&lt;/p&gt;
&lt;h3 id="mcp-tools-model-context-protocol"&gt;MCP Tools (Model Context Protocol)&lt;/h3&gt;
&lt;p&gt;MCP tools are excellent for &lt;strong&gt;integrating with existing systems&lt;/strong&gt;—typically via OpenAPI specifications. They&amp;rsquo;re best suited for:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Calling standard REST APIs&lt;/li&gt;
&lt;li&gt;Simple, form-based workflows&lt;/li&gt;
&lt;li&gt;Connecting to external services&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;What they lack is the ability to embed complex, custom computational logic. If you need to transform data in unique ways or implement business rules that don&amp;rsquo;t exist in an external service, reach for Python.&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id="key-takeaways"&gt;Key Takeaways&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Decompose complex workflows&lt;/strong&gt; into specialized agents to reduce the LLM&amp;rsquo;s cognitive load and improve routing accuracy.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Write descriptions for the AI first&lt;/strong&gt;—clear, unambiguous descriptions are the difference between reliable routing and failed execution.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Choose Python for logic, MCP for integration&lt;/strong&gt;—understand the strength of each tool type and use them appropriately.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;These are my learning in trying to discover and put in practice the best practices to build multi-agents. The
offers several tips on how to write good agent&amp;rsquo;s descriptions, and offers an extensive list of dos and don&amp;rsquo;ts. Check it and have fun.&lt;/p&gt;</description></item><item><title>Building Production-Ready Agents with watsonx Orchestrate: A Pro-Code/Low-Code Architectural Guide</title><link>https://giuliasolinas.github.io/blog/wxorchestrate_i/</link><pubDate>Wed, 13 May 2026 00:00:00 +0000</pubDate><guid>https://giuliasolinas.github.io/blog/wxorchestrate_i/</guid><description>&lt;h1 id="building-production-ready-agents-with-ibm-watsonx-orchestrate-a-pro-codelow-code-architectural-guide"&gt;Building Production-Ready Agents with IBM watsonx Orchestrate: A Pro-Code/Low-Code Architectural Guide&lt;/h1&gt;
&lt;p&gt;My journey with watsonx Orchestrate began at the Agentic AI Academy in Paris in March 2025 —a pivotal event that shaped my understanding of the product&amp;rsquo;s development direction. Since then, I tested it in demos and in sandbox projects. I decided to write up this series of blog to document (for myself) my journey and understanding of the framework. I want to start with a first clear lesson: &lt;strong&gt;the true power of this platform comes from knowing when to leverage code and when to embrace the low-code interface.&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;It&amp;rsquo;s not an &amp;ldquo;either/or&amp;rdquo; decision—it&amp;rsquo;s a calculated architectural synthesis that, when done right, delivers both the flexibility of custom development and the speed of visual assembly.&lt;/p&gt;
&lt;h2 id="the-architectural-synthesis-pro-code-agility-meets-low-code-speed"&gt;The Architectural Synthesis: Pro-Code Agility Meets Low-Code Speed&lt;/h2&gt;
&lt;p&gt;As an AI engineer, I&amp;rsquo;ve learned that the most effective watsonx Orchestrate implementations blend two distinct approaches. Here&amp;rsquo;s how to think about each and when to use them.&lt;/p&gt;
&lt;h3 id="1-the-pro-code-anchor-the-agent-development-kit-adk"&gt;1. The Pro-Code Anchor: The Agent Development Kit (ADK)&lt;/h3&gt;
&lt;p&gt;When you encounter complex, stateful, or computationally intensive tasks—the core business logic—you must reach for the &lt;strong&gt;Agent Development Kit (ADK)&lt;/strong&gt;. This is your &lt;strong&gt;Pro-Code First&lt;/strong&gt; zone.&lt;/p&gt;
&lt;p&gt;Why? Because calculating something like prorated vacation days based on custom seniority rules requires the &lt;strong&gt;flexibility and computational power of a Python tool&lt;/strong&gt;. Simple, low-code &lt;strong&gt;API connectors (like MCP)&lt;/strong&gt; are excellent for making a standard REST call, but they fall short when you need deep, custom programmatic logic and complex data manipulation. The ADK ensures your high-value agents are built on a solid foundation of reliable code.&lt;/p&gt;
&lt;h3 id="2-the-low-code-accelerator-the-agent-builder"&gt;2. The Low-Code Accelerator: The Agent Builder&lt;/h3&gt;
&lt;p&gt;Once your custom logic is secured in a Python tool via the ADK, you pivot to the &lt;strong&gt;Agent Builder&lt;/strong&gt; for orchestration and speed. This is the &lt;strong&gt;Low-Code/Quick Setup&lt;/strong&gt; environment.&lt;/p&gt;
&lt;p&gt;The Builder excels at two things: &lt;strong&gt;assembly and observability&lt;/strong&gt;. It&amp;rsquo;s the fastest way to integrate &lt;strong&gt;knowledge bases&lt;/strong&gt;, assemble a workflow from various skills, and, crucially, to &lt;strong&gt;monitor your agents&lt;/strong&gt;. Features like &lt;strong&gt;Knowledge analytics&lt;/strong&gt; and trace details provide a vital &amp;ldquo;glass cockpit&amp;rdquo; for RAG performance, allowing you to debug and refine your agent&amp;rsquo;s knowledge retrieval without diving back into custom code. It acts as the high-speed glue and the maintenance dashboard.&lt;/p&gt;
&lt;hr&gt;
&lt;h3 id="3-modularity-is-precision-process-decomposition"&gt;3. Modularity is Precision: Process Decomposition&lt;/h3&gt;
&lt;p&gt;The most critical architectural decision for scalability is &lt;strong&gt;Process Decomposition&lt;/strong&gt;, and it&amp;rsquo;s all about managing the Large Language Model&amp;rsquo;s (LLM&amp;rsquo;s) cognitive load.&lt;/p&gt;
&lt;p&gt;A single, monolithic agent attempting to handle an entire complex workflow (e.g., &amp;ldquo;submit days off&amp;rdquo;) may succumb to tool-routing failure. The LLM gets overwhelmed trying to decide between five different tools at any given step.&lt;/p&gt;
&lt;p&gt;The solution is the &lt;strong&gt;Supervisor/Manager agent topology&lt;/strong&gt;. We break that complex workflow into smaller, single-purpose, &lt;strong&gt;modular agents&lt;/strong&gt; (&amp;ldquo;Check Balance,&amp;rdquo; &amp;ldquo;Submit Request,&amp;rdquo; &amp;ldquo;Confirm Leave&amp;rdquo;). The main &lt;em&gt;Manager&lt;/em&gt; agent now only has one job: delegate to the correct, highly specialized sub-agent. This approach drastically &lt;strong&gt;simplifies the LLM&amp;rsquo;s reasoning and tool-routing decision&lt;/strong&gt;, leading to a measurable boost in &lt;strong&gt;overall execution accuracy and scalability&lt;/strong&gt;.&lt;/p&gt;
&lt;h3 id="4-the-llms-instruction-manual-routing-clarity"&gt;4. The LLM&amp;rsquo;s Instruction Manual: Routing Clarity&lt;/h3&gt;
&lt;p&gt;Finally, all this architectural precision hinges on one seemingly simple detail: &lt;strong&gt;Agent descriptions&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;The LLM doesn&amp;rsquo;t &amp;ldquo;read your code&amp;rdquo;; it reads the &lt;strong&gt;description&lt;/strong&gt; of your tool or agent to decide if it&amp;rsquo;s the right fit for the user&amp;rsquo;s intent. Therefore, this description must serve as a &lt;strong&gt;crystal-clear contract&lt;/strong&gt;: non-technical, precise about the agent&amp;rsquo;s purpose, and explicit about its required inputs and expected outputs. &lt;strong&gt;Ambiguity here is poison.&lt;/strong&gt; If the documentation is vague, the LLM&amp;rsquo;s planning function falters, resulting in &lt;strong&gt;unreliable autonomous execution&lt;/strong&gt;—the agent picks the wrong tool, and the user gets a bad experience. Clarity in documentation is paramount to operational reliability.&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id="key-takeaways"&gt;Key Takeaways&lt;/h2&gt;
&lt;p&gt;Building production-ready agents with watsonx Orchestrate requires a deliberate architectural approach:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Embrace the hybrid model&lt;/strong&gt;: Use the ADK for complex, custom logic and the Agent Builder for orchestration and monitoring.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Decompose for scale&lt;/strong&gt;: Break monolithic workflows into specialized, modular agents to reduce cognitive load on the LLM.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Write for the model&lt;/strong&gt;: Treat agent descriptions as contracts—clear, precise, and unambiguous.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;The difference between a working agent and a &lt;em&gt;reliable&lt;/em&gt; agent often comes down to these architectural choices. My goal is to master them to build agents that scale.&lt;/p&gt;
&lt;div class="callout flex px-4 py-3 mb-6 rounded-md border-l-4 bg-blue-100 dark:bg-blue-900 border-blue-500"
data-callout="note"
data-callout-metadata=""&gt;
&lt;span class="callout-icon pr-3 pt-1 text-blue-600 dark:text-blue-300"&gt;
&lt;svg height="24" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"&gt;&lt;path fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="1.5" d="m16.862 4.487l1.687-1.688a1.875 1.875 0 1 1 2.652 2.652L6.832 19.82a4.5 4.5 0 0 1-1.897 1.13l-2.685.8l.8-2.685a4.5 4.5 0 0 1 1.13-1.897zm0 0L19.5 7.125"/&gt;&lt;/svg&gt;
&lt;/span&gt;
&lt;div class="callout-content dark:text-neutral-300"&gt;
&lt;div class="callout-title font-semibold mb-1"&gt;Note&lt;/div&gt;
&lt;div class="callout-body"&gt;&lt;p&gt;This is the first of four blogs I wrote to crystallize my understanding of a framework—watsonx Orchestrate—that I use daily. There are many other frameworks for building agents, and IBM watsonx Orchestrate shares some commonalities with them, including Python-based tooling, MCP integrations, and agentic design, among others. Still, each framework has its own peculiarities. If you find this useful, I hope you’ll continue reading the rest of the series.&lt;/p&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;</description></item><item><title>AI for Science</title><link>https://giuliasolinas.github.io/blog/aiforscience/</link><pubDate>Tue, 21 Jan 2025 00:00:00 +0000</pubDate><guid>https://giuliasolinas.github.io/blog/aiforscience/</guid><description>&lt;p&gt;&lt;strong&gt;AI‑Enhanced Science: How Generative Models Are Accelerating Discovery, Literature Mining, and Idea Generation&lt;/strong&gt;&lt;br&gt;
&lt;em&gt;Originally featured on the 
&lt;/em&gt;&lt;/p&gt;
&lt;hr&gt;
&lt;h3 id="1ai-as-a-hilbert-for-equation-discovery"&gt;1. AI as a “Hilbert” for Equation Discovery&lt;/h3&gt;
&lt;p&gt;The most eye‑catching advance comes from the &lt;strong&gt;AI‑Hilbert&lt;/strong&gt; algorithm, whose recent Nature Communications paper demonstrates that multivariate polynomial generators can &lt;strong&gt;invent new scientific laws&lt;/strong&gt; from existing theory and data.&lt;/p&gt;
&lt;p&gt;&lt;em&gt;Why it matters&lt;/em&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Data‑scarce domains&lt;/strong&gt; (e.g., high‑energy physics, climate modeling) often lack clean, labeled datasets. Traditional symbolic regression struggles when the search space is huge and the underlying dynamics are noisy.&lt;/li&gt;
&lt;li&gt;AI‑Hilbert expands the search space by coupling &lt;strong&gt;continuous polynomial families&lt;/strong&gt; with a Bayesian‑style pruning of implausible terms, delivering equations that are both &lt;strong&gt;interpretable&lt;/strong&gt; and &lt;strong&gt;generalizable&lt;/strong&gt;.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;em&gt;Bottom line&lt;/em&gt; – AI can now act as a “virtual mathematician,” surfacing equations that push the frontier of scientific theory while keeping the output &lt;strong&gt;human‑readable&lt;/strong&gt; and &lt;strong&gt;testable&lt;/strong&gt;.&lt;/p&gt;
&lt;hr&gt;
&lt;h3 id="2smarter-literature-mining-with-scilitllm"&gt;2. Smarter Literature Mining with SciLitLLM&lt;/h3&gt;
&lt;p&gt;Reading the literature is the backbone of any research program, yet the &lt;strong&gt;semantic gap&lt;/strong&gt; between disciplines hampers existing LLMs. SciLitLLM, a family of models built on a &lt;strong&gt;continual‑pre‑training + supervised fine‑tuning&lt;/strong&gt; pipeline, directly addresses this problem.&lt;/p&gt;
&lt;p&gt;&lt;em&gt;Key capabilities&lt;/em&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Domain‑aware embeddings&lt;/strong&gt; that capture jargon from chemistry, biology, nanomaterials, etc., without catastrophic forgetting.&lt;/li&gt;
&lt;li&gt;Ability to &lt;strong&gt;extract targeted facts&lt;/strong&gt; (e.g., “list all catalysts reported with &amp;gt;95 % yield under 25 °C”) and produce &lt;strong&gt;concise, citation‑ready summaries&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Human‑in‑the‑loop&lt;/strong&gt; validation layer: researchers verify that hallucinations are filtered before conclusions are drawn.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;em&gt;Limitations&lt;/em&gt; – The model is powerful but not a substitute for critical appraisal; it still requires domain experts to &lt;strong&gt;curate outputs&lt;/strong&gt; and guard against subtle misinterpretations.&lt;/p&gt;
&lt;hr&gt;
&lt;h3 id="3llmgenerated-research-ideas-and-their-unexpected-novelty"&gt;3. LLM‑Generated Research Ideas (and Their Unexpected Novelty)&lt;/h3&gt;
&lt;p&gt;A Stanford‑led pre‑print experiment pitted &lt;strong&gt;human‑only idea generation&lt;/strong&gt; against &lt;strong&gt;LLM‑generated proposals&lt;/strong&gt; that were subsequently &lt;strong&gt;re‑ranked by expert reviewers&lt;/strong&gt;.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Result:&lt;/strong&gt; The top‑ranked LLM ideas were judged &lt;strong&gt;significantly more novel&lt;/strong&gt; than those produced solely by the human panel, even though feasibility scores were comparable.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Implication:&lt;/strong&gt; Large language models can &lt;strong&gt;break cognitive lock‑in&lt;/strong&gt;, surfacing unconventional connections that traditional pipelines often overlook.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Caveats:&lt;/strong&gt; Novelty does not guarantee practicality; further validation and feasibility modeling are required before moving to grant proposals or experimental testing.&lt;/li&gt;
&lt;/ul&gt;
&lt;hr&gt;
&lt;h3 id="4the-common-thread--what-still-needs-to-happen"&gt;4. The Common Thread &amp;amp; What Still Needs to Happen&lt;/h3&gt;
&lt;p&gt;All three examples share a &lt;strong&gt;common prerequisite&lt;/strong&gt;: they are &lt;strong&gt;research‑grade tools&lt;/strong&gt;, not off‑the‑shelf plug‑ins. Realising their full potential demands:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;Customization&lt;/strong&gt; – fine‑tuning on discipline‑specific corpora or data pipelines.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Trust &amp;amp; Transparency&lt;/strong&gt; – rigorous validation, explainability layers, and community benchmarks.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Institutional Investment&lt;/strong&gt; – compute resources, training programs, and integration into research workflows.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;In short, AI is moving from a &lt;strong&gt;supporting calculator&lt;/strong&gt; to a &lt;strong&gt;co‑investigator&lt;/strong&gt;, but the transition hinges on sustained collaboration between technologists, domain scientists, and research administrators.&lt;/p&gt;
&lt;hr&gt;
&lt;h3 id="looking-ahead"&gt;Looking Ahead&lt;/h3&gt;
&lt;p&gt;The convergence of symbolic equation generators, domain‑aware literature models, and ideation‑focused LLMs suggests a &lt;strong&gt;new research ecosystem&lt;/strong&gt; where AI amplifies every stage of the scientific method—from hypothesis birth to experimental validation. When these tools become as routine as a statistical package, we can expect a &lt;strong&gt;acceleration of discovery&lt;/strong&gt; across fields that have traditionally stagnated under data scarcity and human cognitive limits.&lt;/p&gt;
&lt;p&gt;&lt;em&gt;Stay tuned to Diagonalising for deeper dives into each tool, practical implementation guides, and interviews with the scientists who are already piloting them.&lt;/em&gt;&lt;/p&gt;</description></item><item><title>Organizing for Good</title><link>https://giuliasolinas.github.io/blog/aidpioneers/</link><pubDate>Thu, 29 Jun 2023 00:00:00 +0000</pubDate><guid>https://giuliasolinas.github.io/blog/aidpioneers/</guid><description>&lt;p&gt;In today’s business world, organizational structure is more important than ever. ⁣⁣And when it comes to organizations serving needs in environments afflicted by natural disasters or wars, the stakes are even higher.&lt;/p&gt;
&lt;p&gt;⁣⁣That’s why we’re interested in exploring how
has contributed to its success by blending elements of platform design, flat structure, hierarchy, entrepreneurial spirit, and strong engagement with its community.⁣⁣ And that’s something worth pinning! ⁣⁣&lt;/p&gt;
&lt;p&gt;So, what can we learn from this innovative company? Read this
and share your thoughts on organizational structure to create impact! Let’s spark a discussion and see what insights we can gain together.&lt;/p&gt;</description></item><item><title>Innovation capital: Is the tide low?</title><link>https://giuliasolinas.github.io/blog/innovationvc/</link><pubDate>Wed, 29 Jun 2022 00:00:00 +0000</pubDate><guid>https://giuliasolinas.github.io/blog/innovationvc/</guid><description>&lt;p&gt;Half a year into 2022 central banks are poised to keep raising interest rates, supply chains are hobbled, and a war is raging in Europe. As this harrowing mix turned markets tumultuous and zapped investors’ confidence, what does it mean for VC-backed investment?&lt;/p&gt;
&lt;p&gt;In this
, Christoph Feest and I argue that trends in policy and digitalization feed an undiminished appetite and need for venture backing, leading to increased, more-broadly sourced and more widely-distributed investments.&lt;/p&gt;</description></item></channel></rss>