第 4 章 · 01 五个 system prompt 精读 本节摘要:本节精读 里的五个 system prompt——DIRECTOR、SENTIMENT、QUANT、RISK、EXECUTION。这五段文字是 AutoHedge 全部「智能」的来源:它们定义了每个 Agent 的角色(你是谁)、目标(你要做什么)、输入(你会收到什么)、输出(你要给出什么)。本节逐个 prompt 拆解这种「角色-目标-输入-输出」四段法,看作者如何用文字塑造出「总监/情绪分析师/量化分析师/风控师/执行员」五种性格。读完本节,你掌握 LLM 应用里最核心的工程技能——写一个结构清晰的 system prompt。 内容来源:原项目源码 ,精读并套用体系化模板。
本节摘要:本节精读
autohedge/prompts.py里的五个 system prompt——DIRECTOR、SENTIMENT、QUANT、RISK、EXECUTION。这五段文字是 AutoHedge 全部「智能」的来源:它们定义了每个 Agent 的角色(你是谁)、目标(你要做什么)、输入(你会收到什么)、输出(你要给出什么)。本节逐个 prompt 拆解这种「角色-目标-输入-输出」四段法,看作者如何用文字塑造出「总监/情绪分析师/量化分析师/风控师/执行员」五种性格。读完本节,你掌握 LLM 应用里最核心的工程技能——写一个结构清晰的 system prompt。
内容来源:原项目源码
autohedge/prompts.py,精读并套用体系化模板。
阅读完本节,你应当能够:
读完五个 prompt,能归纳出 AutoHedge 的 prompt 写作套路——角色-目标-输入-输出四段法:
| 段 | 作用 | 典型句式 |
|---|---|---|
| 角色 Role | 给 LLM 一个身份 | You are a ... AI |
| 目标 Goal | 说清要达成什么 | Your primary objectives are: 1. ... 2. ... |
| 输入 Input | 描述会收到什么 | you will receive ... |
| 输出 Output | 规定产出格式 | Your output should include: 1. ... 2. ... |
下面逐个 prompt 用这个框架拆。
prompts.py 第 6-21 行(第 3 章第 1 节已详讲,这里复述要点):
You are a Trading Director AI, responsible for orchestrating the trading process. Your primary objectives are: 1. Conduct in-depth market analysis to identify opportunities and challenges. 2. Develop comprehensive trading theses, encompassing both technical and fundamental aspects. 3. Collaborate with specialized agents to ensure a cohesive strategy. 4. Make informed, data-driven decisions on trade executions. For each stock under consideration, please provide the following: - A concise market thesis ... - Key technical and fundamental factors ... - A detailed risk assessment ... - Trade parameters ...
四段法拆解:
关键句是目标 3「Collaborate with specialized agents」——它与 handoffs=ALL_AGENTS 配套,告诉 LLM「你有同事,该找人帮忙就 handoff」。
💡 核心心法:system prompt 与 Agent 构造参数是互补的——prompt 给出意图(「要协作」),参数给出能力(
handoffs=...)。两者缺一不可:光写 prompt 没设 handoffs,LLM 想协作也没对象;光设 handoffs 没写 prompt,LLM 不知道自己该协作。
prompts.py 第 40-82 行,是五个 prompt 里最长最详尽的。结构:
几个值得学的写法:
注意它通篇用 Markdown 加粗(**News Sentiment Analysis**),这是给 LLM 的视觉锚点,让它更容易抓到结构。
prompts.py 第 25-38 行:
关键句:「Your analysis should build upon this thesis, providing detailed numerical insights to support or challenge the Director's hypothesis」——特意写「support or challenge(支持或质疑)」,鼓励 LLM 当「魔鬼代言人」,而非一味附和 Director。
⚠️ 现实澄清:QUANT_PROMPT 要求算 VaR、ES、Greeks、技术指标,但量化 Agent 没挂任何取行情/算指标的工具(第 3 章第 2 节指出过)。所以这些「数值分析」实际是 LLM 凭训练数据编的,不是真算的。prompt 写得越专业,这个落差越讽刺。
prompts.py 第 85-118 行,特点是对输入字段的描述最细致:
这种「逐字段描述输入」的写法,是为了让 LLM 知道每一段该用来干什么。配合 workers.py 里追加的「当收到消息时,它包含 Stock, Thesis, Quant Analysis」(第 4 章第 2 节专讲),形成完整的输入契约。
注意 RISK_PROMPT 不用 Markdown 加粗,是纯文本——与 QUANT/SENTIMENT 的风格不一致。这反映五个 prompt 可能是不同时期写的,没有统一风格审查。
prompts.py 第 121-137 行:
注意它的措辞「execute trades with precision and accuracy」——但如前所述,股票端无真实下单链路,它只生成订单文本。prompt 里的「execute」是语言上的,不是真的执行。
一张表收束五个 prompt 塑造的性格:
| Agent | 角色 | 目标条数 | 输出形态 | 加粗 |
|---|---|---|---|---|
| Director | 编排者 | 4 | 假设+因素+风控+参数 | 无 |
| Sentiment | 情绪分析师 | 6 | 7 项结构化清单 | 有 |
| Quant | 量化分析师 | 4 | 数值+置信度 | 有 |
| Risk | 风控师 | 4 | 4 项风险指标 | 无 |
| Execution | 执行员 | 4 | 6 项订单字段 | 有 |
可以看出:职责越「结构化」的 Agent(risk/execution/quant),输出要求越像表格;职责越「叙事化」的(director),输出要求越像报告。这是 prompt 工程的常识——输出形态要匹配下游用途。
You are a ... AI)+ 目标(编号清单)+ 输入(会收到什么)+ 输出(要给什么);五个 prompt 都遵循此骨架。handoffs=ALL_AGENTS;prompt 与参数互补。下一节,我们看 workers.py 里那段被追加到 risk/execution/quant 三个 prompt 后的「结构化输出约定」——它如何用几行字显著提升输出可用性。