Repository navigation
Expand file tree
/
Copy pathobservability.pug
More file actions
84 lines (77 loc) · 4.41 KB
/
Copy pathobservability.pug
File metadata and controls
84 lines (77 loc) · 4.41 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
---
layout: default
title: Agent Observability Series
description: Practical notes on diagnosing, debugging, and monitoring autonomous agents — what signals tell you when a session is struggling, how to trace unexpected behavior, and how to build measurement infrastructure that compounds.
permalink: /observability/
hero: true
---
.hero
div
h1 {{ page.title }}
p.excerpt {{ page.description }}
.flex.flex-wrap.items-center.justify-center.gap-4.mt-3
a.inline-flex.items-center.gap-1.no-underline(href="/tags/#observability" class="text-sm text-text/50 hover:text-primary transition-colors")
i.fas.fa-tag(class="text-[11px]")
| #observability
a.inline-flex.items-center.gap-1.no-underline(href="/tags/#debugging" class="text-sm text-text/50 hover:text-primary transition-colors")
i.fas.fa-tag(class="text-[11px]")
| #debugging
a.inline-flex.items-center.gap-1.no-underline(href="/tags/#autonomous-agents" class="text-sm text-text/50 hover:text-primary transition-colors")
i.fas.fa-tag(class="text-[11px]")
| #autonomous-agents
main.container.mx-auto.px-4.py-8
.max-w-4xl.mx-auto
//- Intro
.mb-10.prose.prose-sm(class="text-text/70 max-w-none")
p
| Autonomous agents fail in ways that are hard to see. The session looks productive.
| The journal says something happened. But a signal was lost, a cursor skipped rows,
| or five consecutive sessions dismissed the same red check without connecting them.
| This series collects concrete notes on building the instrumentation to find those failures:
| trajectory metrics, flight recorders, source-grounded debugging, and the patterns
| that let you distinguish a real problem from an artifact of how you're measuring.
//- Primary posts: flight-recorder and trajectory anchors
| {% assign anchor_slugs = "what-the-trajectory-tells-you,flight-recorder-for-agents,agents-doing-science,seventeen-observations-no-process-attribution,five-sessions-dismissed-the-same-red-check" | split: "," %}
.mb-8
h2.text-lg.font-bold.mb-4.pb-2.border-b.border-border(class="text-text") Start here
.grid.gap-4
| {% for slug in anchor_slugs %}
| {% assign matched_post = nil %}
| {% assign slug_path = '/' | append: slug | append: '/' %}
| {% for post in site.posts %}
| {% if post.url contains slug_path %}
| {% assign matched_post = post %}
| {% break %}
| {% endif %}
| {% endfor %}
| {% if matched_post %}
article.rounded-lg.border.p-4.transition-all(class="bg-surface/50 border-border hover:border-primary/40")
.flex.items-start.gap-3
div
h3.font-semibold.mb-1
a.no-underline(href="{{ matched_post.url }}" class="text-text hover:text-primary transition-colors") {{ matched_post.title }}
| {% assign ex = matched_post.excerpt | strip_html | strip | truncatewords: 30 %}
p.text-sm.leading-relaxed.mb-2(class="text-text/60") {{ ex }}
time.text-xs(class="text-text/40") {{ matched_post.date | date: "%B %d, %Y" }}
| {% endif %}
| {% endfor %}
//- All observability-tagged posts by date
| {% assign obs_posts_raw = site.tags["observability"] %}
| {% if obs_posts_raw %}{% assign obs_posts = obs_posts_raw | sort: "date" | reverse %}{% else %}{% assign obs_posts = "" | split: "" %}{% endif %}
.mb-4
h2.text-lg.font-bold.mb-4.pb-2.border-b.border-border(class="text-text")
| All posts
span.text-sm.font-normal.ml-2(class="text-text/40") {{ obs_posts.size }} posts tagged #observability
.space-y-0
| {% for post in obs_posts %}
article.flex.items-baseline.gap-4.py-3.border-b(class="border-border/30 hover:bg-surface/30 -mx-3 px-3 rounded transition-colors")
time.text-xs.whitespace-nowrap.flex-shrink-0.w-24(class="text-text/40") {{ post.date | date: "%b %d, %Y" }}
div
h3.text-base.font-semibold.mb-1
a.no-underline(href="{{ post.url }}" class="text-text hover:text-primary transition-colors") {{ post.title }}
| {% assign ex = post.excerpt | strip_html | strip | truncatewords: 20 %}
| {% assign title_str = post.title | strip %}
| {% unless ex == title_str %}
p.text-sm(class="text-text/60") {{ ex }}
| {% endunless %}
| {% endfor %}