11
This commit is contained in:
@@ -0,0 +1,320 @@
|
||||
# Harness Engineering 最佳实践:Agent Harness 底层原理、核心组件与实战应用
|
||||
|
||||
## 目录
|
||||
|
||||
1. [AI 工程师的岗位分层体系](#1-ai-工程师的岗位分层体系)
|
||||
2. [大模型应用的三层进化范式](#2-大模型应用的三层进化范式)
|
||||
3. [Prompt Engineering:让模型"会说"](#3-prompt-engineering让模型会说)
|
||||
4. [Context Engineering:解决上下文膨胀问题](#4-context-engineering解决上下文膨胀问题)
|
||||
5. [Agent Harness 核心架构](#5-agent-harness-核心架构)
|
||||
6. [Harness Engineering 的工程实践](#6-harness-engineering-的工程实践)
|
||||
|
||||
---
|
||||
|
||||
## 1. AI 工程师的岗位分层体系
|
||||
|
||||
### 1.1 三层架构概述
|
||||
|
||||
在 2026 年,AI 工程师可分为三个层级,每个层级有明确的技术侧重点:
|
||||
|
||||
| 层级 | 定位 | 核心职责 | 技术侧重 |
|
||||
|------|------|----------|----------|
|
||||
| **AI 产品化** | AI 产品经理、AI 解决方案架构师 | 发现 AI 价值场景,重塑业务流程 | 业务分析、产品设计 |
|
||||
| **AI 应用层** | AI 应用工程师、大模型应用开发 | 业务方案落地,AI 赋能场景 | Prompt Engineering、Context Engineering、RAG |
|
||||
| **AI 大模型算法层** | 模型研发工程师 | 提升模型垂直能力 | SFT 微调、RLHF 对齐、安全护栏 |
|
||||
|
||||
### 1.2 各层级的核心差异
|
||||
|
||||
**AI 产品化层**:
|
||||
- 聚焦于找到 AI 的价值场景
|
||||
- 重新定义业务产品线
|
||||
- 属于业务与产品方向
|
||||
|
||||
**AI 应用层**(Harness Engineering 的落地层):
|
||||
- 偏业务 + 方案落地
|
||||
- 利用开源模型构建垂直应用
|
||||
- 2026 年最稀缺、最具机会的方向
|
||||
|
||||
**AI 大模型算法层**:
|
||||
- 不做基座模型(GPT-4、Qwen3.6 等基座由大厂完成)
|
||||
- 聚焦于模型的**垂直能力提升**
|
||||
- 包括:
|
||||
- **SFT 微调**(Supervised Fine-Tuning)
|
||||
- **RLHF**(Reinforcement Learning from Human Feedback)
|
||||
- **对齐训练**(Alignment)
|
||||
- **安全护栏**(Safety Guardrails)
|
||||
|
||||
### 1.3 职业选择建议
|
||||
|
||||
```
|
||||
技术背景 → AI 应用层(最佳入场点)
|
||||
产品背景 → AI 产品化层 → 可延伸至应用层
|
||||
算法背景 → AI 大模型算法层
|
||||
```
|
||||
|
||||
> **核心观点**:2026 年是**大模型应用落地**的关键年份,大多数人的机会在于 AI 应用层。
|
||||
|
||||
---
|
||||
|
||||
## 2. 大模型应用的三层进化范式
|
||||
|
||||
从时间维度看,AI 应用开发经历了三个阶段的范式转变:
|
||||
|
||||
```
|
||||
2022-2024:Prompt Engineering 时代
|
||||
↓
|
||||
2025:Context Engineering 时代
|
||||
↓
|
||||
2026:Agent Harness / Harness Engineering 时代
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 3. Prompt Engineering:让模型"会说"
|
||||
|
||||
### 3.1 时间窗口
|
||||
|
||||
2022 年 11 月 ChatGPT 发布后成为焦点
|
||||
|
||||
### 3.2 核心问题
|
||||
|
||||
**解决"如何说"的问题**——如何更好地与模型沟通,让模型生成更高质量的回答。
|
||||
|
||||
### 3.3 技术特征
|
||||
|
||||
- 单对单对话模式
|
||||
- 用户输入一句话,模型返回一句话
|
||||
- 关注点:如何编写有效的 Prompt
|
||||
|
||||
### 3.4 典型场景
|
||||
|
||||
```
|
||||
用户 → Prompt → LLM → Response
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 4. Context Engineering:解决上下文膨胀问题
|
||||
|
||||
### 4.1 时间窗口
|
||||
|
||||
2025 年
|
||||
|
||||
### 4.2 核心问题
|
||||
|
||||
随着 Agent 开发引入工具调用(如 MCP 协议),上下文窗口中的内容越来越多,导致模型能力反而下降、**幻觉(Hallucination)** 问题加剧。
|
||||
|
||||
### 4.3 核心目标
|
||||
|
||||
**解决"有什么"的问题**——让模型清楚地知道当前拥有哪些信息。
|
||||
|
||||
### 4.4 关键概念
|
||||
|
||||
**Context Window(上下文窗口)**:
|
||||
- 多轮对话的执行过程中,所有历史信息都存储在上下文窗口中
|
||||
- 当内容越来越多时,模型会出现"迷失"现象
|
||||
|
||||
**迷失问题(Lost in Context)**:
|
||||
- 模型在大量上下文中无法准确识别关键信息
|
||||
- 导致:
|
||||
- 响应质量下降
|
||||
- 幻觉增加
|
||||
- 任务执行失败
|
||||
|
||||
### 4.5 Context Engineering 的职责
|
||||
|
||||
| 问题 | 解决方案 |
|
||||
|------|----------|
|
||||
| 上下文过长 | 上下文压缩、摘要 |
|
||||
| 信息混乱 | 结构化组织、分类管理 |
|
||||
| 关键信息被淹没 | 关键信息突出、检索增强 |
|
||||
|
||||
---
|
||||
|
||||
## 5. Agent Harness 核心架构
|
||||
|
||||
### 5.1 官方来源
|
||||
|
||||
本文档基于 **LangChain 团队**发布的关于 Agent Harness 的官方博客,是全球最懂 Agent 的团队发布的系统性技术文档。
|
||||
|
||||
### 5.2 Agent Harness 的定位
|
||||
|
||||
**Harness** 的本意是"驾驭、利用",Agent Harness 即对 Agent 的工程化驾驭框架。
|
||||
|
||||
### 5.3 核心架构体系
|
||||
|
||||
```
|
||||
┌─────────────────────────────────────────┐
|
||||
│ Agent Harness │
|
||||
├─────────────────────────────────────────┤
|
||||
│ ┌─────────────┐ ┌─────────────────┐ │
|
||||
│ │ 规划层 │ │ 执行层 │ │
|
||||
│ │ Planning │ │ Execution │ │
|
||||
│ └─────────────┘ └─────────────────┘ │
|
||||
│ ┌─────────────┐ ┌─────────────────┐ │
|
||||
│ │ 工具层 │ │ 记忆层 │ │
|
||||
│ │ Tools │ │ Memory │ │
|
||||
│ └─────────────┘ └─────────────────┘ │
|
||||
│ ┌─────────────┐ ┌─────────────────┐ │
|
||||
│ │ 感知层 │ │ 评估层 │ │
|
||||
│ │ Perception │ │ Evaluation │ │
|
||||
│ └─────────────┘ └─────────────────┘ │
|
||||
└─────────────────────────────────────────┘
|
||||
```
|
||||
|
||||
### 5.4 各层核心组件详解
|
||||
|
||||
#### 5.4.1 规划层(Planning)
|
||||
|
||||
**职责**:将复杂任务分解为可执行的子任务
|
||||
|
||||
**关键技术**:
|
||||
- **任务分解**(Task Decomposition)
|
||||
- **思维链**(Chain of Thought, CoT)
|
||||
- **子任务规划**
|
||||
|
||||
#### 5.4.2 执行层(Execution)
|
||||
|
||||
**职责**:执行规划层生成的子任务
|
||||
|
||||
**关键技术**:
|
||||
- **工具调用**(Tool Calling)
|
||||
- **动作执行**(Action Execution)
|
||||
- **结果反馈**
|
||||
|
||||
#### 5.4.3 工具层(Tools)
|
||||
|
||||
**职责**:为 Agent 提供外部能力
|
||||
|
||||
**典型工具类型**:
|
||||
- **MCP 工具**(Model Context Protocol)
|
||||
- API 调用
|
||||
- 搜索引擎
|
||||
- 数据库查询
|
||||
- 文件系统操作
|
||||
|
||||
#### 5.4.4 记忆层(Memory)
|
||||
|
||||
**职责**:存储和管理 Agent 的历史状态与上下文
|
||||
|
||||
**记忆类型**:
|
||||
| 类型 | 说明 | 用途 |
|
||||
|------|------|------|
|
||||
| 短期记忆 | 当前对话上下文 | 处理即时任务 |
|
||||
| 长期记忆 | 持久化存储 | 跨会话经验积累 |
|
||||
| 工作记忆 | 工作过程中的临时状态 | 任务执行中间态 |
|
||||
|
||||
#### 5.4.5 感知层(Perception)
|
||||
|
||||
**职责**:接收和处理外部输入
|
||||
|
||||
**感知内容**:
|
||||
- 用户指令
|
||||
- 文档输入
|
||||
- 多模态信息(图像、音频等)
|
||||
- 环境状态
|
||||
|
||||
#### 5.4.6 评估层(Evaluation)
|
||||
|
||||
**职责**:评估 Agent 执行结果的质量
|
||||
|
||||
**评估维度**:
|
||||
- 输出正确性
|
||||
- 任务完成度
|
||||
- 安全性检查
|
||||
- 效率评估
|
||||
|
||||
---
|
||||
|
||||
## 6. Harness Engineering 的工程实践
|
||||
|
||||
### 6.1 定义
|
||||
|
||||
**Harness Engineering** 是系统性地构建、测试、优化 Agent 行为能力的工程学科。
|
||||
|
||||
### 6.2 与传统软件工程的区别
|
||||
|
||||
| 维度 | 传统软件工程 | Harness Engineering |
|
||||
|------|-------------|---------------------|
|
||||
| 不确定性 | 低(确定性逻辑) | 高(概率性输出) |
|
||||
| 测试难度 | 可精确断言 | 需概率评估 |
|
||||
| 调试方法 | 日志追踪 | 行为轨迹分析 |
|
||||
| 质量保障 | 单元测试 + 集成测试 | 评估驱动开发 |
|
||||
|
||||
### 6.3 核心工程实践
|
||||
|
||||
#### 6.3.1 评估驱动开发(Evaluation-Driven Development)
|
||||
|
||||
```
|
||||
设计评估指标 → 开发 Agent → 持续评估 → 迭代优化
|
||||
```
|
||||
|
||||
#### 6.3.2 行为可复现性
|
||||
|
||||
- 通过种子(seed)控制随机性
|
||||
- 构建可测试的 Agent 行为
|
||||
- 建立回归测试机制
|
||||
|
||||
#### 6.3.3 多维度评测
|
||||
|
||||
- **任务完成率**:Agent 是否完成目标
|
||||
- **效率指标**:消耗的 Token 数量、执行时间
|
||||
- **质量评分**:输出的人力评估
|
||||
- **安全性检查**:有害内容过滤
|
||||
|
||||
### 6.4 LangChain Agent Harness 的工具链
|
||||
|
||||
```
|
||||
┌──────────────────────────────────────────┐
|
||||
│ LangChain 生态 │
|
||||
├──────────────────────────────────────────┤
|
||||
│ LangChain │ Agent 开发框架 │
|
||||
│ LangSmith │ 追踪与评估平台 │
|
||||
│ LangServe │ Agent 部署服务 │
|
||||
│ LangGraph │ Agent 工作流编排 │
|
||||
└──────────────────────────────────────────┘
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 7. 补充:观众反馈中的有价值观点
|
||||
|
||||
> 本节整理自视频弹幕中观众的补充与讨论
|
||||
|
||||
### 7.1 关于 Context Engineering 的延伸
|
||||
|
||||
- Context Engineering 不仅解决"上下文膨胀",还需要考虑**信息密度**问题
|
||||
- 有效上下文 = 去除噪音后的核心信息
|
||||
- 常用的压缩策略:LLM 摘要、关键信息提取、信息去重
|
||||
|
||||
### 7.2 关于 Agent 幻觉的处理
|
||||
|
||||
- 幻觉问题在单轮对话中已存在
|
||||
- 在多轮 Agent 执行中,幻觉会被**级联放大**
|
||||
- 建议在每个关键步骤增加**自我校验**机制
|
||||
|
||||
### 7.3 关于实际落地的建议
|
||||
|
||||
- 不要过度追求 Agent 的自主性,**人机协同**往往更可靠
|
||||
- 初期应聚焦垂直场景,积累领域知识后再扩展
|
||||
|
||||
---
|
||||
|
||||
## 附录:关键术语表
|
||||
|
||||
| 英文术语 | 中文解释 |
|
||||
|----------|----------|
|
||||
| **Harness Engineering** | 驾驭工程,Agent 的系统工程化方法 |
|
||||
| **Agent Harness** | Agent 框架的核心组件集合 |
|
||||
| **Prompt Engineering** | 提示词工程,优化人机交互质量 |
|
||||
| **Context Engineering** | 上下文工程,管理信息输入质量 |
|
||||
| **Hallucination** | 幻觉,LLM 生成虚假或不准确内容 |
|
||||
| **Chain of Thought (CoT)** | 思维链,引导模型展示推理过程 |
|
||||
| **SFT** | Supervised Fine-Tuning,有监督微调 |
|
||||
| **RLHF** | Reinforcement Learning from Human Feedback,基于人类反馈的强化学习 |
|
||||
| **MCP** | Model Context Protocol,模型上下文协议 |
|
||||
| **Agent** | 智能体,能够自主执行任务的 AI 系统 |
|
||||
|
||||
---
|
||||
|
||||
> **笔记说明**:本笔记基于 LangChain 团队发布的官方博客整理,聚焦于 Agent Harness 的技术架构与工程实践。视频原版对三层架构有详细展开,读者可根据需要结合原视频深入理解各层级的技术细节。
|
||||
66
InBox/Hermes编排Agent_Web可观测性方案.md
Normal file
66
InBox/Hermes编排Agent_Web可观测性方案.md
Normal file
@@ -0,0 +1,66 @@
|
||||
---
|
||||
title: Hermes 编排 Agent + Web 可观测性方案
|
||||
date: 2026-04-29
|
||||
tags: [Hermes, Agent编排, ttyd, tmux, 可观测性]
|
||||
---
|
||||
|
||||
# Hermes 编排 Agent + Web 可观测性方案
|
||||
|
||||
## 背景
|
||||
|
||||
Hermes 作为母 Agent 编排不同的子 Agent(Codex、Claude Code 等),但全部在后台运行,无法直观看到每个 Agent 的实时输出和进度。需要将后台 tmux session 暴露到 Web 前端观察。
|
||||
|
||||
## 方案:ttyd + tmux
|
||||
|
||||
**ttyd**(GitHub 31k+ stars)可以把任意终端程序变成 Web 页面,通过 WebSocket 实时推流。
|
||||
|
||||
### 架构
|
||||
|
||||
```
|
||||
Hermes (编排大脑)
|
||||
│
|
||||
├─ tmux session codex1 ─── ttyd :8080 ──► http://localhost:8080
|
||||
├─ tmux session claude1 ─── ttyd :8081 ──► http://localhost:8081
|
||||
└─ tmux session codex2 ─── ttyd :8082 ──► http://localhost:8082
|
||||
```
|
||||
|
||||
### 使用方式
|
||||
|
||||
```bash
|
||||
# 启动 Agent 的 tmux session
|
||||
tmux new-session -d -s codex1 -x 140 -y 40
|
||||
tmux new-session -d -s claude1 -x 140 -y 40
|
||||
|
||||
# ttyd 暴露每个 session 到 web
|
||||
ttyd -p 8080 tmux attach -t codex1 &
|
||||
ttyd -p 8081 tmux attach -t claude1 &
|
||||
|
||||
# 浏览器打开
|
||||
open http://localhost:8080 # 看 Codex
|
||||
open http://localhost:8081 # 看 Claude Code
|
||||
```
|
||||
|
||||
### 类似方案
|
||||
- **Wetty / Gotty** — 与 ttyd 类似
|
||||
- **LangFuse / AgentOps** — 专业 Agent trace 平台,但偏事后日志分析,非实时终端画面
|
||||
|
||||
### 文件握手通信
|
||||
|
||||
Agent 之间通过文件交换上下文:
|
||||
|
||||
```
|
||||
/tmp/handoff.json # Codex 输出 → Claude Code 读取
|
||||
/tmp/instruction.md # Claude Code 重注入指令 → 拉起新 Codex
|
||||
/tmp/next_prompt.txt # 下一步指令
|
||||
```
|
||||
|
||||
## 关键结论
|
||||
|
||||
1. **不要** 让 Agent 之间直接互相调用(失控)
|
||||
2. **要** 用 Hermes 作为中央编排大脑
|
||||
3. **用文件作为 Agent 间通信协议**
|
||||
4. **ttyd 解决实时观察问题**,浏览器多标签同时查看所有 Agent
|
||||
|
||||
---
|
||||
|
||||
*来源:Hermes Agent 对话 (2026-04-29)*
|
||||
Reference in New Issue
Block a user