跳到主要内容

AI Agent 从 0 到 1:概念、执行逻辑、Java 选型与 Harness

· 阅读需 8 分钟

这是一篇总览篇:目标是把 AI Agent 的全局认知一次性立起来——它是什么、怎么跑、Java 里怎么落地、以及为什么"裸调大模型"和"可靠的 Agent 产品"之间隔着一整个工程层(Harness)。文中每个话题只展开到"建立坐标系"的深度,细节拆到文档区 AI 学习地图,随学习进度逐步填充,本文是活的索引。

1. 自主性跃迁:从 Chatbot 到 Agent

理解 Agent 的第一件事不是"它能用工具",而是控制权在谁手里

形态控制权人类角色典型例子
Chatbot人类逐步指挥,模型单轮应答提问者问答、翻译、摘要
Copilot模型建议,人类执行并决策审批者/执行者代码补全、写作助手
Workflow代码编排流程,模型在固定节点被调用流程设计者"先检索→再总结→再评分"的管道
Agent模型自己决定下一步做什么、何时结束目标下达者Coding Agent、Deep Research

关键分界线是 Workflow vs Agent(这也是选型时最容易混淆的概念):

Workflow:开发者用代码预先写好 LLM 的调用路径,每一步做什么、怎么跳转,都是确定的。LLM 是"被编排的节点"。

Agent:开发者只给目标和工具集,LLM 在循环中动态决定调用哪个工具、是否继续。LLM 是"编排者"。

代价结构完全不同:Workflow 可预测、好调试、成本可控;Agent 灵活但路径不确定,必须依赖工程手段兜底(这是第 5 节 Harness 存在的原因)。实践原则:能用 Workflow 解决的,不要上 Agent。

2. 分类地图:三个正交维度

业界对 Agent 的分类口径很乱,用三个维度可以拆干净:

维度一:按自主程度(横向光谱)

Workflow ──> 受限 Agent(部分环节自主)──> 完全自主 Agent(端到端目标驱动)

维度二:按架构模式(怎么组织推理)

模式核心机制适用
ReActReason + Act 交替:想一步、做一步、看结果再想通用骨架,绝大多数 Agent 的底层
Plan-and-Execute先生成完整计划,再逐步执行,可重规划长任务、需要全局视野
Reflection生成后自检/批评,再修订对输出质量敏感的场景
Router先分类,再分发到专门处理器意图识别、多技能分流
Multi-Agent多个角色协作(编排者-执行者、辩论、流水线)上下文隔离、角色专业化

维度三:按应用形态(做成什么产品)

  • Coding Agent:Claude Code、OpenCode、Codex——在沙箱里读写代码、跑测试的反馈闭环
  • Deep Research:多轮检索→综合→成文
  • Computer Use / GUI Agent:操作浏览器和桌面
  • 业务 Agent:客服、数据分析、运维排障,嵌入企业流程

记住这个坐标系就够了:说任何一个 Agent,先问三个问题——自主程度多高?什么架构模式?什么应用形态?

3. 执行逻辑:一个循环讲透

剥掉所有包装,Agent 的核心就是一个 LLM 循环(Agent Loop)

┌─────────────────────────────────────────────────┐
│ │
│ ┌──────────┐ ┌─────────┐ ┌────────────┐ │
│ │ 构造上下文 │───>│ LLM 推理 │───>│ 返回 tool │ │
│ │ (prompt + │ │ │ │ call 或文本 │ │
│ │ 历史+工具)│ └─────────┘ └─────┬──────┘ │
│ └────▲─────┘ │ │
│ │ 是 tool call │
│ │ ▼ │
│ ┌────┴──────┐ ┌──────────┐ ┌──────────┐ │
│ │ 追加观测结果 │<───│ 执行工具 │<─│ 解析参数 │ │
│ │ (observation)│ │ (sandbox)│ │ (JSON) │ │
│ └───────────┘ └──────────┘ └──────────┘ │
│ │
│ 终止条件:模型输出纯文本 / 达到迭代上限 / 人工中断 │
└─────────────────────────────────────────────────┘

逐环节的要点(每个点在文档区都有独立细化):

  1. 上下文构造:system prompt(角色+规则)+ 工具定义 + 历史消息 + 规则文件(如 AGENTS.md)的注入。上下文不是越多越好——这是 context 与 memory 的核心议题。
  2. 推理:模型基于当前上下文输出。注意 LLM 是无状态的,"记忆"全靠每次重新喂上下文。
  3. Tool Calling:模型输出的不是魔法,是结构化的函数调用意图(名称+JSON 参数),由外部 runtime 校验并执行。模型只"点菜",执行永远在引擎侧。
  4. Observation 回填:工具结果作为消息追加回上下文,进入下一轮。上下文窗口就是 Agent 的工作内存,长任务会撑爆,所以需要压缩/摘要/外部记忆。
  5. 终止条件:三个出口——模型认为完成(输出纯文本)、迭代上限熔断、人工中断。上限熔断是必需的保险丝,防止死循环烧钱。

一个反直觉的结论:Agent 没有任何单一组件是"智能"的,智能来自"循环 + 工具 + 好的上下文管理"的组合。 理解了这一点,就看懂了所有 Agent 框架——它们本质上都在做同一件事:把这个循环工程化。

4. Java 落地:框架怎么选

先说结论表,再看理由:

方案定位何时选
Spring AISpring 官方,ChatClient 抽象 + tool calling + 各家模型适配已有 Spring Boot 技术栈,要的是"AI 能力的标准化接入"
Spring AI Alibaba基于 Spring AI,加多 Agent 图编排、A2A 协议、DashScope 深度集成需要多 Agent 协作/复杂流程编排,且接受阿里系模型生态
LangChain4jLangChain 设计理念在 Java 的独立实现,AiServices 声明式接口想要 LangChain 生态的抽象(Memory/RAG/Tools),不绑定 Spring
裸调 SDK直接用 OpenAI 兼容 SDK 手写 Agent Loop学习原理、或循环逻辑简单到不值得引框架

选型判断逻辑(按顺序问自己):

  1. 只是给现有应用加 LLM 能力(问答/摘要/RAG 检索)?→ Spring AI,别过度设计。
  2. 需要 Agent 自主循环或多个 Agent 协作?→ 在 Spring AI Alibaba(Spring 系、图编排)和 LangChain4j(社区活跃、抽象丰富)之间选,前者胜在与 Spring 生态的一致性,后者胜在迭代速度。
  3. 想真正吃透执行逻辑?→ 裸调 SDK 手写一遍循环,再回头看框架,会看到所有框架都只是第 3 节那个循环的包装。

Python 参照系(对照看设计理念即可,不必深入):LangChain 是"组件库"思路——链式组合各种抽象;LangGraph 把 Agent 建模为显式状态图,节点是步骤、边是跳转、状态在图里流转,用 checkpoint 支持持久化和人工介入(HITL)。Java 生态整体落后 Python 半拍,但工程化程度(类型安全、可测试性、运维成熟度)是反向优势——这也呼应第 5 节:Agent 的可靠性本来就是个工程问题。

细节对比(版本、tool calling 写法、memory 实现、生产案例)在文档区 frameworks 逐篇展开。

5. Harness:从 Demo 到产品的距离

Harness(运行时脚手架/工程外壳) 是最容易被低估的一层:包裹在模型外面的全部工程设施。Demo 和可靠产品之间隔的不是更好的模型,而是更好的 Harness。

它的两种形态对应两类系统:

形态一:Coding Agent 的 Harness(以 Claude Code / OpenCode 为例拆解)

  • 规则注入:AGENTS.md / CLAUDE.md 项目规则文件,每次请求注入 system prompt,让 Agent"入乡随俗"
  • 工具最小权限:默认只给读工具,写/执行按需授权;每个工具的 description 就是给模型的 API 文档——工具描述写得含糊,模型就用得离谱
  • Subagent 上下文隔离:探索类脏活(全库搜索)丢给子 Agent,只把结论带回主上下文,保护主窗口不被撑爆
  • 验证闭环:让测试、lint、build 成为工具,模型改完自己跑、自己看报错、自己修——反馈信号比指令更有效
  • 审批门与沙箱:破坏性动作(删除/推送/发布)必须人工批准,执行环境隔离

形态二:编排框架的 Harness(以 LangGraph / Spring AI Alibaba 的图机制为例)

  • 图编排:把 Agent 流程显式化为状态图,节点=步骤,边=转移,比隐式的 prompt 指令可观测、可回放
  • 状态管理与 Checkpoint:状态持久化,失败可恢复,支持时间旅行调试
  • HITL(Human-in-the-Loop):在关键节点中断等待人工审批后继续
  • 可观测性:每一步的输入输出可追踪(对 Agent 调试是刚需,不是锦上添花)

一句话总结这一节:模型决定上限,Harness 决定下限。 用户感知到的"这 Agent 真好用/真拉胯",大部分是 Harness 的差距。

6. 学习路径图

配套文档区:AI 学习地图,规划结构如下,随学习进度逐篇落地:

顺序主题对应本文章节状态
1Agent 分类与架构模式§1 §2规划中
2执行循环逐环节拆解§3规划中
3Tool Calling 机制§3规划中
4Context 与 Memory§3规划中
5Java 框架对比(Spring AI / Spring AI Alibaba / LangChain4j)§4规划中
6Python 生态对照(LangChain / LangGraph)§4规划中
7Harness 概念与设计原则§5规划中
8Coding Agent 拆解(Claude Code / OpenCode)§5规划中
9编排框架机制(图编排 / HITL / Checkpoint)§5规划中

建议路径:先裸调 SDK 手写一遍 Agent Loop(步骤 2-3),再横向看框架(步骤 5-6),最后带着框架的困惑去看 Harness(步骤 7-9)——那时你会知道每一个机制都是在解决什么真实问题。