Noto learns from your team in the background. Every correction becomes a reviewed lesson, a 👍 saves a good answer as a retrieval hint, and repeated personal fixes become private per-user preferences — with /forget to undo. The agent you deploy this month is sharper next month, on your knowledge, without retraining.
Plans search queries, retrieves from lexical + vector indexes over your synced corpus, and answers with links to the exact source docs. Injection-hardened: retrieved content is fenced as data.
Ask for a policy, a spec, a contract or a Base record and Noto finds and pulls it from your wiki, Drive and docs — no hunting through folders.
Detects the important details in emails and threads — dates, amounts, action items — and turns them into calendar entries, reminders or data updates.
Give it rules once and Noto keeps your Bases current on its own — updating records as things change, so nobody maintains a spreadsheet by hand.
Set, list and manage reminders straight from chat. Noto nudges you and the team at the right moment, no separate app.
"Make a doc summarizing X", or paste any Lark/wiki doc link and ask for a change. Block-level edits preserve native history — and it can never delete a doc, file or record.
Send a screenshot of an email or thread with "add to my calendar". It reads the image, asks for anything missing, checks conflicts, and sets the entry with reminders.
DM a receipt or type /expense 42 SGD taxi and it lands a row in your reimbursement Base, pending approval.
Magic-link login from chat, feedback and lesson review queues, usage analytics, system health, and ops buttons — resync, restart, tunnel.
Python, SQLite, local vector + full-text indexes — nothing external beyond Lark and your LLM. Every model call goes through one chokepoint, so swapping the engine is a one-function change.
The agent can't delete a doc, file, folder, message or Base record — a startup scan aborts if delete-capable code is ever introduced.
Admin, member and external tiers gate what each inbound message can do. Non-admins can never trigger writes.
Retrieved content is fenced as data and inbound messages pass a trust/sanitizer layer before the model ever sees them.
Block edits are confirmed by an operator; per-user memory is DM-only and isolated, with tombstones so deleted facts stay deleted.
A worker supervisor, rate-limit backoff, and push alerts to a chat when background jobs fail keep the bot honest.
It's Apache-2.0 and documented down to the Lark Console click-path.
github.com/FluidMind-AI/noto-lark →The private deployment and this open repo share a core — fixes flow here as they're battle-tested there. Issues and PRs welcome.