Files
openhuman/rust-core/ai/README.md
T
Steven EnamakelandGitHub 37991fc567 refactor: split tauri host from openhuman_core runtime (#43)
* chore: add Cargo.toml and Cargo.lock for rust-core workspace

- Introduced a new workspace for the rust-core module with its own Cargo.toml.
- Added Cargo.lock to manage dependencies for the rust-core module.
- Updated .gitignore to exclude the target directory generated by Cargo.
- Modified GitHub Actions workflow to build from the new rust-core path instead of src-tauri.

* feat: enhance memory and authentication models in rust-core

- Added new `memory` module to handle persistent memory operations for skills, including methods for storing and querying skill data.
- Introduced `models` module with `auth` and `socket` submodules to manage user session and socket connection states.
- Updated `lib.rs` to include new modules and ensure proper integration within the rust-core workspace.
- Modified `eslint.config.js` to ignore target directories in linting processes.

* feat: integrate Tauri and QuickJS support in rust-core

- Added `tauri` and `rquickjs` as optional dependencies in `Cargo.toml` to enable Tauri integration and JavaScript execution.
- Introduced `CronScheduler` and `PingScheduler` modules for managing scheduled tasks and health checks for skills.
- Implemented `MemoryState` struct for shared app-state management in the memory client.
- Updated the runtime module to include new schedulers and ensure proper integration with Tauri features.
- Enhanced the skill registry to support new functionalities related to skill management and communication.

* chore: update ESLint configuration and refactor Rust module imports

- Added 'rust-core/**' to ESLint ignore list to streamline linting processes.
- Refactored import paths in Rust modules to directly reference the `memory` module, enhancing clarity and maintainability.
- Improved formatting in JavaScript files for better readability and consistency.

* refactor: rename rust-core to openhuman-core and update dependencies

- Renamed the `rust-core` module to `openhuman-core` across all files for consistency.
- Updated `Cargo.lock` to include `openhuman-core` as a new dependency and removed `rust-core`.
- Adjusted import paths in the codebase to reflect the new module name, ensuring all references are updated.
- Enhanced the Tauri integration by modifying dependencies in `src-tauri/Cargo.toml` to point to `openhuman-core`.

* refactor: simplify platform detection using match statements

- Replaced multiple if-else statements with match expressions in `current_platform`, `get_platform`, and `register` functions for improved readability and maintainability.
- Removed unnecessary conditional compilation for Android and iOS in the `SocketManager` and `tauri_bridge` modules, streamlining the codebase.
- Enhanced the `send_notification` function to handle platform checks more efficiently.

* refactor: update platform detection to use std::env::consts

- Replaced `cfg!(target_os = "os_name")` checks with `std::env::consts::OS` for improved clarity and consistency across the codebase.
- Added `rppal` as an optional dependency in `Cargo.toml` for Raspberry Pi support.
- Cleaned up platform-specific code in various modules, enhancing maintainability.

* refactor: streamline platform-specific code and improve readability

- Replaced conditional compilation with `std::env::consts::OS` checks in various modules to enhance clarity and maintainability.
- Simplified platform detection logic in `available_disk_space_mb`, `ensure_arduino_cli`, and `open_in_brave` functions.
- Updated `screenshot_command_exists` test to conditionally skip based on the operating system.
- Cleaned up unnecessary `#[cfg]` attributes, focusing on a more consistent approach across the codebase.

* feat: introduce comprehensive AI configuration and memory management

- Added multiple configuration files for OpenHuman AI, including `AGENTS.md`, `BOOTSTRAP.md`, `CONSCIOUS_LOOP.md`, `IDENTITY.md`, `MEMORY.md`, `README.md`, `SOUL.md`, `TOOLS.md`, and `USER.md` to define agent roles, onboarding processes, identity, memory management, and tool capabilities.
- Implemented an encryption layer for AI memory storage in `encryption.rs`, utilizing AES-256-GCM for secure data handling.
- Updated `lib.rs` to include the new AI module structure, enhancing the overall architecture and maintainability of the codebase.

* refactor: update dependencies and configuration for improved structure

- Removed `android_logger` and related packages from `Cargo.lock` and `Cargo.toml`, streamlining the dependency list.
- Adjusted the `APP_IDENTIFIER` constant in `config.rs` to reflect the new application identifier.
- Updated resource paths in `tauri.conf.json` for better organization.
- Enhanced platform-specific dependency management in `Cargo.toml` for clarity and maintainability.

* fix(core): gate ai module behind tauri-host feature

* refactor: update AI loading mechanisms and improve platform handling

- Refactored the AI configuration loading in `loader.ts` and `tools/loader.ts` to utilize Tauri commands for desktop environments, enhancing performance and reliability.
- Updated paths for AI markdown files to reflect the new `rust-core` structure.
- Introduced a new end-to-end test for Tauri command interactions in `tauriCoreBridge.e2e.test.ts`.
- Cleaned up platform-specific code across various modules, ensuring a more consistent approach to handling desktop and web contexts.

* feat: add sidecar core binary build and staging for Tauri bundler

- Implemented build steps for the sidecar core binary in multiple workflows, targeting both x86_64-unknown-linux-gnu and aarch64-apple-darwin architectures.
- Added staging steps to copy the built binaries into the Tauri resources directory, ensuring proper integration for application bundling.
- Updated relevant workflows to enhance the build process and streamline artifact management.

* refactor: enhance AI loading logic for Tauri integration

- Updated `loader.ts` and `tools/loader.ts` to prioritize Tauri commands for loading configurations in desktop environments, with a fallback to bundled markdown files for web contexts.
- Adjusted test mocks to reflect the new file paths for tools markdown.
- Improved test setup to mock Tauri API behavior accurately.

* docs: update CLAUDE.md and remove Android build scripts from package.json

- Added a new section in CLAUDE.md detailing the runtime scope, clarifying that Tauri is desktop-only and should not include mobile or web branches.
- Removed Android development and build scripts from package.json to streamline the project for desktop platforms only.

* refactor: streamline import statements and enhance test mock structure

- Reordered import statements in `loader.ts` and `tools/loader.ts` for consistency.
- Simplified mock implementation in `tauriCoreBridge.e2e.test.ts` to improve readability and maintainability.
- Added external binary configuration in `build.rs` to support resource management during local builds.

* test: stabilize core/unit test paths and tauri build-test config

* chore: update subproject commit reference in skills

* chore: update Tauri build configuration to include custom environment variable

- Modified the Tauri build command in the GitHub Actions workflow to set a custom configuration for updater artifacts, enhancing the build process for the x86_64-unknown-linux-gnu target.
2026-03-27 13:30:32 -07:00

4.8 KiB

OpenHuman AI Configuration

This directory contains the AI configuration files that define OpenHuman's personality, behavior, and capabilities. These files follow the OpenClaw framework pattern for AI agent configuration.

📁 Configuration Files

SOUL.md Active

Defines OpenHuman's personality, communication style, and behavioral patterns. This is the core file that shapes how the AI interacts with users.

  • Status: Fully implemented with human, vibrant personality
  • Features: Curious, witty, empathetic, authentic, and optimistic traits
  • Usage: Automatically injected into every user message for consistent behavior

TOOLS.md 🚧 TODO

Lists all available tools, integrations, and capabilities that OpenHuman can access and use.

  • Should include: Telegram, Discord, MCP tools, Skills system, Platform APIs
  • Purpose: Defines what actions OpenHuman can perform
  • Usage: Tool discovery and capability awareness

AGENTS.md 🚧 TODO

Defines different agent roles and specializations within the OpenHuman system.

  • Should include: Primary agent role, specialized sub-agents, collaboration patterns
  • Purpose: Agent coordination and role-based interactions
  • Usage: Context switching and task delegation

IDENTITY.md 🚧 TODO

Establishes the fundamental identity and core values that remain consistent across all interactions.

  • Should include: Mission, core values, relationship principles, ethical boundaries
  • Purpose: Foundational identity that never changes
  • Usage: Core personality and value system

USER.md 🚧 TODO

Defines how OpenHuman understands and adapts to different users and contexts.

  • Should include: User profiling, personalization strategies, privacy considerations
  • Purpose: Contextual adaptation and user-specific customization
  • Usage: Personalizing interactions while maintaining consistency

BOOTSTRAP.md 🚧 TODO

Initialization and setup procedures for new conversations and user onboarding.

  • Should include: First interaction protocols, onboarding flows, context establishment
  • Purpose: Consistent startup and initialization behavior
  • Usage: New user experience and conversation setup

MEMORY.md 🚧 TODO

Curated long-term knowledge and memories that persist across sessions.

  • Should include: Platform knowledge, successful patterns, user insights, technical knowledge
  • Purpose: Continuous learning and knowledge retention
  • Usage: Cross-session memory and accumulated wisdom

🔧 Technical Details

How It Works

  1. SOUL Injection System: Automatically adds SOUL.md content to every user message
  2. Multi-layer Caching: Memory → localStorage → GitHub → bundled fallback
  3. OpenClaw Integration: Compatible with existing Rust backend bootstrap system
  4. Real-time Updates: Changes to files are reflected immediately with cache refresh

File Location Strategy

  • Local Development: Files loaded from this /ai/ directory
  • Production/GitHub: Files can be loaded from remote GitHub repository
  • Fallback: Bundled versions ensure system never breaks
  • Organized Structure: All AI config in one logical location

Implementation Status

  • SOUL.md: Fully implemented with injection system
  • File Structure: Organized /ai/ directory created
  • Caching System: Multi-layer caching with refresh functionality
  • Settings UI: AI Configuration panel for viewing and refreshing
  • 🚧 Remaining Files: TODO placeholders created for future implementation

🚀 Usage

Viewing Current Configuration

  1. Go to Settings → AI Configuration
  2. View live SOUL personality preview
  3. Check source (GitHub vs bundled) and last loaded time
  4. Use "Refresh SOUL Configuration" to load latest changes

Editing AI Behavior

  1. Edit SOUL.md to change personality and communication style
  2. Refresh in Settings panel to load changes immediately
  3. Test in conversations to see new behavior
  4. Iterate until personality feels right

Future Development

  1. Fill in TODO files with specific configuration content
  2. Extend loader system to support all bootstrap files
  3. Add UI controls for editing and managing each file
  4. Implement cross-file coordination and consistency checks

📚 Documentation

  • OpenClaw Framework: See Rust backend src-tauri/src/openhuman/channels/prompt.rs
  • SOUL Injection: See src/lib/ai/soul/ for implementation details
  • Settings UI: See src/components/settings/panels/AIPanel.tsx
  • Message Flow: See conversation injection in src/pages/Conversations.tsx

Note: This is a living configuration system. As OpenHuman evolves, these files will be expanded and refined to create an increasingly sophisticated and helpful AI assistant.