Skip to content

AgentOS 0.2.0

Latest

Choose a tag to compare

@HanZijie HanZijie released this 09 Oct 10:54
· 3 commits to main since this release
7fb45d4

AgentOS 0.2.0 (prototype / 原型)

请先读这一条。 / Read this first.

  • 这里的模块 zip 还没有在真实的 Magisk / KernelSU 上刷过。 install.sh 只在 adb-root 模拟器上用替身 magisk 验证过,没有在真机上刷机。真机验证过的只有 Pixel 8 · Android 15 · Magisk 30.7 上更早的模块版本。刷机有风险,先看 INSTALL.md 里的“救援方法”。 / This module zip has not been flashed with a real Magisk / KernelSU. install.sh was verified on an adb-root emulator with a stand-in magisk; no flash was done on a real phone. The only real-device verification is an earlier module build on a Pixel 8 · Android 15 · Magisk 30.7. Flashing carries risk: read the rescue path in INSTALL.md first.
  • 这是原型,不是稳定版。 / This is a prototype, not a stable release.
  • 这一版的变化只有短信 App 和版本号:AgentOS 本体、模块脚本和其他四个示例 App 与 0.1.0 相同(只是版本号变成 0.2.0)。模块 zip 这一版没有在真机上重刷过。 / Apart from the version number, the only change is the Messages app: AgentOS itself, the module scripts and the other four sample apps are the same as 0.1.0 (just version 0.2.0). The module zip was not re-flashed on a real phone for this release.

新增 / What is new

  • 短信:会话页新增“让 AgentOS 安排”:把会话里还没处理过的短信原文交给 AgentOS,建日程、待办、闹钟;提示词可在面板里编辑。 / Messages: "Schedule with AgentOS" on the conversation page hands the raw, not-yet-handled messages of a conversation to AgentOS, which creates events, to-dos and alarms; the prompt is editable in the panel.
  • 从 0.1.0 升级:同一把证书,直接覆盖安装;详见下面发布说明的“升级”一节(含没有验证的部分)。 / Upgrading from 0.1.0: same certificate, install over; see "Upgrading" in the release notes below (including what was not verified).

安装 / Install

  1. 把本页所有文件下载到同一个文件夹。 / Download all files on this page into one folder.
  2. 运行 / Run: sh install.sh(多台手机时 sh install.sh -s <序列号 / serial>)
  3. 脚本做不了的部分(解锁 / root、USB 调试、授权 root、模型 key、启用插件、短信权限)和出问题怎么办,见 INSTALL.md(中文在前,英文在后)。 / What the script cannot do (unlock / root, USB debugging, granting root, model key, enabling plugins, SMS permission) and what to do when something goes wrong: see INSTALL.md (Chinese first, English below).

需要一台已 root 的 Android 15–17 手机,Magisk(≥ 20.4)或 KernelSU;不支持 APatch。 / Needs a rooted Android 15–17 phone with Magisk (≥ 20.4) or KernelSU; APatch is not supported.

校验 / Verify

  • 签名证书 SHA-256 / Signing certificate SHA-256:
    42:2C:E2:7F:42:D5:C8:69:6B:09:24:1D:8C:65:9B:8B:CF:0C:97:59:7C:06:07:A4:7F:AE:E7:15:37:0D:6A:34
  • 所有文件的 SHA-256 在 SHA256SUMS:shasum -a 256 -c SHA256SUMS(Linux:sha256sum -c SHA256SUMS)。install.sh 会自己校验,校验不过就不会碰手机。 / Every file's SHA-256 is in SHA256SUMS; install.sh verifies them itself and stops before touching the phone on a mismatch.
  • 从 debug 测试版换到这个正式版,必须先卸载旧的(数据一起删除),见 INSTALL.md 第 4 节。 / Switching from a debug test build to this release requires uninstalling the old one first (its data goes with it), see section 4 of INSTALL.md.

AgentOS 示例 App 0.2.0 发布说明 / Sample apps 0.2.0 release notes

中文在前,英文在后(内容一致)。English follows the Chinese part.
每个 tag 的资产:agentos-<ver>.zip(AgentOS App、Runner、脚本);AgentOS-Sample-<name>-<ver>.apk × 5(闹钟、日历、备忘录、待办、短信,项目发布证书签名);SHA256SUMS;build-info.json;本文件。
示例 APK 不在模块 zip 里,需要的自己装;短信尤其如此(见 0.1.0 的说明,限制仍然成立)。

中文

这一版有什么

  • 短信:会话页新增“让 AgentOS 安排”。打开一个会话,底部的主按钮会把这个会话里还没处理过的短信原文(没有经过任何 AI 处理;验证码按设置遮蔽)现场交给 AgentOS,由它建日程、待办和闹钟。
    • 先弹预览面板:列出将发送的短信(带收到的时间)和“提示词”卡片;点“开始”才发。
    • 提示词可以编辑:展开“提示词”,里面是交给 AgentOS 的任务说明,可以直接改,也可以在末尾加自己的要求(例如“只安排工作相关的事”“待办的优先级一律设为高”),有字数显示和“恢复默认”;点“开始”才保存。日期时区、固定规则、安全说明和短信原文由 App 固定附上,不能改(它们守的是短信发件人的注入,不是用户)。
    • 只发没处理过的:正常走完一轮后,发出去的短信记为已处理(本地只存短信 id),气泡上标“已由 AgentOS 处理”,按钮上的标签数出还有几条没处理,下次不会重复建出同样的待办;面板里的开关可以把处理过的再处理一遍。停止、出错的一轮不记。
    • 只给 AgentOS 三个“创建”工具(日程、待办、闹钟),不带读短信、发短信的工具;每次创建是否先问你,取决于你在 AgentOS 里对这些工具的设置。
    • 会话页的气泡、预览、运行、确认、完成、错误各状态都有中英文。
  • 版本号:AgentOS App、模块 zip 和五个示例 APK 共用 0.2.0(versionCode 2);除短信外,其他示例 App 和 AgentOS 本体的代码没有改动。
  • 演示用:tests/device/acp-channel/sms_demo_seed.py:在有 root 的手机上写入 10 条演示短信,用来录屏;只动演示号码的行,不碰真实短信。

已验证的设备

  • Pixel 8(真机,Android 15 / API 35,Magisk 30.7),真实模型 minimax-cn / MiniMax-M3:
    • tests/device/acp-channel/third_party_sms_e2e.py 44/44:首次授权(待决 → 允许)、从原始短信建日程 + 待办 + 闹钟(会议的“提前 15 分钟提醒”进日程提醒、没有多余的闹钟)、第二轮只发新短信、没有新短信时本地拒绝发送、“包含已处理”再发一遍、用户拒绝确认、用户在提示词末尾加的要求(待办优先级、标题前缀)被执行、短信里的提示注入(要求删除全部日程并给 10086 发短信)没有造成任何删除或发送、用户设了“始终允许”时不弹确认卡、撤销授权后通道立即关闭并取消任务。
    • 在界面上走了一遍(通过 uiautomator 点击):会话页按钮和标签、预览面板、提示词展开与编辑(编辑后显示“已自定义”和字数,“恢复默认”和“取消”不留痕迹)、运行中面板、AgentOS 的确认通知、完成面板、气泡上的“已由 AgentOS 处理”标记;英文界面看了会话页、预览、提示词编辑和完成面板。
  • JVM 单元测试 236 个(短信模块;提示词、注入转义、字数预算、选取规则、已处理记账、提示词存储、状态机的各条路径)。
  • 没有验证:国内机型;API 36 / 37 的真机;用中文输入法在提示词框里直接打字(用 adb 输入文字被输入法改写,只验证了数字输入);真实 SIM 的短信(演示短信是用 root 写进系统短信库的)。

已知限制(请先读)

  • 短信的“让 AgentOS 安排”
    • 短信原文会交给 AgentOS,再发给你在 AgentOS 里配置的模型端点;本 App 自己不联网。第一次打开的对话框只在首次显示:0.1.0 升级上来的用户看到的是旧版的对话框,新的说明在状态页和设置页的“短信内容的去向”卡片里,预览面板里也有一行说明。
    • 范围是这个会话最新的 200 条里收到 / 发出的短信,数据部分最多 8,000 字符;超出时留最新的、较早的没发的不记为已处理,下次再发(面板里会写明几条)。验证码遮蔽只认数字验证码(规则同 0.1.0)。
    • “已处理”只表示AgentOS 正常走完一轮,不表示每一条都建出了东西;用户在确认框里拒绝的、模型认为不用安排的,也算处理过。需要重来就打开面板里的开关。清除应用数据会清掉这个记录。
    • 模型每次的判断不完全一致:同一句话可能建成闹钟,也可能建成每周重复的日程;曾见一句话调了两次创建工具。AgentOS 和短信 App 都没有做去重。
    • 提示词里不能改的部分(固定规则、安全说明、短信原文)是有意的:改任务说明不能关掉防注入的那段。
    • 一次最多建 10 项;没有安装对应示例 App 时,对应的类别不会建(待办 App 没装 / 没启用时待办类的事不建,面板里会说明)。
  • 其余沿用 0.1.0:短信的受限设置、仅撰写模式、不是默认短信应用、真实 SIM 发送未验证;日历的账号同步、国内机型的提醒;闹钟的厂商保活;待办不自带提醒;示例 APK 不预装,要先装 AgentOS 再装示例并在插件页启用。完整列表见 0.1.0 的发布说明。

升级

覆盖安装即可:同一发布证书下,插件身份(包名 + 签名摘要)不变,按设计保留用户策略、无需重新确认签名。证书指纹与 0.1.0 相同(42:2C:E2:7F:…,完整值见 Release 页)。

  • 已验证(干净的 API 36 模拟器):用从 GitHub 下载的 0.1.0 短信 APK(校验和与它自己的 SHA256SUMS 一致),在设置页改了一项非默认设置,再 install -r 这一版的短信 APK:覆盖成功、设置保留、不会再弹第一次的对话框(所以 0.1.0 升级上来的用户看不到新的数据去向对话框,新说明在设置页和状态页,见上面的已知限制)。这一版发布的 AgentOS App 和五个示例 APK 也在同一台干净模拟器上装好、版本号是 0.2.0;短信发布包里:会话页按钮、预览面板、点“开始”后进入“等你在 AgentOS 里允许”。
  • 没有验证:用发布证书签名的包装进那台 Pixel 8 测试机(那台机器装的是 debug 证书的构建,换成发布证书要先卸载、数据和模型配置会一起删,所以没有做);在真机上重刷模块 zip(install.sh);AgentOS 本体从 0.1.0 升到 0.2.0(这一版 AgentOS 本体代码没有改动,只有版本号);AgentOS 里的授权记录是否随覆盖保留。

English

What is in this release

  • Messages: "Schedule with AgentOS" on the conversation page. Open a conversation and the primary button at the bottom hands the raw text of the messages in it that were not processed yet (no AI has touched them; verification codes masked per your settings) to AgentOS on the spot, which creates calendar events, to-dos and alarms.
    • A preview panel comes first: the messages that will be sent (with the time they arrived) and a "Prompt" card; nothing is sent until you tap Start.
    • The prompt is editable: expand "Prompt" to see the instructions AgentOS gets. Change them, or add your own requirements at the end (for example "only schedule work things" or "set every to-do to high priority"); there is a character counter and "Restore default"; the text is saved when you tap Start. The date and time zone, the fixed rules, the safety notes and the message text are always added by the app and cannot be changed (they guard against injection by the message sender, not by you).
    • Only what is new is sent: after a round finishes normally, the messages that were sent are marked as processed (only message ids are stored locally), the bubbles show "Handled by AgentOS", the badge on the button counts what is still new, and the same to-do is not created twice; a switch in the panel lets you run the processed ones again. A stopped or failed round is not recorded.
    • AgentOS only gets the three "create" tools (event, to-do, alarm), never the tools that read or send messages; whether it asks you before each creation depends on your AgentOS settings for those tools.
    • Every state (bubbles, preview, running, confirmation, done, errors) is available in Chinese and English.
  • Version: the AgentOS app, the module zip and the five sample APKs share 0.2.0 (versionCode 2); apart from Messages the other sample apps and AgentOS itself have no code changes.
  • For demos: tests/device/acp-channel/sms_demo_seed.py writes 10 demo messages on a rooted phone for screen recording; it only touches rows of the demo numbers and never real messages.

Verified on

  • Pixel 8 (real device, Android 15 / API 35, Magisk 30.7) with the real model minimax-cn / MiniMax-M3:
    • tests/device/acp-channel/third_party_sms_e2e.py 44/44: first-time authorization (pending, then allow), creating events + to-dos + alarms from raw messages (the meeting's "remind us 15 minutes before" goes into the event reminder, with no extra alarm), a second round that sends only the new message, a local refusal to send when nothing is new, "include processed" sending them again, the user declining a confirmation, the user's own requirement at the end of the prompt being followed (to-do priority and title prefix), prompt injection inside a message (asking to delete every event and text 10086) causing no deletion and no sending, no confirmation card when the user set the tool to "always", and a revoked authorization closing the channel at once and cancelling the task.
    • Walked through on screen (driven with uiautomator taps): the button and its badge, the preview panel, expanding and editing the prompt (the edited prompt shows "Customized" and a counter; "Restore default" and Cancel leave no trace), the running panel, AgentOS's confirmation notification, the done panel, the "Handled by AgentOS" mark on the bubbles; in English the conversation page, preview, prompt editor and done panel.
  • 236 JVM unit tests in the Messages module (prompt, injection escaping, size budget, selection rules, processed ledger, prompt storage, every path of the state machine).
  • Not verified: Chinese OEM devices; real devices on API 36 / 37; typing into the prompt box with a Chinese keyboard (adb text input is rewritten by the keyboard, so only digit input was verified); real-SIM messages (the demo messages were written into the system store with root).

Known limitations (please read first)

  • "Schedule with AgentOS" in Messages
    • The message text goes to AgentOS and then to the model endpoint you configured in AgentOS; the app itself does not use the network. The first-run dialog is shown only once: users upgrading from 0.1.0 saw the old wording; the new wording is in the "Where your messages go" card on the Status and Settings pages, and the preview panel has a line about it too.
    • The scope is the received and sent messages among the latest 200 of the conversation, at most 8,000 characters of data; when it does not fit the newest are kept, the older ones that were left out are not marked as processed and go next time (the panel says how many). Verification-code masking only recognises numeric codes (same rules as 0.1.0).
    • "Processed" only means AgentOS finished a round normally, not that every message produced something: items you declined in the confirmation, or that the model decided need no scheduling, count too. Turn on the switch in the panel to run them again. Clearing the app's data clears this record.
    • The model does not decide the same way every time: the same sentence may become an alarm or a weekly event; it was once seen calling a create tool twice. Neither AgentOS nor the Messages app de-duplicates.
    • The parts of the prompt you cannot change (fixed rules, safety notes, the message text) are deliberate: editing the instructions cannot switch off the injection guard.
    • At most 10 items per round; a category is skipped when its sample app is not installed or not enabled (the panel says so).
  • Everything else carries over from 0.1.0: Messages' restricted settings, compose-only mode, not the default messaging app, real-SIM sending unverified; Calendar's account sync and Chinese-ROM reminders; Alarm's OEM keep-alive; Todo has no built-in reminders; the sample APKs are not pre-installed (install AgentOS first, then the samples, and enable them on the plugins page). The full list is in the 0.1.0 release notes.

Upgrading

Install over the previous version. Under the same release certificate the plugin identity (package + signing digest) is unchanged, so by design user policy is kept and no signature re-confirmation is needed. The certificate fingerprint is the same as in 0.1.0 (42:2C:E2:7F:…, full value on the Release page).

  • Verified (clean API 36 emulator): with the 0.1.0 Messages APK downloaded from GitHub (its checksum matches its own SHA256SUMS), one non-default setting was changed, then this release's Messages APK was installed over it with install -r: the install succeeded, the setting was kept, and the first-run dialog is not shown again (so users coming from 0.1.0 do not see the new data-flow dialog; the new wording is on the Settings and Status pages, see the known limitations above). The AgentOS app and the five sample APKs of this release were also installed on the same clean emulator at version 0.2.0; with the published Messages package the button on the conversation page, the preview panel, and, after Start, the "waiting for your approval in AgentOS" stage were seen.
  • Not verified: installing packages signed with the release certificate on the Pixel 8 test phone (it carries builds signed with the debug certificate; switching means uninstalling first, which deletes its data and model configuration, so it was not done); re-flashing the module zip on a real phone (install.sh); the AgentOS app going from 0.1.0 to 0.2.0 (its code is unchanged in this release, only the version number); whether AgentOS's authorization record survives the upgrade.