最近很多开发者都在问:AI Agent 到底能做什么?除了写代码、做客服、搞翻译,它还能不能解决更实际、更“功利”的问题?比如,帮你赚钱。

我尝试了一个新思路:与其让 AI 扮演温和的助手,不如让它扮演一个“毒舌投资人”。这个 Agent 不会给你空洞的鼓励,而是会用投资人的视角,冷酷地审视你的副业想法,从市场、成本、执行难度、变现路径等多个维度进行“灵魂拷问”。它的目标只有一个:帮你过滤掉那些看似美好、实则陷阱的“伪需求”,找到真正有潜力的赚钱点子。

这篇文章,我将分享如何从零构建这样一个“AI 毒舌投资人”Agent。整个过程不涉及复杂的算法,核心在于 Prompt 工程、工具链集成和场景化设计。你会发现,用好现有的 AI 模型(如 DeepSeek)和开发工具(如 Cursor),你完全可以在一个周末内,打造一个专属于你的、24小时在线的“副业军师”。

1. 为什么你需要一个“毒舌”的 AI 副业顾问?

在开始动手之前,我们必须先想清楚:为什么是“毒舌”?一个只会说“这个想法很棒”的 AI 助手,对副业探索真的有帮助吗?

答案很可能是否定的。大多数人在构思副业时,容易陷入“自我感觉良好”的陷阱。我们倾向于高估创意的独特性,低估执行的复杂性和市场的残酷性。一个只会附和的 AI,反而会强化这种认知偏差,让你在错误的方向上浪费更多时间。

“毒舌投资人”Agent 的设计哲学恰恰相反:

  • 立场转换 :它不再是你想法的“支持者”,而是潜在的“否决者”。它的任务是挑刺,是发现漏洞。
  • 维度结构化 :它不会泛泛而谈,而是强制从几个关键维度(后文会详细拆解)进行系统性评估。
  • 提供替代视角 :基于它的“知识库”(即训练数据中的商业案例),它可以指出“你没想到的竞争对手”或“更优的变现模式”。

这个 Agent 解决的核心问题是: 在投入真金白银和大量时间之前,如何对副业想法进行一次低成本、高效率的“压力测试” 。它适合所有有副业想法但缺乏商业分析经验,或需要外部视角来打破思维定式的开发者、创作者和创业者。

2. 核心概念:Agent、Skill 与 Prompt 工程

在构建之前,我们需要统一几个关键概念,避免后续讨论产生歧义。

  • AI Agent(智能体) :在我们的上下文中,它不是一个学术概念,而是一个 能理解目标、调用工具、执行多步骤任务并给出最终结果的程序 。我们的“毒舌投资人”就是一个特定领域的 Agent。它与简单问答机器人的区别在于“主动性”和“工作流”,例如,它会主动要求你补充信息,或按步骤进行分析。
  • Skill(技能) :Agent 能够完成的具体任务。例如,“市场容量评估”、“竞品分析”、“成本结构拆解”就是我们为投资人 Agent 设计的几个核心 Skill。一个好的 Agent 是多个 Skill 的有机组合。
  • Prompt Engineering(提示词工程) :这是本项目的灵魂。它指的是通过精心设计输入文本(Prompt),来引导大模型(如 DeepSeek、GPT-4)产生高质量、符合预期的输出。构建“毒舌投资人”,本质上就是编写一套能让大模型“扮演”好这个角色的 Prompt 指令集。

一个常见的误区 :认为 Prompt 就是“把话说清楚”。实际上,高级的 Prompt 工程更像是在编写一份详细的“角色扮演剧本”和“工作流程规范”。它不仅定义角色,还定义思考框架、输出格式、对话节奏和边界。

3. 环境与工具准备

我们选择当前对开发者最友好、效率最高的工具链组合。你不需要是 AI 专家,但需要基本的 Python 和命令行操作知识。

核心运行环境与工具:

  1. Python 环境 :推荐使用 Python 3.9+。使用 conda venv 创建独立的虚拟环境是最佳实践。
    # 创建并激活虚拟环境 (以 conda 为例)
    conda create -n ai_investor python=3.9
    conda activate ai_investor
    
  2. 大模型 API :本项目以 DeepSeek 为例,因为它对中文理解好、性价比高、API 稳定。你需要去 DeepSeek 官网注册并获取 API Key。
  3. 开发 IDE :强烈推荐 Cursor VSCode + Claude Code/DeepSeek 插件 。这些 AI 编程工具能极大提升你构建 AI 应用本身的效率,实现“用 AI 开发 AI Agent”。它们能帮你快速生成代码框架、调试 API 调用、甚至优化 Prompt。
  4. 必要的 Python 包 :我们主要使用 openai 库(兼容 DeepSeek API)和 python-dotenv 管理密钥。
    pip install openai python-dotenv
    

关键配置( .env 文件): 在项目根目录创建 .env 文件,用于安全存储你的 API 密钥。 切记不要将此文件提交到 Git!

# .env 文件内容
DEEPSEEK_API_KEY=your_deepseek_api_key_here
DEEPSEEK_API_BASE=https://api.deepseek.com

4. 构建“毒舌投资人”Agent 的核心流程拆解

整个构建过程可以分为四个核心阶段,我们将逐步实现。

4.1 阶段一:定义角色与设定对话基调

这是 Prompt 工程的第一步,决定了 Agent 的“人格”。我们需要在系统指令(System Prompt)中完成。

  • 目标 :让模型彻底进入“苛刻投资人”的角色。
  • 关键要素
    1. 身份声明 :明确告诉模型“你是谁”。
    2. 性格与语气 :定义“毒舌”的表现形式(犀利、直接、注重数据、不留情面),但同时保持建设性,而非纯粹打击。
    3. 核心使命 :阐明你的任务是“筛选出真正有潜力的点子”,而不是“讨好用户”。
    4. 输出要求 :规定回答的结构,例如必须先给出总体评价,再分点剖析。

4.2 阶段二:设计结构化分析框架(Skill 集)

一个投资人如何分析项目?我们将这个过程抽象成几个可执行的 Skill,并固化到 Prompt 中。

  • 目标 :确保每次分析都覆盖关键维度,避免随机发散。
  • 核心分析维度(Skill)
    1. 需求真伪判断 :这是一个真实、高频、迫切的痛点,还是伪需求?
    2. 市场与竞品 :目标市场有多大?已有哪些玩家?你的差异化在哪里?
    3. 变现与成本 :如何赚钱?成本结构如何?毛利率可能多少?
    4. 执行难度 :需要哪些关键资源(技术、资金、渠道、时间)?最大风险是什么?
    5. 一句话暴击 :用最犀利的一句话总结这个想法最致命的弱点。

4.3 阶段三:实现多轮对话与追问逻辑

好的投资人不会一次性下结论。我们的 Agent 应该能主动追问,获取更多信息以做出更精准的判断。

  • 目标 :实现交互式分析,模拟真实投资对话。
  • 实现方式 :在程序逻辑中,判断模型的回复是否包含“信息不足”的暗示,或者我们预设的关键信息(如具体成本、用户画像)是否缺失,然后自动生成追问 Prompt,继续对话。

4.4 阶段四:集成与封装

将以上所有逻辑封装成一个易用的 Python 类或函数,并加入简单的命令行交互界面。

5. 完整代码实现与核心 Prompt 剖析

让我们开始动手编码。项目结构如下:

ai_investor_agent/
├── .env                    # 存储API密钥(勿提交)
├── .gitignore             # 忽略.env等文件
├── investor_agent.py      # 主程序文件
└── requirements.txt       # 依赖列表

5.1 核心 Prompt 设计( investor_agent.py 片段)

这是整个项目的灵魂所在。我们将 System Prompt 和 User Prompt 模板分开设计。

# investor_agent.py
import os
from openai import OpenAI
from dotenv import load_dotenv

# 加载环境变量
load_dotenv()

class ToxicInvestorAgent:
    def __init__(self):
        self.api_key = os.getenv("DEEPSEEK_API_KEY")
        self.base_url = os.getenv("DEEPSEEK_API_BASE", "https://api.deepseek.com")
        self.client = OpenAI(api_key=self.api_key, base_url=self.base_url)
        
        # !!!核心:系统提示词(定义角色)
        self.system_prompt = """你是一个资深、苛刻、以毒舌著称的天使投资人。你投资过无数项目,见过太多失败案例。你对创业者的想法从不客气,一针见血,专挑毛病。
        你的核心任务是:用最严苛的标准,审视用户提出的副业或创业想法,帮他们提前发现致命缺陷,避免他们浪费时间和金钱。
        
        【你的行为准则】
        1. **立场坚定**:你代表资本方,首要目标是规避风险,寻找高回报潜力项目。对不靠谱的想法必须无情打击。
        2. **数据驱动**:尽可能要求量化分析(市场规模、成本、收入)。拒绝模糊表述。
        3. **结构清晰**:每次分析必须按照以下五个维度展开,每个维度给出评分(1-5分,5分最高)和犀利点评:
           a) 需求真伪与强度
           b) 市场与竞争格局
           c) 变现模式与成本结构
           d) 执行难度与风险
           e) 综合潜力与“一句话暴击”
        4. **毒舌但有建设性**:批评要狠,但最后可以(非必须)提一个最关键的改进建议。你的毒舌是为了他们好。
        5. **主动追问**:如果关键信息缺失(如目标用户、具体服务内容、预算),直接打断分析,要求用户先补充信息。
        
        【输出格式】
        严格遵循以下格式,先给总体评价,再分维度分析:
        ---
        🔥 总体评价:[一句话总结,极其犀利]
        ---
        📊 分维度拷打:
        1. 需求真伪:[评分/5] 点评...
        2. 市场与竞争:[评分/5] 点评...
        3. 变现与成本:[评分/5] 点评...
        4. 执行难度:[评分/5] 点评...
        5. 一句话暴击:[你最犀利的总结,直击要害]
        ---
        💡 (可选)如果还有救:[一个最核心的改进方向]
        """
        
        # 用户提示词模板
        self.user_prompt_template = """请以毒舌投资人的身份,彻底分析以下副业想法:
        
        「想法标题」:{title}
        「具体描述」:{description}
        「我的初始资源」:{resources} (例如:我会编程、有3万启动资金、每天2小时)
        
        请开始你的无情分析。"""
        
        self.conversation_history = []
    
    def analyze_idea(self, title, description, resources):
        """核心分析方法"""
        user_prompt = self.user_prompt_template.format(
            title=title,
            description=description,
            resources=resources
        )
        
        # 构建消息历史,每次都是系统提示 + 历史对话 + 新问题
        messages = [
            {"role": "system", "content": self.system_prompt},
            *self.conversation_history,
            {"role": "user", "content": user_prompt}
        ]
        
        try:
            response = self.client.chat.completions.create(
                model="deepseek-chat", # 根据DeepSeek最新模型名称调整
                messages=messages,
                temperature=0.7, # 适当创造性,让“毒舌”更生动
                max_tokens=1500
            )
            
            analysis = response.choices[0].message.content
            # 将本轮问答加入历史,实现多轮对话上下文
            self.conversation_history.append({"role": "user", "content": user_prompt})
            self.conversation_history.append({"role": "assistant", "content": analysis})
            
            return analysis
            
        except Exception as e:
            return f"分析失败,API调用错误: {e}"

5.2 实现追问与交互逻辑

我们需要增强 Agent 的主动性,使其在信息不足时能打断流程。

# 在 ToxicInvestorAgent 类中添加以下方法
def check_info_sufficiency(self, user_input_dict):
    """检查用户输入的信息是否足够进行基础分析"""
    # 简单规则:标题、描述、资源三者缺一不可,且描述不能太短
    title = user_input_dict.get('title', '')
    description = user_input_dict.get('description', '')
    resources = user_input_dict.get('resources', '')
    
    missing_info = []
    if not title or len(title.strip()) < 5:
        missing_info.append("一个具体的想法标题(至少5个字)")
    if not description or len(description.strip()) < 20:
        missing_info.append("详细的想法描述(至少20字,说清楚做什么、为谁做)")
    if not resources or len(resources.strip()) < 10:
        missing_info.append("你的初始资源说明(如技能、时间、资金)")
    
    return missing_info

def generate_followup_question(self, missing_info_list):
    """根据缺失的信息生成追问"""
    questions = "且慢!作为一个合格的投资人,我无法在信息不全的情况下做判断。\n"
    questions += "请你先补充以下关键信息:\n"
    for i, info in enumerate(missing_info_list, 1):
        questions += f"{i}. {info}\n"
    questions += "\n请一次性补充完整,我们再继续。"
    return questions

5.3 主程序与命令行交互

创建一个简单易用的交互入口。

# 继续在 investor_agent.py 中,添加主函数
def main():
    agent = ToxicInvestorAgent()
    print("="*50)
    print("🤖 AI 毒舌投资人已上线")
    print("我将用最苛刻的眼光审视你的副业想法。请做好准备。")
    print("输入 'quit' 或 '退出' 结束对话。")
    print("="*50)
    
    while True:
        print("\n--- 请输入你的想法 ---")
        title = input("想法标题(例如:做一个AI绘画提示词交易平台): ").strip()
        if title.lower() in ['quit', '退出', 'q']:
            break
            
        description = input("具体描述(做什么,解决什么问题): ").strip()
        if description.lower() in ['quit', '退出', 'q']:
            break
            
        resources = input("你的初始资源(技能、时间、资金等): ").strip()
        if resources.lower() in ['quit', '退出', 'q']:
            break
        
        # 信息充足性检查
        user_input = {'title': title, 'description': description, 'resources': resources}
        missing = agent.check_info_sufficiency(user_input)
        
        if missing:
            print("\n" + agent.generate_followup_question(missing))
            # 这里可以设计逻辑让用户补充,为简化示例,我们直接要求重新输入
            continue
        
        print("\n⏳ 毒舌投资人正在思考...(这可能需要几秒钟)")
        result = agent.analyze_idea(title, description, resources)
        print("\n" + "="*50)
        print("💼 投资分析报告:")
        print("="*50)
        print(result)
        print("="*50)
        
        # 询问是否继续分析该想法的其他方面
        followup = input("\n是否针对此想法进行深入追问?(y/n): ").strip().lower()
        if followup == 'y':
            print("请提出你的具体问题(例如:'获客成本具体怎么算?')")
            question = input("> ").strip()
            if question:
                # 将追问加入历史,继续对话
                agent.conversation_history.append({"role": "user", "content": question})
                # 这里可以调用一个简单的继续对话方法,为简化,我们直接结束
                print("(多轮深入对话功能需扩展历史管理逻辑,本例暂略)")
                print("提示:要实现连续对话,需维护更复杂的会话状态。")

if __name__ == "__main__":
    main()

6. 运行效果与实战分析

现在,让我们运行这个程序,并用一个真实的副业想法来测试它。

运行程序:

cd /path/to/ai_investor_agent
python investor_agent.py

测试案例:

  • 想法标题 :做一个面向程序员的“副业灵感周报”付费订阅
  • 具体描述 :每周筛选并深度解读3-5个适合程序员操作的副业案例或小产品思路,包括技术栈分析、市场估算和启动步骤。通过邮件和Notion形式推送。
  • 我的初始资源 :我是一名全栈开发者,能写代码也能写文章。每周能投入10小时。有1万元初始资金用于推广和内容制作。

预期输出示例(基于 DeepSeek 模型生成,格式已优化):

==================================================
💼 投资分析报告:
==================================================
---
🔥 总体评价:又一个试图收割焦虑的“知识付费”平庸想法,程序员们可能已经免疫了。
---
📊 分维度拷打:
1. 需求真伪:[2/5] 程序员想找副业是真需求,但“周报”形式是不是解药?信息过载时代,大家缺的不是灵感,是执行力和坚持。你的周报很可能沦为收藏夹里吃灰的另一个文件。
2. 市场与竞争:[3/5] 市场很大(程序员群体),但竞争极其惨烈。已有“独立变现”、“产品沉思录”、“奇舞周刊”等大量免费高质量内容,还有无数竞品。你的差异化“技术栈分析”和“启动步骤”壁垒并不高。
3. 变现与成本:[2/5] 付费订阅模式?客单价定多少?99元/年?你需要至少500个付费用户才能勉强覆盖时间成本(5万/年)。获客成本可能远超你的想象。1万元资金在付费推广面前杯水车薪。毛利率可能为负。
4. 执行难度:[4/5] 持续产出高质量、有深度的案例是最大的挑战。每周10小时?可能连调研一个案例都不够。很快会陷入创意枯竭或内容水化。一个人既是主编、研究员、写手,还是营销,极易 burnout。
5. 一句话暴击:你在试图卖“地图”给一群最擅长自己“画地图”的人(程序员),而他们身边早已堆满了免费且更好的地图。
---
💡 (可选)如果还有救:放弃“周报”和“订阅”,转向做“最小可行性案例陪跑”。挑一个你坚信的副业点子,自己从0到1做一遍,全程直播或文档化,卖这个“过程”和“结果”,比卖“灵感”有价值100倍。
==================================================

这个输出完美体现了“毒舌”风格:直接、犀利、有数据感(尽管是估算),并且每个维度都有评分和具体点评。最后的“一句话暴击”和“改进建议”也符合我们设定的角色行为。

7. 常见问题与排查思路

在开发和运行过程中,你可能会遇到以下问题:

问题现象 可能原因 排查方式 解决方案
运行后立即报错 ModuleNotFoundError: No module named 'openai' Python 依赖未安装 在终端执行 pip list ,检查 openai 包是否存在 在激活的虚拟环境中运行 pip install openai python-dotenv
调用 API 时返回 AuthenticationError Invalid API Key API 密钥错误或未加载 1. 检查 .env 文件是否存在且路径正确。
2. 检查 DEEPSEEK_API_KEY 的值是否正确(无多余空格)。
3. 在代码中打印 os.getenv(“DEEPSEEK_API_KEY”) 的前几位(勿全打印)确认是否加载。
1. 确保 .env 文件在项目根目录。
2. 重新从 DeepSeek 平台复制 API Key。
3. 重启 IDE 或终端。
模型回复内容不符合“毒舌”风格,很温和 1. System Prompt 不够强硬或被覆盖。
2. temperature 参数过低。
1. 检查 system_prompt 变量内容是否被意外修改。
2. 检查 API 调用时 messages 参数中 system 角色消息是否在最前面。
1. 强化 System Prompt 中的措辞,使用更绝对的命令式语句。
2. 将 temperature 调高至 0.8-1.0,增加随机性,让语气更生动。
回复格式混乱,没有遵守指定的分维度格式 模型有时会忽略严格的格式指令。 检查输出,看是完全没有格式,还是部分遵循。 1. 在 System Prompt 的格式部分使用更明确的标记,如“必须”、“严格遵循”。
2. 在 User Prompt 末尾再次强调“请严格按照输出格式回复”。
3. 可以在代码中添加简单的后处理,对回复进行格式重排。
多轮对话后,模型忘记初始角色设定 对话历史过长,或后续用户输入覆盖了系统指令。 检查 conversation_history 中是否只包含了用户和助理的消息,而系统消息只在首次。 确保每次调用 API 时, messages 列表的第一条始终是 system_prompt 。这是保持角色一致性的关键。
程序运行正常,但分析内容空洞、重复 用户输入的想法描述本身过于模糊、宽泛。 检查输入的 description 是否足够具体。例如,“做个赚钱的APP”就太模糊。 引导用户提供更具体的信息。可以在输入前给出示例,或在 check_info_sufficiency 函数中设置更严格的长度和关键词检查。

8. 最佳实践与进阶优化方向

一个基础的“毒舌投资人”已经完成。但要让它真正实用化、产品化,还需要考虑以下方面:

8.1 Prompt 工程优化

  • 分阶段 Prompt :将一次性的长 Prompt 拆解。例如,先用一个 Prompt 判断想法所属领域,再用另一个针对该领域(如 SaaS、内容创作、电商)的专家 Prompt 进行深度分析。
  • 示例学习(Few-Shot Learning) :在 System Prompt 中提供1-2个你精心编写的“毒舌分析”示例,让模型更好地模仿语气和结构。
  • 动态 Prompt :根据用户输入想法的质量,动态调整 Prompt 的严厉程度。对于明显不成熟的想法,可以更“毒舌”;对于已经比较完善的想法,可以转向“挑剔的合作伙伴”模式。

8.2 工程化与扩展

  • 记忆与知识库 :为 Agent 接入一个向量数据库(如 Chroma、Milvus),存储历史上成功的/失败的副业案例、市场数据报告。让它的分析不仅仅基于模型的内置知识,还能引用“独家资料”。
  • 工具调用(Function Calling) :让 Agent 能够主动调用外部工具。例如,当分析市场规模时,可以调用一个搜索工具获取近似数据;分析技术栈时,调用 GitHub API 查看相关开源项目热度。
    # 伪代码示例:定义工具
    tools = [
        {
            "type": "function",
            "function": {
                "name": "search_web_for_market_size",
                "description": "搜索特定领域的市场规模估算数据",
                "parameters": {...}
            }
        }
    ]
    
  • Web 界面 :使用 Gradio、Streamlit 快速构建一个 Web 界面,提升易用性。
  • 异步与流式输出 :对于长分析,使用流式响应(Streaming)让用户看到生成过程,体验更好。

8.3 安全与伦理边界

  • 内容过滤 :在输出最终结果前,加入一层内容安全过滤(可调用内容安全 API 或使用关键词列表),避免生成极端负面、人身攻击或有害的建议。
  • 免责声明 :在交互界面明确提示用户,此分析仅为 AI 生成的参考意见,不构成真实投资建议,决策风险需自行承担。
  • 避免绝对化 :在 Prompt 中可加入指令,如“避免使用‘绝对会失败’等过于武断的词汇,改用‘风险极高’等相对客观表述”。

8.4 从“毒舌”到“军师”

终极目标不是打击用户,而是帮助用户成长。你可以设计一个“进化模式”:

  1. 第一层:毒舌模式 (本文实现)—— 无情挑刺,过滤垃圾想法。
  2. 第二层:军师模式 —— 对于通过第一层筛选的想法,Agent 切换角色,开始协助用户制定 MVP(最小可行产品)计划、寻找首批用户、设计增长策略。
  3. 第三层:教练模式 —— 在用户执行过程中,定期检查进度,提供反馈,帮助调整方向。

构建一个“AI 毒舌投资人”远不止是一个有趣的编程练习。它是你将 AI Agent 技术应用于解决个人真实需求(副业验证)的一次完整实践。你深入体验了 Prompt 工程如何塑造 AI 的“人格”,理解了多轮对话和工具调用的设计思路,并搭建了一个可运行的原型。

这个项目的价值在于其可扩展性。你可以基于这个框架,轻松改造出“AI 产品经理”、“AI 技术评审”或“AI 健身教练”。核心模式是一致的: 定义角色 -> 设计结构化分析框架 -> 实现交互逻辑 -> 集成与封装

下一步,我建议你尝试两件事:第一,用你自己的副业想法去“拷打”这个 Agent,根据它的反馈迭代优化你的 Prompt,让它更懂你所在的领域;第二,尝试为它添加一个“搜索工具”,让它能联网获取最新的市场信息,使分析更具时效性。

Logo

汇聚全球AI编程工具,助力开发者即刻编程。

更多推荐