在终端安装 Astra 并查询 MOI 工作区

Astra 是矩阵起源开源的 AI Agent,运行在你的终端里:你用自然语言说要做什么,它会调用工具一步步完成。在本教程中,Astra 通过 MOI 的命令行工具 moi-cli 访问 MOI。例如你输入“列出所有 MOI 的工作区”,Astra 会运行对应的 moi-cli 命令,再把结果整理给你。

技术上,Astra 属于 Agent Runtime:它负责 Agent 的执行循环,本身不包含模型,使用的模型由 MOI 提供,所以你不需要准备模型 API Key。你也不需要先学会 moi-cli 的命令,用 MOI 账号登录一次即可开始。Astra 在你的电脑上运行命令前,默认会先征得你的同意。

下面五步带你完成安装、登录、第一次对话和两次只读查询。整个流程只读取信息,不会创建、修改或删除任何资源。

文中演示图根据一次实际验证的截图制作,已脱敏;点击图片可在新标签页查看大图。版本号和查询结果以你自己的终端为准。

开始前准备

  • 一台可以访问 MOI 的 macOS 或 Linux 电脑;

  • 可以登录 MOI、且至少能访问一个工作区的账号;

  • 一个你愿意用于 Astra 会话的工作目录。首次体验时,建议从独立的项目目录启动,不要直接信任整个用户主目录。

1. 安装客户端

在电脑自己的终端运行:

curl -fsSL https://get.matrixorigin.cn/astra | sh

终端出现 Astra and moi-cli are installed. 就表示安装完成:

终端显示 Astra 和 moi-cli 安装完成,账号和设备信息已移除

如果随后提示找不到 astra,请新开终端,或按安装输出中的 PATH 提示操作;不要重复运行安装命令。

2. 登录 MOI 与 Astra

在同一个终端运行:

astra login

命令会打开浏览器。若尚未登录 MOI,先完成 MOI 账号登录。浏览器显示 You are signed in to Astra 后,回到终端选择要使用的工作区;以终端显示 Logged in 为登录完成标志。

查看浏览器成功页
已脱敏的 Astra 浏览器登录成功页,地址栏已遮盖
终端完成工作区选择并显示 Logged in,授权链接和工作区信息已脱敏

浏览器显示成功时,终端中的工作区选择可能还没结束。不要分享浏览器回调 URL 或终端打印的授权 URL,其中包含本次登录的参数。

3. 开始对话

在准备工作的目录中运行:

astra

如果出现目录信任提示,请按是否要启用该目录保存的工作区规则作出选择;图中高亮只是当次验证的选项,不要求你也信任该目录。

查看目录信任提示
Astra 首次启动时询问是否信任当前工作目录,真实路径已脱敏

进入对话后输入 Hi。收到回复,就说明普通聊天可用:

Astra 会话中输入 Hi 并收到回复,账号及本机路径已移除

4. 只读查询 MOI

在同一个 Astra 会话中输入:

列出所有MOI的工作区

也可以用英文:List all MOI workspaces I can access.

首次调用 MOI 工具时,Astra 可能要求批准 moi-cli ... workspace list。先核对它是查询工作区的命令,再选择 Yes 执行一次。

查看首次命令批准界面
首次列出 MOI 工作区时的 moi-cli 命令批准提示

随后应看到有权限访问的工作区列表:

已脱敏的 Astra 工作区查询结果,工作区名称、ID 和所有者信息均已遮盖

工作区数量和名称因账号而异。图中名称、ID 和所有者信息已脱敏。

5. 查看已选工作区的数据库

在同一个会话中继续提问。本次验证使用的是:

List the databases in my currently selected MOI workspace. Do not change any data.

Astra 返回已选工作区的数据库及表名;这次验证得到一个业务数据库和两个系统数据库,未修改数据:

已选工作区返回一个业务数据库和两个系统数据库,名称已脱敏

已知问题

这次验证中,sql meta-databases 曾因 unknown field "next_page_token" 失败,Astra 随后用只读的 sql meta-db-tree 取得结果。这是待修复的兼容性问题,并不表示每次查询都会先失败。如果查询没有恢复成功,请保留错误信息排查,不要把缺失的结果当作空数据库。

查看本次错误及替代查询
数据库列表命令解码失败后,Astra 改用只读的 meta-db-tree 命令

到这里,你已经完成了从安装到第一次 MOI 只读查询。CSV 导入和修改数据属于后续独立流程。

最后更新于