# 运行第一个完整任务

> 在真实工作区中创建会话、提供上下文、检查执行过程，并用实际文件和验证结果完成验收。

Canonical page: /getting-started/first-task



<Takeaways>
  <li>
    一次可检查的小型文档任务
  </li>

  <li>
    把目标、范围和验收写进同一条消息
  </li>

  <li>
    用文件和工具记录验收，而不是只读回复
  </li>
</Takeaways>

本页用一个小型文档任务走完 Astravia 的标准闭环：选择工作区、提交可执行目标、处理权限请求、检查产物并继续修正。第一次不要选择大规模迁移或不可逆操作。

## 本次任务的结果 [#本次任务的结果]

假设项目中已有 `README.md` 和 `package.json`，让 Astravia 补充一份准确的本地开发说明。完成后应看到：

<Checklist title="验收这张任务单">
  <li>
    项目目录中新增或更新 

    `docs/local-development.md`

    。
  </li>

  <li>
    文档中的安装、检查和测试命令来自当前项目事实，而不是模型猜测。
  </li>

  <li>
    Agent 实际运行至少一个无副作用的检查命令，并在最终回复中报告结果。
  </li>

  <li>
    除目标文档外没有意外修改。
  </li>
</Checklist>

## 创建工作区和会话 [#创建工作区和会话]

<Steps>
  <Step>
    ### 打开项目 [#打开项目]

    在侧栏选择 **打开项目**，选中准备好的本地目录。项目会成为本次任务的文件和工具边界。
  </Step>

  <Step>
    ### 新建会话 [#新建会话]

    在项目下选择 **新会话**，确认模型正确。首次试跑优先选择 **沙盒受限**；平台不可用或任务确实需要跨目录访问时，再评估完全访问。
  </Step>

  <Step>
    ### 引用关键文件 [#引用关键文件]

    在输入区使用 `@` 引用 `README.md` 和 `package.json`。直接引用比只说“参考项目配置”更明确，也能减少无关文件读取。
  </Step>
</Steps>

## 提交可验收的任务 [#提交可验收的任务]

把目标、范围、约束和验证写在同一条消息中：

<Plate no="01" title="可验收任务">
  ```text
  阅读 @README.md 和 @package.json，为这个项目补充 docs/local-development.md。

  要求：
  1. 说明环境要求、安装、启动、快速检查和定向测试；
  2. 命令必须来自当前仓库脚本，不要虚构；
  3. 只修改目标文档，不修改 package.json 或源码；
  4. 完成后实际运行无副作用的快速检查，并报告命令和结果；
  5. 如果信息不足，先说明缺口，不要猜测。
  ```
</Plate>

这类任务足够小，便于检查 Agent 是否正确理解文件、遵守范围并执行验证。

## 执行时看什么 [#执行时看什么]

<Signals>
  <Signal name="待办" ok="读取事实、起草、检查、验证逐步推进" bad="长时间停在同一步或目标发生漂移" />

  <Signal name="工具调用" ok="读取指定文件，写入目标文档，运行检查" bad="访问无关目录或准备执行高影响命令" />

  <Signal name="权限请求" ok="动作与当前任务直接相关" bad="路径、命令或网络目的地无法解释" />

  <Signal name="后台任务" ok="检查命令运行后正常结束" bad="持续运行、失败或与任务无关" />
</Signals>

权限请求提供 **允许本次**、**本会话不再询问** 和 **拒绝**。第一次使用优先逐次允许；不确定时拒绝并在消息中补充边界。

## 验收真实结果 [#验收真实结果]

任务结束后，不只阅读最终回复：

<Steps>
  <Step>
    ### 打开目标文件 [#打开目标文件]

    在活动面板的文件标签中打开 `docs/local-development.md`，确认内容可读且命令与项目脚本一致。
  </Step>

  <Step>
    ### 检查修改范围 [#检查修改范围]

    查看项目文件或自己的版本控制状态，确认只有预期文档发生变化。
  </Step>

  <Step>
    ### 核对验证证据 [#核对验证证据]

    展开对应命令工具卡片，确认命令确实执行、退出状态正常，而不是只在回复中声称“已通过”。
  </Step>

  <Step>
    ### 阅读风险说明 [#阅读风险说明]

    确认最终回复列出未运行的检查、信息缺口或需要人工确认的事项。
  </Step>
</Steps>

## 结果不符合时继续 [#结果不符合时继续]

保持在原会话中，引用具体问题并缩小修正范围：

<Plate no="02" title="缩小修正范围">
  ```text
  开发命令准确，但测试章节把全量测试写成默认步骤。
  只修改 docs/local-development.md：把默认流程改成定向测试，并保留全量测试作为发布前选项。
  修改后重新核对 package.json，不需要运行源码测试。
  ```
</Plate>

<Beats>
  <li>
    同一目标的修正继续使用原会话。
  </li>

  <li>
    要比较另一种完整方案时使用分叉。
  </li>

  <li>
    开始无关目标时新建会话。
  </li>
</Beats>

<Continue>
  <ContinueLink href="/examples/" title="选择实战示例" description="复制完整任务，再替换为自己的目录、材料和验收条件。" />

  <ContinueLink href="/core/overview/" title="理解核心工作流" description="建立工作区、会话、执行和结果的完整心智。" />

  <ContinueLink href="/core/context-tools-and-permissions/" title="上下文、工具与权限" description="更精确地提供材料并控制动作边界。" />

  <ContinueLink href="/core/progress-results-and-recovery/" title="进度、结果与恢复" description="检查长任务、后台工作和失败恢复。" />
</Continue>
