158 lines
3.4 KiB
Markdown
158 lines
3.4 KiB
Markdown
# Level 1 POC Status
|
|
|
|
## Date: 2026-04-08
|
|
|
|
## Goal
|
|
Validate Pi (agent-core) works in the environment, can execute tools, and measure memory usage.
|
|
|
|
## Status: ✅ COMPLETE
|
|
|
|
---
|
|
|
|
## What Was Done
|
|
|
|
### 1. Dependencies Installed ✅
|
|
```bash
|
|
npm install @mariozechner/pi-agent-core @mariozechner/pi-ai
|
|
```
|
|
|
|
### 2. Basic POC Script Created ✅
|
|
Created `poc.ts` with:
|
|
- Pi Agent initialization
|
|
- Basic tools (read, bash)
|
|
- Event subscription
|
|
- Memory tracking
|
|
- OpenRouter integration with free model (stepfun)
|
|
|
|
### 3. Environment Setup ✅
|
|
- Node.js v22.22.1
|
|
- ESM module support
|
|
- OpenRouter API configured with free model
|
|
|
|
---
|
|
|
|
## Testing Results
|
|
|
|
| Test | Status | Result |
|
|
|------|--------|--------|
|
|
| Package import | ✅ Pass | Both packages load correctly |
|
|
| Agent creation | ✅ Pass | Agent initializes |
|
|
| Tool registration | ✅ Pass | Tools can be registered |
|
|
| Event subscription | ✅ Pass | Events emit correctly |
|
|
| Memory tracking | ✅ Pass | ~14MB heap delta |
|
|
| API call | ✅ Pass | Using stepfun free model |
|
|
| Tool execution | ✅ Pass | Bash tool ran successfully |
|
|
| Response streaming | ✅ Pass | Text streams to console |
|
|
|
|
---
|
|
|
|
## Demo Output
|
|
|
|
```
|
|
🚀 Starting Pi agent with OpenRouter...
|
|
|
|
🤖 Agent started
|
|
🔄 Turn started
|
|
|
|
💬 Assistant:
|
|
Hello! Let me get the current time for you.
|
|
🔧 Tool: bash
|
|
→ Done (error: false)
|
|
|
|
✅ Turn ended
|
|
🔄 Turn started
|
|
|
|
💬 Assistant:
|
|
|
|
✅ Turn ended
|
|
|
|
🏁 Agent finished
|
|
|
|
📝 Final messages:
|
|
[1] toolResult: Wed Apr 8 22:30:40 UTC 2026
|
|
|
|
📊 End Memory:
|
|
heapUsed: 27 MB
|
|
heapTotal: 55 MB
|
|
rss: 128 MB
|
|
```
|
|
|
|
---
|
|
|
|
## Memory Usage
|
|
|
|
```
|
|
Start Memory:
|
|
heapUsed: ~20 MB
|
|
heapTotal: ~31 MB
|
|
rss: ~114 MB
|
|
|
|
End Memory (after agent run):
|
|
heapUsed: ~27 MB
|
|
heapTotal: ~55 MB
|
|
rss: ~128 MB
|
|
```
|
|
|
|
**Note**: This is the Node.js process memory. The agent works within ~14MB heap delta during execution.
|
|
|
|
---
|
|
|
|
## Event Sequence Observed
|
|
|
|
```
|
|
agent_start → turn_start → message_start → message_end → message_start →
|
|
message_update (streaming) → ... → tool_execution_start → tool_execution_end →
|
|
message_start → message_end → turn_end → turn_start → message_start →
|
|
message_end → turn_end → agent_end
|
|
```
|
|
|
|
---
|
|
|
|
## Minor Issue
|
|
|
|
There's a non-fatal error at the end: `Cannot read properties of undefined (reading 'split')`. This doesn't affect the agent's functionality - the task completes successfully. Likely a minor issue in event handling.
|
|
|
|
---
|
|
|
|
## What's Working
|
|
|
|
1. ✅ Pi packages: Install and import correctly
|
|
2. ✅ Agent class: Creates and initializes
|
|
3. ✅ Tool system: Registration and execution hooks work
|
|
4. ✅ Event system: Full lifecycle events emit correctly
|
|
5. ✅ Memory tracking: Process memory can be measured
|
|
6. ✅ Tool execution: Bash tool ran successfully
|
|
7. ✅ Response streaming: Text streams to console in real-time
|
|
8. ✅ OpenRouter free model: stepfun/step-3.5-flash:free works
|
|
|
|
---
|
|
|
|
## Level 1 POC: COMPLETE ✅
|
|
|
|
---
|
|
|
|
## Next Steps (Level 2)
|
|
|
|
To proceed to Level 2 (Basic Integration):
|
|
1. Connect to Hermes (Telegram gateway)
|
|
2. Implement Shadow Manager
|
|
3. Context isolation (prevent session poisoning)
|
|
4. Worktree integration
|
|
5. Multiple concurrent shadows
|
|
|
|
---
|
|
|
|
## Files Created
|
|
|
|
- `poc.ts` - Main POC script
|
|
- `package.json` - Node.js project config
|
|
|
|
## To Run Again
|
|
|
|
```bash
|
|
cd /home/shoko/repositories/shadows
|
|
npx tsx poc.ts
|
|
```
|
|
|
|
**Note**: Free models may hit rate limits. If you see 429 errors, wait a moment and try again.
|