Part 1:去魅论——什么是 Harness Engineering
这是我参与过的最有效的工程治理体系,名字听着很唬人。但如果我直言,Harness Engineering 就是把大厂沉淀了几十年的角色分工、流程规范、责任边界虚拟化重构后,锁死在三个 Markdown 文件里。
没有魔法。
在大公司里,架构师写设计文档,开发按图纸拧螺丝,QA 挑刺。职责分离是防止自我包庇的唯一方法。当 AI 开始成为主力生产单元时,我们面临一个问题:如何让 AI 遵守同样的职能分工,而不是让它自己当架构师、又当开发、还当验收?
答案就在你手里握着的这三个文件。
对比一下两种思路:
手艺人思维:写个 Prompt,让 AI 把代码敲出来,吹捧一番"很聪明啊",然后上线。代码坏了?微调 Prompt。需求偏了?再微调。整个系统的质量完全取决于那一刻 Prompt 的质量,没有规律可言。
Solution Architect 思维:定义三权分立——谁规划?谁实现?谁验收?定义每个角色的职责边界,锁死在文件里,让 AI(和人类开发者)无法越权。
程序员的价值从此转变:不再是"敲代码的手感",而是"定义系统权责边界的能力"。
让我展开讲。
Part 2:指挥权——.github/copilot-instructions.md
这是第一份文件,叫"指挥权",因为它定义了谁有权指挥谁。
Agent 角色与职责
| Agent | Role | Responsibility ||-------|------|----------------|| **plan_agent** | 架构师 / 高级数据分析师 | 执行 EDA 理解数据;制定数据驱动的任务路线图 || **code_agent** | 资深开发 | 依据 roadmap 实现功能;编写单元测试 || **analyzer_agent** | 质检官 (QA) | 运行集成测试;验证业务验收标准;发布 issue |为什么必须三个角色?这不是简单的"分工",而是Agile 开发的核心诉求:开发与验收必须物理隔离。
- plan_agent(架构师)不能写代码,只能出图纸。它的任务是通过 EDA(探索性数据分析)去理解真实的数据,然后基于数据现实制定任务路线图(roadmap)。
- code_agent(开发)不能定义需求,只能按图纸拧螺丝。它的责任是贴着 roadmap 实现功能,并确保 100% 的单元测试覆盖。
- analyzer_agent(QA)既不规划也不开发,只负责挑刺。它要运行集成测试(连接真实的数据仓库),验证业务验收标准,如果有问题就记录在 Issue Tracker 里。
核心悟点:如果这三个角色混在一起呢?
- AI 会在"规划"的时候自己想象数据长什么样(没见过真数据)
- 然后开发出来的代码完美地处理了这个"幻想数据"
- 最后自己跑一遍单测(当然通过了,因为 mock 数据就是按照幻想来的)
- 然后自信地说"一切就绪"
这就是自我包庇。大多数"90%完成的项目"死在这里。
六阶段工作流
让我贴出完整的工作流定义:
### X0.1 PHASE 0 — Create Agents (Initial Setup)Goal: Create 3 GitHub Copilot agent manifest filesOwner: Manual Setup### X0.2 PHASE 1 — Local Dev SetupGoal: Verify access to all required data sourcesOwner: plan_agent- [ ] Verify data warehouse connection succeeds- [ ] Verify business strategy documentation is readable- [ ] Verify all dependencies installed### X0.3 PHASE 2 — Exploratory Data AnalysisGoal: Understand actual data and strategy BEFORE planningOwner: plan_agentReference: A2 Exploratory Data Analysis- Inspect data warehouse table structure (columns, types, nulls)- Analyze business strategy documents for segmentation rules- Map business rules to actual data columns and aggregations- Document findings in `artifacts/eda_report.md`### X0.4 PHASE 3 — Data-Driven PlanningGoal: Build PROJECT-SPECIFIC roadmap based on EDA findingsOwner: plan_agentReference: A2.5, A2.6, X1- Review EDA report findings- Align business requirements with data reality- Create `artifacts/execution_roadmap.md` with tasks, dependencies, and sequence- Assign priority and owner for each task### X0.5 PHASE 4 — Implementation and TestingGoal: Build working software following architecture and test all changesOwner: code_agentReference: B1, B2, B3.4, B4, B51. Read `artifacts/execution_roadmap.md` (data-driven version)2. Reference EDA report for actual data structure3. For each task (in priority order): - Implement feature following B1 Architecture Principles - Write unit tests using mocks/stubs (B4.1) — target 100% coverage - Run full test suite locally; all tests must pass - Include test results in `artifacts/CHANGELOG.md`4. Update task status in `artifacts/execution_roadmap.md` → COMPLETED5. Add feature entry to `artifacts/CHANGELOG.md`### X0.6 PHASE 5 — Validation and Quality GatesGoal: Verify all work meets quality standards and is ready for productionOwner: analyzer_agentReference: B4, B5, X3, Quality Gates below1. Review code_agent output against quality gates2. If issues found, append entries to `artifacts/issues.md`3. **Run the Tier 2 integration tests against real data warehouse** (see B4.2): pytest tests/test_integration.py -v -m integration All integration tests must pass. If data warehouse is unreachable, log a BLOCKER.4. **Run the full pipeline against real data warehouse data** and save the output report: python -m src.main --limit 5000 --output artifacts/report.json --log-level INFO - Verify `artifacts/report.json` is valid JSON and passes schema validation - Record timing, record count, and segment distribution in `artifacts/CHANGELOG.md` - This is MANDATORY — a CSV-only smoke test does NOT satisfy this gate5. Validate task completion; update `artifacts/execution_roadmap.md` → VALIDATED6. Add validation entry to `artifacts/CHANGELOG.md`为什么这个顺序不能乱?
大多数团队的做法是:需求来了 → 直接开发 → 匆匆上线。这套流程强制你必须先跑 EDA(Phase 2 & 3),然后才能编码(Phase 4)。
为什么?因为没见过真数据的规划就是空想。在一个零售数据分析项目中,我们发现:
- 产品说:“我们需要按采购频次和商品品类分段”
- EDA 发现:采购频次的数据大量缺失,品类信息散布在多个不同字段里
- 规划被迫调整:改用订单金额和最近采购日期作为分段依据
如果没有 EDA,代码会死劲儿去处理一个"不存在的列"。
Part 3:目标权——business_requirement.md
这是第二份文件,叫"目标权",因为它定义了什么才是"成功"。
AI 有个通病:**容易在复杂的对话中偏离目标,最后产出一堆"精美的废话"**——代码很漂亮,测试覆盖也不错,但完全解决的不是业务问题。
这份文件是给 AI 设置的终点线。它必须对照验收标准逐条打勾。
验收标准(Acceptance Criteria)
这是一个零售数据分析项目的虚构例子(脱敏处理):
## Acceptance Criteria (验收标准)- [ ] 报告必须聚合客户层面的指标:交易频次、商品品类偏好。- [ ] 必须从业务策略文档中提取分级规则。- [ ] 最终报告必须为格式合法的 `artifacts/report.json`。- [ ] **全链路必须在真实的数据仓库环境下跑通并产出数据。**每一条都有具体的检查点:
- “聚合客户层面的指标”← 这意味着什么?不是汇总产品,不是汇总地区,必须是客户粒度(每个客户一条记录)。
- “商品品类偏好”← 不能说"推断"或"估算",必须是真实存在的字段值。
- “从业务策略文档中提取”← 不能靠 AI 胡编,必须真的从那份文档里找到规则,白纸黑字。
- “真实的数据仓库环境下跑通”← 单测通过不算,必须连接生产数据库,用真实数据跑一遍。
质量门(Quality Gates)
这是验收的严格检查清单。在 code_agent → analyzer_agent 的边界,必须全部打勾:
### Before code_agent → analyzer_agent1. ✅ All code written and committed2. ✅ All unit tests passing locally3. ✅ Type hints on 100% of functions4. ✅ `artifacts/CHANGELOG.md` entry created5. ✅ Acceptance criteria checklist completed看起来很简单,但"All unit tests passing locally"是个陷阱。Local 通过 ≠ 真实环境通过。所以在 analyzer_agent 这一侧还有更狠的门:
### Before analyzer_agent → APPROVAL1. ✅ Code review passed2. ✅ Unit tests: 100% coverage, all passing3. ✅ Type checking clean (mypy)4. ✅ Architecture compliance verified5. ✅ Documentation complete6. ✅ **Tier 2 integration tests run against real data warehouse — all passing**7. ✅ **Full pipeline executed against real data warehouse — `artifacts/report.json` generated and schema-valid**8. ✅ `artifacts/CHANGELOG.md` validation entry added9. ✅ `artifacts/execution_roadmap.md` marked VALIDATED第 6 和第 7 项是真刀真枪:集成测试必须跑,全链路必须在真库上走一遍,最后的报告文件必须过 Schema 校验。
这就是验收的铁血标准。很多项目在第 6 项就栽了——因为没人真的连过数据仓库。
Part 4:约束权(文章的重头)——technical_restrictions.md
这是整套系统最硬核的部分。如果说前两份文件是"治理框架",这一份就是"工程底线"。它定义了什么样的代码、什么样的流程、什么样的输出才能在这套系统里活下来。
4.1 强制 EDA:没见过真数据的代码全是幻觉
我想强调一个观点:EDA(探索性数据分析)不是"数据分析师的工作",它是整个系统的基础真实。如果你跳过它,后面的所有决策都建立在沙滩上。
EDA 的五步工作流
Step 1:数据探索
### A2.1 Step 1 — Data ExplorationAnalyze the data warehouse table and document:- Column names and data types- Data distributions (mean, median, quantiles for numeric columns)- Null/missing values per column- Unique values for categorical fields- Date ranges for temporal>TABLE: retail_analytics.customer_transactions_v1Column Analysis:- customer_id: string, 245,680 distinct values, 0 nulls (✓ 主键可用)- transaction_date: timestamp, range 2023-01-01 ~ 2026-04-12, 1.2% nulls (△ 需要处理)- category_code: string, 18 distinct values, 8.5% nulls (△ 需要策略处理)- transaction_amount: decimal, mean=128.50, median=89.20, 0.3% nulls, outliers >50k (△ 需要 cap)- product_category: string, 12 distinct values: electronics, home, fashion, food, etc.就这几行代码,你发现了:
customer_id是好的主键transaction_date大部分靠谱,但要处理 nullcategory_code有缺失,需要降级或补全策略transaction_amount需要做异常值处理product_category相对完整和可靠
没有这个发现,后面的分段逻辑会有多少坑?
Step 2:策略文档深潜
### A2.2 Step 2 — Strategy Material Deep Dive1. Extract all text from business strategy documents2. Identify: segmentation criteria, thresholds, customer categories, usage metrics, business rules3. Map each identified rule to the actual data warehouse columns**Output**: `artifacts/eda_strategy_analysis.md`- Segment definitions with exact criteria and column mappings- Usage metrics and how to derive them from available>### A2.3 Step 3 — Gap AnalysisCompare business requirements with data reality:- What the strategy requires vs. what the data provides- Missing fields, required workarounds, or blockers- Impact of data quality issues on segment assignments- Constraints (date range, granularity, performance)EDA 发现的差距可能是:
- 产品想要"年交易品类多样性",但数据里
category_code有 8.5% null → 决策:null 当作 Unknown,计数时归为一类 - 产品想要"客户忠诚度"(交易频次),但
transaction_date有 1.2% null → 决策:用 MAX(transaction_date) - MIN(transaction_date) 来计算客户活跃周期,忠诚度 = 交易数 / 活跃周期 - 产品想要"季节性分析",但历史数据只有 15 个月 → 决策:季节性不可靠,改用"近 3 个月趋势"
Step 4 & 5:EDA 报告 + 数据驱动的规划
### A2.4 Step 4 — EDA ReportConsolidate into `artifacts/eda_report.md` with:- Executive summary (data sources, key findings, blockers)- Data overview (from Step 1)- Strategy overview (from Step 2)- Business rules mapped to data columns with explicit thresholds- Data quality & constraints (from Step 3)- Specific aggregation logic and cleanup steps required- **Recommended task list and priority order for `artifacts/execution_roadmap.md`**这就是 plan_agent 最重要的产出。不是图纸,而是"基于现实的图纸"。
code_agent 拿到这份报告,会知道:
- 哪些列能用,哪些列是垃圾
- 数据的真实分布(不是猜的)
- 要处理哪些边界情况
- 分段逻辑的具体实现方式
成功标准是什么?
### A2.6 Success Criteria**ALL of the following must be true before handing off to `code_agent`**:- ✅ Table fully explored; statistics documented- ✅ All columns analyzed (type, nulls, distributions)- ✅ Strategy documents fully extracted and mapped to data columns- ✅ Segment definitions identified with explicit numeric thresholds- ✅ Business rules mapped to actual data warehouse columns- ✅ Gaps between expectations and data reality documented- ✅ `artifacts/eda_report.md` completed and project-specific- ✅ `artifacts/execution_roadmap.md` created from EDA findings> **If any gap exists or understanding is incomplete**: STOP — do more EDA before planning.如果你跳过 EDA 直接开发,等价于在没有勘探的情况下就开始建楼。倒塌是 100% 确定的事。
4.2 分级测试:单测只是开始
很多工程师的理解是:写单测 → 单测通过 → 完工。
但在这套系统里,单测通过只是入场券,不是毕业证。
Tier 1:单元测试(离线逻辑)
### B4.1 Tier 1 — Unit Tests (离线逻辑)**目标**:100% 覆盖业务计算工具(如分类逻辑函数)。**约束**:严禁连接生产数据库,必须使用 Mock 数据。单元测试用 Mock 数据,完全离线,速度极快。100% 覆盖的意思是:每一条 if / else 分支都要被测试到。这是 code_agent 必须保证的。
Tier 2:集成测试(在线验证)
### B4.2 Tier 2 — Integration Tests (在线验证)**目标**:验证数据仓库权限、Schema 兼容性和端到端全流程。**约束**:这是 Phase 5 验收的唯一准入硬指标。集成测试是什么意思?连接真实的数据仓库,用真实的数据跑一遍整个流水线。
import pytestfrom data_warehouse import DataWarehouseSessionfrom src.main import main as run_pipeline@pytest.mark.integrationdef test_full_pipeline_on_warehouse(): """ PHASE 5 gate: Must run against REAL data warehouse """ warehouse = DataWarehouseSession.builder.profile("PROD").getOrCreate() # Step 1: Can we connect? try: table_df = warehouse.read.table( 'retail_analytics.customer_transactions_v1' ) row_count = table_df.count() assert row_count > 0, "Table is empty!" except Exception as e: pytest.skip(f"Data warehouse connection failed: {e}") # Step 2: Can we load a sample and compute segments? sample_df = table_df.limit(1000).toPandas() assert len(sample_df) == 1000, "Sample load failed" assert'customer_id'in sample_df.columns, "Missing customer_id column" assert'transaction_amount'in sample_df.columns, "Missing transaction_amount column" # Step 3: Run the full pipeline (this is expensive) result_json = run_pipeline( limit=5000, output_path="artifacts/test_report.json" ) # Step 4: Validate output schema assert result_json['status'] == 'success' assert'segments'in result_json assert len(result_json['segments']) > 0 # Step 5: Check segment distribution makes sense segments_df = pd.DataFrame(result_json['segments']) vip_count = len(segments_df[segments_df['segment'] == 'VIP']) basic_count = len(segments_df[segments_df['segment'] == 'Basic']) # VIP should be smallest, Basic should be largest (usually) assert vip_count < basic_count, "Segment distribution looks wrong" # Step 6: Verify no data quality issues assert segments_df.isnull().sum().sum() == 0, "Output has NULLs!" assert segments_df['segment'].isin(['VIP', 'Regular', 'Basic']).all(), \ "Unexpected segment values"这个测试贼难通过。因为它接触真实数据,真实的数据仓库连接,真实的网络波动。
但这正是重点:单测通过 ≠ 系统可用。
在类似的零售分析项目中,我们遇到过这样的情况:
- 单测全绿 ✓
- 代码审查通过 ✓
- 本地跑通 ✓
- 集成测试一运行…
KeyError: 'product_category'
为什么?因为预发环境的数据仓库表 schema 和开发环境不一样。字段名叫product_category_v2,不是product_category。
没有 Tier 2,这个 bug 上线,就是线上故障。
4.3 异步纠偏:Bug Tracker 作为 Agent 通讯协议
分工的最后一环是怎么反馈问题。
在传统团队里,QA 找到 bug,开发说"这不是 bug",QA 说"就是 bug",在会议室吵半天。
在这套系统里,Agent 之间不在对话框里吵架,而是通过结构化的 Issue Tracker 协作。
Issue 的标准格式
## [VAL-YYYYMMDD-NN] <one-line summary>| Field | Value ||-------|-------|| **id** | VAL-YYYYMMDD-NN || **severity** | BLOCKER / HIGH / MEDIUM / LOW || **status** | OPEN → IN PROGRESS → RESOLVED → CLOSED || **added_by** | analyzer_agent || **timestamp** | YYYY-MM-DD HH:MM || **files** | `src/tools/segment.py` lines 45–52 || **evidence** | failing test name / error message / log || **suggested_fix** | short guidance for developer || **resolved_by** | code_agent || **validated_by** | analyzer_agent || **closed_at** | YYYY-MM-DD HH:MM |Status 流转:OPEN(analyzer_agent 创建) →IN PROGRESS(code_agent 开始修) →RESOLVED(code_agent 修完重新跑测试) →CLOSED(analyzer_agent 验收)
真实案例:缺失值处理
场景:analyzer_agent 在 Phase 5 运行集成测试,发现问题。
## [VAL-20260410-07] Segment calculation fails when category is NULL| Field | Value ||-------|-------|| **id** | VAL-20260410-07 || **severity** | BLOCKER || **status** | OPEN || **added_by** | analyzer_agent || **timestamp** | 2026-04-10 14:23 || **files** | `src/tools/segment.py` lines 45–52 || **evidence** | Test failure: `test_full_pipeline_on_warehouse` AssertionError at line 67: NaNs in output || **suggested_fix** | In segment_customer(), handle null category case. Treat as 'Unknown' category. Update category_diversity check to skip nulls. || **resolved_by** | code_agent || **validated_by** | analyzer_agent || **closed_at** | 2026-04-10 16:45 |code_agent 看到这个 Issue 后的行动:
- 打开
src/tools/segment.py,找到第 45–52 行 - 看当前逻辑:```plaintext
categories = len(customer_data[‘category_code’].unique()) - 发现问题:如果
category_code里有 NaN,unique()会把 NaN 算进去,导致长度不对 - 修复:```plaintext
categories = len(customer_data[‘category_code’].dropna().unique()) - 重新跑所有单元测试(都通过)
- 更新 Issue 的 status: RESOLVED
- 让 analyzer_agent 重新跑集成测试
analyzer_agent 的验证:
重新跑test_full_pipeline_on_warehouse,确认:
- ✅ 集成测试通过
- ✅ 输出的
artifacts/report.json没有 NaN - ✅ 段分布看起来合理
然后关闭 Issue:status → CLOSED,记录 closed_at 时间戳。
这个过程的关键点:
- Issue 是结构化的,不是聊天记录
- 问题有明确的"证据"(哪个测试失败了)
- 修复有具体的"指导"(不是"别这样",而是"试试这样")
- 修复完了要重新验收(不是 code_agent 自己说"我改好了")
Part 5:整体协调——六阶段工作流的完整图景
我们已经分别讲了指挥权、目标权、约束权。现在把这些串起来,看看完整的工作流是什么样的。
工作流图
PHASE 0: Create Agents (Manual Setup) ↓PHASE 1: Local Dev Setup (plan_agent验证数据源) ↓PHASE 2: Exploratory Data Analysis (plan_agent跑EDA) ↓PHASE 3: Data-Driven Planning (plan_agent出roadmap) ↓PHASE 4: Implementation & Testing (code_agent开发+单测) ↓PHASE 5: Validation & Quality Gates (analyzer_agent集成测试+验收) ↓APPROVED (所有质量门通过,可以上线)每个 Phase 的"守卫"
PHASE 2→3 的守卫:EDA 必须完整
If any gap exists or understanding is incomplete: STOP — do more EDA before planning.你不能跳过 EDA。必须真的理解了数据,才能规划。
PHASE 3→4 的守卫:Roadmap 必须数据驱动
### A2.6 Success Criteria (before code_agent can start)- ✅ Table fully explored; statistics documented- ✅ All columns analyzed (type, nulls, distributions)- ✅ Segment definitions identified with explicit numeric thresholds- ✅ Business rules mapped to actual data warehouse columns- ✅ `artifacts/execution_roadmap.md` created from EDA findingscode_agent 不能说"EDA 报告里没提这事"而自作聪明。必须严格按 roadmap 来。
PHASE 4→5 的守卫:Quality Gates
### Before code_agent → analyzer_agent1. ✅ All code written and committed2. ✅ All unit tests passing locally3. ✅ Type hints on 100% of functions4. ✅ `artifacts/CHANGELOG.md` entry created5. ✅ Acceptance criteria checklist completed这是 code_agent 对自己的承诺。如果有一项不满足,就不能交给 analyzer_agent。
PHASE 5 的守卫:Integration 必须真实
### Before analyzer_agent → APPROVAL6. ✅ **Tier 2 integration tests run against real data warehouse — all passing**7. ✅ **Full pipeline executed against real data warehouse** — `artifacts/report.json` generated and schema-valid8. ✅ `artifacts/CHANGELOG.md` validation entry added9. ✅ `artifacts/execution_roadmap.md` marked VALIDATED这不是 code_agent 的任务。analyzer_agent 必须亲自跑一遍,看到 green 的 test,看到生成的 JSON 文件。
文件的流转
整个流程通过三个关键文件协调:
| 文件 | 创建者 | 读者 | 内容 |
|---|---|---|---|
artifacts/eda_report.md | plan_agent | code_agent, analyzer_agent | 数据现状、分段规则、边界情况 |
artifacts/execution_roadmap.md | plan_agent | code_agent, analyzer_agent | 任务列表、依赖关系、状态追踪 |
artifacts/CHANGELOG.md | code_agent + analyzer_agent | 所有人 | 实现记录、测试结果、验收记录 |
artifacts/issues.md | analyzer_agent | code_agent | 问题记录、修复跟踪 |
artifacts/report.json | code_agent (Phase 4) | analyzer_agent (Phase 5) | 最终输出(必须是真实数据仓库跑出来的) |
这些文件就像神经网络的突触,让三个 Agent 能在没有实时对话的情况下完美协调。
Part 6:Solution Architect 的溢价
到这里,我要问一个问题:为什么要费这么大功夫?直接让 AI 一个人搞不行吗?
答案是:短期可以,长期不行。
程序员的三个进化阶段
L0:手艺人— 只会敲代码
- 出题:“写个客户分层系统”
- 做法:“行,我给你敲”
- 质量:取决于那一刻的 Prompt 质量,波动极大
- 可维护性:依赖个人
- 可复用性:几乎为零
L1:工程师— 知道怎么写好代码
- 出题:“写个客户分层系统”
- 做法:“我用 TDD、设计模式、100% 单测覆盖”
- 质量:稳定,代码漂亮
- 可维护性:代码可维护,但需求理解可能有偏差
- 可复用性:还是依赖这个人的代码库
L2:Solution Architect— 能定义系统的权责边界(就是你现在学的)
- 出题:“用这三个文件 + 六阶段流程解决这个问题”
- 做法:“我不管你是人还是 AI,只要你遵守这套框架”
- 质量:框架本身就保证质量,因为有三权分立、质量门、真实数据测试
- 可维护性:极强,因为所有决策都记录在文件里
- 可复用性:这套框架可以克隆到任何项目
三个文件的威力
让我再强调一遍,这三个文件加在一起是什么:
.github/copilot-instructions.md← 权责分工
- 谁规划?plan_agent
- 谁开发?code_agent
- 谁验收?analyzer_agent
- 每个人的输入输出明确到文件级别
business_requirement.md← 目标锚定
- 什么是成功?逐条列出验收标准
- 怎么证明成功?质量门 checklist
- 没有达到,就是没完成
technical_restrictions.md← 工程底线
- 必须跑 EDA(禁止盲目编码)
- 必须分级测试(单测 + 集成测试)
- 必须真实数据验证(数据仓库集成测试)
- 必须记录所有问题(结构化 Issue Tracker)
把这三个文件丢给任何一个老旧的代码库,它立刻就能长出一套为其量身定制的、具备大厂规范的开发流水线。
程序员的新溢价
在 AI 时代,你的价值不再体现在"敲代码的手感"上,而是:
- 能否定义清晰的权责边界← 这是架构师的核心技能
- 能否设计有效的质量门← 这是工程管理的核心技能
- 能否写出具体可执行的规范文件← 这是沟通的核心技能
你手里握着这三个文件,就握着一台自进化、可克隆的生产力机器。
同一套框架,可以套用到:
- 推荐系统(不同的 AI 模型尝试)
- 风控模型(不同的特征工程方案)
- 数据平台(不同的表结构和 ETL 流程)
- 搜索引擎(不同的排序算法)
框架不变,具体实现的细节会变。但那套"先 EDA、再规划、再开发、再验收"的逻辑永远有效。
总结:没代码不 BB
这就是 Harness Engineering 的全貌。
如果你要我用一句话总结,我会说:这套系统的核心不是某个技术决策,而是一种治理哲学——通过明确的分工、明确的目标、明确的约束,把 AI(和人类开发者)变成工业级的生产单元,而不是聊天机器人。
没有魔法,只有:
- 三个 Markdown 文件
- 六个清晰的阶段
- 若干个质量门
- 结构化的 Issue Tracker
- 一个"必须用真实数据验证"的铁血要求
做到这些,你就不再是代码手艺人,而是解决方案架构师。
你的价值从此开始溢价。
学AI大模型的正确顺序,千万不要搞错了
🤔2026年AI风口已来!各行各业的AI渗透肉眼可见,超多公司要么转型做AI相关产品,要么高薪挖AI技术人才,机遇直接摆在眼前!
有往AI方向发展,或者本身有后端编程基础的朋友,直接冲AI大模型应用开发转岗超合适!
就算暂时不打算转岗,了解大模型、RAG、Prompt、Agent这些热门概念,能上手做简单项目,也绝对是求职加分王🔋
📝给大家整理了超全最新的AI大模型应用开发学习清单和资料,手把手帮你快速入门!👇👇
学习路线:
✅大模型基础认知—大模型核心原理、发展历程、主流模型(GPT、文心一言等)特点解析
✅核心技术模块—RAG检索增强生成、Prompt工程实战、Agent智能体开发逻辑
✅开发基础能力—Python进阶、API接口调用、大模型开发框架(LangChain等)实操
✅应用场景开发—智能问答系统、企业知识库、AIGC内容生成工具、行业定制化大模型应用
✅项目落地流程—需求拆解、技术选型、模型调优、测试上线、运维迭代
✅面试求职冲刺—岗位JD解析、简历AI项目包装、高频面试题汇总、模拟面经
以上6大模块,看似清晰好上手,实则每个部分都有扎实的核心内容需要吃透!
我把大模型的学习全流程已经整理📚好了!抓住AI时代风口,轻松解锁职业新可能,希望大家都能把握机遇,实现薪资/职业跃迁~