Update nexus wiki content
This commit is contained in:
77
wiki/concepts/Minimum-Viable-Harness.md
Normal file
77
wiki/concepts/Minimum-Viable-Harness.md
Normal file
@@ -0,0 +1,77 @@
|
||||
---
|
||||
title: "Minimum Viable Harness"
|
||||
type: concept
|
||||
tags:
|
||||
- "harness-engineering"
|
||||
- "agentic-ai"
|
||||
- "quick-start"
|
||||
sources:
|
||||
- "Your-AI-Isn-t-Stupid---It-Just-Needs-a-Better-Harness--Lychee-Technology-Engineering-Blog"
|
||||
last_updated: 2026-04-20
|
||||
---
|
||||
|
||||
## Overview
|
||||
Minimum Viable Harness——Day 1 即可构建的 4 个核心组件,使 Agent 能够优雅失败,为后续增加智能赢得权利。
|
||||
|
||||
## The 4 Components
|
||||
|
||||
### 1. `state.json`
|
||||
单一结构化文件跟踪任务状态——如果进程死亡,可以从上次停止的地方继续。
|
||||
```json
|
||||
{
|
||||
"task_id": "report-001",
|
||||
"steps": {
|
||||
"fetch_competitor_a": "COMPLETED",
|
||||
"fetch_competitor_b": "IN_PROGRESS",
|
||||
"compare": "PENDING"
|
||||
},
|
||||
"last_updated": "2026-04-20T10:30:00Z"
|
||||
}
|
||||
```
|
||||
|
||||
### 2. Retry Wrapper
|
||||
每个工具调用包装 try/catch,至少一次自动重试 + 指数退避:
|
||||
```python
|
||||
def tool_call_with_retry(func, max_attempts=3):
|
||||
for attempt in range(max_attempts):
|
||||
try:
|
||||
return func()
|
||||
except (TimeoutError, APIError) as e:
|
||||
if attempt < max_attempts - 1:
|
||||
sleep(exponential_backoff(attempt))
|
||||
else:
|
||||
raise
|
||||
```
|
||||
|
||||
### 3. Schema Validator
|
||||
每个 LLM 输出在接收前必须通过 JSON Schema 验证。格式不符触发重试,不触发崩溃:
|
||||
```python
|
||||
def validate_and_retry(llm_output, schema):
|
||||
try:
|
||||
validated = jsonschema.validate(llm_output, schema)
|
||||
return validated
|
||||
except ValidationError:
|
||||
return retry_with_error_feedback(llm_output, schema)
|
||||
```
|
||||
|
||||
### 4. Tool Output Truncation
|
||||
每个工具 payload 硬性上限固定 token 预算——context window 内的静默截断是幻觉最常见原因之一:
|
||||
```python
|
||||
MAX_TOOL_TOKENS = 3000 # 保守上限
|
||||
|
||||
def truncate_tool_output(raw_output, max_tokens=MAX_TOOL_TOKENS):
|
||||
tokens = encode(raw_output)
|
||||
if len(tokens) > max_tokens:
|
||||
return decode(tokens[:max_tokens]) + "\n[TRUNCATED]"
|
||||
return raw_output
|
||||
```
|
||||
|
||||
## Philosophy
|
||||
> 你可以忍受不完美的提示词。你可以忍受天真的工具集成。但是你无法忍受一个失败时破坏自己状态或静默吞噬错误的 Agent。
|
||||
|
||||
## Source
|
||||
- [[Your-AI-Isn-t-Stupid---It-Just-Needs-a-Better-Harness--Lychee-Technology-Engineering-Blog]]
|
||||
|
||||
## See Also
|
||||
- [[Harness-Engineering]] — 完整学科框架
|
||||
- [[7-Layer-Harness-Stack]] — 完整 7 层实现
|
||||
Reference in New Issue
Block a user