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

推荐订阅源

W
WeLiveSecurity
博客园 - 【当耐特】
Microsoft Azure Blog
Microsoft Azure Blog
WordPress大学
WordPress大学
Stack Overflow Blog
Stack Overflow Blog
cs.AI updates on arXiv.org
cs.AI updates on arXiv.org
IT之家
IT之家
Cloudbric
Cloudbric
The Register - Security
The Register - Security
小众软件
小众软件
PCI Perspectives
PCI Perspectives
G
Google Developers Blog
AI
AI
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
Google DeepMind News
Google DeepMind News
Google DeepMind News
Google DeepMind News
宝玉的分享
宝玉的分享
Recent Commits to openclaw:main
Recent Commits to openclaw:main
量子位
TaoSecurity Blog
TaoSecurity Blog
cs.CV updates on arXiv.org
cs.CV updates on arXiv.org
F
Full Disclosure
N
Netflix TechBlog - Medium
博客园_首页
Last Week in AI
Last Week in AI
A
Arctic Wolf
B
Blog RSS Feed
J
Java Code Geeks
C
Cybersecurity and Infrastructure Security Agency CISA
I
InfoQ
aimingoo的专栏
aimingoo的专栏
云风的 BLOG
云风的 BLOG
NISL@THU
NISL@THU
MyScale Blog
MyScale Blog
H
Hackread – Cybersecurity News, Data Breaches, AI and More
Jina AI
Jina AI
有赞技术团队
有赞技术团队
S
Schneier on Security
L
Lohrmann on Cybersecurity
P
Privacy & Cybersecurity Law Blog
T
Threat Research - Cisco Blogs
P
Palo Alto Networks Blog
S
Security @ Cisco Blogs
Security Archives - TechRepublic
Security Archives - TechRepublic
Security Latest
Security Latest
Vercel News
Vercel News
博客园 - 司徒正美
Webroot Blog
Webroot Blog
Hacker News: Ask HN
Hacker News: Ask HN
A
About on SuperTechFans

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
From Prompting ChatGPT to Orchestrating AI Agents: Two Years as an Ordinary Engineer
Jason Shen · 2026-06-21 · via DEV Community

Two years ago, my interaction with AI was mostly limited to asking ChatGPT questions and checking its knowledge cutoff.

Today, I use multiple coding agents, connect company knowledge systems through MCP, run local models inside iOS applications, and maintain a project memory layer so different agents can continue each other’s work.

I am not an AI researcher.

I am an ordinary engineer who kept experimenting until AI gradually became part of both my development workflow and my daily life.

This is not a history of the AI industry. It is a personal engineering retrospective: what changed, what did not, and what I learned while moving from chat-based assistance to agent-driven development.

Stage 1: AI Was Impressive, but Unreliable

My first experience with ChatGPT was similar to that of many people.

The initial response was amazement.

The second response was scepticism.

It did not take long to discover that a language model could present incorrect information with extraordinary confidence. I learned the term “hallucination,” and asking about the model’s knowledge cutoff became part of my normal usage.

I later completed introductory AI courses from Andrew Ng and Microsoft.

I did not understand every technical detail, but those courses gave me enough context to recognise an important limitation:

A model producing a plausible answer is not the same as a system producing a reliable result.

That distinction became more important as I moved from asking questions to using AI to modify software.

Stage 2: Cursor Turned AI Into a Development Partner

For me, the real shift began with Cursor.

Before Cursor, AI was primarily a place I went to ask for help.

With Cursor, AI entered the development environment itself.

One Christmas, I spent three days almost entirely at home, building with Cursor. At the end of those three days, I had created my first iOS application.

Then I built another one.

And another.

Cursor made the feedback loop unusually short:

  1. Describe an idea.
  2. Generate an implementation.
  3. Run it.
  4. Observe the failure.
  5. Ask for a correction.
  6. Repeat.

This was my introduction to what later became widely described as Vibe Coding.

The most important change was not that the model wrote code faster than I did.

It was that ideas remained alive long enough to become prototypes.

Before AI-assisted development, a small idea often died during setup, documentation searches, dependency configuration, or framework research.

With AI, the cost of reaching the first working version dropped dramatically.

Rules Were an Early Form of Context Engineering

The early experience was also frustrating.

The agent forgot previous decisions.

It changed files outside the intended scope.

It solved local problems by creating architectural ones.

It occasionally behaved as if it had never seen the project before.

The community’s response was to rediscover software engineering discipline.

We began writing project rules:

  • Read the instructions before changing code.
  • Explain the implementation plan first.
  • Do not delete files without confirmation.
  • Follow the existing architecture.
  • Verify the result after making changes.
  • Ask questions when requirements are ambiguous.

At the time, this was often described as prompt engineering.

Looking back, it was an early form of context engineering.

We were not merely trying to write better sentences. We were trying to create a stable operating environment for a probabilistic system.

Limited context made this harder. Long conversations regularly lost important information, and opening a new chat was part of the workflow.

I even required the agent to refer to itself using a fixed name in every response. It was an imperfect but useful signal that the original instructions were still present.

The implementation details have changed, but the underlying problem remains:

An agent cannot reliably continue work unless the important context is explicit, accessible, and structured.

AI Exposed My Missing Domain Knowledge

While building my first applications, I noticed that my interfaces were consistently unattractive.

Initially, I treated this as a model limitation.

Later, I realised that the missing component was my own domain knowledge.

AI could generate SwiftUI code, but it could not give me design judgement that I did not possess.

It could implement a button, but I still needed to understand:

  • Why the button should be placed in a particular location.
  • How much spacing creates visual hierarchy.
  • What information a user needs before taking an action.
  • Why an interface feels confusing even when every feature works.

AI reduced implementation friction, but it did not remove the need for expertise.

In some ways, it made missing expertise more visible.

When implementation is slow, it is easy to blame the tools.

When implementation becomes fast, weak product decisions, unclear requirements, and poor design judgement become much harder to hide.

Stage 3: Moving Beyond the Chat Interface

As models and tools multiplied, I started using APIs and local inference rather than relying entirely on hosted chat products.

I bought a reasonably powerful computer and began downloading models from Hugging Face.

One model that surprised me was Kokoro TTS. Its relatively small footprint showed me how much useful capability could exist outside the largest hosted models.

I later integrated text-to-speech into an iOS application using the Sherpa ecosystem.

This introduced a new category of engineering problems.

Running a model in a desktop experiment is very different from shipping it inside a mobile application.

Suddenly, I had to care about:

  • Model size.
  • Memory usage.
  • Startup latency.
  • Packaging.
  • Device compatibility.
  • Offline execution.
  • Failure handling.

This experience reinforced another lesson:

A model demo is not a product.

The engineering work begins when the model has to operate inside real constraints.

Stage 4: Spec-Driven and Agent-Driven Development

After spending a long time in free-form Vibe Coding loops, Kiro’s Spec mode stood out to me.

It approached AI development through explicit requirements, design, tasks, and implementation steps.

This felt important because code generation was no longer the main bottleneck.

The real challenges had become:

  • Maintaining the goal across a long-running task.
  • Preserving constraints.
  • Producing work that could be reviewed.
  • Recording decisions.
  • Enabling another developer or agent to continue.
  • Recovering when the agent moved in the wrong direction.

Spec-driven development felt less magical than free-form prompting, but it felt more transferable to professional engineering.

The same transition occurred with project instruction files, skills, goal modes, and agent loops.

The industry moved from:

“Generate this function.”

toward:

“Understand this repository, follow these constraints, complete this goal, test the result, and report what changed.”

That is a fundamentally different type of interaction.

MCP Connected AI to Existing Systems

The Model Context Protocol generated plenty of debate when it appeared.

Some considered it a major architectural shift. Others saw it as an additional abstraction that might eventually be replaced.

In my own work, MCP became useful for a practical reason:

It offered a relatively lightweight way to connect agents to existing tools and data.

I built an MCP integration for my company’s knowledge platform.

The organisation already had nearly ten years of accumulated knowledge. The problem was not the absence of information. The problem was making that information available within an agent workflow.

Once the knowledge platform was connected, the agent could retrieve information in the context of an actual task.

This represented a major change in how I thought about AI.

Two years earlier, I had asked a chatbot when its training knowledge ended.

Now I was designing a system that gave an agent access to the organisation’s current knowledge.

The focus had shifted from model intelligence to system design.

Coding Is Easier, but Engineering Is Not

Modern coding agents can produce remarkable amounts of working code.

It is increasingly possible to define a goal, give an agent access to a repository, and let it iterate through implementation and testing.

That can make programming appear almost trivial.

My experience has been more complicated.

The amount of manual typing has decreased.

The need for engineering judgement has not.

The work has moved toward:

  • Defining goals precisely.
  • Breaking large tasks into safe boundaries.
  • Supplying relevant context.
  • Preventing unnecessary changes.
  • Reviewing architecture.
  • Validating assumptions.
  • Testing behaviour rather than trusting output.
  • Diagnosing failures that cross multiple generated changes.

A successful build is not necessarily a correct product.

A passing test suite is not proof that the requirement was understood.

Generated code still becomes code that someone must own.

AI has made implementation faster, but faster implementation increases the importance of deciding what should be implemented.

Multi-Agent Development Created a Memory Problem

I now regularly use more than one agent on a project.

Claude may begin a task. Kiro or Codex may continue it. Another tool may take over when the first one reaches a limit or struggles with a particular type of work.

This sounds like parallel engineering, but the handoff is often the weakest point.

The next agent needs to know:

  • What the original goal was.
  • What has already been implemented.
  • Which decisions were intentional.
  • Which approaches failed.
  • Which files are sensitive.
  • What remains incomplete.
  • What should not be changed.

Without that information, every handoff becomes a partial restart.

To solve this problem for my own workflow, I built QiJu, written 起居 in Chinese.

QiJu records project changes and provides a reusable memory layer for subsequent agent sessions.

Without it, I spend significant time reconstructing context.

With it, agent handoffs become closer to continuing a shared workflow rather than starting another isolated chat.

I no longer think of multi-agent development as “using several AI tools.”

The engineering challenge is creating continuity between them.

The Most Important Change: Ideas Survive Longer

A few days ago, I spent around thirty minutes building a floating stopwatch for macOS.

It was a small tool I had wanted for a long time.

The result was not technically significant, but the process represented something larger.

Previously, that idea would probably have remained on a list.

Building it would have required enough setup and research that the expected benefit did not justify the activation cost.

With AI assistance, the distance between the idea and a usable first version was short enough that the idea survived.

That is probably the biggest personal impact AI has had on me.

It has not made every idea valuable.

It has made experimentation cheap enough that more ideas get the opportunity to prove whether they are valuable.

AI Expanded My Capabilities and Narrowed My Attention

There has also been a personal cost.

Because AI and software occupied so much of my attention, I realised that I was entering an information bubble.

My daily reading became dominated by models, agents, context windows, IDEs, MCP servers, and product announcements.

To counter that, I began using AI to generate a daily story about something outside my normal interests.

History, art, society, individuals, and unfamiliar parts of the world became part of a collection I call “Stories Outside the Bubble.”

The irony is obvious.

AI expanded what I could build while narrowing what I noticed.

Then I used AI to widen my attention again.

What I Believe After Two Years

Over these two years, my relationship with AI moved through several stages:

  1. AI as a chatbot.
  2. AI as a coding assistant.
  3. AI as an implementation agent.
  4. AI as a component connected to tools and knowledge.
  5. AI as part of a multi-agent engineering workflow.

The most valuable lesson is not that prompts are powerful or that coding agents are fast.

It is that useful AI systems depend on everything around the model:

  • Context.
  • Domain knowledge.
  • Memory.
  • Tools.
  • Constraints.
  • Evaluation.
  • Human judgement.
  • Continuity between tasks.

I remain an ordinary engineer.

But AI is now embedded in how I build applications, use company knowledge, record project decisions, and explore new subjects.

I do not know which models or development tools will still be dominant 24 months from now.

I do expect the distance between an idea and an implementation to keep shrinking.

The difficult part will remain deciding which ideas deserve to be implemented, designing systems that can be trusted, and taking responsibility for what the agents produce.

After writing this retrospective by the ocean, I should probably continue taking the morning off.

But I am already thinking about opening Claude Code again.