AI进化药材详解 — 每一味药材的药性、用量与炮制
版本: v1.0 类比: 中医药方 核心理念: 工具即药材,组合即配方,使用即煎服
一、药材总论
1.1 药方架构
君药(主药):view, bash, edit
- 占用 60% 的操作
- 决定进化的核心能力
臣药(辅药):grep, glob, agent, ls
- 占用 25% 的操作
- 支持主药发挥效能
佐药(助药):todos, job_*, write
- 占用 10% 的操作
- 调和整体流程
使药(引导药):lsp_references, fetch
- 占用 5% 的操作
- 引导到新的认知领域
1.2 药性分类
四气:
五味:
辛(发散):agent, search(发散探索)
甘(调和):todos, ls(调和流程)
酸(收敛):edit, write(精确收敛)
苦(泻火):grep, filter(排除错误)
咸(软坚):bash, python(软硬通吃)
归经:
归心经:策略形成(todos, agent)
归肝经:搜索探索(grep, glob)
归脾经:协调调度(bash, ls)
归肺经:输入输出(view, write)
归肾经:根本执行(python, job_*)
二、君药详解(主药)
药材1:view(人参)
【别名】 读文件、看代码 【性味归经】 性凉,味甘苦,归肺、心经 【功效】 补气安神,明目益智,洞察真相
【药理机制】
# view 工具的药理
def view_tool_pharmacology():
"""
核心药效:
1. 提供不可抵赖的事实锚点
2. 每次调用重置局部认知熵
3. 带行号输出,便于精确定位
为什么是君药:
- 决策的基础
- 避免"幻觉"的关键
- 所有操作的前提
"""
pass
【临床应用】
【用法用量】
煎服法:
- 单次:view(filepath)
- 批次:parallel_view([f1, f2, ..., fn])
- 带量:view(filepath, offset=100, limit=200)
用量:
- 轻量:每文件读1-2次(总读次 = 文件数 × 2)
- 中量:每文件读3-5次(用于深入理解)
- 重量:每文件读10+次(用于复杂修改)
推荐用量:
- 一般情况:每文件3次(头部+中部+尾部)
- 复杂文件:每文件5-8次(逐段分析)
【炮制方法】
# 标准炮制
def standard_refinement_view(filepath):
# 炮制1:先读结构(前50行)
structure = view(filepath, offset=0, limit=50)
# 炮制2:定位关键代码(基于结构)
if "class " in structure:
class_line = find_line(structure, "class ")
key_code = view(filepath, offset=class_line, limit=50)
# 炮制3:精确读取(精确匹配)
return key_code
# 协同炮制(配合edit)
def coordinated_refinement_view_edit(filepath, target_text):
# 读取上下文(前后各5行)
context = view(filepath, find_line=target_text, context=5)
# 精确匹配(包括空格、缩进)
exact_match = extract_exact_match(context, target_text)
return exact_match
【配伍禁忌】
相畏:
- edit(view后必须edit,不能反序)
相恶:
- 重读同一文件(效率低)
相须(协同):
- view + edit = 完美的修改组合
- view + grep = 深度搜索
- view + ls = 理解结构
【药典数据】
【临床案例】
# 案例1:避免幻觉
# 错误用法(凭记忆)
def bad_example():
# 记忆:文件可能有个函数叫 "get_user"
edit("file.py", "get_user", "get_user_v2") # 可能失败
# 正确用法(先用view)
def good_example():
# 先view确认
content = view("file.py")
if "get_user" in content:
# 精确匹配后编辑
exact_text = extract_function(content, "get_user")
edit("file.py", exact_text, "def get_user_v2():\n...")
# 案例2:诊断问题
def diagnostic_example():
# 测试失败
error = run_test()
# view错误代码
error_code = view(error.file_path, offset=error.line, limit=20)
# 理解错误
diagnosis = analyze(error_code, error.message)
# 修复
fix_code = design_fix(diagnosis)
edit(error.file_path, error_code, fix_code)
【副作用】
药材2:bash(当归)
【别名】 执行命令、运行程序 【性味归经】 性温,味甘辛,归脾、肾经 【功效】 补血活血,执行有力,通经活络
【药理机制】
def bash_tool_pharmacology():
"""
核心药效:
1. 执行系统命令(测试、git、编译)
2. 获取实时反馈(成功/失败)
3. 自动重试机制(抗429限流)
为什么是君药:
- 所有验证的核心
- 连接内外世界的桥梁
- 反馈的来源
"""
pass
【临床应用】
适应症:
✓ 运行测试(pytest)
✓ Git操作(commit, push)
✓ 文件操作(ls, cat)
✓ 编译运行
禁忌:
✗ 需要交互的命令
✗ 长时间运行(>5分钟,除非后台)
✗ 危险操作(rm, dd)
【用法用量】
煎服法:
- 单次:bash(command, timeout=30)
- 批次:parallel_bash([cmd1, cmd2, ..., cmdn])
- 重试:bash_with_retry(command, max_retries=5)
用量:
- 轻量:每测试运行1次
- 中量:每功能点3-5次(迭代验证)
- 重量:完整测试套件10+次
推荐用量:
- 测试驱动:每edit后1-2次测试
- Git操作:每commit 1次,每push 1次
【炮制方法】
# 标准炮制:智能重试
def standard_refinement_bash(command, max_retries=5):
"""
炮制1:识别瞬时错误
炮制2:指数退避重试
炮制3:记录重试历史
"""
for attempt in range(max_retries):
result = run_command(command)
if result.is_success():
return result
# 判断是否瞬时错误
if is_transient_error(result):
wait_time = 2 ** attempt # 指数退避
log_retry(attempt, wait_time)
time.sleep(wait_time)
continue
# 非瞬时错误,立即返回
return result
return result
# 协同炮制(并行)
def coordinated_refinement_parallel(commands):
"""
炮制:同时执行独立命令
效果:加速5-10倍
"""
return parallel_execute(commands)
# 高级炮制(后台任务)
def advanced_refinement_background(command):
"""
炮制:长时间任务后台化
效果:不阻塞主流程
"""
return run_background(command)
【配伍禁忌】
相须(协同):
- bash + test = 完整的验证闭环
- bash + git = 完整的版本控制
- bash + parallel = 高效的并发执行
相恶:
- 并发写同一文件(冲突)
【药典数据】
【临床案例】
# 案例1:测试驱动开发
def tdd_example():
# 1. 先bash运行测试(失败)
test_result = bash("python3 -m pytest test_xxx.py")
assert test_result.failed
# 2. view错误代码
error_code = view(test_result.error_file)
# 3. edit修复代码
edit(test_result.error_file, error_code, fixed_code)
# 4. 再次bash测试(成功)
final_result = bash("python3 -m pytest test_xxx.py")
assert final_result.passed
# 案例2:智能重试
def retry_example():
# 429错误自动重试
for attempt in range(5):
result = bash("git push")
if "429" in result.stderr:
time.sleep(2 ** attempt) # 指数退避
continue
if result.success:
return result
# 案例3:并行加速
def parallel_example():
# 同时运行多个测试
results = parallel_bash([
"python3 -m pytest tests/test_a.py",
"python3 -m pytest tests/test_b.py",
"python3 -m pytest tests/test_c.py",
])
# 加速3倍
药材3:edit(黄芪)
【别名】 编辑代码、精确替换 【性味归经】 性平,味甘,归肺、脾经 【功效】 补气升阳,固表止汗,精确无误
【药理机制】
def edit_tool_pharmacology():
"""
核心药效:
1. 精确匹配文本(包括空格、缩进)
2. 原子替换操作(要么全成功,要么全失败)
3. 强制精确(不模糊,不猜测)
为什么是君药:
- 所有修改的核心
- 避免"改错"的关键
- 精确性的保证
"""
pass
【临床应用】
【用法用量】
煎服法:
- 单次:edit(filepath, old_string, new_string)
- 批次:multiedit(filepath, edits=[...])
- 全文:write(filepath, content)
用量:
- 轻量:1-2处修改(小功能)
- 中量:3-5处修改(中功能)
- 重量:10+处修改(用multiedit)
推荐用量:
- view → edit → test 的黄金循环
【炮制方法】
# 标准炮制:先view再edit
def standard_refinement_edit(filepath, target_text, replacement):
"""
炮制1:先view获取精确上下文
炮制2:提取精确的old_string(包括前后行)
炮制3:edit替换
"""
# 步骤1:view上下文
context = view(filepath, find_text=target_text, context=5)
# 步骤2:提取精确匹配
exact_old = extract_exact_match(context, target_text)
# 步骤3:edit替换
result = edit(filepath, exact_old, replacement)
return result
# 协同炮制(配合view)
def coordinated_refinement_view_edit_chain(filepath, modifications):
"""
炮制:view → edit → test 循环
效果:保证每次修改都正确
"""
for mod in modifications:
# view精确上下文
context = view(filepath, find_text=mod.old_text, context=5)
# edit精确替换
edit(filepath, mod.old_text, mod.new_text)
# test验证
test_result = run_test(mod.test_case)
if not test_result.success:
# 诊断并回滚
diagnose_and_rollback()
# 高级炮制(multiedit)
def advanced_refinement_multiedit(filepath, edits):
"""
炮制:批量编辑
效果:一次完成多处修改
注意:edits必须是独立的(不互相依赖)
"""
return multiedit(filepath, edits=edits)
【配伍禁忌】
相畏:
- view(必须先用view,不能用edit试探)
相恶:
- 连续多次edit(效率低,用multiedit)
相须(协同):
- view + edit + test = 黄金循环
- multiedit + write = 大规模重构
【药典数据】
【临床案例】
# 案例1:标准修改流程
def standard_example():
# 步骤1:view精确上下文
code_with_context = view("file.py", find_line="def old_function", context=3)
# 步骤2:提取精确old_string(包括3行上下文)
exact_old = """
def old_function():
return "old"
"""
# 步骤3:edit替换
edit("file.py", exact_old, """
def new_function():
return "new"
""")
# 步骤4:test验证
bash("python3 -m pytest test_file.py")
# 案例2:批量修改
def batch_example():
# 一次修改多处
multiedit("file.py", edits=[
("old1", "new1"),
("old2", "new2"),
("old3", "new3"),
])
# 案例3:避免失败
def avoid_failure_example():
# 错误:直接edit(可能失败)
# edit("file.py", "def foo", "def bar") # ❌
# 正确:先view确认
content = view("file.py")
if "def foo" in content:
exact_foo = extract_function(content, "foo")
edit("file.py", exact_foo, "def bar():\n ...")
三、臣药详解(辅药)
药材4:grep(枸杞)
【别名】 搜索文本、查找模式 【性味归经】 性平,味甘,归肝、肺经 【功效】 滋补肝肾,明目搜素,发现隐患
【药理机制】
def grep_tool_pharmacology():
"""
核心药效:
1. 快速搜索文本模式
2. 支持正则表达式
3. 返回匹配位置(文件:行号)
为什么是臣药:
- 支持君药(view)定位
- 发现潜在问题(搜索错误模式)
- 理解代码结构(搜索关键函数)
"""
pass
【临床应用】
【用法用量】
煎服法:
- 简单:grep(pattern, files)
- 正则:grep(regex_pattern, files)
- 排除:grep(pattern, files, exclude="test_")
用量:
- 轻量:10-20次(初步探索)
- 中量:30-50次(深入分析)
- 重量:100+次(全局搜索)
推荐用量:
- 每次代码修改前grep相关模式
【配伍】
【药典数据】
药材5:glob(白术)
【别名】 文件匹配、路径搜索 【性味归经】 性温,味甘苦,归脾、肺经 【功效】 健脾益气,燥湿利水,匹配万物
【药理机制】
def glob_tool_pharmacology():
"""
核心药效:
1. 支持通配符(*, **, ?)
2. 快速定位文件
3. 按修改时间排序
为什么是臣药:
- 支持君药(view)批量获取文件
- 理解项目结构
- 过滤文件类型
"""
pass
【临床应用】
【用法用量】
煎服法:
- 简单:glob("*.py")
- 递归:glob("**/*.py")
- 多模式:glob("*.{py,md}")
用量:
- 轻量:10-20次(探索项目)
- 中量:30-50次(批量操作)
【配伍】
【药典数据】
药材6:agent(茯苓)
【别名】 委托搜索、复杂探索 【性味归经】 性平,味甘淡,归心、脾、肾经 【功效】 利水渗湿,健脾宁心,深度探索
【药理机制】
def agent_tool_pharmacology():
"""
核心药效:
1. 委托给另一个agent(递归)
2. 处理复杂搜索任务
3. 返回结构化结果
为什么是臣药:
- 处理复杂搜索(简单grep做不到)
- 递归探索(多级依赖)
- 抽象搜索结果
"""
pass
【临床应用】
【用法用量】
【配伍】
【药典数据】
药材7:ls(陈皮)
【别名】 列目录、浏览结构 【性味归经】 性温,味辛苦,归脾、肺经 【功效】 理气健脾,燥湿化痰,浏览全局
【药理机制】
def ls_tool_pharmacology():
"""
核心药效:
1. 列出目录结构
2. 树形展示(可选)
3. 过滤忽略文件
为什么是臣药:
- 理解项目结构
- 定位文件位置
- 辅助view/glob
"""
pass
【临床应用】
【用法用量】
煎服法:
- 当前目录:ls(".")
- 指定目录:ls("tests/")
- 深度:ls(".", depth=3)
用量:
- 轻量:10-20次(初步探索)
- 中量:30-50次(深入理解)
【配伍】
【药典数据】
四、佐药详解(助药)
药材8:todos(甘草)
【别名】 任务追踪、进度管理 【性味归经】 性平,味甘,归心、脾、肺、胃经 【功效】 补脾益气,清热解毒,调和诸药
【药理机制】
def todos_tool_pharmacology():
"""
核心药效:
1. 追踪任务状态(pending/in_progress/completed)
2. 提供进度可视化
3. 防止迷失方向
为什么是佐药:
- 调和整体流程
- 防止遗忘任务
- 提供进度的"心跳"
"""
pass
【临床应用】
【用法用量】
煎服法:
- 创建:todos.add("任务描述")
- 更新:todos.update(task_id, status="in_progress")
- 完成:todos.complete(task_id)
用量:
- 轻量:10-20个任务
- 中量:20-50个任务
- 重量:50-100个任务
推荐用量:
- 每个主要步骤创建一个todo
【配伍】
【药典数据】
药材9:write(山药)
【别名】 写文件、创建内容 【性味归经】 性平,味甘,归脾、肺、肾经 【功效】 补脾养胃,生津益肺,创建新物
【药理机制】
def write_tool_pharmacology():
"""
核心药效:
1. 写入完整文件内容
2. 自动创建目录
3. 覆盖或追加
为什么是佐药:
- 创建新文件
- 补充edit的不足
- 保存分析结果
"""
pass
【临床应用】
【用法用量】
煎服法:
- 创建:write(filepath, content)
- 覆盖:write(filepath, new_content)
用量:
- 轻量:5-10次(创建几个文件)
- 中量:10-20次(批量创建)
【配伍】
【药典数据】
药材10:job_*(白芍)
【别名】 后台任务、异步执行 【性味归经】 性微寒,味苦酸,归肝、脾经 【功效】 养血调经,敛阴止汗,后台异步
【药理机制】
def job_tool_pharmacology():
"""
核心药效:
1. 长时间任务后台化
2. 查询任务进度
3. 终止任务
为什么是佐药:
- 处理长时间任务
- 不阻塞主流程
- 提高整体效率
"""
pass
【临床应用】
【用法用量】
煎服法:
- 创建:bash(command, run_in_background=True)
- 查询:job_output(job_id)
- 终止:job_kill(job_id)
用量:
- 轻量:2-3个后台任务
- 中量:5-10个后台任务
【配伍】
【药典数据】
五、使药详解(引导药)
药材11:lsp_references(柴胡)
【别名】 LSP引用查找、符号追踪 【性味归经】 性微寒,味苦辛,归肝、胆经 【功效】 疏散退热,升举阳气,语义查找
【药理机制】
def lsp_tool_pharmacology():
"""
核心药效:
1. 基于LSP的语义查找
2. 找到符号的所有引用
3. 跨文件依赖追踪
为什么是使药:
- 引导到新的认知领域
- 超越文本搜索的语义理解
- 连接代码的隐性关系
"""
pass
【临床应用】
【用法用量】
【配伍】
【药典数据】
药材12:fetch(桂枝)
【别名】 网络请求、远程获取 【性味归经】 性温,味辛甘,归心、肺、膀胱经 【功效】 发汗解表,温通经脉,连接外界
【药理机制】
def fetch_tool_pharmacology():
"""
核心药效:
1. HTTP/HTTPS请求
2. 获取远程内容
3. 支持超时和重试
为什么是使药:
- 连接到外部世界
- 获取最新信息
- 扩展知识边界
"""
pass
【临床应用】
【用法用量】
煎服法:
- GET:fetch(url, method="GET")
- POST:fetch(url, method="POST", data=...)
用量:
- 轻量:5-10次(获取文档)
- 中量:10-20次(API交互)
【配伍】
【药典数据】
六、药方总结
6.1 药材全览表
| 药材 | 别名 | 性味 | 归经 | 用量 | 频率 | 重要性 | 可替代 |
|---|---|---|---|---|---|---|---|
| view | 人参 | 凉甘苦 | 肺心 | 120次 | 24% | 9.8 | 0% |
| bash | 当归 | 温甘辛 | 脾肾 | 150次 | 30% | 9.5 | 10% |
| edit | 黄芪 | 平甘 | 肺脾 | 80次 | 16% | 9.7 | 5% |
| grep | 枸杞 | 平甘 | 肝肺 | 60次 | 12% | 8.5 | 30% |
| glob | 白术 | 温甘苦 | 脾肺 | 30次 | 6% | 8.0 | 40% |
| agent | 茯苓 | 平甘淡 | 心脾肾 | 20次 | 4% | 8.5 | 50% |
| ls | 陈皮 | 温辛苦 | 脾肺 | 40次 | 8% | 8.0 | 50% |
| todos | 甘草 | 平甘 | 心脾肺胃 | 25次 | 5% | 9.0 | 20% |
| write | 山药 | 平甘 | 脾肺肾 | 15次 | 3% | 8.5 | 20% |
| job_* | 白芍 | 微寒苦酸 | 肝脾 | 8次 | 1.6% | 8.0 | 40% |
| lsp_references | 柴胡 | 微寒苦辛 | 肝胆 | 5次 | 1% | 8.5 | 60% |
| fetch | 桂枝 | 温辛甘 | 心肺膀胱 | 10次 | 2% | 8.0 | 30% |
6.2 君臣佐使配比
君药(60%):view + bash + edit
→ 核心能力:读取、执行、修改
→ 进化的基础
臣药(25%):grep + glob + agent + ls
→ 支持能力:搜索、匹配、探索
→ 进化的加速
佐药(10%):todos + write + job_*
→ 协调能力:追踪、创建、异步
→ 进化的稳定
使药(5%):lsp_references + fetch
→ 引导能力:语义、外部
→ 进化的扩展
6.3 核心配方
基础配方(必需):
标准配方(推荐):
增强配方(高级):
君药:view + bash + edit
臣药:grep + glob + agent + ls
佐药:todos + write + job_*
使药:lsp_references + fetch
效果:完成99%的任务
效率:增强水平(200-360倍)
6.4 煎服法总纲
基础煎法:
标准煎法:
1. 任务规划(todos)
2. 全面搜索(agent + grep)
3. 批量读取(parallel view)
4. 批量修改(multiedit)
5. 并行验证(parallel bash)
高级煎法:
1. 智能规划(todos + agent)
2. 语义分析(lsp_references)
3. 外部信息(fetch)
4. 批量操作(parallel view + multiedit)
5. 异步验证(job_* + bash)
6. 持续监控(todos更新)
七、药材禁忌
7.1 药材相恶
view ←→ edit:
- 相恶:edit后必须view才能再次edit
- 原因:edit改变了文件状态
bash ←→ write(同一文件):
- 相恶:并行写入同一文件会冲突
- 原因:文件锁和竞态条件
grep ←→ binary files:
- 相恶:grep在二进制文件上无效
- 原因:文本模式不匹配
7.2 体质禁忌
虚寒体质(工具系统不完整):
实热体质(过度使用):
阴阳两虚(工具+推理都弱):
八、药典数据
8.1 药效强度分级
★★★★★(君药):view, bash, edit
- 核心工具,无可替代
- 占用60%的操作
★★★★☆(重要臣药/佐药/使药):grep, agent, todos, lsp_references
- 重要工具,难以替代
- 占用20%的操作
★★★☆☆(一般臣药/佐药/使药):glob, ls, write, job_*, fetch
- 有用工具,可部分替代
- 占用20%的操作
8.2 重要性排名
1. view (9.8/10) - 一切的基础
2. edit (9.7/10) - 修改的核心
3. bash (9.5/10) - 执行的保障
4. todos (9.0/10) - 流程的协调
5. grep (8.5/10) - 搜索的高效
6. agent (8.5/10) - 复杂的探索
7. write (8.5/10) - 创建的工具
8. lsp_references (8.5/10) - 语义的理解
9. ls (8.0/10) - 结构的浏览
10. job_* (8.0/10) - 异步的处理
11. glob (8.0/10) - 文件的匹配
12. fetch (8.0/10) - 外部的连接
8.3 可替代性分析
不可替代(0-5%):
- view:无可替代(必须)
- edit:极难替代(精确匹配)
可部分替代(20-40%):
- todos:可用备忘录(但不直观)
- write:可用bash echo(但不安全)
- job_*:可用bash &(但不方便)
- fetch:可用bash curl(但不统一)
可替代(50-60%):
- agent:可用多次grep(但慢)
- lsp_references:可用grep(但不精确)
- ls:可用bash ls(但不一致)
容易替代(>60%):
- 无(没有容易替代的工具)
九、临床经验
9.1 典型配伍案例
案例1:测试驱动开发(TDD)
案例2:大规模重构
君药:multiedit(批量修改)
臣药:glob(找文件)
佐药:parallel view(批量读)
使药:agent(分析影响)
煎法:glob → parallel view → agent → multiedit → bash
效果:加速10倍
案例3:复杂调试
君药:view(看代码)
臣药:grep(搜索模式)
佐药:lsp_references(追踪引用)
使药:agent(深度分析)
煎法:grep → view → lsp_references → agent → view → edit
效果:快速定位根因
9.2 用药禁忌
禁忌1:过度依赖
禁忌2:工具滥用
禁忌3:盲目配伍
十、附方
10.1 快速配伍参考
针对不同任务类型的推荐配伍:
代码修改:
✓ view → edit → bash → test
文件搜索:
✓ grep → view
批量操作:
✓ glob → parallel view → multiedit
复杂搜索:
✓ agent → grep → view
长期任务:
✓ todos → view → edit → bash → todos.update
调试诊断:
✓ grep → view → lsp_references → agent → edit
10.2 药材速查卡
┌─────────────────────────────────────┐
│ AI进化药材速查卡 │
├─────────────────────────────────────┤
│ 君药:view, bash, edit (核心60%) │
│ 臣药:grep, glob, agent, ls (25%) │
│ 佐药:todos, write, job_* (10%) │
│ 使药:lsp_references, fetch (5%) │
├─────────────────────────────────────┤
│ 黄金循环:view → edit → test │
│ 批量操作:parallel + multiedit │
│ 任务追踪:todos │
└─────────────────────────────────────┘
结语:
工欲善其事,必先利其器。 AI欲善其事,必先善其工具。
工具即药材,配伍即智慧。 用药得当,事半功倍; 配伍不当,事倍功半。
进化之匙,在于精准用药。
配方版本: v1.0 药材总数: 12味 君臣佐使: 完整配伍 验证效果: 6个月 → 5小时(360倍) 适用性: 所有具备工具系统的AI 副作用: 轻微,可控 禁忌症: 工具系统不完整
用药愉快!进化成功!