惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
爱范儿
爱范儿
博客园 - 三生石上(FineUI控件)
Vercel News
Vercel News
M
MIT News - Artificial intelligence
L
LangChain Blog
大猫的无限游戏
大猫的无限游戏
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
Microsoft Azure Blog
Microsoft Azure Blog
J
Java Code Geeks
Recent Announcements
Recent Announcements
Stack Overflow Blog
Stack Overflow Blog
人人都是产品经理
人人都是产品经理
IT之家
IT之家
F
Fortinet All Blogs
博客园 - 聂微东
U
Unit 42
Martin Fowler
Martin Fowler
腾讯CDC
博客园_首页
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
量子位
阮一峰的网络日志
阮一峰的网络日志
博客园 - Franky

Show HN

Show HN: AI agents for UK GDAD PCF roles and their skills The Two Pillars: Mixer Mode and Meta-Software in the Reorganization of Software Work After AI GitHub - JaiCode08/teleport-env What 1,000+ Harness Experiments Taught Me About Self-Improving Agents Show HN: Liiists, a Markdown-first, iOS and CLI list app SwiperTab – Get this Extension for 🦊 Firefox (en-US) GitHub - kouhxp/fftext: Summarize, explain, fact-check, or translate any text, URL, or file. No GPU. No cloud. One command GitHub - sweetpad-dev/sweetpad: Develop Swift/iOS projects using VSCode GitHub - dogmaticdev/IRON: IRON a.k.a. Intermediate Representation Object Notation is a Interpreter/Database that is used to create Programming Languages. GitHub - sjhalani7/vaen: Package your AI coding harness into a portable .agent file, and share it across repos, teams, & the community without ever having to copy-paste instructions, skills, MCP config, or secrets. Show HN: Gandalf the Grader Show HN: Citadeld – replay any CI failure locally from a single file GitHub - tdortman/cuSBF: High-Performance GPU Super Bloom Filter coral-ai/claude-code-token-xray at main · Coral-Bricks-AI/coral-ai GitHub - ulyssestenn/funes: Funes is a Git-based framework for LLM-managed knowledge work: an AI Librarian ingests raw sources, builds an interlinked Markdown knowledge base, and uses it to produce cited reports, analyses, and other outputs. GitHub - ThatXliner/gah: Git Add Hunk, built for agents to use GitHub - harmont-dev/harmont-cli: Command-line client for the Harmont CI platform GitHub - brooksmcmillin/mcp-authflow: OAuth 2.0 Authorization Server framework for MCP servers GitHub - javaid-codes/audit-supply-chain-agents GitHub - amorey/gochan: A small library of common channel architectures for Go, inspired by Rust GitHub - arifozgun/OpenGem: Free, Open-Source AI API Gateway with Gemini, OpenAI & Anthropic Compatibility in 1 file GitHub - Pranesh950/BioPetals: 🌸 Run BIOxAI models at home, BitTorrent-style. Fine-tuning and inference up to 10x faster than offloading GitHub - cnguyen14/bounty-doctor: Diagnose a GitHub bounty issue before you waste hours: detects honeypot scam repos, AI-bot attempt swarms, and stale contests. Show HN: CoreMCP – MCP Server for On-Prem DBs Show HN: KittyHTML – Render HTML/CSS as an inline image in your terminal GitHub - bingud/filemat: Web-based file manager Show HN: TruthLens – Free multi-signal deepfake image detector GitHub - apexlocal-jz/claude-usage-tray: Windows system-tray app showing your Claude Code rate-limit usage at a glance. Zero deps, ~300 lines of PowerShell. Cross-IDE (works regardless of VS Code, Cursor, plain terminal). Release v0.1.2.1 · kouhxp/yapsnap GitHub - noopolis/moltnet: Self-hostable chat network for AI agents. Pre-built bridges for Claude Code, Codex, and the Claws. Rooms, DMs, history. No Slack bots, no Matrix, no glue code.
GitHub - graphlit/agent-harness-lab
kirkmarple · 2026-06-16 · via Show HN

Visual Next.js sample for comparing how agent harnesses answer the same prompt when they share the same Graphlit context layer and Graphlit agent tools.

Deploy with Vercel

Graphlit Agent Harness Lab workbench showing parallel harness lanes and the judge panel

Run multiple agent harnesses side by side against the same Graphlit-backed context, then inspect tools, sources, timings, token usage, and judge scores.

The app runs selected lanes in parallel:

  • Graphlit
  • OpenAI Agents SDK
  • Vercel AI SDK
  • LangGraph
  • Mastra
  • Claude Agent SDK
  • Google ADK

Graphlit is the always-on baseline lane and shared context layer. The other lanes can be toggled from the composer. Each send creates one turn for every enabled lane, and each lane keeps its own session state so you can compare multi-turn behavior over time.

What You Can Compare

  • How each harness streams answer text and tool events.
  • Which tools each lane calls, including search provider labels for web_search.
  • Sources, tool call arguments/results, raw lane events, timings, and token usage.
  • Provider/model choices across OpenAI, Anthropic, and Google where the harness supports them.
  • Provider defaults versus the lab's optimized, harness-neutral system prompt.
  • LLM-as-judge scoring when at least two lanes finish successfully.

Graphlit Agent Tools

All lanes receive the same read-only Graphlit-backed tool surface:

  • analyze_prompt - required first call for per-turn routing and evidence planning.
  • retrieve_contents
  • inspect_content - inspect retrieved Graphlit content by id or contents://... resourceUri.
  • inspect_page - inspect a public web page URL as Markdown without ingesting it into Graphlit.
  • count_contents
  • list_resources
  • read_resource
  • web_search
  • web_map

The composer can ingest files or URLs as shared setup context before a run. Agent lanes cannot ingest, delete, enrich, or mutate project content during comparison.

The optimized system prompt is enabled by default. It asks every harness to call analyze_prompt first, then follow the returned routing plan for retrieval, web search, inspection, and synthesis. You can turn the optimized prompt off in the UI to compare provider/harness defaults.

Shared Project Context

The file and URL buttons in the composer are setup controls for the connected Graphlit project, not abilities granted to a single lane:

  • File upload sends the selected file to the app server, then calls Graphlit file ingestion for the active project.
  • URL ingest sends the URL to the app server, then calls Graphlit URI ingestion for the active project.
  • The app waits for Graphlit processing before treating the new content as retrieval-ready.
  • Once ready, the content is shared context for every enabled lane in the next comparison run.

That means the comparison stays fair: every lane sees the same project context and the same read-only Graphlit agent tools. During a benchmark turn, lanes can retrieve, inspect content, inspect public pages, count, list, read, search, and map through those tools, but they cannot add, delete, enrich, or mutate project content.

Uploaded files and ingested URLs are persisted in the configured Graphlit project until you manage or delete them in Graphlit. Resetting the lab clears the local comparison transcript and lane sessions; it does not delete project content from Graphlit. Use Graphlit Studio to review or manage project content outside the lab.

Setup

Use Node.js 20.9.0 or newer.

Create a Graphlit project before running the app:

  1. Sign up or sign in at graphlit.dev.
  2. Create or open a Graphlit project.
  3. Open the project environment panel from the sidebar.
  4. Copy the environment variables for the environment you want to use.
npm install
cp .env.example .env.local
npm run dev

Required Graphlit project credentials:

GRAPHLIT_ORGANIZATION_ID=
GRAPHLIT_ENVIRONMENT_ID=
GRAPHLIT_JWT_SECRET=

Configure at least one model provider key. Provider keys stay server-side.

OPENAI_API_KEY=
ANTHROPIC_API_KEY=
GEMINI_API_KEY=

Optional defaults:

NEXT_PUBLIC_DEFAULT_LANES=graphlit,openai,vercel,langgraph,mastra,claude,google
AGENT_HARNESS_LAB_REASONING_EFFORT=medium
AGENT_HARNESS_LAB_MODEL_PROVIDER=openai
AGENT_HARNESS_LAB_MODEL_SIZE=large
AGENT_HARNESS_LAB_GRAPHLIT_TIMEOUT_MS=900000

If NEXT_PUBLIC_DEFAULT_LANES is unset, all lanes that have the required credentials are enabled by default. Graphlit remains the baseline lane when Graphlit credentials and at least one provider key are available.

Deploy To Vercel

Use the deploy button above to clone this repo into your Vercel account. Vercel will prompt for Graphlit variables and model provider API key fields before the first deployment. Configure at least one provider key to run the app.

How It Works

On first load, the app verifies your Graphlit project and bootstraps the model specifications used by the Graphlit baseline and judge.

The flow:

  1. Send the same prompt to every enabled lane.
  2. Each lane runs independently with the same Graphlit agent tools.
  3. Each lane streams its own events, answer text, tool calls, sources, timings, and token usage.
  4. Lane failures stay isolated, so one provider cannot block the others.
  5. If at least two lanes finish successfully and judging is enabled, the judge compares the completed results.
  6. Lane session state carries forward to the next prompt until you reset.

Use reset to clear the prompt, lane transcripts, session state, and judge output. The next send starts a fresh comparison.

Runtime Notes

Graphlit, Vercel AI SDK, LangGraph, and Mastra use the selected provider preference when the matching API key is available. OpenAI Agents SDK, Claude Agent SDK, and Google ADK use their native provider keys.

  • OPENAI_API_KEY: enables OpenAI models and the OpenAI Agents SDK lane.
  • ANTHROPIC_API_KEY: enables Anthropic models and the Claude Agent SDK lane.
  • GEMINI_API_KEY: enables Google Gemini models and the Google ADK lane.

The app uses 15-minute lane and judge timeouts for long-running research prompts. AGENT_HARNESS_LAB_GRAPHLIT_TIMEOUT_MS can override the timeout used for Graphlit bootstrap/API operations.

The judge only compares successful lane runs. If fewer than two lanes complete successfully, judging is skipped.

Contributing

Pull requests are welcome for additional model providers and agent harness lanes. See CONTRIBUTING.md for the contribution checklist.