docs.rs failed to build hippox-0.5.6
Please check the build logs for more information.
See Builds for ideas on how to fix a failed build, or Metadata for how to configure docs.rs builds.
If you believe this is docs.rs' fault, open an issue.
Please check the build logs for more information.
See Builds for ideas on how to fix a failed build, or Metadata for how to configure docs.rs builds.
If you believe this is docs.rs' fault, open an issue.
Visit the last successful build:
hippox-0.3.9
π Quick Links
| Resource | Link |
|---|---|
| π Website | https://hippox.vercel.app/ |
| π Documentation | https://hippox-docs-en.vercel.app/ |
| π¦ Crates.io | https://crates.io/crates/hippox |
| π» GitHub | https://github.com/0xhappyboy/hippo |
Basic Usage
Instantiate
// =================== Method 1 ===================
let hippox = builder
.api_key
.lang
.identity
.add_postgresql
.build
.await?;
// =================== Method 2 ===================
let mut config = default;
config.lang = "zh".to_string;
config.identity_information = IdentityInformation ;
let pg_config = new;
config.add_postgresql_instance;
let hippox = new.await?;
// =================== Simple Method ===================
let hippox = new.await?;
// builder
let hippox = builder
.api_key
.build
.await?;
Task Execution
Submit
1. Execution mode
- Asynchronous non-blocking submission. Task goes to background pool, returns task_id immediately. Result must be obtained via polling.
2. How it works
- Call
submit()method NaturalLanguageTaskis created and pushed to globalTASK_POOL- Background execution engine processes tasks automatically
- Method
returns task_id immediately (does NOT wait for completion) - Caller repeatedly queries
get_task(task_id)to check status - When
task.status == TaskStatus::Completed, extract result fromtask.final_output
3. Use when
- You don't need immediate results, or want to run multiple tasks concurrently.
use ;
use ModelProvider;
use Duration;
async
Execute - Direct execution
1. Execution mode
- Synchronous blocking call. The function waits until the task completes and returns the result directly.
2. How it works
- Call
execute()method - Task starts immediately in the current thread
- Code pauses and waits for completion
- Returns
Stringresult directly
3. Use when
- You need the result immediately and don't want to manage task state.
use Hippox;
use ModelProvider;
async
Configuration
1. HippoxConfig
/// Hippox global configuration
2. IdentityInformation
/// AI identity configuration
Hippox Core Working Principle
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β Hippox Core Working Principle β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ€
β β
β βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ β
β β 1. Task Submission (Non-blocking) β β
β β hippox.submit(input) β NaturalLanguageTask β TASK_POOL β β
β β β TASK_NOTIFIER.notify_one() β return task_id β β
β βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ β
β β β
β βΌ β
β βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ β
β β 2. Intent Analysis (Step 1) β β
β β build_intent_parser_prompt() β LLM.generate() β parse β β
β β Output: clean_intent, skill_categories β β
β βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ β
β β β
β βΌ β
β βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ β
β β 3. Workflow Execution (Step 2) using clean_intent β β
β β ββββββββββββ ββββββββββββ ββββββββββββ βββββββββββββββββββ β β
β β β ReAct β β Batch β β Chain β β PlanAndExecute β β β
β β ββββββ¬ββββββ ββββββ¬ββββββ ββββββ¬ββββββ βββββββββ¬ββββββββββ β β
β β ββββββββββββββ΄βββββββββββββ΄βββββββββββββββ β β
β β LLM generates SkillCall β Executor.execute() β raw_json β β
β βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ β
β β β
β βΌ β
β βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ β
β β 4. Response Formatting (Step 3) β β
β β needs_format_conversion(original_input)? β β
β β βββββββββββ βββββββββββββββββββββββββββββββββββββββββββββββ β β
β β β false β βββΆ β return raw_json directly β β β
β β βββββββββββ βββββββββββββββββββββββββββββββββββββββββββββββ β β
β β βββββββββββ βββββββββββββββββββββββββββββββββββββββββββββββ β β
β β β true β βββΆ β build_format_conversion_prompt() β β β
β β βββββββββββ β β LLM.generate() β formatted output β β β
β β βββββββββββββββββββββββββββββββββββββββββββββββ β β
β βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ β
β β β
β βΌ β
β final_output β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
Pipe Line
User Input
β
βΌ
βββββββββββββββ
β Step 1 β β Intent Analysis
β Analysis β build_intent_parser_prompt() β LLM
ββββββββ¬βββββββ Output: clean_intent, skill_categories
β
βΌ
βββββββββββββββ
β Step 2 β β Workflow Execution
β Execution β Execute skills using clean_intent
ββββββββ¬βββββββ Output: raw_json
β
βΌ
βββββββββββββββ βββββββββββββββ
β Need Format β ββYesβββΆβ Step 3 β β Response Formatting
β Conversion? β β Formatting β build_format_conversion_prompt() β LLM
ββββββββ¬βββββββ ββββββββ¬βββββββ
β β
ββββββββββββ¬ββββββββββ
βΌ
Final Output
Task Pool
State Machine
Pending βββΊ Running βββΊ Completed
β β
β ββββΊ Paused βββΊ Running (resume)
β β
β ββββΊ Cancelled
β
ββββΊ Cancelled
β
ββββΊ Failed βββΊ Pending (retry)
Architecture
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β Global Static (Auto-Start) β
β βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ β
β β GLOBAL_TASK_POOL β β
β β (Initialized at program load) β β
β βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β
βΌ
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β Hippox Instance β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ€
β βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ β
β β TaskPool (Global) β β
β β βββββββββββ βββββββββββ βββββββββββ β β
β β βTask A β βTask B β βTask C β β β
β β βPending β βRunning β βPending β β β
β β ββββββ¬βββββ ββββββ¬βββββ ββββββ¬βββββ β β
β β ββββββββββββββΌβββββββββββββ β β
β β βΌ β β
β β βββββββββββββββββββββββ β β
β β β Priority Queue β β β
β β β [Task A, Task C] β β β
β β ββββββββββββ¬βββββββββββ β β
β β β β β
β β βΌ β β
β β βββββββββββββββββββββββ β β
β β β Execution Engine β (max: 10 workers) β β
β β β ββββββ ββββββ ββββββ β β
β β β β W1 β β W2 β β W3 β ... β β
β β β ββββ¬ββ ββββ¬ββ ββββ¬ββ β β
β β β ββββββββΌβββββββ β β
β β β βΌ β β
β β β βββββββββββββββββββ β β
β β β β ExecutableTask β β β
β β β β .execute() β β β
β β β βββββββββββββββββββ β β
β β βββββββββββββββββββββββ β β
β β β² β β
β β ββββββββββββ΄βββββββββββ β β
β β β Notifier (wakeup) β β β
β β βββββββββββββββββββββββ β β
β βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ β
β β
β βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ β
β β ExecutableTask Implementation β β
β β βββββββββββββββββββββββββββββββββββββββββββββββββββββββ β β
β β β NaturalLanguageTask β β β
β β β β’ input: String β β β
β β β β’ workflow_executor: WorkflowExecutor β β β
β β β β’ scheduler: SkillScheduler β β β
β β βββββββββββββββββββββββββββββββββββββββββββββββββββββββ β β
β βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β
βΌ
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β External APIs β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ€
β handle_natural_language() β task_id (non-blocking) β
β get_task_status() / cancel() / pause() / resume() / retry() β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
Workflow Model
| Mode | Enum Value | Core Features | LLM Calls | Use Cases |
|---|---|---|---|---|
| ReAct | WorkflowMode::ReAct | Think β Act β Observe loop, LLM decides next step after each execution | 1 per skill + 1 final response | Open-ended tasks, dynamic decision making, error recovery |
| Batch | WorkflowMode::Batch | Execute multiple independent skills in parallel | 1 (generates batch plan) | Independent operations, bulk processing |
| Chain | WorkflowMode::Chain | Sequential execution with variable passing ({{variable}} syntax) | 1 (generates chain) | Linear pipelines, data transformation chains |
| PlanAndExecute | WorkflowMode::PlanAndExecute | One-time planning with conditional branching, variable references ({"$ref":"var"}), error handling (retry/skip/fail) | 1 plan + optional dynamic decisions | Complex workflows, conditional logic, deterministic tasks |
Atomic Skill Unit List
| Category | Skills | Description |
|---|---|---|
| File System | 5 skills | Read, write, delete, list, copy files |
| Archive | 5 skills | Create/extract ZIP/TAR archives, compress files |
| Math | 4 skills | Expression calculator, power/root, statistics, unit conversion |
| Crypto/Random | 10 skills | MD5, SHA256, SHA512, file hash, Base64 encode/decode, random number/string/uuid/password |
| Time | 1 skill | Get current date/time |
| Network | 20 skills | HTTP requests, URL fetch, ICMP/TCP/batch ping, DNS lookup/reverse/batch/test, IP info/validate/range/local, TCP/UDP send/receive/broadcast, FTP upload/download/list/delete |
| OS Management | 18 skills | Reboot, shutdown, sleep, lock, logout, hibernate, uptime, load average, hostname, time, user info, disk/memory/CPU/network/battery info, desktop notification |
| Process | 6 skills | List, kill (by PID/name), check running, get PID, detailed process info |
| System | 7 skills | System info, exec command, port scan/lookup/test, clipboard get/set/clear |
| Document | 11 skills | Markdown, CSV, XML, Excel, PDF read/write/parse |
| Messaging | 5 skills | Email, Telegram, DingTalk, Feishu, WeCom |
| Database | 12 skills | PostgreSQL, MySQL, Redis, SQLite query/execute/list |
| Text Processing | 4 skills | Diff, sort, deduplicate, filter |
| Regex | 4 skills | Match, find, replace, extract |
| K8s | 18 skills | Pod/deployment/service/node/namespace/event/configmap/secret/ingress/statefulset management, logs, exec, scale, restart, port-forward, apply YAML, delete |
| Docker | 5 skills | List, start/stop, logs, inspect, exec |
| GitHub | 7 skills | Get repo, create/list issues, star, search, get user, list PRs |
| Task Scheduler | 3 skills | Schedule, unschedule, list tasks |
| Image Processing | 6 skills | Resize, convert, info, rotate, crop, compress |