elephant-agent-personal-ai

Compare original and translation side by side

🇺🇸

Original

English
🇨🇳

Translation

Chinese

Elephant Agent Personal AI Skill

Elephant Agent 个人AI技能

Skill by ara.so — AI Agent Skills collection.
Elephant Agent is a Personal-Model First Self Evolving AI Agent that starts from understanding the person, not the task. It builds a correctable Personal Model across four lenses (Identity, World, Pulse, Journey) and helps design living Paths for work, health, habits, learning, and other long-running directions.
该技能来自ara.so —— AI Agent技能合集。
Elephant Agent是一款以个人模型为核心的自主进化AI Agent,它从了解用户本身而非任务开始。它通过四个维度(Identity、World、Pulse、Journey)构建可修正的Personal Model,并帮助为工作、健康、习惯、学习及其他长期方向设计动态的Paths

What Elephant Agent Does

Elephant Agent 功能介绍

  • Personal Model: Builds understanding of who you are (Identity), what surrounds you (World), what's alive right now (Pulse), and what your path has taught (Journey)
  • Paths: Long-running arcs that break down into Steps with Checkpoints for human judgment
  • Herd Management: Coordinates Mother elephant and baby elephants under one understanding
  • Skills & Tools: Extensible system for browser, filesystem, MCP, and operator actions
  • Multi-Surface: Native macOS app + CLI + Dashboard for different workflows
  • Personal Model:构建对你是谁(Identity)、所处环境(World)、当前状态(Pulse)以及成长历程(Journey)的认知
  • Paths:长期任务轨迹,可拆解为带人工审核检查点的步骤(Steps)
  • Herd Management:在统一认知下协调母象和小象Agent
  • Skills & Tools:可扩展系统,支持浏览器、文件系统、MCP及操作员操作
  • Multi-Surface:原生macOS应用 + CLI + 控制面板,适配不同工作流

Installation

安装步骤

macOS Desktop App (Recommended)

macOS桌面应用(推荐)

bash
undefined
bash
undefined

Download from GitHub releases

Download from GitHub releases

Or visit releases page

Or visit releases page

CLI + Dashboard (Linux/Cloud/SSH)

CLI + 控制面板(Linux/云服务器/SSH)

bash
undefined
bash
undefined

Install via install script

Install via install script

Or manual installation

Or manual installation

git clone https://github.com/agentic-in/elephant-agent.git cd elephant-agent pip install -e .
undefined
git clone https://github.com/agentic-in/elephant-agent.git cd elephant-agent pip install -e .
undefined

Key CLI Commands

核心CLI命令

Initialization and Setup

初始化与配置

bash
undefined
bash
undefined

Initialize Elephant Agent (first run)

Initialize Elephant Agent (first run)

elephant init
elephant init

Check system readiness

Check system readiness

elephant status
elephant status

Configure provider settings

Configure provider settings

elephant config set provider openai elephant config set model gpt-4 elephant config set curiosity_effort medium
elephant config set provider openai elephant config set model gpt-4 elephant config set curiosity_effort medium

List all configuration

List all configuration

elephant config list
undefined
elephant config list
undefined

Daily Interaction

日常交互

bash
undefined
bash
undefined

Enter the chat TUI (main interaction mode)

Enter the chat TUI (main interaction mode)

elephant wake
elephant wake

Quick query without entering TUI

Quick query without entering TUI

elephant ask "What should I focus on today?"
elephant ask "What should I focus on today?"

View Personal Model

View Personal Model

elephant model show
elephant model show

View specific model lens

View specific model lens

elephant model show --lens identity elephant model show --lens world elephant model show --lens pulse elephant model show --lens journey
undefined
elephant model show --lens identity elephant model show --lens world elephant model show --lens pulse elephant model show --lens journey
undefined

Paths Management

Paths管理

bash
undefined
bash
undefined

List all paths

List all paths

elephant paths list
elephant paths list

Create a new path

Create a new path

elephant paths create "Launch new product feature"
elephant paths create "Launch new product feature"

View path details

View path details

elephant paths show <path-id>
elephant paths show <path-id>

Update path status

Update path status

elephant paths update <path-id> --status active
elephant paths update <path-id> --status active

Archive completed path

Archive completed path

elephant paths archive <path-id>
undefined
elephant paths archive <path-id>
undefined

Herd Management

Herd管理

bash
undefined
bash
undefined

List all agents in herd

List all agents in herd

elephant herd list
elephant herd list

Create a baby elephant for specific task

Create a baby elephant for specific task

elephant herd spawn --role researcher --context "market analysis"
elephant herd spawn --role researcher --context "market analysis"

View agent details

View agent details

elephant herd show <agent-id>
elephant herd show <agent-id>

Remove agent from herd

Remove agent from herd

elephant herd remove <agent-id>
undefined
elephant herd remove <agent-id>
undefined

Skills and Tools

技能与工具

bash
undefined
bash
undefined

List available skills

List available skills

elephant skills list
elephant skills list

Enable a skill

Enable a skill

elephant skills enable filesystem
elephant skills enable filesystem

Disable a skill

Disable a skill

elephant skills disable browser
elephant skills disable browser

View skill documentation

View skill documentation

elephant skills info filesystem
undefined
elephant skills info filesystem
undefined

Dashboard

控制面板

bash
undefined
bash
undefined

Open dashboard in browser

Open dashboard in browser

elephant dashboard
elephant dashboard

Run dashboard without opening browser (for remote/SSH)

Run dashboard without opening browser (for remote/SSH)

elephant dashboard --no-open
elephant dashboard --no-open

Dashboard on custom port

Dashboard on custom port

elephant dashboard --port 8080
undefined
elephant dashboard --port 8080
undefined

Configuration

配置说明

Provider Configuration

服务商配置

bash
undefined
bash
undefined

OpenAI

OpenAI

elephant config set provider openai export OPENAI_API_KEY=your-key-here
elephant config set provider openai export OPENAI_API_KEY=your-key-here

Anthropic

Anthropic

elephant config set provider anthropic export ANTHROPIC_API_KEY=your-key-here
elephant config set provider anthropic export ANTHROPIC_API_KEY=your-key-here

Local models (Ollama)

Local models (Ollama)

elephant config set provider ollama elephant config set model llama2
undefined
elephant config set provider ollama elephant config set model llama2
undefined

Configuration File

配置文件

Elephant Agent stores configuration in
~/.elephant/config.yaml
:
yaml
undefined
Elephant Agent将配置存储在
~/.elephant/config.yaml
yaml
undefined

~/.elephant/config.yaml

~/.elephant/config.yaml

provider: openai model: gpt-4 curiosity_effort: medium # low, medium, high language: en boundaries:
  • respect_privacy
  • ask_before_destructive
  • explain_reasoning posture: collaborative # directive, collaborative, suggestive
undefined
provider: openai model: gpt-4 curiosity_effort: medium # low, medium, high language: en boundaries:
  • respect_privacy
  • ask_before_destructive
  • explain_reasoning posture: collaborative # directive, collaborative, suggestive
undefined

Environment Variables

环境变量

bash
undefined
bash
undefined

Provider API keys

Provider API keys

export OPENAI_API_KEY=sk-... export ANTHROPIC_API_KEY=sk-ant-... export DEEPSEEK_API_KEY=...
export OPENAI_API_KEY=sk-... export ANTHROPIC_API_KEY=sk-ant-... export DEEPSEEK_API_KEY=...

Elephant-specific settings

Elephant-specific settings

export ELEPHANT_HOME=~/.elephant export ELEPHANT_LOG_LEVEL=info export ELEPHANT_DASHBOARD_PORT=3000
undefined
export ELEPHANT_HOME=~/.elephant export ELEPHANT_LOG_LEVEL=info export ELEPHANT_DASHBOARD_PORT=3000
undefined

Python API Usage

Python API使用

Basic Interaction

基础交互

python
from elephant_agent import ElephantAgent, PersonalModel
python
from elephant_agent import ElephantAgent, PersonalModel

Initialize agent

Initialize agent

agent = ElephantAgent( provider="openai", model="gpt-4", curiosity_effort="medium" )
agent = ElephantAgent( provider="openai", model="gpt-4", curiosity_effort="medium" )

Load or create Personal Model

Load or create Personal Model

model = agent.get_personal_model()
model = agent.get_personal_model()

Ask a question

Ask a question

response = agent.ask("What should I prioritize today?") print(response.message) print(f"Confidence: {response.confidence}")
undefined
response = agent.ask("What should I prioritize today?") print(response.message) print(f"Confidence: {response.confidence}")
undefined

Working with Personal Model

操作Personal Model

python
from elephant_agent import PersonalModel
python
from elephant_agent import PersonalModel

Access model lenses

Access model lenses

model = PersonalModel.load()
model = PersonalModel.load()

View identity

View identity

identity = model.get_lens("identity") print(f"Values: {identity.values}") print(f"Decision style: {identity.decision_style}")
identity = model.get_lens("identity") print(f"Values: {identity.values}") print(f"Decision style: {identity.decision_style}")

Update world lens

Update world lens

model.update_lens("world", { "people": ["Alice (mentor)", "Bob (colleague)"], "projects": ["Product launch", "Team onboarding"], "tools": ["VS Code", "Linear", "Slack"] })
model.update_lens("world", { "people": ["Alice (mentor)", "Bob (colleague)"], "projects": ["Product launch", "Team onboarding"], "tools": ["VS Code", "Linear", "Slack"] })

Check pulse

Check pulse

pulse = model.get_lens("pulse") print(f"Current focus: {pulse.focus}") print(f"Energy level: {pulse.energy}") print(f"Constraints: {pulse.constraints}")
pulse = model.get_lens("pulse") print(f"Current focus: {pulse.focus}") print(f"Energy level: {pulse.energy}") print(f"Constraints: {pulse.constraints}")

Save changes

Save changes

model.save()
undefined
model.save()
undefined

Creating and Managing Paths

创建与管理Paths

python
from elephant_agent import Path, Step
python
from elephant_agent import Path, Step

Create a new path

Create a new path

path = Path.create( title="Launch API v2", description="Ship new API with auth and webhooks", context=model )
path = Path.create( title="Launch API v2", description="Ship new API with auth and webhooks", context=model )

Add steps

Add steps

path.add_step(Step( title="Design API schema", description="Define endpoints, auth flow, webhook events", checkpoint=True # Requires human review ))
path.add_step(Step( title="Implement core endpoints", description="Build CRUD operations with auth", checkpoint=False ))
path.add_step(Step( title="Design API schema", description="Define endpoints, auth flow, webhook events", checkpoint=True # Requires human review ))
path.add_step(Step( title="Implement core endpoints", description="Build CRUD operations with auth", checkpoint=False ))

Start the path

Start the path

path.start()
path.start()

Get next step

Get next step

next_step = path.get_next_step() print(f"Next: {next_step.title}")
next_step = path.get_next_step() print(f"Next: {next_step.title}")

Mark step complete

Mark step complete

path.complete_step(next_step.id)
path.complete_step(next_step.id)

Save path

Save path

path.save()
undefined
path.save()
undefined

Working with the Herd

操作Herd

python
from elephant_agent import Herd, BabyElephant
python
from elephant_agent import Herd, BabyElephant

Get the herd

Get the herd

herd = Herd.load()
herd = Herd.load()

Spawn a baby elephant for a specific task

Spawn a baby elephant for a specific task

researcher = BabyElephant( role="researcher", context={ "focus": "competitor analysis", "constraints": ["public data only"], "reporting_to": "mother" } )
herd.add(researcher)
researcher = BabyElephant( role="researcher", context={ "focus": "competitor analysis", "constraints": ["public data only"], "reporting_to": "mother" } )
herd.add(researcher)

Assign task to baby

Assign task to baby

task = researcher.assign_task( "Research top 3 competitors' API offerings" )
task = researcher.assign_task( "Research top 3 competitors' API offerings" )

Check status

Check status

status = researcher.get_status() print(f"Progress: {status.progress}%")
status = researcher.get_status() print(f"Progress: {status.progress}%")

Get results

Get results

if task.is_complete(): results = task.get_results() print(results.summary)
undefined
if task.is_complete(): results = task.get_results() print(results.summary)
undefined

Skills Integration

技能集成

python
from elephant_agent.skills import FileSystemSkill, BrowserSkill
python
from elephant_agent.skills import FileSystemSkill, BrowserSkill

Initialize skills

Initialize skills

fs_skill = FileSystemSkill( allowed_paths=["/home/user/projects"], readonly=False )
browser_skill = BrowserSkill( headless=True, timeout=30 )
fs_skill = FileSystemSkill( allowed_paths=["/home/user/projects"], readonly=False )
browser_skill = BrowserSkill( headless=True, timeout=30 )

Register skills with agent

Register skills with agent

agent.register_skill(fs_skill) agent.register_skill(browser_skill)
agent.register_skill(fs_skill) agent.register_skill(browser_skill)

Use skills in context

Use skills in context

response = agent.ask( "Read the README.md and create a summary document", skills=["filesystem"] )
undefined
response = agent.ask( "Read the README.md and create a summary document", skills=["filesystem"] )
undefined

Advanced: Custom Skills

进阶:自定义技能

python
from elephant_agent.skills import Skill, SkillParameter

class GitSkill(Skill):
    name = "git"
    description = "Execute git commands safely"
    
    parameters = [
        SkillParameter("command", str, "Git command to run"),
        SkillParameter("args", list, "Command arguments", required=False)
    ]
    
    def execute(self, command: str, args: list = None):
        """Execute git command with safety checks."""
        import subprocess
        
        # Safety: only allow read operations
        safe_commands = ["status", "log", "diff", "branch"]
        if command not in safe_commands:
            return {
                "success": False,
                "error": f"Command '{command}' not allowed"
            }
        
        cmd = ["git", command] + (args or [])
        result = subprocess.run(
            cmd,
            capture_output=True,
            text=True
        )
        
        return {
            "success": result.returncode == 0,
            "output": result.stdout,
            "error": result.stderr
        }
python
from elephant_agent.skills import Skill, SkillParameter

class GitSkill(Skill):
    name = "git"
    description = "Execute git commands safely"
    
    parameters = [
        SkillParameter("command", str, "Git command to run"),
        SkillParameter("args", list, "Command arguments", required=False)
    ]
    
    def execute(self, command: str, args: list = None):
        """Execute git command with safety checks."""
        import subprocess
        
        # Safety: only allow read operations
        safe_commands = ["status", "log", "diff", "branch"]
        if command not in safe_commands:
            return {
                "success": False,
                "error": f"Command '{command}' not allowed"
            }
        
        cmd = ["git", command] + (args or [])
        result = subprocess.run(
            cmd,
            capture_output=True,
            text=True
        )
        
        return {
            "success": result.returncode == 0,
            "output": result.stdout,
            "error": result.stderr
        }

Register custom skill

Register custom skill

git_skill = GitSkill() agent.register_skill(git_skill)
undefined
git_skill = GitSkill() agent.register_skill(git_skill)
undefined

Common Patterns

常见使用模式

Daily Check-in Pattern

每日签到模式

python
from elephant_agent import ElephantAgent
from datetime import datetime

agent = ElephantAgent.load()
python
from elephant_agent import ElephantAgent
from datetime import datetime

agent = ElephantAgent.load()

Morning routine

Morning routine

def morning_checkin(): model = agent.get_personal_model()
# Update pulse
model.update_pulse({
    "timestamp": datetime.now(),
    "energy": "high",
    "focus": ["API launch", "team sync"],
    "constraints": ["3hr meeting block 2-5pm"]
})

# Get prioritized guidance
guidance = agent.ask(
    "Given my current pulse and active paths, what should I prioritize today?"
)

return guidance
checkin = morning_checkin() print(checkin.message)
undefined
def morning_checkin(): model = agent.get_personal_model()
# Update pulse
model.update_pulse({
    "timestamp": datetime.now(),
    "energy": "high",
    "focus": ["API launch", "team sync"],
    "constraints": ["3hr meeting block 2-5pm"]
})

# Get prioritized guidance
guidance = agent.ask(
    "Given my current pulse and active paths, what should I prioritize today?"
)

return guidance
checkin = morning_checkin() print(checkin.message)
undefined

Path Progress Review

Path进度回顾

python
from elephant_agent import Path

def review_active_paths():
    paths = Path.list(status="active")
    
    for path in paths:
        print(f"\n=== {path.title} ===")
        print(f"Progress: {path.progress}%")
        
        next_step = path.get_next_step()
        if next_step:
            print(f"Next: {next_step.title}")
            
            if next_step.checkpoint:
                print("⚠️  Requires your review")
                
        blockers = path.get_blockers()
        if blockers:
            print(f"Blockers: {', '.join(blockers)}")
python
from elephant_agent import Path

def review_active_paths():
    paths = Path.list(status="active")
    
    for path in paths:
        print(f"\n=== {path.title} ===")
        print(f"Progress: {path.progress}%")
        
        next_step = path.get_next_step()
        if next_step:
            print(f"Next: {next_step.title}")
            
            if next_step.checkpoint:
                print("⚠️  Requires your review")
                
        blockers = path.get_blockers()
        if blockers:
            print(f"Blockers: {', '.join(blockers)}")

Correcting the Personal Model

修正Personal Model

python
from elephant_agent import PersonalModel

model = PersonalModel.load()
python
from elephant_agent import PersonalModel

model = PersonalModel.load()

Correct a misunderstanding

Correct a misunderstanding

correction = model.correct( lens="identity", field="values", current="achievement, efficiency", corrected="learning, collaboration, impact", reason="I value learning and collaboration over pure efficiency" )
correction = model.correct( lens="identity", field="values", current="achievement, efficiency", corrected="learning, collaboration, impact", reason="I value learning and collaboration over pure efficiency" )

The model learns from corrections

The model learns from corrections

print(f"Correction applied: {correction.applied}") print(f"Impact: {correction.impact_summary}")
undefined
print(f"Correction applied: {correction.applied}") print(f"Impact: {correction.impact_summary}")
undefined

Integrating with Workflows

工作流集成

python
from elephant_agent import ElephantAgent
import json

agent = ElephantAgent.load()
python
from elephant_agent import ElephantAgent
import json

agent = ElephantAgent.load()

Export context for external tools

Export context for external tools

def export_context_for_tool(tool_name: str): model = agent.get_personal_model()
context = {
    "current_focus": model.pulse.focus,
    "active_projects": model.world.projects,
    "constraints": model.pulse.constraints,
    "tool": tool_name
}

return json.dumps(context, indent=2)
def export_context_for_tool(tool_name: str): model = agent.get_personal_model()
context = {
    "current_focus": model.pulse.focus,
    "active_projects": model.world.projects,
    "constraints": model.pulse.constraints,
    "tool": tool_name
}

return json.dumps(context, indent=2)

Import learnings back

Import learnings back

def import_learning(source: str, content: dict): model = agent.get_personal_model()
model.add_journey_entry({
    "source": source,
    "lesson": content["lesson"],
    "context": content["context"],
    "timestamp": content["timestamp"]
})
undefined
def import_learning(source: str, content: dict): model = agent.get_personal_model()
model.add_journey_entry({
    "source": source,
    "lesson": content["lesson"],
    "context": content["context"],
    "timestamp": content["timestamp"]
})
undefined

Troubleshooting

故障排查

Provider Connection Issues

服务商连接问题

bash
undefined
bash
undefined

Test provider connectivity

Test provider connectivity

elephant config test-provider
elephant config test-provider

Reset provider configuration

Reset provider configuration

elephant config reset-provider
elephant config reset-provider

Check API key

Check API key

echo $OPENAI_API_KEY # Should not be empty
echo $OPENAI_API_KEY # Should not be empty

Verify model availability

Verify model availability

elephant models list
undefined
elephant models list
undefined

Personal Model Not Loading

Personal Model无法加载

python
from elephant_agent import PersonalModel
python
from elephant_agent import PersonalModel

Reset model if corrupted

Reset model if corrupted

PersonalModel.reset()
PersonalModel.reset()

Reinitialize

Reinitialize

agent.init(force=True)
agent.init(force=True)

Verify model structure

Verify model structure

model = PersonalModel.load() assert model.is_valid(), "Model structure invalid"
undefined
model = PersonalModel.load() assert model.is_valid(), "Model structure invalid"
undefined

Dashboard Connection Issues

控制面板连接问题

bash
undefined
bash
undefined

Check if dashboard is running

Check if dashboard is running

elephant dashboard status
elephant dashboard status

Kill existing dashboard

Kill existing dashboard

elephant dashboard stop
elephant dashboard stop

Restart on different port

Restart on different port

elephant dashboard --port 8080
elephant dashboard --port 8080

For remote access, use tunnel

For remote access, use tunnel

ssh -L 3000:localhost:3000 user@remote-host
undefined
ssh -L 3000:localhost:3000 user@remote-host
undefined

Performance Optimization

性能优化

python
from elephant_agent import ElephantAgent
python
from elephant_agent import ElephantAgent

Reduce model calls with caching

Reduce model calls with caching

agent = ElephantAgent( cache_responses=True, cache_ttl=300 # 5 minutes )
agent = ElephantAgent( cache_responses=True, cache_ttl=300 # 5 minutes )

Lower curiosity effort for faster responses

Lower curiosity effort for faster responses

agent.set_curiosity_effort("low")
agent.set_curiosity_effort("low")

Use smaller model for routine tasks

Use smaller model for routine tasks

agent.set_model("gpt-3.5-turbo") # Faster, cheaper
agent.set_model("gpt-3.5-turbo") # Faster, cheaper

Batch questions

Batch questions

questions = [ "What's my next step?", "Any blockers?", "Energy check?" ] responses = agent.ask_batch(questions)
undefined
questions = [ "What's my next step?", "Any blockers?", "Energy check?" ] responses = agent.ask_batch(questions)
undefined

Debugging

调试

bash
undefined
bash
undefined

Enable debug logging

Enable debug logging

export ELEPHANT_LOG_LEVEL=debug elephant wake
export ELEPHANT_LOG_LEVEL=debug elephant wake

View logs

View logs

tail -f ~/.elephant/logs/elephant.log
tail -f ~/.elephant/logs/elephant.log

Check runtime state

Check runtime state

elephant debug state
elephant debug state

Verify skills

Verify skills

elephant skills test filesystem
undefined
elephant skills test filesystem
undefined

Resources

资源