---
title: "How we built Linear Agent"
url: https://daily.dev/posts/how-we-built-linear-agent-b9snf8obk
source_url: https://linear.app/now/how-we-built-linear-agent
type: article
source: "Linear"
published: 2026-08-10T13:12:44.671Z
updated: 2026-08-10T14:41:46.019Z
tags: ["llm", "ai-agents", "prompt-engineering"]
reading_time: 9
upvotes: 0
comments: 0
language: en
---

> ## Documentation Index
> Fetch the complete documentation index at: https://daily.dev/llms.txt
> Use this file to discover all available pages before exploring further.

# How we built Linear Agent

**[Linear](https://daily.dev/sources/linear)** · 9 min read · 0 upvotes · 0 comments

## Summary

Linear's engineering team shares the architectural decisions behind Linear Agent, their AI-powered task automation tool. Key design choices include: a high-level system prompt that sets communication style and hard boundaries without over-scripting behavior; tool design that encodes constraints structurally rather than through verbose instructions; a 'system skills' composition model that progressively loads only relevant context and tooling per task; and a custom agent harness built from scratch to support dynamic tool injection, contextual approval flows, and asynchronous sub-agent execution. The team deliberately avoided exposing low-level primitives like the GraphQL API or SDK to limit the blast radius of mistakes, trading some capability breadth for predictability.

## Full article

daily.dev links to this article rather than hosting it. Read it at the original source: <https://linear.app/now/how-we-built-linear-agent>

## Questions this post answers

### How do you prevent an AI agent from taking unpredictable or overly broad actions in a product context?

Encoding constraints into tool design rather than relying solely on prompt instructions is more effective. By shaping tool parameters so invalid actions are impractical to take — similar to good API or UI abstractions — the agent's action space is naturally bounded. Requiring confirmation before risky or hard-to-undo actions, and limiting access to low-level primitives like raw GraphQL APIs, further reduces the blast radius of mistakes.

_Teams shipping AI agents into production track patterns like these on daily.dev._

### What is the 'system skills' pattern for managing context in an AI agent?

System skills are composable units that each bundle a system prompt fragment, metadata, and a set of tools representing an independent capability area. Rather than loading all context upfront, the agent infers which skills are relevant before a run and can load additional skills on-demand as a task unfolds. This keeps each thread's context focused while allowing the agent to support a broad range of capabilities without an ever-growing prompt.

_Developers designing agent context strategies find related architectural discussions on daily.dev._

### Why would a team build a custom AI agent harness instead of using an off-the-shelf library?

Off-the-shelf harness libraries have strong opinions about execution flow — typically providing tools upfront, calling run, and waiting for a final response. A custom harness enables orchestration behaviors that don't fit that model: dynamic tool injection that preserves the provider's prefix cache, contextual mid-run approval logic based on conversation history rather than just tool name and parameters, and suspending a parent agent mid-tool-call while a sub-agent runs asynchronously.

_Engineers choosing between agent frameworks weigh trade-offs like these on daily.dev._

## Similar posts on daily.dev

- [Why Linear Built an API For Agents](https://daily.dev/posts/why-linear-built-an-api-for-agents-f5zsts4ut) · The New Stack · 3 upvotes · 0 comments
- [How we use Linear Agent at Linear](https://daily.dev/posts/how-we-use-linear-agent-at-linear-itdsspe2t) · Linear · 1 upvotes · 0 comments

---

Tags: [#llm](https://daily.dev/tags/llm), [#ai-agents](https://daily.dev/tags/ai-agents), [#prompt-engineering](https://daily.dev/tags/prompt-engineering)

[View this post on daily.dev](https://daily.dev/posts/how-we-built-linear-agent-b9snf8obk)
