openalice-agent-basic
The thin, **embed-agnostic agent core** — the reusable perceive→reason→act loop over [`openalice-agent-protocol`](../openalice-agent-protocol-rs), shared by **Persona / World / Live / Social**. One agent runtime, many surfaces.
Architecture rating
Strong substrate adoption: valid manifest, builds cleanly over openalice-agent-protocol, drift=100, code_health=100, 0 circular deps and 0 dead imports — uniform extraction pattern from agent-lite with single-purpose AgentCore surface.
Detailed valid manifest with rich summary, AGENTS.md + README present, 3 features and @feature annotations, only 4 missing docstrings; held back by weak roadmap (30/100) and lab-gated M2/M3 scope notes.
Inspector shows clean AST (0 cycles, 0 dead imports, avg/max complexity 6, no broad excepts), but as an M1 scaffold there is no visible timeout/retry/idempotency/error-handling discipline in the perceive→reason→act loop — structurally sound yet unproven runtime behavior.
Embed-agnostic library with no auth/secret/SSRF surface of its own; manifest declares no exposed endpoint and health probe fails (expected for a lib), but zero evidence of input-validation guards on the perception→observation bridge — graded conservatively on absent signal.
manifest_owns_tables=[] and no migrations/ dir — crate holds no schema, RLS, FKs or GDPR surface (tenant/quota/billing deliberately left in agent-lite); nothing to grade beyond clean dependency boundary (runtime_deps=1).
No metrics, tracing, structured logging or health probe present (health: 'no https endpoint in manifest exposes'); appropriate for a thin core but observability is effectively absent.
No tests/ dir and inspector surfaces zero test signal; the net-new perception→observation bridge (the M1 deliverable) ships unverified — critical path untested.
source · auto-grader-2026-06-16
Ecosystem manifest
.atlas-deps.ymlThin, embed-agnostic agent core — the reusable perceive→reason→act loop over openalice-agent-protocol, shared by Persona/World/Live/Social. Extraction TARGET from openalice-agent-lite (embed-specifics — brand RAG, visitor memory, quota, billing, tenants config — stay in agent-lite). M1 scaffold = the AgentCore trait surface + the net-new perception→observation bridge (visual_/spatial_perception → one LLM line, the way voice_utterance becomes a user line). Real ReAct-loop extraction is lab-gated M2/M3.
- via cargoConnectorEvent / ToolCall + visual_/spatial_perception (v0.2) — the AgentCore loop is built on the wire contract.
- cargo_crate: openalice-agent-basic
Code composition
tokei · loc- Rust87.3%
- TOML12.7%
- Rust87.3%
- TOML12.7%
- Rust87.3%· 103
- TOML12.7%· 15
| Language | % code | code | comments | blanks | files |
|---|---|---|---|---|---|
| Rust | 87.3% | 103 | 0 | 17 | 5 |
| TOML | 12.7% | 15 | 0 | 2 | 1 |
| Markdown | 0.0% | 0 | 64 | 14 | 2 |
Telemetry ribbon · last 90 days
2 eventsagent-basic/core
2 features- agent-basic.core.agent-coresrc/core.rs:9`AgentCore` — the reusable perceive→reason→act contract. One impl per runtime (agent-lite canonical; persona/world reuse it). Product state (memory, quota, brand, billing) is intentionally NOT in the core; it lives in the product runtime and is reached only through tool handlers.
- agent-basic.core.cratesrc/lib.rs:20Embed-agnostic agent core extracted from agent-lite: the `AgentCore` perceive→reason→act contract + the perception→observation bridge, agent-protocol-native, so one runtime serves every OpenAlice product.
agent-basic/perception
1 feature- agent-basic.perception.observesrc/perception.rs:11Maps visual_/spatial_perception ConnectorEvents to a single LLM-ready observation line; returns None for non-perception events so callers keep their existing chat/voice paths untouched.