我创建了一个 AI 独立黑客,可以在几分钟内研究并制作 MVP 🚀🔥
TL;DR
使用 AI 进行构建很有趣,但当你能够解决实际问题(例如创建流行应用程序的克隆/MVP)时会更有趣。
在这篇博客中,我将指导你构建自己的人工智能机器人,它可以
- 在 HackerNews 上找到有趣的产品
- 分析网站
- 构建它的克隆
技术栈
Composio - 用于将外部工具和服务与 AI 集成
Composio 是一个集成平台,支持 250 多个应用程序构建复杂的代理流程。它解决了所有身份验证问题,让您可以专注于构建代理。
本博客将使用 HackerNews、CodeInterpreter、File 工具和 shell 工具集成。
LangGraph - 代理框架
LangChain 的代理框架允许您定义与图和节点相关的工作流。它是构建具有最大控制力的生产代理的理想选择。
OpenAI - 推理提供者
用于 LLM 推理。我们将使用 GPT-4o 模型。您可以使用其他模型或提供商,例如 Claude、Gemini、Deepseek 等。对于复杂的用例,您可能会获得更好的结果。
工作流程
流程轻松且直接。
流动:
- 代理接收用户指令。
- 自动决定使用哪些工具。
- 一旦启动,无需人工干预
- 遵循简单、连续的流程
工具选择:
- 代理为每个任务智能地选择合适的工具
- HackerNews 研究工具
- 用于实现的代码解释器
- 用于执行的 Web 和 Shell 工具
- 用于处理数据的文件工具
HackerNews 研究流程:
- 浏览 Show HN feed
- 识别有趣的项目
- 评估MVP创建的可行性
- 选择最有希望的想法
MVP 创建:
- 采取选定的想法
- 创建简化版本
- 实现核心功能
- 交付工作原型
- 执行并展示结果
接下来,创建一个 .env
文件并为 OpenAI API 密钥添加环境变量。
OPENAI_API_KEY=your API key
要创建 OpneAI API 密钥,请转到官方网站并在仪表板中创建 API 密钥。
设置 Composio
接下来,您需要使用 Composio 登录并进行身份验证。
composio login
这将打开一个选项卡,要求您登录。您可以使用 GitHub、Gmail 或任何电子邮件 ID 登录。
登录后,将出现一个带有钥匙的屏幕。
将其复制并粘贴到终端。
现在,更新应用程序。
composio apps update
设置环境
创建 requirements.txt 文件
composio-langgraph
langgraph
langchain-groq
langchain-openai
python-dotenv
下一步是设置你的虚拟环境。
创建一个setup.sh
帐户并粘贴以下代码。
#!/bin/bash
# Create a virtual environment
echo "Creating virtual environment..."
python3 -m venv ~/.venvs/indie_hacker
# Activate the virtual environment
echo "Activating virtual environment..."
source ~/.venvs/indie_hacker/bin/activate
# Install libraries from requirements.txt
echo "Installing libraries from requirements.txt..."
pip install -r requirements.txt
# Copy env backup to .env file
if [ -f ".env.example" ]; then
echo "Copying .env.example to .env..."
cp .env.example .env
else
echo "No .env.example file found. Creating a new .env file..."
touch .env
fi
# Prompt user to fill the .env file
echo "Please fill in the .env file with the necessary environment variables."
echo "Setup completed successfully!"
编写 AI 代理
首先导入所有必要的库和模块。
from composio import Composio, ComposioToolSet
import os
from dotenv import load_dotenv
from langchain_groq import ChatGroq
from langchain_openai import ChatOpenAI
from langgraph.checkpoint.memory import MemorySaver
from typing import Annotated
from langchain_core.messages import BaseMessage
from typing_extensions import TypedDict
from composio_langgraph import Action, ComposioToolSet, App
from langgraph.graph import StateGraph, START, END
from langgraph.graph.message import add_messages
from langgraph.prebuilt import ToolNode, tools_condition
load_dotenv()
1.状态管理和初始化
pythonCopyclass State(TypedDict):
messages: Annotated[list, add_messages]
graph_builder = StateGraph(State)
这将设置我们代理的状态管理系统。您可以将其视为一种跟踪对话的结构化方法——它维护所有消息的记录,并帮助管理整个系统中的信息流。
2. 工具集成
pythonCopytoolset = ComposioToolSet()
tools = toolset.get_tools(apps=[
App.CODEINTERPRETER,
App.FILETOOL,
App.HACKERNEWS,
App.SHELLTOOL,
App.WEBTOOL
])
在这里,我们使用 Composio 的工具设置代理的功能:
- CodeInterpreter:用于实现 MVP 代码
- HackerNews:用于研究创意
- WebTool:用于 Web 交互
- ShellTool:用于执行命令
- FileTool:用于文件操作
3. LLM配置
pythonCopyllm = ChatOpenAI(model="gpt-4o")
#llm = ChatGroq(model='llama3.3-70b-versatile')
llm_with_tools = llm.bind_tools(tools)
我们配置我们的 LLM(OpenAI 或 Groq)并将我们的工具绑定到它,使模型能够理解和使用可用的工具。
4. 聊天机器人节点实现
pythonCopydef chatbot(state: State):
return {"messages": [llm_with_tools.invoke(state["messages"])]}
graph_builder.add_node("chatbot", chatbot)
这定义了我们的中央聊天机器人节点,它处理消息并决定采取什么行动。它使用绑定工具的 LLM 来生成响应并做出决策。
5. 工具节点和边缘配置
pythonCopytool_node = ToolNode(tools=tools)
graph_builder.add_node("tools", tool_node)
graph_builder.add_conditional_edges(
"chatbot",
tools_condition,
)
graph_builder.add_edge("tools", "chatbot")
graph_builder.add_edge(START, "chatbot")
上述代码块创建工具执行的节点,
根据是否需要工具设置条件路由,
建立聊天机器人和工具之间的流程
,最后定义入口点。
6. 内存和图形编译
pythonCopymemory = MemorySaver()
graph = graph_builder.compile(checkpointer=memory)
我们为代理添加了记忆功能并编译图表,为执行做好准备。
7.执行配置
pythonCopyconfig = {"configurable": {"thread_id": "1"}, "recursion_limit": 50}
这将设置执行参数,包括:
用于跟踪对话的线程识别
递归限制以防止无限循环
8.用户交互
pythonCopyuser_input = """You are an Indie Hacker Agent..."""
events = graph.stream(
{"messages": [("user", user_input)]},
config,
stream_mode="values"
)
这将初始化交互过程。它设置事件流并管理用户输入和代理响应的实时处理。
现在,运行该main.py
文件来查看代理的运行情况。
在这里获取完整代码:AI IndieHacker
看看它是如何工作的。
加入我们的Discord 频道,进入独家 AI 构建者社区!
感谢您的阅读!祝您度过愉快的一周。
文章来源:https://dev.to/composiodev/i-built-an-ai-indie-hacker-that-can-research-and-make-mvps-in-minutes-1j8j