Workspaces for Nature Conservation

Mike's Notes

This is where I will keep detailed working notes on creating Workspaces for Nature Conservation. Eventually, these will become permanent, better-written documentation stored elsewhere. Hopefully, someone will come up with a better name than this working title.

This replaces coverage in Industry Workspace written on 13/10/2025.

Testing

The current online mockup is version 3 and will be updated frequently. If you are helping with testing, please remember to delete your browser cache so you see the daily changes. Eventually, a live demo version will be available for field trials.

Learning

Pipi first originated in 1997 as a way to support community-driven ecological restoration in NZ. Versions 1-4 were created by a team that I led at NZERN (New Zealand Ecological Restoration Network) and were very popular. It included ESRI GIS online mapping as part of ESRI GIS for Conservation. It was turning into a "NetSuite for Conservation". A very early form of cloud computing.

It had 300K lines of code, an 850-table database and thousands of methods.

However, a change of government and the Christchurch earthquakes destroyed a good system. From 2017, I rebuilt Pipi from memory as version 6, without the ecological restoration modules, as a generic platform. Now, years later, nature conservation is returning to Pipi, but in a much better way.

Why

I have many friends who have dedicated their lives to saving species from extinction, so anything that makes their jobs easier and more effective must be a good thing.

Resources

References


References

  • Reference

Repository

  • Home > Ajabbi Research > Library >
  • Home > Handbook > 

Last Updated

28/02/2026

Workspaces for Nature Conservation

By: Mike Peters
On a Sandy Beach: 24/11/2025

Mike is the inventor and architect of Pipi and the founder of Ajabbi.

Open-source

This open-source SaaS cloud system will be shared on GitHub and GitLab.

Dedication

This workspace is dedicated to the life and work of Don Merton and his Wildlife Service Team, who saved the Chatham Island Black Robin from extinction.

Richard Henry kākāpō held by Merton, Codfish Island / Whenua Hou, November 2010. 

Source: https://en.wikipedia.org/wiki/Don_Merton#/media/File:DonMerton_and_RichardHenry_Kakapo.jpg

Change Log

Ver 3 includes facility, nature, people, and tools.

Existing products

This is a basic comparison of features found in nature conservation software.

[TABLE]

Data Model

words

Database Entities

  • Facility
  • Party
  • etc

Systems

Standards

The workspace needs to comply with all international standards.

  • (To come)

Integrations

Possible to do via plugins (Wrappers etc)

Workspace navigation menu

This default outline needs a lot of work. The outline can be easily customised by future users using drag-and-drop and tick boxes to turn features off and on.

  • Enterprise Account
    • Applications
      • Nature Conservation (v.3)
        • Facility
          • Plant Nursery
            • Seed
            • Propagation
            • Growing
          • Shop
          • Zoo
            • Animal Health
            • Captive Breeding
        • Nature
          • Ecosystem
            • Climate
            • Landform
            • Soil
            • Taxonomy
        • People
          • Workers
          • Visitors
        • Tools
          • Agrichemical
          • Monitoring
          • Planting
          • Protection
          • Release
          • Spatial
          • Trapping
      • Customer (v2)
        • Bookmarks
          • (To come)
        • Support
          • Contact
          • Forum
          • Live Chat
          • Office Hours
          • Requests
          • Tickets
        • (To come)
          • Feature Vote
          • Feedback
          • Surveys
        • Learning
          • Explanation
          • How to Guide
          • Reference
          • Tutorial
        • Settings (v3)
          • Account
          • Billing
          • Deployments
            • Workspaces
              • Modules
              • Plugins
              • Templates
                • Eco-restoration
                • Park
                • Zoo
              • Users

      Lawrence Krauss: The War on Science — How Ideology Is Undermining Academia and Research

      Mike's Notes

      Interesting interview with Astrophysicist Lawrence Krauss, editor of The War on Science — How Ideology Is Undermining Academia and Research.

      I support free speech and academic freedom. These are necessary for science to be successful. The benefits of the modern world depend on science.

      Resources

      References

      • The War on Science — How Ideology Is Undermining Academia and Research by Lawrence Krauss.

      Repository

      • Home > Ajabbi Research > Library > Subscriptions > Quillette
      • Home > Handbook > 

      Last Updated

      23/11/2025

      Lawrence Krauss: The War on Science — How Ideology Is Undermining Academia and Research

      By: Jon Kay
      Quillette on YouTube: 03/11/2025

      "Over on YouTube, Lawrence Krauss talks with Jon Kay about the war on science inside the United States—from both the left and the right—and how attacks on the hard sciences are damaging to American national security." - Quilette

      Video Interview 39:25m


      The Book

      The Free Speech Union > Statement of Values

      The Free Speech Union stands for freedom of speech, of conscience, and of intellectual inquiry, which we regard as the essential pillars of a free society — the foundational freedoms on which all others depend. We believe that human beings cannot flourish outside a free society, which means they cannot flourish in the absence of free speech. Free speech is how knowledge is developed and shared, as well as our views about morality, religion, and politics. Robust debate – appealing to reason, evidence, and our shared values – is also the best way to resolve disagreements about issues big and small without descending to violence or intimidation. And free speech is the most effective bulwark against abuses of power by politicians, with history demonstrating that its denial is both the aim of tyrants, because it stops people from criticizing them, and an ominous precursor to the removal of other freedoms.

      We believe that free speech is currently under assault across the Anglosphere, particularly in those areas where it matters most, such as schools, universities, the arts, the entertainment industry, and the media. The aim of the Free Speech Union is to restore it and protect it.

      We take no position on the validity of others’ opinions, political or otherwise, whether expressed in speech, writing, performance, or in another form. However, we condemn all incitements to violence.

      We expect our members not to restrict others’ freedom of speech, and we hope that when engaging in discussions and disagreements, they keep faith with the spirit of the Enlightenment and use reason and evidence to prosecute their case, rather than engaging in ad hominem or seeking to silence opponents through harassment or intimidation. While we discourage offensive or personal attacks, particularly if based on a person’s membership of a particular group, we would not generally exclude people from joining the Free Speech Union or try to kick out existing members for engaging in uncivil behaviour (although we reserve the right to do so). The Free Speech Union believes that if society doesn’t uphold the right to express controversial, eccentric, heretical, provocative, or unwelcome opinions, then it doesn’t uphold free speech.

      As George Orwell said, “If liberty means anything at all, it means the right to tell people things they do not want to hear.”

      Language Models: A 75-Year Journey That Didn’t Start With Transformers

      Mike's Notes

      A fascinating history of LLM by Vincent Granville.

      Resources

      References

      • Reference

      Repository

      • Home > Ajabbi Research > Library > Subscriptions > MLtechniques AI Newsletter
      • Home > Ajabbi Research > Library > Authors > Vincent Granville
      • Home > Handbook > 

      Last Updated

      22/11/2025

      Language Models: A 75-Year Journey That Didn’t Start With Transformers

      By: Vincent Granville 
      MLtechniques AI Newsletter: 04/11/2025

      Vincent Granville is a pioneering data scientist, world-class machine learning and GenAI leader, co-founder of Data Science Central (acquired by TechTarget in 2020), founder of MLtechniques.com and GenAItechLab.com, former VC-funded executive, author and patent owner. Vincent’s past corporate experience includes Visa, Wells Fargo, eBay, NBC, Microsoft, and CNET. Vincent is also a former post-doc at Cambridge University, and the National Institute of Statistical Sciences (NISS).  

      Vincent published in Journal of Number Theory, Journal of the Royal Statistical Society (Series B), and IEEE Transactions on Pattern Analysis and Machine Intelligence. He authored multiple books, including “Synthetic Data and Generative AI” (Elsevier), available here. He lives in Washington state, and enjoys doing research on spatial stochastic processes, chaotic dynamical systems, experimental math and probabilistic number theory.

      Introduction

      Language models have existed for decades — long before today’s so-called “LLMs.” In the 1990s, IBM’s alignment models and smoothed n-gram systems trained on hundreds of millions of words set performance records. By the 2000s, the internet’s growth enabled “web as corpus” datasets, pushing statistical models to dominate natural language processing (NLP).

      Yet, many believe language modelling began in 2017 with Google’s Transformer architecture and BERT. In reality, Transformers revolutionized scalability but were just one step in a much longer evolution.

      I discuss the evolution of the technology starting decades ago, the recent rise of transformers, and how a new enterprise model is emerging, doing better without transformers, laborious training, hallucinations, or prompt engineering, while offering a higher level of security and explainability. Moving away from cost by token to cost by usage.

      Why Business Leaders Should Care

      • Language Models are a concept, not a single technology. They’ve been evolving for decades, and knowing their history helps executives:
      • Avoid overhyping “new” breakthroughs that are just rebrands.
      • Choose architectures fit for purpose not just the trendiest option.
      • Future-proof AI investments by recognizing that today’s architecture may not define tomorrow’s winners.

      A Timeline of Innovation

      1950–1970s: Rule-Based Pioneers

      • 1950: Alan Turing’s Imitation Game poses “Can machines think?”
      • 1966: ELIZA mimics a psychotherapist using pattern matching.
      • 1972: PARRY simulates a paranoid patient via scripted rules.

      Takeaway: Early models automated simple, predictable interactions — much like early IVR systems.

      1980s–1990s: Statistical Revolution

      • IBM’s n-gram models predict the next word using probability.
      • By the 1990s, statistical approaches outperformed hand-coded rules.
      Takeaway: The first true data-driven AI wave — proving data quality could beat handcrafted logic.

      2000s: Neural Networks Arrive

      • 1997: LSTMs enable memory of longer text sequences.
      • 2001–2003: Bengio’s Neural LM uses embeddings for word relationships.
      • 2013: Google’s word2vec makes semantic word embeddings accessible.

      Takeaway: Neural networks learned to represent meaning numerically and model long sequences, keeping the goal of next-word prediction.

      2014–2016: Sequence Learning & Attention

      • 2014: Seq2Seq enables sentence-to-sentence translation.
      • 2015: Attention mechanisms focus on key words in context.
      • 2016: Google Translate upgrades to LSTM-based seq2seq with attention — before Transformers existed.

      Takeaway: AI could now handle complex, context-rich tasks at internet scale making the way for “co-pilot” assistants that we know today.

      2017–2020: Transformer Era

      • 2017: Transformer architecture enables massive scalability.
      • 2018: BERT revolutionizes language understanding.
      • 2018–2020: OpenAI’s GPT series push generative capabilities.
      • 2022: ChatGPT brings conversational AI mainstream.

      Takeaway: Transformers didn’t just improve performance, they also democratized access to human-quality text generation.

      2023–2025: GPU Arms Race & Multimodal Models

      • Models like Claude, Gemini, o1, and DeepSeek R1 handle text, images, and reasoning.
      • Transformer-based architectures grow to massive sizes, requiring huge GPU clusters, energy, and cost.

      Takeaway: “Bigger is better” delivers capabilities but creates adoption barriers — including hallucinations, security risks, data privacy concerns, and high costs.

      xLLM: The Next Generation for Enterprises

      2025: xLLM launches as a purpose-built enterprise architecture delivering trustworthy AI, Accuracy, Security, and Explainability — without massive GPU dependencies.

      Core components:

      1. Smart Engine – Orchestrates AI logic, optimizes performance, and adapts to domain context, regardless of input (Web, corporate databases, or PDF repositories).
      2. Concise Tooling System – Streamlined tools for integration, fine-tuning, and operations. With proprietary agents for instance to perform predictions on retrieved tables.
      3. Response Generator – Produces reliable, context-aware outputs with minimal hallucinations, with precise references to the corpus for each statement in the response.

      Impact: Enables organizations to build, own, and scale secure models with full compliance and IP control — forming the foundation of the first Enterprise AI Operating System.

      Takeaway: xLLM shifts AI from a black box API to Enterprises to a strategic in-house capability, aligning AI adoption with business priorities, governance, and ROI.

      Conclusion

      Language models didn’t begin with Transformers — they’re the product of 75 years of innovation. From rule-based scripts to statistical models, neural networks, and now xLLM, each era brought breakthroughs shaped by technology and business needs. The winners in AI won’t just chase scale, they’ll select architectures that balance trustworthy AI, explainability, security, compliance, and cost while staying adaptable to the next wave of change. To learn more, I invite you attend my upcoming webinar entitled “Lead Smarter: Stay Ahead of AI Risks”, here.

      Acknowledgement

      I would like to thank Danilo Nato, CEO at BondingAI.io, who contributed to this article.

      The Pulse: Cloudflare takes down half the internet – but shares a great postmortem

      Mike's Notes

      Great explanation. Lots to learn from here. I'm planning on using Cloudflare, so it's good to be aware.

      Resources

      References

      • Reference

      Repository

      • Home > Ajabbi Research > Library > Subscriptions > Pragmatic Engineer
      • Home > Handbook > 

      Last Updated

      28/12/2025

      The Pulse: Cloudflare takes down half the internet – but shares a great postmortem

      By: Gergely Orosz
      Pragmatic Engineer: 20/11/2025

      Writing The Pragmatic Engineer. Previously at Uber, Skype, Microsoft. Author of The Software Engineer's Guidebook..

      A database permissions change ended up knocking Cloudflare’s proxy offline. Pinpointing the root cause was tricky – but Cloudflare shared a detailed postmortem. Also: announcing The Pragmatic Summit.

      Cloudflare takes down half the internet – but shares a great postmortem

      On Tuesday came another reminder about how much of the internet depends on Cloudflare’s content delivery network (CDN), when thousands of sites went fully or partially offline in an outage that lasted 6 hours. Some of the higher-profile victims included:

      • ChatGPT and Claude
      • Canva, Dropbox, Spotify,
      • Uber, Coinbase, Zoom
      • X and Reddit

      Separately, you may or may not recall that during a different recent outage caused by AWS, Elon Musk noted on his website, X, that AWS is a hard dependency for Signal, meaning an AWS outage could take down the secure messaging service at any moment. In response, a dev pointed out that it is the same for X with Cloudflare – and so it proved earlier this week, when X was broken by the Cloudflare outage.

      Predicting the future. 

      Source: Mehul Mohan on X

      That AWS outage was in the company’s us-east-1 region and took down a good part of the internet last month. AWS released incident details three days later – unusually speedy for the e-commerce giant – although that postmortem was high-level and we never learned exactly what caused AWS’s DNS Enactor service to slow down, triggering an unexpected race condition that kicked off the outage.

      What happened this time with Cloudflare?

      Within hours of mitigating the outage, Cloudflare’s CEO Matthew Prince shared an unusually detailed report of what exactly went wrong. The root cause was to do with propagating a configuration file to Cloudflare’s Bot Management module. The file crashed Bot Management, which took Cloudflare’s proxy functionality offline.

      Here’s a brief overview of how Cloudflare’s proxy layer works at a high level. It’s the layer that protects the “origin” resources of customers – minimizing network traffic to them by blocking malicious requests and caching static resources in Cloudflare’s CDN:

      How Cloudflare’s proxy works. More details on Cloudflare’s engineering blog

      Here’s how the incident unfolded:

      A database permissions change in ClickHouse kicked things off. Before the permissions changed, all queries to fetch feature metadata (to be used by the Bot Management module) would have only been run on distributed tables in Clickhouse, in a database called “default” which contains 60 features.

      Before the permissions change: about 60 features were returned, that were fed to the Bot Module

      Until now, these queries were running using a shared system account. Cloudflare’s engineering team wanted to improve system security and reliability, and move from this shared system account to individual user accounts. User accounts already had access to another database called “r0”, so the team made the database permission change for access to r0 to be implicit instead of explicit.

      As a side effect of this, the same query collecting the features to be passed to Bot Management started to fetch from the r0 database, and return many more features than expected:

      After the permissions change: the query did not change but returned twice as many results

      The Bot Management module does not allow loading of more than 200 features. This limit was well above the production usage of 60, and was put in place for performance reasons: the Bot Management module pre-allocates memory for up to 200 features, and it will not operate with more than this number.

      A system panic hit machines served with the incorrect feature file. Cloudflare was nice enough to share the exact code that caused this panic, which was this unwrap() function:


      Source: Cloudflare

      What likely happened:

      • The append_with_names() function likely checked for a limit of 200 features
      • If it saw more than 200 features, it likely returned an error
      • … and when writing the code, it was not expected that append_with_names() would return an error…
      • … and so .unwrap() panicked and crashed the system!

      Edge nodes started to crash, one by one, seemingly randomly. The feature file was being generated every 5 minutes, and gradually rolled out to Edge nodes. So, initially, it was only a few nodes that crashed, and then over time, more became non-responsive. At one point, both good and bad configuration files were being distributed, making failed nodes that received the good configuration file start working – for a while!

      Why so long to find the root cause?

      It took Cloudflare engineers unusually long – 2.5 hours! – to figure all this out, and that an incorrect configuration file propagating to Edge servers was to blame for their proxy going down. Turns out, an unrelated failure made the Cloudflare team suspect that they were under a coordinated botnet attack, as when a few of the Edge nodes started to go offline, the company’s status page did, too:

      Cloudflare’s status page went offline when the outage started.

      Source: Cloudflare

      The team tried to gather details about the attack, but there was no attack, meaning they wasted time looking in the wrong place. In reality, the status page going down was a coincidence and unrelated to the outage. But it’s easy to see why their first reaction was to figure out if there was a distributed denial of service (DDoS) attack.

      As mentioned, it eventually took 2.5 hours to pinpoint the incorrect configuration files as the source of the outage, and another hour to stop the propagation of new files, and create a new and correct file, which was deployed 3.5 hours after the start of the incident. Cleanup took another 2.5 hours, and at 17:06 UTC, the outage was resolved, ~6 hours after it started.

      Cloudflare shared a detailed review of the incident and learnings, which can be read here.

      How did the postmortem come so fast?

      One thing that keeps being surprising about Cloudflare is how they have a very detailed postmortem up in less than 24 hours after the incident is resolved. Cofounfer and CEO Matthew Prince explained how this was possible:

      • Matthew was part of the outage call.
      • After the outage was resolved, he wrote a first version of the incident review, at home. Matthew was in Lisbon, in Cloudflare’s European HQ, so this was early evening
      • The team circulated a Google Doc with this initial writeup, and questions that needed to be reviewed
      • In a few hours, all questions were answered
      • Matthew: “None of us were happy [about the incident] — we were embarrassed by what had happened — but we declared it [the postmortem] true and accurate.
      • Sent the draft over to the SF team, who did one more sweep, the posted it

      Talk about moving with the speed of a startup, despite being a publicly traded company!

      Learnings

      There is much to learn from this incident, such as:

      Be explicit about logging errors when you raise them! Cloudflare could probably have identified the root cause of this error much faster if the line of code that returned an error, also logged the error, and if Cloudflare had alerts set up when certain errors spiked on its nodes. It could have surely shaved an hour or two off the time it took to mitigate.

      Of course, logging errors before throwing them is extra work, but when done with monitoring or log analysis, it can help find the source of errors much faster.

      Global database changes are always risky. You never know what part of the system you might hit. The incident started with a seemingly innocuous database permissions change that impacted a wide range of queries. Unfortunately, there is no good way to test the impact of such changes (if you know one, please leave a comment below!)

      Cloudflare was making the right kind of change by removing global systems accounts; it’s a good direction to go in for security and reliability. It was extremely hard to predict the change would end up taking down a part of their system – and the web.

      Two things going wrong at the same time can really throw an engineering team. If Cloudflare’s status page did not go offline, the engineering team would have surely pinpointed the problem much faster than they did. But in the heat of the moment, it’s easy to assume that two small outages are connected, until there’s evidence that they’re not. Cloudflare is a service that’s continuously under attack, so the engineering team can’t be blamed for assuming it might be more of the same.

      CDNs are the backbone of the internet, and this outage doesn’t change that. The outage hit lots of large businesses, resulting in lost revenue for many. But could affected companies have prepared better for Cloudflare going down?

      The problem is that this is hard: using a CDN means taking on a hard dependency in order to reduce traffic on your own servers (the origin servers), while serving internet users faster and more cheaply:

      A CDN is a common way to reduce traffic to servers and serve webpages and APIs faster to users

      When using a CDN, you propagate addresses that point to that CDN server’s IP or domain. When the CDN goes down, you could start to redirect traffic to your own origin servers (and deal with the traffic spike), or utilize a backup CDN, if you prepared for this eventuality.

      Both these are expensive to pull off:

      • Redirecting to the origin servers likely means needing to suddenly scale up backend infrastructure
      • Having a backup CDN means there must be a contract and payment for a CDN partner which will most likely sit idle. As and when it is needed, you must switch over and warm up their cache: it’s a lot of effort and money to do this!

      A case study in the trickiness of dealing with a CDN going offline is the story of Downdetector, including inside details on why Downdetector went down during Cloudflare’s latest outage, and what they learned from it.

      Types of AI agents

      Mike's Notes

      I only built one type of AI agent. I didn't realise there were other types. Again, learned from the MLOPs community.

      By the way, I like how IBM organise their website information. Very clean and tidy, and no crap in their HTML when I copied it to this post. Very impressive and unusual.

      Resources

      References

      • Reference

      Repository

      • Home > Ajabbi Research > Library >
      • Home > Handbook > 

      Last Updated

      21/11/2025

      Types of AI agents

      By: Cole Stryker
      IBM: Accessed 21/11/2025

      Staff Editor, AI Models, IBM Think. Cole Stryker is an editor and writer based in Los Angeles, California. He's been telling stories about AI with IBM since 2017.

      Artificial intelligence (AI) has transformed the way machines interact with the world, enabling them to perceive, reason and act intelligently. At the core of many AI systems are intelligent agents, autonomous entities that make decisions and perform tasks based on their environment.

      These agents can range from simple rule-based systems to advanced learning systems powered by large language models (LLMs) that adapt and improve over time.

      AI agents are classified based on their level of intelligence, decision-making processes and how they interact with their surroundings to reach wanted outcomes. Some agents operate purely on predefined rules, while others use learning algorithms to refine their behavior.

      There are 5 main types of AI agents: simple reflex agents, model-based reflex agents, goal-based agents, utility-based agents and learning agents. Each type has distinct strengths and applications, ranging from basic automated systems to highly adaptable AI models.

      All 5 types can be deployed together as part of a multi-agent system, with each agent specializing in handling the part of the task for which they are best suited.

      Simple reflex agents

      A simple reflex agent is the most basic type of AI agent, designed to operate based on direct responses to environmental conditions. These agents follow predefined rules, known as condition-action rules, to make decisions without considering past experiences or future consequences.

      Reflex agents apply current perceptions of the environment through sensors and take action based on a fixed set of rules.

      For example, a thermostat is a simple reflex agent that turns on the heater if the temperature drops below a certain threshold and turns it off when the wanted temperature is reached. Similarly, an automatic traffic light system changes signals based on traffic sensor inputs, without remembering past states.

      Simple reflex agents are effective in structured and predictable environments where the rules are well-defined. However, they struggle in dynamic or complex scenarios that require memory, learning or long-term planning.

      Because they do not store past information, they can repeatedly make the same mistakes if the predefined rules are insufficient for handling new situations.


      Model-based reflex agents

      A model-based reflex agent is a more advanced version of the simple reflex agent. While it still relies on condition-action rules to make decisions, it also incorporates an internal model of the world. This model helps the agent track the current state of the environment and understand how past interactions may have affected it, enabling it to make more informed decisions.

      Unlike simple reflex agents, which respond solely to current sensory input, model-based reflex agents use their internal model to reason about the environment's dynamics and make decisions accordingly.

      For instance, a robot navigating a room might not just react to obstacles in its immediate path but also consider its previous movements and the locations of obstacles that it has already passed.

      This ability to track past states enables model-based reflex agents to function more effectively in partially observable environments. They can handle situations where the context needs to be remembered and used for future decisions, making them more adaptable than simpler agents.

      However, while model-based agents improve flexibility, they still lack the advanced reasoning or learning capabilities required for truly complex problems in dynamic environments.

      Goal-based agents

      A goal-based reflex agent extends the capabilities of a simple reflex agent by incorporating a proactive, goal-oriented approach to problem-solving.

      Unlike reflex agents that react to environmental stimuli with predefined rules, goal-based agents consider their ultimate objectives and use planning and reasoning to choose actions that move them closer to achieving their goals.

      These agents operate by setting a specific goal, which guides their actions. They evaluate different possible actions and select the one most likely to help them reach that goal.

      For instance, a robot designed to navigate a building might have a goal of reaching a specific room. Rather than reacting to immediate obstacles only, it plans a path that minimizes detours and avoids known obstacles, based on a logical assessment of available choices.

      The goal-based agent's ability to reason allows it to act with greater foresight compared to simpler reflex agents. It considers future states and their potential impact on reaching the goal.

      However, goal-based agents can still be relatively limited in complexity compared to more advanced types, as they often rely on preprogrammed strategies or decision trees for evaluating goals.

      Goal-based reflex agents are widely used in robotics, autonomous vehicles and complex simulation systems where reaching a clear objective is crucial, but real-time adaptation and decision-making are also necessary.

      Utility-based agents

      A utility-based reflex agent goes beyond simple goal achievement by using a utility function to evaluate and select actions that maximize overall benefit.

      While goal-based agents choose actions based on whether they fulfill a specific objective, utility-based agents consider a range of possible outcomes and assign a utility value to each, helping them determine the most optimal course of action. This allows for more nuanced decision-making, particularly in situations where multiple goals or tradeoffs are involved.

      For example, a self-driving car might face a decision to choose between speed, fuel efficiency and safety when navigating a route. Instead of just aiming to reach the destination, it evaluates each option based on utility functions, such as minimizing travel time, maximizing fuel economy or ensuring passenger safety. The agent selects the action with the highest overall utility score.

      An e-commerce company might employ a utility-based agent to optimize pricing and recommend products. The agent evaluates various options, such as sales history, customer preferences and inventory levels to make informed decisions on how to price items dynamically.

      Utility-based reflex agents are effective in dynamic and complex environments, where simple binary goal-based decisions might not be sufficient. They help balance competing objectives and adapt to changing conditions, ensuring more intelligent, flexible behavior.

      However, creating accurate and reliable utility functions can be challenging, as it requires careful consideration of multiple factors and their impact on decision outcomes.

      Learning agents

      A learning agent improves its performance over time by adapting to new experiences and data. Unlike other AI agents, which rely on predefined rules or models, learning agents continuously update their behavior based on feedback from the environment. This allows them to enhance their decision-making abilities and perform better in dynamic and uncertain situations.

      Learning agents typically consist of 4 main components:

      • Performance element: Makes decisions based on a knowledge base.
      • Learning element: Adjusts and improves the agent's knowledge based on feedback and experience.
      • Critic: Evaluates the agent's actions and provides feedback, often in the form of rewards or penalties.
      • Problem generator: Suggests exploratory actions to help the agent discover new strategies and improve its learning.

      For example, in reinforcement learning, an agent might explore different strategies, receiving rewards for correct actions and penalties for incorrect ones. Over time, it learns which actions maximize its reward and refine its approach.

      Learning agents are highly flexible and capable of handling complex, ever-changing environments. They are useful in applications such as autonomous driving, robotics and virtual assistants that assist human agents in customer support.

      The ability to learn from interactions makes learning agents valuable for applications in fields such as persistent chatbots and social media, where natural language processing (NLP) analyzes user behavior to predict and optimize content recommendations.

      Multi-agent systems

      As AI systems become more intricate, the need for hierarchical agents arises. These agents are designed to break down complex problems into smaller, manageable subtasks, making it easier to handle complex problems in real-world scenarios. Higher-level agents focus on overarching goals, while lower-level agents handle more specific tasks.

      An AI orchestration that integrates the different types of AI agents can make for a highly intelligent and adaptive multi-agent system capable of managing complex tasks across multiple domains.

      Such a system can operate in real time, responding to dynamic environments while continuously improving its performance based on past experiences.

      For example, in a smart factory, a smart management system might involve reflexive autonomous agents handling basic automation by responding to sensor inputs with predefined rules. These agents help ensure that machinery reacts instantly to environmental changes, such as shutting down a conveyor belt if a safety hazard is detected.

      Meanwhile, model-based reflex agents maintain an internal model of the world, tracking the internal state of machines and adjusting their operations based on past interactions, such as recognizing maintenance needs before failure occurs.

      At a higher level, goal-based agents drive the factory’s specific goals, such as optimizing production schedules or reducing waste. These agents evaluate possible actions to determine the most effective way to achieve their objectives.

      Utility-based agents further refine this process by considering multiple factors, such as energy consumption, cost efficiency and production speed, selecting actions that maximize expected utility.

      Finally, learning agents continuously improve factory operations through reinforcement learning and machine learning (ML) techniques. They analyze data patterns, adapt workflows and suggest innovative strategies to optimize manufacturing efficiency.

      By integrating all 5 types of AI agents, this AI-powered orchestration enhances decision-making processes, streamlines resource allocation and minimizes human intervention, leading to a more intelligent and autonomous industrial system.

      As agentic AI continues to evolve, advancements in generative AI (gen AI) will enhance the capabilities of AI agents across various industries. AI systems are becoming increasingly adept at handling complex use cases and improving customer experiences.

      Whether in e-commerce, healthcare or robotics, AI agents are optimizing workflows, automating processes and enabling organizations to solve problems faster and more efficiently.

      Techsplainers Audio

      Types of AI Agents

      14/11/2025

      DESCRIPTION

      In this episode of "Techsplainers", host Alice explains the five main types of AI agents: simple reflex agents (like thermostats), model-based reflex agents (like robot vacuums), goal-based agents (like navigation robots), utility-based agents (like self-driving cars), and learning agents (like reinforcement learning systems). Each type is discussed in detail, highlighting its capabilities, applications, and limitations. The episode concludes by discussing the benefits of deploying multiple types of agents within a single system, emphasizing their potential in diverse industries for automation, optimization, and improved customer experiences.

      Find more information at https://www.ibm.com/think/podcasts/techsplainers

      Narrated by Alice Gomstyn

      https://listen.casted.us/public/95/Techsplainers-by-IBM-28b0cf76/d0bbb98a

      Using GitHub Actions to CLI JFrog, AWS, GCP

      Mike's Notes

      What I'm learning today. I'm learning fast as I go. It's all new :)

      BoxLang will be the platform on which Pipi 10 runs.

      Resources

      References

      • Reference

      Repository

      • Home > Ajabbi Research > Library >
      • Home > Handbook > 

      Last Updated

      22/11/2025

      Using GitHub Actions to CLI JFrog, AWS, GCP

      By: Mike Peters
      On a Sandy Beach: 21/11/2025

      Mike is the inventor and architect of Pipi and the founder of Ajabbi.

      I finally figured out how to implement CI/CD so Pipi can autonomously manage all remote cloud platforms.

      • AWS
      • Azure
      • GCP
      • IBM
      • etc

      I was watching a video from the MLOPs community email that led me to JFrog (very useful), which led me to GitHub Actions. I had been looking for a way to enable Pipi 9 to autonomously control any Cloud Platform, but I did not know the correct technical terms, so I was asking the wrong questions. It's one of the disadvantages of being completely self-taught.

      Use GitHub Actions

      According to Google AI ..."

      GitHub Actions can effectively control both Google Cloud Platform (GCP) and Amazon Web Services (AWS) Command Line Interfaces (CLIs) within your CI/CD workflows. This enables automation of cloud resource management, deployments, and other cloud-related tasks directly from your GitHub repositories.

      • Controlling AWS CLI with GitHub Actions:
      • Configure AWS Credentials:
      • Store your AWS Access Key ID and Secret Access Key as GitHub Secrets in your repository settings.

      Use the aws-actions/configure-aws-credentials action to configure the AWS CLI with these secrets within your workflow. This action handles the secure setup of credentials for subsequent AWS CLI commands.

      Execute AWS CLI Commands:

      Once credentials are configured, you can use the run step in your workflow to execute any AWS CLI command.

      Example:

      Code

              - name: Configure AWS Credentials
                uses: aws-actions/configure-aws-credentials@v1
                with:
                  aws-access-key-id: ${{ secrets.AWS_ACCESS_KEY_ID }}
                  aws-secret-access-key: ${{ secrets.AWS_SECRET_ACCESS_KEY }}
                  aws-region: us-east-1

              - name: List S3 Buckets
                run: aws s3 ls

      Controlling GCP CLI (gcloud) with GitHub Actions:

      Authenticate to GCP:

      Store your GCP Service Account Key (JSON format) as a GitHub Secret.
      Use the google-github-actions/auth action to authenticate your workflow to GCP using this service account key.

      Setup gcloud CLI:

      Use the google-github-actions/setup-gcloud action to install and configure the gcloud CLI within your workflow. You can specify the desired gcloud version and project ID.

      Execute gcloud Commands:

      After authentication and gcloud setup, you can use the run step to execute gcloud commands.

      Example:

      Code

              - name: Authenticate to GCP
                uses: google-github-actions/auth@v1
                with:
                  credentials_json: ${{ secrets.GCP_SERVICE_ACCOUNT_KEY }}

              - name: Setup gcloud CLI
                uses: google-github-actions/setup-gcloud@v1
                with:
                  project_id: your-gcp-project-id

              - name: List GCS Buckets
                run: gcloud storage ls

      Key Considerations:
      • Security: Always use GitHub Secrets to store sensitive credentials and implement the principle of least privilege for your cloud service accounts/IAM roles. Consider using OpenID Connect (OIDC) for enhanced security with AWS and GCP.
      • Actions Marketplace: Leverage pre-built actions from the GitHub Marketplace for common tasks like credential configuration and CLI setup, as demonstrated above.
      • Error Handling: Include error handling and logging in your workflows for better debugging and reliability.
      • Idempotency: Design your cloud operations to be idempotent, ensuring that running the workflow multiple times produces the same desired state without unintended side effects.

      JFrog

      JFrog looks great. Not cheap, but no one is better at security than the Israelis. They are the best in the world. So using their kit is a no-brainer.

      There is no free tier, so plan for future use.

      Next Question

      • Pipi can use CFML to easily output any of the code listed above.
      • How does that generated code then get into GitHub Actions?
      • So Pipi 9 can autonomously control GitHub Actions. (or GitLab, etc)
      • Would BoxLang do the job?
      • Am I using the correct technical terms?

      Interesting examples

      # This workflow uses actions that are not certified by GitHub.
      # They are provided by a third-party and are governed by
      # separate terms of service, privacy policy, and support
      # documentation.

      # GitHub recommends pinning actions to a commit SHA.
      # To get a newer version, you will need to update the SHA.
      # You can also reference a tag or branch, but the action may change without warning.

      name: Build and Deploy to GKE

      on:
        push:
          branches:
            - main

      env:
        PROJECT_ID: ${{ secrets.GKE_PROJECT }}
        GKE_CLUSTER: cluster-1    # Add your cluster name here.
        GKE_ZONE: us-central1-c   # Add your cluster zone here.
        DEPLOYMENT_NAME: gke-test # Add your deployment name here.
        IMAGE: static-site

      jobs:
        setup-build-publish-deploy:
          name: Setup, Build, Publish, and Deploy
          runs-on: ubuntu-latest
          environment: production

          steps:
          - name: Checkout
            uses: actions/checkout@v5

          # Setup gcloud CLI
          - uses: google-github-actions/setup-gcloud@1bee7de035d65ec5da40a31f8589e240eba8fde5
            with:
              service_account_key: ${{ secrets.GKE_SA_KEY }}
              project_id: ${{ secrets.GKE_PROJECT }}

          # Configure Docker to use the gcloud command-line tool as a credential
          # helper for authentication
          - run: |-
              gcloud --quiet auth configure-docker

          # Get the GKE credentials so we can deploy to the cluster
          - uses: google-github-actions/get-gke-credentials@db150f2cc60d1716e61922b832eae71d2a45938f
            with:
              cluster_name: ${{ env.GKE_CLUSTER }}
              location: ${{ env.GKE_ZONE }}
              credentials: ${{ secrets.GKE_SA_KEY }}

          # Build the Docker image
          - name: Build
            run: |-
              docker build \
                --tag "gcr.io/$PROJECT_ID/$IMAGE:$GITHUB_SHA" \
                --build-arg GITHUB_SHA="$GITHUB_SHA" \
                --build-arg GITHUB_REF="$GITHUB_REF" \
                .

          # Push the Docker image to Google Container Registry
          - name: Publish
            run: |-
              docker push "gcr.io/$PROJECT_ID/$IMAGE:$GITHUB_SHA"

          # Set up kustomize
          - name: Set up Kustomize
            run: |-
              curl -sfLo kustomize https://github.com/kubernetes-sigs/kustomize/releases/download/v3.1.0/kustomize_3.1.0_linux_amd64
              chmod u+x ./kustomize

          # Deploy the Docker image to the GKE cluster
          - name: Deploy
            run: |-
              ./kustomize edit set image gcr.io/PROJECT_ID/IMAGE:TAG=gcr.io/$PROJECT_ID/$IMAGE:$GITHUB_SHA
              ./kustomize build . | kubectl apply -f -
              kubectl rollout status deployment/$DEPLOYMENT_NAME
              kubectl get services -o wide

      BoxLang and GitHub Actions

      According to Google AI ..."

      BoxLang projects can leverage GitHub Actions for Continuous Integration and Continuous Deployment (CI/CD) workflows. Ortus Solutions, the creators of BoxLang, provide a dedicated GitHub Action to simplify this process.

      Key features and steps for CI/CD with BoxLang and GitHub Actions:

      Setup BoxLang GitHub Action: This action streamlines the setup of the BoxLang Dynamic JVM Language runtime within your CI/CD workflows. It handles the installation of Java, BoxLang binaries, and necessary modules. You can specify the desired BoxLang version (latest stable, snapshots, or specific versions) and automatically manage module installations.

      Code

          - name: Setup BoxLang
            uses: ortus-boxlang/setup-boxlang@v1 # Use the appropriate version
            with:
              boxlang-version: 'latest' # Or a specific version like '1.0.0'
              commandbox-version: 'latest' # Optional: if you use CommandBox
              install-modules: 'my-module,another-module' # Optional: install specific BoxLang modules

      Define Workflow in YAML: Create a YAML file in your repository's .github/workflows directory to define your CI/CD workflow. This file specifies the events that trigger the workflow (e.g., push to main, pull request), the jobs to run, and the steps within each job.

      Build and Test: Within your workflow, you can define steps to build your BoxLang project, run unit tests, and perform any other automated tests. The setup-boxlang action ensures the BoxLang environment is ready for these tasks.

      Deployment (CD): For continuous deployment, you can add steps to deploy your BoxLang application to a target environment (e.g., a server, cloud platform like AWS Lambda). This might involve building a deployable artifact, uploading it, and triggering deployment scripts or services.

      Code

          - name: Build BoxLang Project
            run: boxlang build # Or your specific build command
          - name: Run Tests
            run: boxlang test # Or your specific test command
          - name: Deploy to AWS Lambda
            # Example using a custom script or another action for deployment
            run: ./deploy-to-lambda.sh
            env:
              AWS_ACCESS_KEY_ID: ${{ secrets.AWS_ACCESS_KEY_ID }}
              AWS_SECRET_ACCESS_KEY: ${{ secrets.AWS_SECRET_ACCESS_KEY }}

      Secrets Management: Store sensitive information like API keys or deployment credentials in GitHub Secrets and securely access them within your workflow using expressions like ${{ secrets.MY_SECRET_NAME }}.

      By using the setup-boxlang GitHub Action, the process of integrating BoxLang into your CI/CD pipelines becomes significantly simplified, allowing you to focus on developing your application rather than managing environment setup.

      What Founders Want

      Mike's Notes

      This is a useful resource for startups in NZ. Organised like a structured catalogue. It has a weekly mailing list for frequent updates.

      Below is an index.

      Resources

      References

      • Reference

      Repository

      • Home > Ajabbi Research > Library >
      • Home > Handbook > 

      Last Updated

      21/11/2025

      What Founders Want

      By: 
      What Founders Want: 21/11/2025

      The single source of truth for New Zealand startup founders.

      From raising capital and government grants to legal templates and hiring tools — built on what founders are actively searching for, but can’t find.

      What’s New

      • Expert Editions (Updated Monthly)
      • Case Studies (Real Founder Journeys)

      Save Money

      • NZ legal & financial templates 
      • Grants, R&D credits, co-funding
      • $1M+ in startup perks & discounts

      Raise Money

      • Complete NZ capital directory
      • Angels, VCs, and alt-finance options
      • Curated contacts to save weeks of research

      Make Money

      • AI Power Stack for NZ founders
      • Hiring & automation tools
      • Overseas easy-entry sales channels

      Dead Startups

      • Hiring or being hired

      What Founders Want Directories

      • Get Funded
      • Government Support for Startups in NZ
      • Startup Accelerators in New Zealand
      • NZ Startup Ecosystem Directory
      • Startup Perks & Credits (NZ-Verified)
      • Start a Startup in New Zealand — Step by Step
      • Free Legal & Financial Templates

      Agents in Production was excellent

      Mike's Notes

      Some initial reflections. I will add to this post over the coming week.

      Resources

      References

      • Reference

      Repository

      • Home > Ajabbi Research > Library >
      • Home > Handbook > 

      Last Updated

      21/11/2025

      Agents in Production was excellent

      By: Mike Peters
      On a Sandy Beach: 20/11/2025

      Mike is the inventor and architect of Pipi and the founder of Ajabbi.

      I attended the online MLOps event "Agents in Production held yesterday. It was hosted in the Netherlands. It started at 3am NZ time, so I missed most of it. But all the videos will be available soon, and I'll watch them all.

      It was fantastic. The 30 speakers were leaders from engineering teams from every major AI company. NVIDIA, Google, Meta, OpenAI, Microsoft, Redis, Databook, Prosus, etc.

      All talking about agents in depth. Lots of architecture here. The audience was even broader, as great questions came through.

      This was about building AI itself and solving its problems.

      It was fascinating. 

      I also found a solution to a big problem for Ajabbi: finding people who can help do this work. In this room, there were plenty of people. Now I know where to look.

      It was a lucky moment. I don't recall how I found out about this community and event. Maybe. I got an invite. Next event, I will be better prepped and have questions to post in the Q&A. Will also figure out how to contact other participants.

      I look forward to meeting them.

      Bolt on

      I also had another epiphany last night while sleeping. I could use some of these LLMs as input into Pipi 9, combining the strengths of both. This also confirms what I have been learning from testing Krobar.

      Tristan, I might have a job for you. :)

      I had been thinking about outputting to an LLM, but it never occurred to me to go the other way until I watched these talks and worked it out visually.