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

推荐订阅源

WordPress大学
WordPress大学
The GitHub Blog
The GitHub Blog
T
Threatpost
人人都是产品经理
人人都是产品经理
大猫的无限游戏
大猫的无限游戏
Exploit-DB.com RSS Feed
Exploit-DB.com RSS Feed
博客园 - Franky
Recent Commits to openclaw:main
Recent Commits to openclaw:main
Apple Machine Learning Research
Apple Machine Learning Research
酷 壳 – CoolShell
酷 壳 – CoolShell
M
MIT News - Artificial intelligence
小众软件
小众软件
Hugging Face - Blog
Hugging Face - Blog
云风的 BLOG
云风的 BLOG
S
Security Affairs
P
Proofpoint News Feed
L
LINUX DO - 最新话题
宝玉的分享
宝玉的分享
S
Security @ Cisco Blogs
H
Hacker News: Front Page
Security Archives - TechRepublic
Security Archives - TechRepublic
Vercel News
Vercel News
Engineering at Meta
Engineering at Meta
Know Your Adversary
Know Your Adversary
Y
Y Combinator Blog
美团技术团队
CTFtime.org: upcoming CTF events
CTFtime.org: upcoming CTF events
月光博客
月光博客
量子位
博客园_首页
The Last Watchdog
The Last Watchdog
D
DataBreaches.Net
www.infosecurity-magazine.com
www.infosecurity-magazine.com
P
Privacy International News Feed
The Register - Security
The Register - Security
Schneier on Security
Schneier on Security
H
Help Net Security
K
KPMG report finds enterprise disconnect between AI and its ROI | CIO
V
Visual Studio Blog
Google DeepMind News
Google DeepMind News
F
Full Disclosure
C
Cyber Attacks, Cyber Crime and Cyber Security
MyScale Blog
MyScale Blog
aimingoo的专栏
aimingoo的专栏
S
Schneier on Security
L
Lohrmann on Cybersecurity
S
Secure Thoughts
Stack Overflow Blog
Stack Overflow Blog
Cloudbric
Cloudbric
Microsoft Security Blog
Microsoft Security Blog

DEV Community

Authentication Security Deep Dive: From Brute Force to Salted Hashing (With Java Examples) Why AI Systems Don’t Fail — They Drift Spilling beans for how i learn for exam😁"Reinforcement Learning Cheat Sheet" I Replaced Chrome with Safari for AI Browser Automation. Here's What Broke (and What Finally Worked) How Python Borrows Other People's Work The $40 Architecture: Processing 1 Billion API Requests with 99.99% Uptime Vibe Coding: A Workflow Guide (From Zero to SaaS) Most webhook security guides protect the wrong side. The scary part is delivery. Headless CMS for TanStack Start: Build a Blog with Cosmic EU Age Verification App "Hacked in 2 Minutes" — What Actually Happened Comfy Cloud’s delete function does not actually remove files Running AI Models on GPU Cloud Servers: A Beginner Guide Event-driven media intelligence with AWS Step Functions and Bedrock I scored 500 AI prompts across 8 quality dimensions — here's what broke How to Call Google Gemini API from Next.js (Free Tier, No Backend Needed) The Portal Protocol: Reclaiming Human Connection in the Age of AI How to Fix Your Team's Scattered Knowledge Problem With a Self-Hosted Forum Intro to tc Cloud Functors: A Graph-First Mental Model for the Modern Cloud Designing Multi-Tenant Backends With Both Ownership and Team Access I Built a Neumorphic CSS Library with 77+ Components — Here's What I Learned PostgreSQL Performance Optimization: Why Connection Pooling Is Critical at Scale Cómo construí un SaaS multi-rubro para gestionar expensas en Argentina con FastAPI + Vue 3 🚀 I Built an Ethical Hacking Scanner Tool – Open Source Project I Replaced /usage and /context in Claude Code With a Single Statusline A Pythonic Way to Handle Emails (IMAP/SMTP) with Auto-Discovery and AI-Ready Design I Collected 8.9 Million Polymarket Price Points — Here's What I Found About How Markets Really Move EcoTrack AI — Carbon Footprint Tracker & Dashboard Everyone's Using AI. No One Agrees How. 5 self-hosted ebook managers worth trying in 2026 Building Your First AI Agent with LangChain: From Chatbot to Autonomous Assistant Common SOC 2 Failures (Real World) Stop Vibe-Checking Your AI App: A Practical Guide to Evals How to Use SonarQube and SonarScanner Locally to Level Up Your Code Quality Your Next To-Do App Is Dead — I Replaced Mine with an OpenClaw AI Sign a Nostr event in 60 lines of Python using coincurve — no nostr-sdk, no nbxplorer, no rust toolchain ITGC Audit Explained Like You’re in Big 4 Patch Tuesday abril 2026: Microsoft parcha 163 vulnerabilidades y un zero-day en SharePoint Stop scraping everything: a better way to track competitor price changes Listing on MCPize + the Official MCP Registry while routing payments OUTSIDE the marketplace — how I kept 100% of my x402 revenue Building an AI-Powered Risk Intelligence System Using Serverless Architecture Why We Ripped Function Overloading Out of Our AI Toolchain Testing AI-Generated Code: How to Actually Know If It Works SaaS Churn Is Killing Your Business. Here Is What to Do About It (Without a Support Team) The Speed of AI Is No Longer Linear - And Self-Improving Models Are Why How to Implement RBAC for MCP Tools: A Practical Guide for Engineering Teams From Standard Quote to Persuasive Proposal: AI Automation for Arborists I built a CLI that scaffolds complete multi-tenant SaaS apps Axios CVE-2025–62718: The Silent SSRF Bug That Could Be Hiding in Your Node.js App Right Now The dashboard that ended our friendship Data Pipelines Explained Simply (and How to Build Them with Python) The Hidden Cost of AI Systems Nobody Talks About. undefined vs undeclared, and how typeof behaves Switching from file-based jobs to NATS/Kafka in Rust without changing code io_uring Adventures: Rust Servers That Love Syscalls Why Agentic AI is Killing the Traditional Database The POUR principles of web accessibility for developers and designers Quantum Neural Network 3D — A Deep Dive into Interactive WebGL Visualization How To Install Caveman In Codex On macOS And Windows Automation Pipeline Reliability: Why Your Workflow Breaks When Nobody Is Watching I Built an 'Open World' AI Coding Agent — It Works From ANY Folder From Freelancing to Product: A Tech Service Company's SaaS Transformation China's AI Giants: Adding Tencent Hunyuan & ByteDance Doubao to AI University (74 Providers) On the Vibe Coders and Their Lies clerk: Auto-Summarize Your Claude Code Sessions AI Weekly — 2026/04/10–04/17 | The Model Lockdown Is Here, but the Toolchain Is the Real Battleground AI 週報 — 2026/04/10–2026/04/17 模型封鎖潮來了,但工具鏈才是真戰場 Maybe this is how Open-Source apps are born... 🚀 Fine-Tune LLMs with LoRA and QLoRA: 2026 Guide tRPC v11 + Next.js App Router: End-to-End Type Safety Without the Boilerplate ShadCN UI in 2026: Why I Stopped Installing Component Libraries and Started Owning My Components SaaS Billing in React Server Components: Stripe + Supabase Without a Single `useEffect` Join our DEV Weekend Challenge — $1,000 in Prizes Across TEN winners! Submissions Due April 20 at 6:59 AM UTC. Implementing FSRS Spaced Repetition in Flutter + Supabase — Adding Memory Science to an AI Learning App "I Texted My Localhost From the Train — Claude Code Fixed the Bug Before I Got Home" I Built a Sales Prep AI and It Went Deeper Than Expected Design to Code #2: One JSON, Eleven Outputs Solving the 100M-Row Problem: A Summary Table Pattern for High-Volume Push Notification Logs Flutter Web With Wasm: What Actually Changes For Developers I Built 50 Royalty-Free Soundtracks for My Side Project in a Weekend Using AI Music Generation The Vibe Coding Security Checklist: 7 Things to Check Before You Ship Stop Letting Googlebot Guess Fix Your React App's SEO Right Desconstruindo o Streaming do LinkedIn: Como Criar um Engine de Extração de Vídeo de Alta Performance com HLS e FFmpeg (EDA Part-1) EDA (Exploratory Data Analysis) Explained With Real Life — Why Looking at Your Data Is the Most Important Step in Machine Learning Brand Relationship Management at Scale: Our 4-Touch Outreach System for 200+ Brands Why String.fromEnvironment() Might Return an Empty String in Dart JGuardrails 1.0.0 — Hardening Java LLM Apps Against Jailbreaks, Toxicity, and Prompt Injection Plan and Schedule a Full Week of Threads Content From One Claude Conversation Coding Cat Oran Ep3, Five Tables Changed Everything Updated: BFF Pattern I'm done watching freelancers get buried by 200 proposals. So I'm building the alternative. This is my first post BFS Algorithm in Java Step by Step Tutorial with Examples Tracking LLM Pricing Monthly: An Open Dataset for 22 AI Models How We Measure Content ROI on a Comparison Site: Revenue Attribution Without Perfect Data Introducing Nova AI Ops: The AI-Native Operating System for SRE Teams I built a free desktop video downloader for Windows — Grabbit How Talkie OCR Helps Vision-Impaired & Dyslexic Users Read the World Around Them VRCFaceTracking安装和iPhone面捕配置教程,有bug Even CrowdStrike Can't See Your Agents The Automation Gold Rush: What n8n Workflows and Claude Are Opening Up for Developers Right Now
What is an Agent Harness? A Hands-On Guide With AgentCore harness
Morgan Willi · 2026-05-01 · via DEV Community

To have an AI agent, you need to build a harness first. But what exactly is an agent harness?

The AI world doesn't seem to agree on a single definition for this, but this is how I've been thinking about it: an agent harness is the system that wraps around a model to turn it into an agent. This includes the orchestration loop, tool connections, memory, compute, observability, and anything else it needs. It's everything between "I have a model" and "I have a running agent."

That sounds like a lot, and it can be. Teams spend days writing harness code for every agent they build using frameworks like Strands Agents SDK. But the tooling has now caught up and has made this all a lot easier. Services like the managed harness in Amazon Bedrock AgentCore lets you define your agent as configuration and it takes care of building the harness for you, taking you from idea to running agent with custom tools and capabilities in minutes.

In this post, I'll break down what agent harnesses are, what AgentCore harness is, and how I built an AI trends analyst without writing any code myself.

What Is an Agent Harness?

Every agentic product you've used has a harness powering it. Claude Code, Kiro, and Codex are all coding assistants that take a model and wrap a custom harness around it. The harness is what gives the model a filesystem, tool access, a code sandbox, memory across sessions, context management, and the ability to reason in a loop. Without it, the model just generates text. With it, the model writes code, runs tests, browses the web, and completes multi-step tasks. It turns out, the harness has been there all along. We're just now giving it a formal name.

The simplest way I've seen it put is Agent = Model + Harness. That means that any part of your agent that isn't the model is a part of the harness.

In practice, building a harness means picking an agent framework (Strands Agents, LangGraph, LlamaIndex, CrewAI) and writing code that configures the model, defines a system prompt, wires up tools, sets up memory, performs context engineering tasks, adds observability, and handles authentication. That's the job of an AI engineer. The final program might be 50 lines or 5000 lines depending on what you're doing. It can vary a lot dependent on your use case.

But beyond the agent code itself, you also need the infrastructure underneath the agent for this all to work: compute to host it, a sandbox so the agent can execute code safely, session management so users can come back tomorrow, auth so the agent can be secured and can call external APIs, and observability so you know what happened when things break at 2 AM. So you package up your agent code, deploy it to some agent hosting environment, and keep it running. What you have in the end is a running agent.

Those are the two layers of work. The agent code and the infrastructure to run it. For a lot of use cases that don't require super complex agent harness setups, the pieces are standard. Many teams are building out agent platforms, or agent factories, where you provide basic configuration for your specific agent and it's built out for you without you having to write the code yourself. That's exactly what AgentCore harness does for you.

AgentCore harness: An Agent Factory

Think of it like an agent factory where you declare config (model, prompt, tools, memory settings) and AgentCore harness compiles it into a running agent.

Under the hood, AgentCore harness takes your config and assembles a fully wired Strands Agents agent: the orchestration loop, tool execution, memory management, context handling, streaming, and error recovery are all handled. Then it runs that agent in an isolated microVM with its own CPU, memory, filesystem, and shell, without you provisioning anything.

It tackles both layers of work, the agent code and infrastructure to host and run it.

Let's Get Hands-On: The AI Trends Analyst Agent

I built an agent with AgentCore harness to browse HackerNews and dev.to and tells me what the AI community is talking about. It pulls the top posts with a built-in browser tool, and then uses a built-in code interpreter tool to analyze frequency, sentiment, and produces a ranked summary of trending topics with a chart. I didn't write any of the agent code myself.

I used the agentcore CLI which has a really nice interactive agentcore create command to provide my agent harness configuration. It walks you through all of the options you have. At the end, it creates a configuration file for you.

  1. Download the agentcore CLI:
npm install -g @aws/agentcore@preview

Enter fullscreen mode Exit fullscreen mode

  1. Run agentcore create and follow the prompts.
  2. Inspect the config file it produces. This was mine:
{
  "name": "TrendsAgentHarness",
  "model": {
    "provider": "bedrock",
    "modelId": "global.anthropic.claude-sonnet-4-6"
  },
  "tools": [
    {
      "type": "agentcore_browser",
      "name": "browser"
    },
    {
      "type": "agentcore_code_interpreter",
      "name": "code-interpreter"
    }
  ],
  "skills": [],
  "authorizerType": "AWS_IAM"
}

Enter fullscreen mode Exit fullscreen mode

  1. Modify the system-prompt.md file to define agent behavior. This is what my trends agent’s system prompt was:
You are a tech trend analyst. 
Every time you are invoked, browse HackerNews and dev.to for today's top posts related to AI and developer tools. 
Use the code interpreter to analyze the results: count topic frequency, identify clusters, and produce a ranked list of the top 5 trending topics with a brief summary of each. 
Include a bar chart of topic frequency. Be concise.

Enter fullscreen mode Exit fullscreen mode

Now you have the entire agent definition.

  1. To deploy it run:
agentcore deploy

Enter fullscreen mode Exit fullscreen mode

  1. And to invoke it run:
agentcore invoke --harness TrendsAgentHarness \
  --session-id "$(uuidgen)" \
  "What's trending in AI today?"

Enter fullscreen mode Exit fullscreen mode

When the agent ran, it opened a browser, navigated to HackerNews, scrolled through posts, did the same on dev.to, pulled results into the code interpreter, ran Python to cluster topics and build a chart, and streamed the final summary back to my terminal which I then saved into a markdown file to read. All of it ran in an isolated microVM that spun up just for this session.

This is what the report it generated looks like:

Report

The harness supports Bedrock, OpenAI, and Google Gemini models. You can switch providers between turns of the same session and the conversation continues with context intact.

When I first got my hands on this, I started looking for the catch. I've spent enough time wiring agent orchestration code to be suspicious when someone says "just provide a config." But the JSON above and two CLI commands are genuinely the whole workflow. The browser tool does eat a lot of tokens, but the core loop worked on the first try.

Plug In Your Tools

AgentCore harness comes with a browser and code interpreter built in, powered by AgentCore Browser and AgentCore Code Interpreter. That is what I used for my trends analyst, but you can connect whatever tools your agent needs:

  • MCP servers — connect to any MCP-compatible tool server
  • AgentCore Gateway — connect to APIs you've registered with AgentCore
  • Custom tools — define inline function tools the agent can call

Adding a new tool or MCP server is a config change.

Bring Your Own Skills

You can also include skills for your agent. An agent skill is a bundle of markdown instructions and scripts that gives the agent domain knowledge on demand. This could be how to work with Excel files, use a specific API, or follow a particular workflow. You package the skill into your agent's environment, then you can point the harness at it and the agent can use it.

The agent picks up the skill's instructions and follows them. This gives you the ability to provide domain expertise to custom agents without writing all the orchestration logic yourself. Just provide the skill.

What You Get Out of the Box

Capability What It Means
Isolated microVM per session Dedicated CPU, memory, filesystem. No cross-session data leakage.
Shell access Run commands directly on the VM without model reasoning or token cost.
Persistent filesystem Suspend mid-task, resume exactly where you left off within a single session’s lifetime.
Model-agnostic Bedrock, OpenAI, Gemini. Switch mid-session without losing context.
Tool connectivity MCP servers, AgentCore Gateway, browser, code interpreter, custom tools.
Skills Package domain knowledge as markdown + scripts.
Custom environments Bring your own container image with your dependencies and runtimes.
Observability Every action auto-traced via AgentCore Observability.

How Does This Actually Work? Strands Agents Under the Hood

When you submit a config to AgentCore harness, something has to actually build the agent and run the loop. That something is Strands Agents, the open-source agent harness SDK from AWS.

Strands handles the agent loop: take in a user message, reason about it, decide which tool to call, execute the tool, feed the result back to the model, repeat until the task is done, and then stream back the response. It's a model-driven approach where the model makes the decisions and Strands provides the runtime that carries them out.

AgentCore harness takes your config and assembles a Strands agent from the components Strands offers. Your declarations become a Strands agent program that would have taken you hours or days to write by hand.

But one of my favorite parts of AgentCore harness is that you have an escape hatch if you need it. When you outgrow configuration and need custom orchestration logic, specialized routing, or multi-agent coordination, you can export the harness to Strands code and keep running on the same platform.

If you want to learn more about Strands, the SDK docs and the blog post on the model-driven approach are good starting points.

Frequently Asked Questions

Do I need a harness to use Claude Code or ChatGPT?
No. If you're calling a model with a prompt and getting a response, you're already using a harness someone else built (the consumer-facing application). You need to build your own when you're creating custom agents that call tools, connect to internal MCP servers, maintain state across turns, execute code, or run autonomously over multiple steps.

Is an agent harness the same as an agent framework?
No. A framework gives you building blocks (tool interfaces, model connectors, loop patterns). A harness is the assembled, running system: framework code plus compute, sandboxing, memory, and observability. You use a framework to build a harness, or you let a managed harness build one for you.

Can I build a harness without a framework?
You can, but you'd be writing the orchestration loop, tool dispatch, error handling, and context management from scratch. Frameworks like Strands Agents exist specifically so you don't have to.

What happens when I outgrow the features AgentCore harness provides?
You export to code and customize from there. AgentCore lets you export your harness config to Strands Agents code, and then you deploy back to the same platform.

Go Build Something

AgentCore harness is in public preview in four regions: US West (Oregon), US East (N. Virginia), Europe (Frankfurt), and Asia Pacific (Sydney) as of the publishing of this blog.

Start here:

My trends analyst agent took about 5 minutes from idea to first invocation. I'm already thinking about what to build next. Your turn to get started.