PAL
Personal agent that learns. Knowledge base, wiki, and structured data that compounds over time.
PAL is a Personal Agent that Learns how you work by building a compounding knowledge base.
Feed it raw data (articles, papers, notes, URLs) and it organizes everything into two layers: a compiled wiki for text-heavy knowledge and a SQL database for structured data. Scheduled tasks compile new sources daily and run health checks to find gaps.
How It Works
PAL is a team of five specialists coordinated by a leader:
| Agent | Role |
|---|---|
| Navigator | Routes queries, reads wiki, handles email/calendar/SQL/files |
| Researcher | Web search, source gathering, writes to raw/ |
| Compiler | Reads raw/, compiles structured wiki articles |
| Linter | Health checks on the wiki, finds gaps and contradictions |
| Syncer | Commits and pushes context/ changes to GitHub |
Knowledge Pipeline
Raw data flows through a compilation pipeline:
- Ingest — Feed PAL URLs, articles, or text. The Researcher saves them to
context/raw/. - Compile — The Compiler produces structured wiki articles in
context/wiki/. - Query — The Navigator reads the wiki index first, then pulls specific articles.
- Lint — The Linter finds contradictions, stale articles, and missing concepts.
Structured Data (SQL)
The other half is PostgreSQL for structured data. When you say "save a note: met with Sarah from Acme," PAL creates a row tagged with ['sarah', 'acme']. Later, "what do I know about Sarah?" queries across notes, people, and projects.
Run Locally
1git clone https://github.com/kern-agi/pal.git && cd pal23cp example.env .env4# Edit .env and add your OPENAI_API_KEY56docker compose up -d --build78# Load context metadata into the knowledge base9docker compose exec pal-api python context/load_context.pyConfirm PAL is running at http://localhost:8000/docs.
Connect to the Control Plane
- Open os.kern.ndx.rocks
- Click Connect OS → Local
- Enter
http://localhost:8000
Deploy to Railway
1railway login2./scripts/railway_up.shThe script provisions PostgreSQL, configures environment variables, and deploys PAL.
Then connect via the control plane:
- Open os.kern.ndx.rocks
- Click Connect OS → Live
- Enter your Railway domain
Example Prompts
Try these to see PAL in action:
- Ingest this URL: [paste any article]
- What do I know about [topic from ingested content]?
- Save a note: met with [person] about [topic]
- What notes do I have tagged with [tag]?
- Compile the wiki and summarize what's new
Source
For architecture details, context structure, and tool configuration, see the GitHub repo.