Skip to content
Back to Blog

Your Agent. Your Business Needs.

& 18 min read
Your Agent. Your Business Needs.

When did you last paste something from work into a private AI chat, just to get a quick answer? The answer looks good, it's fast, and nobody has to know. But now your company's documents sit on someone else's server, and nobody can tell where that answer actually came from.

When we first developed our own agent, we worked out a few practices and found six pillars that decide whether an agent built for a business need is useful in daily work: trusted, contextual, governed, traceable, operational and expandable. They help you design your agent and get your data ready for it. We adapted them from the layers Pramod Sadalage and Prem Chandrasekaran describe for making data ready for agentic AI [1].

And the best way to explain them here? Meet Alex, a new consultant at a travel agency, and her very first customer request.

Of course, Alex, the agency and all numbers here are fictional and don't represent any real people or companies. But please, indulge us in this little play.

Monday Mornings

Alex started at a travel agency in Hamburg a week ago. On her first day with customers, a family of four sits down at her desk and spends two hours describing their holiday: "Four of us, July, somewhere quiet by the sea. No night flights… Ah, and the hotel staff should be nice." When they leave, the work is hers. By Friday she needs flights for four in July and a quiet hotel near the beach, with availability, rates, cancellation and supplier rules checked, an itinerary that stays under 3.000 €, and a quote and an invoice on the family's table.

Her first intuition is to ask an LLM. The agency has no internal or corporate solution for LLM usage, so she opens the private subscription she already pays for. Because she is new and wants the answer to match how the agency works, she pastes some internal documentation into the chat as well. The answer looks useful, but the way she got it is a problem: internal company documents now sit in a private account, outside the agency's control, and nothing in the answer can be traced back to where it came from. Alex's situation is not specific to travel agencies; in the 2024 Work Trend Index by Microsoft and LinkedIn, 78 % of AI users said they bring their own AI tools to work, which, as Microsoft notes, puts company data at risk [2].

Also, the chat stays disconnected from the agency's systems. It has no view of availability in the booking system, no access to the supplier rules and no way to produce a quote or an invoice, and it knows company policy only as far as the pasted documents happen to cover it. The family describes their holiday in terms the agency's internal booking tool offers no filter for, such as "quiet" or "nice staff". What the agency needs is an agent that runs inside the company, with access to its data, its policies and its systems, under rules the company sets.

What does the agent need to accomplish?

What would it take to hand this request to an agent? Its structure has to match the work Alex does. The process taught in the agency's onboarding can be broken down into four patterns. Quoting, booking and invoicing always happen in the same order, so this part of an agent can be a linear sequence in which the model does not decide the order of the steps. Bandara et al. recommend handling steps that need no language reasoning as plain function calls in the orchestration layer, instead of letting the model decide them [3]. Finding an offer under 3.000 € is a loop: Alex searches, checks whether the result fits the budget and the family's wishes, and searches again with adjusted parameters until it does, which in an agent requires a clear condition for when the loop stops. Choosing a supplier and the policy that comes with it is a branching decision that can be modelled as a graph of decision tables, so that an agent follows the agency's rules for each supplier instead of making them up. The search for flights and the search for hotels do not depend on each other and can run in parallel, with one coordinator that collects the results.

%%{init: {"theme": "base", "themeVariables": {"background": "#ffffff", "clusterBkg": "#f2f2f2", "clusterBorder": "#d0d0d0", "primaryColor": "#ffffff", "primaryBorderColor": "#9a9a9a", "primaryTextColor": "#222222", "secondaryColor": "#f2f2f2", "tertiaryColor": "#f2f2f2", "lineColor": "#666666", "edgeLabelBackground": "#ffffff"}}}%%
flowchart TB
    subgraph lin["Linear: fixed order"]
        direction LR
        q("Quote") --> bo("Book") --> inv("Invoice")
    end
    subgraph lp["Loop: repeat until it fits"]
        direction LR
        se("Search") --> fi{"Fits?"}
        fi -- "no" --> se
        fi -- "yes" --> of("Offer")
    end
    subgraph gr["Graph: branching decisions"]
        direction LR
        ws{"Which supplier?"} --> pa("Policy A")
        ws --> pb("Policy B")
    end
    subgraph par["Parallel: side by side"]
        direction LR
        co("Coordinator") --> fl("Flights")
        co --> ho("Hotels")
    end
    lin ~~~ lp ~~~ gr ~~~ par
Linear, loop, graph and parallel building blocks applied to the travel agency process.

Mapping the process to these building blocks shows where an agent needs data and where it needs rules. The search steps need rates, availability and knowledge about the hotels, the branches need the supplier rules and company policy, and the package step needs access to the booking system to produce a quote and an invoice. So what does the agent need to do this work?

1. Trusted: Garbage in, confident garbage out

Alex asks for the Aurora Bay's rate in July. The Aurora Bay is a beach hotel the agency works with and looks like a good match for the family; an old rate sheet lists it at 214 € a night in July, which was the rate last winter. An agent that is given this sheet repeats the 214 € in its offer, with no hint that the number is outdated, because it has no way of telling current data from old data.

Before an agent can plan anything, it needs data that meets two conditions: the data has to be of high quality, and the agent has to understand its structure and meaning, ideally without direct access to the source systems behind it. The gap between how ready companies consider their data and how ready it is appears to be wide: in the 2026 State of Data Integrity and AI Readiness report by Precisely and Drexel University's LeBow College of Business, 87 % of the more than 500 surveyed data and analytics leaders say they are ready for AI, while 43 % name data readiness as their biggest obstacle [4]; Sadalage and Chandrasekaran refer to the same finding [1].

Let's say the agency works with 600 hotels, and each of them delivers a rate feed with its own rules and structure. How can the expectations the agency has for this data be defined? One option for writing these expectations down is a data contract following the Open Data Contract Standard \[5\], which describes a dataset through its schema, semantics, quality rules and an SLA. The contract is used in two places. The data pipeline runs independently of the agent and uses the quality rules and the SLA to check incoming rates and filter out what fails, so that only valid data reaches the dataset the agent works with. The agent itself queries that dataset and uses the field descriptions in the contract to understand what each value means, without having to inspect the source systems. For the hotel rate feed, the contract looks like this:

schema:
  - name: hotel_rates
    properties:
      - name: hotel_id
        logicalType: string
        description: supplier hotel id
      - name: nightly_rate
        logicalType: number
        description: Rate for one night, one room, excluding taxes and fees
        quality:
          - rule: validValues
            mustBeBetween: [10, 5000]
      - name: hotel_name
        logicalType: string
        physicalType: varchar(200)
        required: true
        description: Display name of property.
    quality:
      - type: sql
        description: one rate per hotel, room type, stay date
        mustBe: 0
slaProperties:
  - property: freshness
    value: 24
    unit: h

With a freshness SLA of 24 hours, last winter's Aurora Bay rate fails the check, and the same applies to any record that breaks one of the quality rules. The description of nightly_rate tells the agent that taxes and fees are not included in the rate it quotes to the family, without the agent ever having to open the rate table itself.

A contract describes what good data looks like, but it does not stop bad data from arriving. Rate feeds come from supplier APIs, databases and streams, and if the agent reads directly from them, every outdated rate can end up in the family's offer. How can the agency make sure that only checked data reaches the agent? What it needs is a data pipeline with one goal: an agent only ever sees data of high quality that has passed the checks.

One option for this is the medallion architecture, a data design pattern described in the Databricks documentation [6], which Sadalage and Chandrasekaran apply to agentic systems [1]. Data from the source systems first lands in a bronze tier as raw, immutable input that keeps the audit trail and the lineage. Contract verification then checks schema, freshness and quality. Data that passes moves to silver, validated and deduplicated, while data that fails goes to a dead letter queue instead of to the agent. A second step applies certification, business rules and reconciliation before the data reaches gold, and an agent reads only from the gold tier.

Medallion tiers for agents, adapted from [1].
Medallion tiers for agents, adapted from [1].
Medallion tiers for agents, adapted from [1].

The checks come from the data contract. Documents pass through the same tiers, with checks taken from their frontmatter (see pillar 2). That's easy enough for structured data, but what about unstructured data?

2. Contextual: Which hotel has friendly staff?

Alex looks for a hotel with friendly staff, and the booking tool has no field for it; the same is true for the family's other two wishes, quiet and a short way to the beach. Whether the Aurora Bay is loud is documented only in Google reviews and questionnaires. The distance to the beach is relative, since ten minutes on foot differs from ten minutes by bus. What the staff is like is spread across guest emails, feedback forms and scanned PDFs collected over the past years, written in every kind of prose.

The goal for this kind of data is, ideally, a knowledge base that humans and agents can both understand and curate, instead of an agent searching through mailboxes and file shares on its own. How can such a knowledge base be built for data that has no schema and grows every day? One option for this kind of material is retrieval-augmented generation (RAG) over the archive [7]. In recent projects at Posedio, we noticed that the main cost lies in keeping up with change: reviews arrive every day, and every new batch means pre-processing, chunking and re-embedding before the agent can use it. We at Posedio found the Open Knowledge Format (OKF), which Google Cloud published in June 2026 [8], to be a promising option. OKF stores knowledge as a directory of Markdown files with YAML frontmatter; humans can read and edit these files like any other document, and an agent can navigate and read them, which matches the goal of a knowledge base that both can understand and curate.

With OKF, the knowledge base of the travel agency looks like this:

knowledge/
├── index.md
└── hotels/
    ├── index.md
    ├── aurora-bay/
    │   ├── index.md
    │   ├── neighborhood.md
    │   ├── staff-service.md
    │   ├── beach-access.md
    │   └── contract-2025.pdf
    └── marina-plaza/
        ├── index.md
        └── neighborhood.md

Every folder has an index.md that tells the agent what it will find below it:

# Aurora Bay

## Guest experiences

- [Neighborhood](neighborhood.md) - noise, nightlife, transport
- [Beach access](beach-access.md) - distance and route to the beach
- [Staff service](staff-service.md) - front desk and housekeeping

## Commercial

- [Contract 2025](contract-2025.pdf) - rates, source of record

Each document has its own frontmatter that states what it contains, where it comes from and who may read it:

---
type: PropertyNote
title: Aurora Bay - Noise
description: Street noise by room orientation
resource: knowledge/hotels/aurora-bay/neighborhood.md
tags: [noise, transport]
lifecycle: current
review_date: 2026-09-09
source: guest_reviews
visibility: agent_readable
---

OKF only requires the field type and defines a small set of further fields, such as title, description, resource, tags and timestamp [8]. An advantage of OKF is that the frontmatter can be extended with custom fields, such as lifecycle, review_date, source and visibility in this example, which allows quality and governance information to be stored next to the content itself, where the pipeline and the agent can both use it. The consultants curate the documents, and the agent reads the same workspace read-only. Custom tools select the relevant documents, so there is no re-embedding cycle, and the frontmatter narrows each search before a single document is opened. Bringing the existing material into this structure is a one-time effort that an AI pipeline can support, and keeping it current afterwards means adding or updating one document at a time. The tiers of the pipeline appear in the frontmatter as the lifecycle states draft, reviewed, current and deprecated, and only current documents are visible to the agent, so an unverified review or an outdated staff note stays out of its reach in the same way an outdated rate does.

3. Governed: Least privilege, no shortcuts

Let's say Alex asks the agent to take the Aurora Bay rate straight from contract-2025.pdf, the source of record, and finds that the agent cannot open it: the contract is not marked as readable for the agent, and the rate comes from the checked gold table instead. How much access should an agent get, and what should it be allowed to execute? Direct access to the booking database would make the agent faster. Also, it would let the agent read and change more than a request needs. Governance applies on two sides.

On the data side, we define access in the metadata, through visibility: agent_readable in the frontmatter and through the contract for each structured feed. The curated tiers control what is visible, and permissions on the database and the document bucket restrict the agent's access at the source, so that a wrong instruction in a prompt cannot open data the agent is not supposed to see. On the agent side, an agent should have least-privilege, read-only access to the knowledge tree and work through custom tools only. We distinguish between two kinds of tools: trusted tools, which we developed and tested ourselves and which encode company policy, and code that the agent generates on its own, which is untrusted.

4. Traceable: Why this hotel

The offer for the family is a sea-facing room at the Aurora Bay for 238 € per night, based on a rate that is four hours old. When Alex presents it, the family asks why the agent picked this hotel and not one that is 20 € cheaper, and unlike the private chat answer at the beginning, this offer can be explained. How can a recommendation like this be reconstructed when an audit takes place, or when someone asks how the price was calculated and where it came from?

We found OpenTelemetry [9] to be well suited for such cases: it is an open standard for recording traces, metrics and logs, which more than 90 observability vendors support [9], and with it an agent records prompts, thinking traces and tool calls. In our projects at Posedio, we have seen both LLM-specific monitoring solutions such as Langfuse [10] and conventional tracing tools from software monitoring stacks such as Jaeger [11] used to analyse these traces. For a graph agent, such a record is essential, because it has to show which branch the agent took and why; without it, an audit is hardly possible. The trace records the metadata and references the payload instead of storing every piece of content:

agent.run                         session: sess_88a1
  input:   quiet room, Aurora Bay
  output:  238 EUR/night
  verdict: grounded

LLM_instructions                  780ms
  prompt: hotel_match@v7
  tokens: 1840 in / 96 out

thinking_traces                   310ms
  steps:   3
  plan:    check rate, then noise
  content: not recorded

tool_call: retrieve_knowledge     120ms
  hit: neighborhood.md   0.91
  hit: beach-access.md   0.44

tool_call: read_document          215ms
  lifecycle: current
  policy:    allow

When the family asks why the agent picked the Aurora Bay and not the hotel that is 20 € cheaper, the run can be replayed from a trace, node by node.

%%{init: {"theme": "base", "themeVariables": {"background": "#ffffff", "clusterBkg": "#f2f2f2", "clusterBorder": "#d0d0d0", "primaryColor": "#ffffff", "primaryBorderColor": "#9a9a9a", "primaryTextColor": "#222222", "secondaryColor": "#f2f2f2", "tertiaryColor": "#f2f2f2", "lineColor": "#666666", "edgeLabelBackground": "#ffffff"}}}%%
flowchart TB
    q("Quiet room, Aurora Bay, July")
    q -- "query: aurora bay noise" --> k("Retrieve knowledge")
    q -- "query: AURORA-BAY-01" --> r("Rate lookup")
    k -- "relevance 0,91" --> n("neighborhood.md")
    k -. "relevance 0,44" .-> b("beach-access.md")
    r -- "4 h old, within SLA" --> p("238 € per night")
    r -. "not agent-readable" .-> c("contract-2025.pdf")
    n -- "finding: quiet sea-facing rooms" --> a("Offer: Aurora Bay, 238 € per night")
    p --> a
    classDef skipped stroke-dasharray: 5 5,color:#777777
    class b,c skipped
Replay a trace, node by node.

The recommendation rests on the noise note, not on the price: the Aurora Bay was picked for its quiet sea-facing rooms, at a rate that was well within the 24-hour SLA.

5. Operational: From search to an offer Alex can approve

In the private chat, Alex would have had to copy every result into the agency's tools by hand. An agent that is connected to the booking system, the supplier rules and the quote and invoice process produces the package itself, and Alex reviews and approves it before anything is booked. Pricing the family's options falls into the second category of tools, code that the agent generates on its own, because the agent writes the SQL that combines flights and hotels. Even when that query is routed through a trusted tool, an LLM wrote it, so it runs in a sandbox. Options for the sandbox include Vertex AI Agent Engine code execution [12] or a container on a self-managed Kubernetes cluster.

%%{init: {"theme": "base", "themeVariables": {"background": "#ffffff", "clusterBkg": "#f2f2f2", "clusterBorder": "#d0d0d0", "primaryColor": "#ffffff", "primaryBorderColor": "#9a9a9a", "primaryTextColor": "#222222", "secondaryColor": "#f2f2f2", "tertiaryColor": "#f2f2f2", "lineColor": "#666666", "edgeLabelBackground": "#ffffff"}}}%%
flowchart LR
    s1("Agent computes the pricing<br/>generated code such as SQL queries") --> s2("Sandbox runs it<br/>Vertex AI Agent Engine code execution or a container")
    s2 --> s3("Audit the result<br/>plan, offer, pricing")
    s3 --> s4("Wrong? Throw it away<br/>and run it again")
    s4 -.-> s1
Sandboxed execution of generated code.

The sandbox isolates the execution, but not the access. Permissions still have to be enforced at the database level, an agent may only call tools that company policy authorizes, and every call is traced.

What you end up with

%%{init: {"theme": "base", "themeVariables": {"background": "#ffffff", "clusterBkg": "#f2f2f2", "clusterBorder": "#d0d0d0", "primaryColor": "#ffffff", "primaryBorderColor": "#9a9a9a", "primaryTextColor": "#222222", "secondaryColor": "#f2f2f2", "tertiaryColor": "#f2f2f2", "lineColor": "#666666", "edgeLabelBackground": "#ffffff"}}}%%
flowchart LR
    subgraph agents["Agents"]
        co("Coordinator")
        subgraph search["Search: parallel"]
            fl("Flights")
            ho("Hotels")
        end
        subgraph match["Match: graph"]
            ru{"Rules"} --> ra("Rank")
        end
        subgraph price["Price: loop"]
            pr("Price") --> fi{"Fits?"}
            fi -- "no" --> pr
        end
        subgraph pkg["Package: sequential"]
            it("Itinerary") --> qu("Quote") --> inv("Invoice")
        end
        co --> fl
        co --> ho
        fl --> ru
        ho --> ru
        ra --> pr
        fi -- "yes" --> it
    end
    subgraph data["Data"]
        st("Structured") --> dc{"Data contract"} --> gt[("Gold tables")]
        un("Unstructured") --> cu{"Curation"} --> okf[("OKF knowledge base")]
    end
    sb("Sandbox")
    fl --> sb
    ho --> sb
    pr --> sb
    sb -- "read-only" --> gt
    ra -- "read-only" --> okf
    agents -.-> tr[("Traces")]
    inv --> con("Consultant") -- "approve" --> bk[("Booking")]
Architecture of the travel agent.

Generated code runs in a sandbox with read-only access to the gold tables, the agent reads the OKF knowledge base read-only, and every step is written to the traces. At the end of the chain, the consultant approves the offer before anything is booked.

The agent the company should have built before Alex started

This is how Alex works on the family's request with the agent, from the first search to her approval of the offer. The numbers are illustrative; let's say the family travels in the first week of July and stays seven nights. The request contains constraints from the family, from the agency and from the data contracts:

ConstraintSet byHow the agent checks it
Four travellers, first week of July, seven nightsFamilySearch parameters for flights and hotel rooms
No night flightsFamilyFilter on departure and arrival times in the flight search
Quiet hotelFamilyNoise notes in neighborhood.md
Close to the beachFamilyDistance and route in beach-access.md
Friendly staffFamilyStaff notes in staff-service.md
Total price under 3.000 €FamilyPrice loop in the sandbox
Supplier and cancellation rulesAgencyDecision tables in the graph
Rate not older than 24 hoursData contractFreshness SLA of the rate feed
Only current documents the agent may readAgency policylifecycle and visibility in the frontmatter

With these constraints, the agent works through the request in the following steps:

  1. The coordinator starts the flight search and the hotel search in parallel. The flight search drops a connection that departs at 23:40, because the family excluded night flights.
  2. The graph applies the supplier and cancellation rules to the hotels found and removes every offer whose conditions the agency does not accept.
  3. The agent ranks the remaining hotels with the notes from the knowledge base. Let's say the Marina Plaza costs 218 € per night, 20 € less than the Aurora Bay, but its neighborhood.md describes street noise at night, while the note for the Aurora Bay describes quiet sea-facing rooms. The Aurora Bay ranks first.
  4. The agent generates the SQL that combines flights and hotel, and the sandbox runs it read-only on the gold tables. Let's say the first combination uses daytime flights for 1.480 € and comes to 3.146 € with seven nights at 238 €, which is above the budget. The loop prices the next daytime connection for 1.120 €, which brings the total to 2.786 €, and the loop stops.
  5. Before the agent answers, it checks again that an indexed contract exists for AURORA-BAY-01, that the rate is four hours old and therefore within the 24-hour SLA, that the noise note has the lifecycle state current, and that policy allows the agent to read it. Depending on which check fails, the agent gives no answer, escalates the outdated rate, offers the note only as an unverified draft, or is refused access to the document. Here, the checks pass; the attempt to open contract-2025.pdf is denied, because the contract is not marked as readable for the agent.
  6. The package step creates itinerary, quote and invoice as plain function calls.
  7. Every step is written to the trace, and Alex, as the consultant, reviews and approves the offer before anything is booked.

6. Expandable: The next customer is a backpacker

Let's say the next customer is a backpacker who wants hostels and regional trains on a budget of 800 €. Alex starts no new chat and pastes no new documents; the agent can take the request on without a redesign, because each part of it has a defined place. Hostel rates arrive as a new feed with its own data contract and pass through the same bronze, silver and gold tiers. Reviews of hostels become new OKF documents with the same frontmatter, curated and checked in the same way. Train connections are a new trusted tool that encodes the agency's policy and is added to the tools the agent may call, so the sandbox, the permissions and the traces apply to it as they do to the others. The process keeps its building blocks: a parallel search, a graph with the agency's supplier rules, a price loop against the budget and a sequential package step.

The six pillars at a glance

%%{init: {"theme": "base", "themeVariables": {"background": "#ffffff", "clusterBkg": "#f2f2f2", "clusterBorder": "#d0d0d0", "primaryColor": "#ffffff", "primaryBorderColor": "#9a9a9a", "primaryTextColor": "#222222", "secondaryColor": "#f2f2f2", "tertiaryColor": "#f2f2f2", "lineColor": "#666666", "edgeLabelBackground": "#ffffff"}}}%%
flowchart TB
    subgraph row1[" "]
        direction LR
        P1("Trusted<br/>The data it reads is correct and current")
        P2("Contextual<br/>It knows what the data means")
        P3("Governed<br/>Permissions and policy bound what it may do")
        P1 ~~~ P2 ~~~ P3
    end
    subgraph row2[" "]
        direction LR
        P4("Traceable<br/>Every decision and tool call is recorded and can be traced back")
        P5("Operational<br/>It can act in production environments")
        P6("Expandable<br/>Capabilities can be extended without a redesign")
        P4 ~~~ P5 ~~~ P6
    end
    row1 ~~~ row2
The six pillars of an agent built for a business need.

Each pillar addresses a part of what went wrong for Alex. In Alex's situation, an agent that bases its answers only on checked and current data (pillar 1, trusted) would have replaced the documents she pasted into the chat without knowing whether they were up to date. An agent that knows what the agency's data means (pillar 2, contextual) would have matched a wish like "quiet" against reviews and questionnaires, instead of depending on the excerpts Alex happened to choose. An agent whose permissions and policy decide what it may read and do (pillar 3, governed) would have kept the internal documents inside the agency, with no private account involved. An agent that records every decision and tool call (pillar 4, traceable) would have made every recommendation traceable to the documents behind it, which her chat answer was not. An agent connected to the booking system, the supplier rules and the quote and invoice process (pillar 5, operational) would have spared her copying results between a chat window and the agency's tools. Also, an agent that can be extended without a redesign (pillar 6, expandable) handles the next customer, a backpacker for example, instead of Alex starting a new chat with a new set of pasted documents.

Where to go from here

We at Posedio believe an agent does not have to start as a large platform; a single, well-defined business process, such as preparing an offer, is enough to find out which data the agent needs, which rules apply and who has to approve the result. Also, the travel agency in this post is one example among many: an insurance claim, a support ticket or a purchase order raise the same questions about data quality, access, traceability and approval, and we expect an agent for any of them to rest on the same six pillars.

This post is based on a talk by Martin Mayr and Adrian Dimaano on 24.09.2026 at the GCP Meetup Talk [13].

References

[1] Making Your Data Ready for Agentic AI, Pramod Sadalage and Prem Chandrasekaran, Accessed at 14-10-2026

[2] Microsoft and LinkedIn release the 2024 Work Trend Index on the state of AI at work, Microsoft, Accessed at 14-10-2026

[3] A Practical Guide for Designing, Developing, and Deploying Production-Grade Agentic AI Workflows, Eranga Bandara et al., Accessed at 14-10-2026

[4] 2026 State of Data Integrity and AI Readiness, Precisely and the Center for Applied AI and Business Analytics at Drexel University's LeBow College of Business, Accessed at 14-10-2026

[5] Open Data Contract Standard, Bitol (Linux Foundation AI & Data), Accessed at 14-10-2026

[6] What is the medallion lakehouse architecture?, Databricks, Accessed at 14-10-2026

[7] Retrieval-Augmented Generation for Knowledge-Intensive NLP Tasks, Patrick Lewis et al., Accessed at 14-10-2026

[8] How the Open Knowledge Format can improve data sharing, Sam McVeety and Amir Hormati, Accessed at 14-10-2026

[9] OpenTelemetry Documentation, OpenTelemetry Authors (Cloud Native Computing Foundation), Accessed at 14-10-2026

[10] OpenTelemetry (OTEL) for LLM Observability, Langfuse, Accessed at 14-10-2026

[11] Jaeger Documentation: Introduction, The Jaeger Authors (Cloud Native Computing Foundation), Accessed at 14-10-2026

[12] Vertex AI Agent Engine Code Execution, Google Cloud, Accessed at 14-10-2026

[13] Google Cloud Meetup Vienna, Meetup, Accessed at 22-10-2026

Do it NOW.

Interested in working together on something like this?

Get in touch
Adrian Dimaano

Adrian is a Software Engineer and the newest addition to Posedio. He holds a Master’s in AI and Game Engineering and came into machine learning from a robotics background. He works on the bleeding edge of AI, where research papers are weeks old and the rules haven’t settled yet, and he’s not afraid to back the unconventional idea. Outside of work he builds his own projects, mostly around games. A former choreographer, he has a lasting appetite for art in films, books and other media, and spends the rest of his time travelling and being bossed around by his dog.

View all posts by this author

Martin is a Senior Software Engineer at Posedio, focused on building cutting-edge applications to solve a wide range of business needs. Coming from a background in research and innovation management, he likes to challenge the status quo and looking at things from different perspectives. In his spare time, he loves going on side quests - tinkering with hardware and software for cycling training and being in the mountains.

View all posts by this author

Similar Posts

Become Part of the Community!

Sign up for our newsletter and never miss an event, talk, or update.