大愚Agent:让AI带着“笼子”读财报
每份财报动辄几百页,读完美股年报要花3小时,读完海外公司中英文双语年报得一整天——这对买方分析师来说是日常。但如果你能让AI自动完成财报的下载、解析、信息提取、结构化分析,最终输出一份每一句话都有证据锚点的投研报告呢?
大愚Agent(dayu-agent)就是做这件事的。
这不是又一个"AI写报告"工具
大愚Agent的开发者叫刘成岗,网名 noho。他在2026年3月发过一篇文章叫《一个严肃的投资者怎么用好AI》,里面用DeepSeek实测了苹果公司的EPS预测——两次实验,一次允许AI联网,一次不允许,根据这两次实验中AI的思考链得出结论:
“AI是一个会犯错、会走捷径、上下文有限、偏好模式匹配的推理器,必须给予约束才能让它为你服务”
他在那篇文章里提出了四条约束,后来这四条直接变成了大愚Agent Prompt 体系的基础:
设置身份:告诉AI"你是一名买方分析师,专注于公司定性分析",让它用这个角色约束自己的行为边界 事实约束:只有被证据直接支持的内容,才可以写成确定性陈述;证据不足时宁可留占位符,也不编造 区分事实与分析:主观判断句首加【分析】,未来判断句首加【前瞻】,和事实严格分开 给出证据:每条结论必须附带"证据与出处",精确到文件级+章节,方便人去查证
这四条约束,本质上解决了两类问题:AI幻觉(模型自己编的)和人类幻觉(模型引用了某篇研报里的错误数据)。大愚Agent正是把这四条原则固化成了系统级机制。
项目核心定位一句话:买方初筛阶段,快速判断一家公司是否值得继续深研。
不做估值、不给目标价、不写买卖建议。只回答三个问题:
• 这家公司到底是什么生意 • 最有吸引力和最值得警惕的地方分别是什么 • 是否值得进入下一轮深度研究
架构设计:四层分离,LLM 只在笼子里跳舞
大愚Agent的技术架构有一个明确的信条:"宿主强约束下的 LLM in the Loop"。
UI → Service → Host → Agent• Service 层只理解业务语义——"这次要做什么" • Host 层只管托管执行——session管理、并发控制、取消、恢复 • Agent 层只做消息交互——不理解什么是财报、什么是 ticker
LLM 不控制流程,也不决定边界。它被放在一个精心设计的"笼子"里,按照预设的规则和约束执行任务。
这套架构的好处是:你可以随时替换底层模型(DeepSeek、通义千问、GPT-5.4、Claude、Gemini、Ollama 本地模型都支持),但系统的行为边界不会因为模型换人而跑偏。
最硬核的设计:Prompt 工程的工业化
大愚Agent最值得关注的是它的 Prompt 体系。这不是一个 system prompt 搞定一切,而是一套分层片段组装系统。
三层 Prompt 片段
第一层:Base(基础人格)
• agents.md:行为规范——严格输出唯一结果,不主动扩展• soul.md:人格定义——"你是一名买方分析师,专注于公司定性分析"• fact_rules.md:7条事实规则——将前面提到的四条约束细化为可执行的规则• tools.md:工具使用指引,通过<when_tag>标签按场景动态激活
第二层:Scene(场景契约)
每个场景定义一个独立的执行契约。比如 write 场景告诉AI:"你需要输出结构化章节正文,同步为关键断言选择最直接的证据锚点,缺失信息用占位符标记。"
第三层:Task(具体任务指令)
写作任务的 prompt 长这样:
当前任务:- 只基于下方输入写出当前章节完整正文- 目标是用最小判断链回答"本章回答"写作原则(强制):- 严格按章节结构的小节顺序写,不增删一级标题- 先完成章节合同要求的最低必需内容- 再判断条件写作规则中每条 ITEM_RULE 的 when 是否成立缺口处理:- 必须保留时,按占位符统一格式输出: 【占位符】(缺口:xxx | 需要:xxx | 已检索范围:xxx | 下一步:xxx)声明式场景配置
每个场景有一个 manifest.json,声明模型选择、温度、最大迭代次数、工具权限和 Prompt 组装顺序。不同复杂度的任务分配不同的计算预算:
• infer(公司分类):12次迭代 • audit(章节审计):16次迭代 • confirm(证据复核):20次迭代 • write(章节写作):32次迭代
报告写作的完整流水线
一份完整的买方分析报告,大愚Agent需要跑完一条多阶段流水线:
infer → write_chapter ×9 → audit → confirm → repair/regenerate → fix → decision → overview第一步:infer(公司归类)
从约40个业务类型(平台互联网、半导体设计、消费品牌、生物制药……)和约27个约束标签(监管敏感、高资本开支、周期性强、客户集中……)中,选出这家公司的标签。这个结果决定后续每一章的写作路径。
第二步:write_chapter ×9(逐章写作)
按定性分析模板逐章生成正文(152KB的模板定义了11个章节的结构、写作规则和条件项)。每一章都遵循"结论要点→详细情况→证据与出处"的三段结构。
第三步:audit(质量审计)
这是系统最关键的一环。审计 prompt 定义了一套完整的违规代码体系:
• E1:关键断言无对应证据 → 高危 • E2:具体数字不带证据 → 高危 • E3:证据来源不可追溯 → 高危 • C1:大量占位符导致信息无法闭环 → 高危 • C2:章节越界 → 低危 • S1-S7:风格问题(中/低危)
任何一条 E 类违规都会导致 pass=false,触发修复流程。
第四步:confirm(证据复核)
审计标记了疑似违规后,由另一个独立的场景逐条核实:这个证据是否真的存在?是否能支撑对应的断言?
第五步:repair 或 regenerate(修复或重建)
修复不是让AI"重新写一遍",而是通过 JSON patches 做最小必要修复:
{ "patches": [{ "target_excerpt": "需要修复的原文片段", "target_kind": "bullet", "replacement": "修复后的内容", "reason": "删除无证据支撑的具体数字" }]}修复模式有三种:
• delete_claim:直接删除无法证实的断言• rewrite_with_existing_evidence:用已有事实改写• anchor_fix_only:只修正证据锚点
第六步:fix(占位符补强)
识别所有【占位符】,逐条尝试补充缺失信息。
第七步:decision(研究决策)
基于前9章的汇总输入,形成最终判断:继续研究 / 暂缓 / 放弃。只写1条主判断链、1个主卡点、1-2个关键验证问题。
第八步:overview(封面页)
浓缩整份报告为"投资要点概览"——不调用任何工具,只做信息压缩。
条件写作:同一套模板,不同公司不同报告
大愚Agent的报告模板里嵌入了一套 ITEM_RULE 机制。每条规则包含一个 when 条件和一个 item 写作内容:
ITEM_RULE: when: 公司存在高SBC(股权激励费用占比>10%) item: SBC对利润的真实影响• 当 when不成立 → 这一项直接不输出• 当 when成立但财报中没有相关数据 → 也不输出• 当 when成立且有数据 → 才写入正文
这意味着:分析一家银行和一家SaaS公司,虽然用的是同一套模板,但写出来的报告结构、分析重点、判断路径完全不同。
目前能做什么
• 财报下载:支持美股 SEC EDGAR 自动下载(年报、季报、临时公告等) • 财报上传:支持美股/A股/港股财报文件上传解析 • 投研问答:单次提问、多轮对话、微信交互 • 报告写作:自动生成11章完整投研报告 • 报告渲染:Markdown → HTML / PDF / Word
还有什么没做
• A股/港股财报自动下载 • GUI 图形界面 • Web UI(目前只有 FastAPI 骨架) • 财报电话会议记录转录分析 • Durable Memory(长期记忆层)
对普通投资者的价值
大愚Agent解决的不是"能不能用AI分析财报"的问题,而是"怎么让AI分析财报的结果可靠到可以交付给买方分析师"。这套方法论,对普通投资者同样有用。
即使你不用这个工具,它的三个设计思路也值得借鉴:
1. 证据链追踪:让AI给出每条结论的证据来源,精确到文件和章节。下次你让任何AI分析股票,都要求它附上出处——这是对付AI幻觉最简单有效的办法 2. 写→审→核实→修复:不要一次性接受AI的输出。先让它写,再追问"这个数据从哪来的",遇到不确定的地方让它重新核实。大愚Agent的审计流水线,本质上就是一个更严格的版本 3. 区分事实与判断:要求AI在回答中用【分析】【前瞻】这样的标签,把事实和推测分开。你会发现,去掉这些标签后,真正可靠的信息其实很少
对于想深入研究开源实现的技术人,大愚Agent的 Prompt 体系、审计修复机制和四层分离架构,都是值得直接阅读源码的参考实现。
项目开源地址:https://github.com/noho/dayu-agent
往期文章:东方财富「妙想 Skills」 金融AI技能包深度报告
通达信也出"龙虾"了!一键安装,AI帮你盯盘研究,普通人用得上吗?
从TradingAgents-CN到WorkBuddy Skill:我是如何把一套开源框架"装进"AI助手的
给股票"体检":开源工具Daily_Stock_Analysis让散户也能享受机构级分析
? 关注我,探索更多AI生产力工具


