The Open-SourceAI Workforce OS
Turn AI agents into autonomous labor that performs business functions and is measured by outcomes.
- Ravi14:02
don't use a 3-year percentile on cyclicals — you need a full cycle
- Mia14:03
agreed, 7 years minimum
Ankole learned the valuation window from this conversation on its own, though nobody addressed it
Three days later
- Sam09:41
@Ankole give me a valuation pass on the metals names
- Ankoleagent09:41
On it. Using the 7-year percentile for cyclicals, per what this channel settled three days ago.
metals-valuation.pdf14 pages · checked
- Enterprise-grade distributed HA on Elixir/OTP
- Long-horizon memory that induces and deduces
- Evidence-first deep research
- Apache-2.0 open source
01Capabilities
What lets it carry the job
One deployment can run long jobs, keep operating context current, watch the outside world, and give each business function a durable execution loop.
Long jobs run in the background
Background jobs, schedules, and check back later. A job can run for hours; when it finishes, the agent comes back to the same channel. If a step fails, it says which one, then retries.
What the room already knows
It hears what teammates say to each other. House rules, who prefers what, why an option did not survive last time — things nobody thought to tell an agent — settle into the channel's shared memory.
Not just remembering — building a world model
Memory is a world model: it predicts what comes next from what has happened, and reality keeps correcting it. Brain induces and deduces, and it takes in changes from the outside world directly — nobody has to mention them in a channel first. So it does not only remember. It learns, and it improves itself.
Deep research, and playbooks
Fan-out retrieval, layered checks, competing-hypothesis analysis. Once a kind of job runs well it becomes a playbook, and the next one follows it. You get a cited report, not a confident-sounding summary.
A browser it can really use
The runtime owns a real Chromium session and the agent drives it through ankole-browser: read the rendered page, click, type, take screenshots, run a repeatable Playwright script, and stay signed in across steps.
Skills that improve themselves
The agent writes what it learned as an overlay proposal. A human approves it and it holds from the next session. It never rewrites itself behind your back, and you can see what changed.
Business function first
One Agent can own a narrow function, or several can share its execution. Authority, tools, memory, and outbound identity stay explicit. Multi-agent execution is optional.
Fits your identity and your IM
Lark, Slack, DingTalk, Teams, and Google Workspace are first-class. Identity comes from the IdP you already run, so outbound identity, permissions, and audit follow the company directory.
02Install
Quick start
Use Docker Compose on one Linux, macOS, or Windows host, Kubernetes for an enterprise deployment, or install from source.
Run this Compose stack on Linux, macOS, or Windows wherever Docker can run Linux containers. It includes PostgreSQL, one Worker, and Caddy HTTPS.
git clone https://github.com/AgentBull/ankole.gitcd ankole/tools/deploy/docker-composecp .env.example .envchmod 600 .envFill the required values in .env, then:docker compose pulldocker compose up -d03Functions
Every business function has an outcome measure
The work can be done digitally, produces an inspectable deliverable, and has a declared business result. Six examples, not a catalogue.
Performance marketing
Campaign plans, bids, creatives, and budget shifts
Incremental ROAS and customer acquisition cost
Industry research and trading
Research, hypotheses, portfolio actions, and reviews
Excess return, Sharpe ratio, and maximum drawdown
Search engine optimization
Keyword plans, content briefs, and on-page changes
Ranking movement and qualified organic traffic
Regulatory submissions
Submission dossiers and deficiency responses
First-pass approval rate and rounds of questions
Patent prosecution
Prior-art searches, claim drafts, and office-action responses
Grant rate and office-action rounds
Smart contract audit
Reports with reproducible proofs of concept
Critical misses and false-positive rate
“Define the function. Grant bounded authority. Let the Agent work. Score the outcome.”
04Difference
From AI capability to autonomous labor
A copilot helps a person perform the function. Ankole gives the function to an Agent, within defined authority, and measures what it delivers.
- 01
A business function, not a chat persona
Each Agent has an ongoing responsibility, expected deliverables, operating context, and result measure. Its identity holds authority and history; it does not exist to imitate a person.
- 02
Outcomes, not activity
Judge the work by the number that matters to the business: return, risk, ranking, approval rate, cost per unit, or another declared result.
- 03
The Agent owns the execution loop
It plans, uses tools, follows up, recovers from failure, and delivers. People do not have to drive every next step.
- 04
Operating context becomes committed work
Rules, risks, decisions, and deadlines from channels and systems become durable inputs to later work, even when nobody addressed the Agent directly.
- 05
People govern the boundaries
Identity, AuthZ, approval points, audit records, and escalation paths define what the Agent can do. People remain responsible for approvals, exceptions, and accountability.
05Compounding
It will not make the same mistake twice
An assistant starts from zero every time: what you corrected yesterday, you say again today. Ankole files every correction into the channel rules and into the skill, and it holds from the next session on. The second run of the same kind of job does not start where the first one did.
Channel rules · Research4 rules
- 07-14Cyclicals use a 7-year percentile, not 3Settled between two people; nobody addressed the agent
- 07-19Conclusion first, and never drop the risksAfter a draft came back
- 07-22If the data is not there, say so — never estimate itWritten into the skill after an incident
- 07-25Value the HK listing on its own, not with the A-share lineCorrected once
After a rule lands in the ledger
Most agents keep “memory” as an append-only log: what was said goes into a vector store verbatim and gets fished back by similarity. In that store an old rule and its replacement are equals — no timeline, nothing supersedes anything. Last month's “three-year percentile” lies beside this week's “seven years minimum”, and which one the next report uses depends on which one the search happens to land on.
Ankole's memory adjudicates. A new rule takes the seat and the old one retires along with the period it governed; three corrections of the same kind merge into one sharper rule; contradictory conclusions are ranked by time, source, and confidence; and a prediction gets checked against how things actually went.
All of it serves one objective — shrinking the gap between prediction and reality, the same path a living brain takes when it consolidates memory. So recall is not replay; it is reasoned out afresh against the present. The second run of the same kind of job starts from the adjudicated picture, and the same mistake has no room left to happen.
The hardest evidence for any of this is Ankole itself
This repository has an agent whose job is maintaining Ankole. Engelbart split work into three levels — doing the job, improving how the job is done, and improving the improvement — and the leverage grows as you climb. Running all three on itself is the only honest way to test the design.
06Runtime
Five technical bets underneath
Actors hold the identity and the life of long work, OTP decides what happens when something breaks, ZeroMQ carries live control, Agent Computer runs the local work, PostgreSQL keeps the durable facts.
- 01
Virtual Actors carry the AI work
A session is a piece of work with an address, a state, a mailbox, a lifespan, and a way back — not a task loose in the background.
- 02
OTP supervision trees draw the failure domains
When an agent hangs, times out, or crashes, Ankole isolates or restarts that branch instead of letting it take the instance down.
- 03
ZeroMQ carries the live control
Wakeups, steering, checkpoints, streaming, and backpressure all move through a low-latency router, so you can step in and take over while the agent is still working.
- 04
Agent Computer is the execution floor
The LLM loop, the tools, the files, the terminal state, and the streaming output all run in a Bun and TypeScript computer next to the workspace.
- 05
A durable ledger holds recovery and audit
Mailboxes, turns, reminders, decisions, and committed actions outlive the process. Streaming is progress; what the agent commits is the fact.
Give it an objective, come back for the result
Ankole is Apache-2.0 open source and self-hosted. Put it on your own machines and keep the context and the audit trail.