快速开始:15 分钟构建你的第一个应用
读完本页,你将通过与智能体对话构建一个能调研任意公司、产出单页 Markdown 简报的真实应用,并可设为每周一自动运行。
读完时你会拥有什么
一个名为 Company Brief 的应用,它会:
- 接收一个公司名称(必填)和一个可选的官网链接。
- 让你切换是否包含竞争对手。
- 在开放网络上调研该公司,然后生成一份单页 Markdown 简报。
- 将简报保存为可下载、可分享、可链式调用的产物。
足够简单,15 分钟就能搞定;又足够真实,你会真的拿来用。
开始之前
我们要构建什么。 一个名为 Company Brief 的应用,以公司名称为输入, 输出一份单页的 Markdown 调研简报。简单到 15 分钟就能完成,真实到你会愿意真的拿来用。
步骤 1:登录
- 访问 app.aitroop.net。
- 点击 Sign up(如果你已有账号,点击 Log in)。
- 输入邮箱并设置密码,或者点击 Continue with Google。
- 你会进入工作区首页。
登录后你会看到的界面
大致是这样:
│ Aitroop Workspace homeprofile ▼ │
├────────────┬─────────────────────────────────────────────────┤
│ + New Chat│ │
│ │ Welcome! Pick something to start. │
│ 📁 Chats │ │
│ 📦 Apps │ ┌─ Start a chat ────────┐ ┌─ Browse apps ──┐ │
│ 🧩 Skills │ │ Talk to the agent. │ │ Run an existing │ │
│ 🔌 Connects│ │ │ │ App. │ │
│ ⏰ Schedules│ └───────────────────────┘ └─────────────────┘ │
│ │ │
│ ⚙ Settings │ │
└────────────┴─────────────────────────────────────────────────┘
侧边栏的条目对应平台的几个操作面:
- Chats:与智能体的对话历史。
- Apps:你保存的工作流库。
- Skills:智能体可以调用的能力。
- Connects:通过 OAuth 与外部账号建立的连接。
- Schedules:按 cron 自动运行的应用。
- Settings:工作区、计费、团队成员。
步骤 2:打开一个新的对话
- 点击侧边栏左上角的 + New Chat。
- 一个空白对话打开。底部是消息输入框,上方是空的对话区域。
对话界面的布局如下:
│ 📁 My workspace / New chat Save as App │
├──────────────────────────────────────────────────────────────┤
│ │
│ (empty — your conversation will appear here) │
│ │
├──────────────────────────────────────────────────────────────┤
│ 📎 Type your message… [↵ Send] │
└──────────────────────────────────────────────────────────────┘
各部分含义:
- 顶部的面包屑:工作区名称 / 对话名称。
- "Save as App" 按钮(右上角):在对话进入可保存状态之前一直处于灰显。
- 消息输入框上的附件按钮(📎):把文件拖到这里加入对话。
- 发送按钮,或者直接按下 Enter。
步骤 3:让智能体帮你构建应用
Aitroop 内置了一个名为 aitroop-app-create 的技能(也就是应用构建器)。 当你的消息包含以下触发短语时,它就会被激活:
- "Create an app that…"
- "Build me a workflow for…"
- "I want an app to…"
- "Make an automation that…"
在对话中输入下面这段内容:
Inputs: a company name (required) and a website URL (optional).
Output: a Markdown report covering:
- Business model
- Key products / services
- Target customers
- Recent news from the last 12 months
- Strengths and weaknesses
按 Enter 发送。接着会依次发生三件事:
- 你的消息出现在对话线程中。
- 智能体思考几秒钟,你会看到一个 "thinking" 指示。
- 智能体加载应用构建器技能(可能会内联显示一个 "Skill: aitroop-app-create" 标签),然后开始回复。
步骤 4:回答澄清问题
应用构建器会提出 1-5 个简短问题,用来补齐设计中的空白。典型回复大致如下:
A few quick questions to design this right:
1. Should I infer the company URL from the name when the user
omits it, or just leave that section thinner?
2. Section length — one paragraph each, or longer?
3. Output language — English, or configurable per run?
4. Want a "competitors" section?
5. Should I limit the news section to "verified sources only",
or include all news?
你不必逐条作答,一条回复就够了:
section. English only. Add a competitors section.
Verified sources only for news.
把回答答好的几个小窍门
- 言简意赅。 智能体不需要长篇大论。"Yes / No / 3 paragraphs / English" 这种就足够了。
- 放心让智能体取合理的默认值。 如果某个问题你并不在意,回一句 "your call" 即可,智能体会选择一个合理的默认值,并在设计中标注出来。
- 不必一次就拍板。 任何选择之后都可以再编辑。
步骤 5:审阅应用设计
回答完之后,应用构建器会展示完整的设计。这是最关键的一步,仔细查看每一个字段。
Here's the design. Review and tell me what to change:
App: Company Brief
icon: 🏢 · tags: [research, briefing]
Inputs (input_schema):
1. company_name — text · required
placeholder: "Acme Corp"
2. company_url — text · optional
description: "If blank, I'll find it from the name."
3. include_competitors — boolean · default: true
Stage 1 — research_and_write (agent stage, 5 min timeout)
Goal: Research {{company_name}} ({{company_url}}
if provided, otherwise find it). Write a one-page
brief covering business model, key products, target
customers, recent verified news (last 12 months),
and strengths/weaknesses. Each section ~3 paragraphs.
{{#if include_competitors}} Include a competitors
section listing 3–5 competitors.{{/if}}
Artifact: company_brief (format: markdown)
Resources:
skills: [web-search]
connects: []
Looks good?
逐项注释:每一块都代表什么
- name、icon、tags:用于在应用库中展示。图标是一个 emoji。
- Inputs:用户要填写的表单字段。标记为
required的字段未填写时会禁用 Run 按钮。 - Stage:智能体要做的事。
{{company_name}}在运行时会被替换为表单里的值。 - Artifact:最终的产出。
format: markdown会被渲染成一份漂亮的文档。 - Resources:应用需要的技能和连接。这里的
web-search表示智能体会上网检索。
确认或修改
三种示例回复及其效果:
→ Agent calls POST /api/apps. Done.
You: Change company_name placeholder to "Stripe".
Make the stage timeout 10 minutes.
→ Agent updates two fields, re-shows design, asks again.
You: Add a second stage that drafts an outreach email
for the company, using the brief as context.
→ Agent extends to two stages. Stage 2 references
Stage 1's artifact. Re-shows design.
本教程里,请输入:
步骤 6:智能体保存应用
在后台,应用构建器会校验设计(每个 ID 唯一,每个 {{ref}} 都能解析,目标足够具体), 然后调用 POST /api/apps。你会看到类似下面的输出:
Saved. ✅
App: Company Brief
ID: app_8f4c2e1b
Version: v1
Status: ready to run
Find it in your App library (sidebar → Apps). Want me to
test-run it on a sample company right now?
此刻,应用已经上线,可以直接运行。
检查它是否真的保存成功
- 在侧边栏点击 Apps。
- 你应该能在列表顶部看到
Company Brief,并带有你设置的 🏢 图标。 - 如果没看到,刷新页面或者再次点击 Apps。
步骤 7:运行你的应用
- 在应用列表中点击 Company Brief。
- 应用页面打开,显示表单(你的三个输入)和一个 Run 按钮。
- 填写表单:
- company_name:
Stripe - company_url: 留空
- include_competitors: 打开(默认)
- company_name:
- 点击 Run。
运行过程中你会看到什么
页面会拆成左右两栏:
- 左侧:运行日志。 智能体的推理过程、工具调用、阶段性输出。你可以看到每一次网页搜索的发生。
- 右侧:产物预览。 一开始是空白,随后 Markdown 简报会随着智能体的书写逐步呈现。
典型的运行时间线:
00:02 Agent decides to search for "Stripe company overview"
00:05 [web-search] 12 results returned
00:08 Agent decides to search for "Stripe recent news 2025"
00:12 [web-search] 8 results returned
00:18 Agent starts writing the brief
00:35 Brief draft complete — appearing in right pane
00:42 Agent saves artifact as "company_brief.md"
00:43 Run complete ✅
此时 Run 按钮会变灰(正在运行中),运行完成后会重新可用。
运行结束之后
右侧产物预览里,你可以做三件事:
- 阅读:滚动浏览、复制文本、点击链接。
- 下载:原始 Markdown 选
.md,渲染版本则选 PDF/DOCX。在预览面板顶部找到下载图标即可。 - 在对话中打开:如果你想让智能体微调这次具体的输出,点击 Edit in chat。系统会打开一个新对话,并把该产物作为上下文加载进去。
运行历史
每一次运行都会被记录。在应用页面上,Runs 标签会展示过往的执行记录: 时间戳、谁运行的、使用的输入、状态、耗时。点击任意一次运行,即可查看其产物和智能体的推理轨迹。
步骤 8:换一组输入再跑一次
回到应用页面,点击 Run(或 "New run"),用另一家公司填写表单:
- company_name:
Notion - company_url:
notion.so - include_competitors: 关闭
点击 Run。同一套工作流,完全不同的产出。这正是甜头时刻: 你只描述了一次提示词,现在它可以适配任何输入。
步骤 9:编辑应用
假设跑过几次之后,你觉得简报里还应该包含 "招聘信号"。有两种方式来更新这个应用:
方式 A:对话式编辑(推荐)
- 在应用页面找到 Edit in chat 或 Chat with this App。
- 对话打开,应用的设计已经载入上下文。
- 输入:
Include open headcount, key role types being hired,
and any noteworthy executive hires in the last 6 months.
智能体会读取当前应用、修改阶段目标、校验,然后调用 PUT /api/apps/{id}。保存前你会看到一份差异对比:
stages[0].goal:
- ...strengths/weaknesses. Each section ~3 paragraphs.
+ ...strengths/weaknesses, and hiring signals (open
+ headcount, key roles, exec hires last 6 months).
+ Each section ~3 paragraphs.
Approve and save as v2?
方式 B:直接编辑字段
- 在应用页面点击 Edit。
- 所有字段都会以原始形式呈现:name、icon、tags、inputs、stages、artifacts、resources。
- 任意修改:重命名字段、更换输入类型、调整阶段目标。
- 点击 Save 创建 v2。
无论哪种方式,旧版本都会保留在 Versions 标签里,一键回滚。
步骤 10(可选):设为定时任务
对于你希望自动运行的应用:
- 在应用页面打开 Schedules 标签。
- 点击 + New schedule。
- 填写三个部分:
- Cron:选一个预设(Hourly、Daily at 9 AM、Weekly Monday),或者写自定义表达式。
- Inputs:每次运行使用的输入值。对于 "company_name",你可以硬编码一个列表,或者使用动态值(如果应用支持)。
- Delivery:产物的去向。可以是邮箱、Slack 频道、Drive 目录或 webhook。
- 点击 Save schedule。
定时任务现已启用。应用页面上会显示下次运行时间。任何时候打开 Schedules 标签,都可以暂停、编辑或删除该任务。
你都完成了什么
你完整走过了 Aitroop 的整套操作闭环:
- 通过对话构建了一个应用:使用应用构建器技能,没写一行 JSON,也没写一行代码。
- 在保存前审阅并确认了设计。
- 用两组不同输入运行了应用,亲眼看见参数化是怎么工作的。
- 通过另一段对话编辑了应用。
- (可选)把它设为定时任务,让它自动运行。
常见问题排查与困惑
"智能体没有问我任何澄清问题。"
这通常意味着你最初的描述已经足够具体。智能体会直接跳到设计审阅(步骤 5)。 从那里开始流程一样:审阅、确认或修改。
"我的应用需要读 Gmail / Drive / GitHub,该怎么办?"
这些都是连接(OAuth 集成)。当你描述的应用需要读取 Gmail 数据 ("read my last 50 emails and...")时,应用构建器会把 google 加进 resources.connects。 第一次运行该应用时,系统会提示你授权 Gmail。授权一次,以后都能用。 完整流程见 连接。
"表单字段看起来不对。"
有两种路径:
- 保存之前(步骤 5):告诉智能体改什么。"Change
company_nameto a textarea instead." - 保存之后:在应用页面打开 Edit,或者使用对话式编辑(步骤 9)。
"我的运行失败了。"
- 在应用页面打开 Runs 标签。
- 点击失败的那次运行。
- 在运行日志中查看错误。常见原因:
- 超时:提高阶段的
timeout_ms(默认 3 分钟,重度调研可以试 10 分钟)。 - 缺少连接:在 Settings → Connects 里授权所需的连接。
- 输入不合适:表单值与智能体的预期不一致。换一个值再跑一次。
- 超时:提高阶段的
- 点击 Debug in chat,以对话的形式打开这次失败的运行:同样的上下文、同样的输入,但变成可交互的。
"这跟 ChatGPT 有什么区别?"
ChatGPT 没有持久化的应用,没有表单,没有定时任务, 没有有类型的产物,没有基于连接来读写你工具的能力, 也没法让队友直接用上你的工作流,他们必须把你的提示词全部重做一遍。Aitroop 把这些都补齐了。
"我能用哪些技能和连接?"
- 技能:侧边栏 → Skills,或者直接问智能体 "what Skills do I have?"
- 连接:侧边栏 → Connects 会显示已授权和可用的服务方。
常见问题
注册邮件一直没收到。
先检查垃圾邮件,再等 2 分钟。如果还是没有,使用 Continue with Google 登录,不需要邮件。 如果必须用邮箱,在登录页点击 "Resend verification"。
智能体不问我澄清问题。
说明你最初的描述已经填齐了所有 5 个设计槽位。这其实是好事: 智能体直接跳到步骤 5(审阅设计)。流程从这里继续即可。如果你就是想强制智能体提问, 可以在消息末尾加一句 "Ask me anything you need to know first."
"Save as App" 按钮是灰的。
对话还没有进入可保存的状态。你需要(a)在消息中带上能识别的触发短语,或者 (b)至少让智能体完成过一轮看起来是完整任务的回应。直接输入 "save this as an app" 也行:应用构建器会从对话中推断出一个 AppDef。
应用保存后表单字段不对。
不用担心,应用是可编辑的。两种方式:
- 对话式:在应用页面点击 Edit in chat。告诉智能体 "Change
company_nameto a textarea",然后批准差异。 - 直接编辑:在应用页面点击 Edit,手动改任何字段。然后保存。
无论哪种方式,改动都会创建一个新版本。旧版本会保留在 Versions 标签中。
第一次运行就失败了,怎么办?
- 在应用页面打开 Runs 标签。
- 点击失败的那次运行。
- 看顶部的错误。最常见的:超时(提高
timeout_ms)、缺少连接(去授权)、格式不对(调整目标)。 - 点击 Debug in chat,以对话的形式打开这次失败的运行,带有完整上下文。问一句 "why did this fail?"
完整的调试手册见 执行记录。
运行耗时比我预想的长得多。
三种常见原因:
- 调研类阶段。 联网搜索 + 在十多条结果上推理,通常需要 30-90 秒。属于正常范围。
- 冷启动沙箱。 长时间空闲后的第一次运行:沙箱启动会多耗 1-3 秒。
- 目标模糊。 如果智能体不清楚 "做到什么程度算好",它就会反复迭代。把目标收紧:加结构、加约束、加示例。
怎么把这个应用分享给同事?
共有三档:
- Private(默认):只有你能看到 / 运行。
- Team:对工作区内可见。在应用页面点击 Share → Workspace。
- 公开链接:任何拿到链接的人都能运行。在应用页面点击 Share → Public link,会生成一个 token,可以随时吊销。
团队应用下的连接是按人配置的,同事会用自己的 Gmail 授权,而不是用你的。 详见 连接。
我想通过 webhook / 脚本调用这个应用。
一行 curl:
-H "Authorization: Bearer $AT_USER_TOKEN" \
-H "Content-Type: application/json" \
-d '{ "input": { "company_name": "Stripe" } }'
在 Settings → API Tokens 获取 $AT_USER_TOKEN。响应中会包含执行 ID; 可以通过 GET /api/app-executions/:execId/stream 流式查看实时进度,或轮询 GET /api/app-executions/:execId 获取最终状态。
在哪里能学到完整的功能集?