From 145b1669e74826f2400db31b3f2d594a82c5371f Mon Sep 17 00:00:00 2001 From: Vectry Date: Tue, 10 Feb 2026 02:21:16 +0000 Subject: [PATCH] =?UTF-8?q?feat:=20comprehensive=20SEO=20=E2=80=94=20meta?= =?UTF-8?q?=20tags,=20OG,=20Twitter=20cards,=20JSON-LD,=20sitemap,=20robot?= =?UTF-8?q?s,=20llms.txt?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Adds metadataBase, full OpenGraph + Twitter card tags, keywords, JSON-LD structured data (SoftwareApplication + Organization), sitemap.ts, robots.ts with AI crawler directives, and llms.txt for AI agent discoverability. --- apps/web/public/llms.txt | 50 +++++++++++++++++++++++++++++++ apps/web/src/app/layout.tsx | 59 +++++++++++++++++++++++++++++++++++-- apps/web/src/app/page.tsx | 37 +++++++++++++++++++++++ apps/web/src/app/robots.ts | 22 ++++++++++++++ apps/web/src/app/sitemap.ts | 9 ++++++ 5 files changed, 175 insertions(+), 2 deletions(-) create mode 100644 apps/web/public/llms.txt create mode 100644 apps/web/src/app/robots.ts create mode 100644 apps/web/src/app/sitemap.ts diff --git a/apps/web/public/llms.txt b/apps/web/public/llms.txt new file mode 100644 index 0000000..4216dc2 --- /dev/null +++ b/apps/web/public/llms.txt @@ -0,0 +1,50 @@ +# AgentLens + +> AgentLens is an open-source agent observability platform that traces AI agent decisions, not just API calls. It captures why agents choose specific tools, routes, or strategies — providing visibility into the reasoning behind every action. + +AgentLens helps engineering teams debug, monitor, and improve AI agent applications in production. Unlike traditional LLM observability tools that only trace API calls, AgentLens captures the decision-making process: tool selection rationale, routing logic, retry strategies, and planning steps. It includes a real-time dashboard with decision tree visualization, cost analytics, and token tracking. + +## Getting Started + +- [GitHub Repository](https://gitea.repi.fun/repi/agentlens): Source code, issues, and contribution guide +- [PyPI Package](https://pypi.org/project/vectry-agentlens/): Install with `pip install vectry-agentlens` +- [Dashboard](https://agentlens.vectry.tech/dashboard): Live demo dashboard with sample traces + +## Python SDK + +- [Basic Usage](https://gitea.repi.fun/repi/agentlens/src/branch/main/examples/basic_agent.py): Minimal SDK usage with trace context and decision logging +- [OpenAI Integration](https://gitea.repi.fun/repi/agentlens/src/branch/main/examples/openai_agent.py): Wrap OpenAI client for automatic LLM call tracing +- [Multi-Agent Example](https://gitea.repi.fun/repi/agentlens/src/branch/main/examples/multi_agent.py): Nested multi-agent workflow tracing +- [Function Calling](https://gitea.repi.fun/repi/agentlens/src/branch/main/examples/moonshot_real_test.py): Real LLM test with tool/function calling + +## Key Concepts + +- **Traces**: Top-level containers for agent execution sessions, with tags and metadata +- **Spans**: Individual operations within a trace (LLM calls, tool calls, chain steps) +- **Decision Points**: The core differentiator — captures what was chosen, what alternatives existed, and why +- **Decision Types**: TOOL_SELECTION, ROUTING, RETRY, ESCALATION, MEMORY_RETRIEVAL, PLANNING, CUSTOM + +## API + +- POST /api/traces: Batch ingest traces from SDK (Bearer token auth) +- GET /api/traces: List traces with pagination, search, filters, and sorting +- GET /api/traces/:id: Get single trace with all spans, decisions, and events +- GET /api/traces/stream: Server-Sent Events for real-time trace updates +- GET /api/health: Health check endpoint + +## Integrations + +- **OpenAI**: `wrap_openai(client)` auto-instruments all chat completions, streaming, and tool calls +- **LangChain**: `AgentLensCallbackHandler` captures chains, agents, tools, and LLM calls +- **Any Python Code**: `@trace` decorator and `log_decision()` for custom instrumentation + +## Self-Hosting + +- Docker Compose deployment with PostgreSQL and Redis +- Single `docker compose up -d` to run +- Environment variables: DATABASE_URL, REDIS_URL, AGENTLENS_API_KEY + +## Optional + +- [Company Website](https://vectry.tech): Built by Vectry, an engineering-first AI consultancy +- [CodeBoard](https://codeboard.vectry.tech): Sister product — understand any codebase in 5 minutes diff --git a/apps/web/src/app/layout.tsx b/apps/web/src/app/layout.tsx index 3f6979e..d81b155 100644 --- a/apps/web/src/app/layout.tsx +++ b/apps/web/src/app/layout.tsx @@ -5,8 +5,63 @@ import "./globals.css"; const inter = Inter({ subsets: ["latin"] }); export const metadata: Metadata = { - title: "AgentLens", - description: "Agent observability that traces decisions, not just API calls", + metadataBase: new URL("https://agentlens.vectry.tech"), + title: { + default: "AgentLens — Agent Observability Platform", + template: "%s | AgentLens", + }, + description: + "Open-source agent observability that traces decisions, not just API calls. Monitor AI agent reasoning, tool selection, and routing in real-time.", + keywords: [ + "agent observability", + "AI monitoring", + "LLM tracing", + "agent decisions", + "AI debugging", + "tool selection tracing", + "multi-agent observability", + "open source", + ], + authors: [{ name: "Vectry" }], + creator: "Vectry", + openGraph: { + type: "website", + locale: "en_US", + url: "https://agentlens.vectry.tech", + siteName: "AgentLens", + title: "AgentLens — Agent Observability Platform", + description: + "Open-source agent observability that traces decisions, not just API calls. Monitor AI agent reasoning, tool selection, and routing in real-time.", + images: [ + { + url: "/og-image.png", + width: 1200, + height: 630, + alt: "AgentLens — Agent Observability Platform", + }, + ], + }, + twitter: { + card: "summary_large_image", + title: "AgentLens — Agent Observability Platform", + description: + "Open-source agent observability that traces decisions, not just API calls. Monitor AI agent reasoning, tool selection, and routing in real-time.", + images: ["/og-image.png"], + }, + robots: { + index: true, + follow: true, + googleBot: { + index: true, + follow: true, + "max-video-preview": -1, + "max-image-preview": "large", + "max-snippet": -1, + }, + }, + alternates: { + canonical: "https://agentlens.vectry.tech", + }, }; export default function RootLayout({ diff --git a/apps/web/src/app/page.tsx b/apps/web/src/app/page.tsx index e827394..d57f8fe 100644 --- a/apps/web/src/app/page.tsx +++ b/apps/web/src/app/page.tsx @@ -20,6 +20,43 @@ import { export default function HomePage() { return (
+