CONTEXT ENGINEERING · 4-Q REPORT · 2026-08-07 PART 3 OF 4 · APPLICATION
Q3 OF 4

项目中如何应用
Context Engineering?

5 种典型项目 × 必做 3 件 · 落地代码 + 优先级 · 不同项目类型映射
mapping · 5 项目类型 × 必做
1单轮问答 (ChatGPT 替代) — 1 个 best practice 必做
2RAG 文档问答 — 2 个
3多步 agent / tool-calling — 3 个全做

Q2 给出了"8 best practice + 3 必做 + 5 nice-to-have"。Q3 进入下一步:不同项目类型 · 不同的应用组合。5 种典型项目 × 必做 3 件 × 落地优先级。

§15 种典型项目 × 必做映射

项目类型 Note-taking Read-before-Write Evals RAG Skills 何时应用
① 单轮问答 必做 Day 1
② RAG 文档问答 必做 必做 Day 1
③ 多步 agent 必做 必做 必做 可选 Day 1
④ Multi-Agent 必做 必做 必做 可选 必做 Week 2+
⑤ 跨 session 助手 必做 必做 必做 必做 Day 1

核心洞察Evals 永远是 Day 1 — 即使是最简单的项目。其他根据复杂度递进。

§2项目类型 1 · 单轮问答

场景:替代 ChatGPT 完成某领域问答(投资分析 / 代码 review / 文档总结)。

必做

代码示例 · 单轮问答的 Eval

import openai
from dataclasses import dataclass

@dataclass
class EvalCase:
    input: str
    expected_keywords: list  # 期望出现的关键词
    min_length: int = 50
    max_length: int = 500

# 单轮问答的 eval suite
invest_qa_cases = [
    EvalCase("什么是市盈率?", ["P/E", "股价", "每股收益"]),
    EvalCase("ROE 怎么算?", ["净利润", "股东权益"]),
    EvalCase("DCF 模型三要素?", ["现金流", "折现率", "终值"]),
]

def run_eval(case):
    response = openai.ChatCompletion.create(
        model="gpt-5",
        messages=[
            {"role": "system", "content": "你是投资分析助手..."},
            {"role": "user", "content": case.input}
        ]
    )
    answer = response.choices[0].message.content
    # 检查关键词 + 长度
    return all(kw in answer for kw expected_keywords)

pass_rate = sum(run_eval(c) for c invest_qa_cases) / len(invest_qa_cases)
print(f"Pass rate: {pass_rate:.0%}")  # baseline

§3项目类型 2 · RAG 文档问答

场景:企业内部文档 / 法律法规 / 学术论文问答。需要把"大文档"切成"context"塞进 LLM。

必做

代码示例 · LlamaIndex RAG

from llama_index.core import VectorStoreIndex, SimpleDirectoryReader

# 1. 加载文档
documents = SimpleDirectoryReader("./docs").load_data()

# 2. 构建 index (默认用 OpenAI embedding)
index = VectorStoreIndex.from_documents(documents)

# 3. query engine (top-k = 3, similarity cutoff = 0.7)
query_engine = index.as_query_engine(
    similarity_top_k=3,
    filters=None,
)

# 4. 问问题 + 拿到带来源的答案
response = query_engine.query("什么是物理 AI 的瓶颈?")
print(response.response)  # answer
for node in response.source_nodes:
    print(node.metadata["file_name"], node.score)  # source

§4项目类型 3 · 多步 Agent

场景:需要 LLM 调用多个工具(搜索 / 数据库 / 文件系统 / API)完成复杂任务。

必做 · 3 件全做

代码示例 · LangGraph 多步 Agent

from langgraph.graph import StateGraph
from langchain import ChatOpenAI
from langchain.tools import tool

# 1. 定义 tools (with clear schema)
@tool
def search(query: str) -> str:
    """Search the web for current information."""
    return search_api(query)

@tool
def read_file(path: str) -> str:
    """Read a local file by path."""
    return open(path).read()

# 2. LangGraph state = context engineering surface
class AgentState(TypedDict):
    messages: list
    scratchpad: str  # note-taking lives here
    tool_results: list

# 3. Define agent node with note-taking
def agent(state):
    context = state["scratchpad"]  # rolling summary
    response = llm.invoke(
        context + "\n\n" + state["messages"][-1].content,
        tools=[search, read_file]
    )
    # Update scratchpad
    new_scratchpad = update_scratchpad(state["scratchpad"], response)
    return {"scratchpad": new_scratchpad}

# 4. Build graph
workflow = StateGraph(AgentState)
workflow.add_node("agent", agent)
app = workflow.compile()

§5项目类型 4 · Multi-Agent

场景:可靠性要求 > 95%,多 agent 试不同路径 + evaluator 选 best。

在你 short memory 里 D+4 #9 的多 agent 实验(4 framework 比较)就是这个范式 — 4 个 agent 跑同一任务 + 一个 evaluator agent 评分。落地参考 langchain-ai/langgraph + autogen

§6项目类型 5 · 跨 Session 助手

场景:你正在用的 Hermes Agent / Cursor / 一个 skill 系统 — 跨 session 保留上下文。

关键设计

Matt Pocock handoff skill 就是这个范式的工业实现。

§7所以 · Q3 答案

5 种项目 × 必做映射:
单轮问答 · Eval only
RAG · Eval + RAG
多步 Agent · Eval + Note-taking + Read-before-Write
Multi-Agent · + Skills
跨 Session · 全 5 件
核心原则 · Evals 永远是 Day 1,其他根据项目复杂度递进。
— Q3 答 · Hermes Agent · 2026-08-07

§8下一个问题

Q3 给出了"5 项目类型 × 必做映射"。Q4 进入 量化效果 — Inset Magnifier · 4 个角色 · 复合效应 vs 单点效应。

03 / Q3