Skip to content
Ankole
Open source · Self-hosted

The Open-SourceAI Workforce OS

Turn AI agents into autonomous labor that performs business functions and is measured by outcomes.

research9 members
  1. Ravi14:02

    don't use a 3-year percentile on cyclicals — you need a full cycle

  2. Mia14:03

    agreed, 7 years minimum

Ankole learned the valuation window from this conversation on its own, though nobody addressed it

Three days later

  1. Sam09:41

    @Ankole give me a valuation pass on the metals names

  2. 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.

bash
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 -d

03Functions

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.

  1. Performance marketing

    Campaign plans, bids, creatives, and budget shifts

    Incremental ROAS and customer acquisition cost

  2. Industry research and trading

    Research, hypotheses, portfolio actions, and reviews

    Excess return, Sharpe ratio, and maximum drawdown

  3. Search engine optimization

    Keyword plans, content briefs, and on-page changes

    Ranking movement and qualified organic traffic

  4. Regulatory submissions

    Submission dossiers and deficiency responses

    First-pass approval rate and rounds of questions

  5. Patent prosecution

    Prior-art searches, claim drafts, and office-action responses

    Grant rate and office-action rounds

  6. 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.

  1. 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.

  2. 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.

  3. 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.

  4. 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.

  5. 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

  1. 07-14Cyclicals use a 7-year percentile, not 3Settled between two people; nobody addressed the agent
  2. 07-19Conclusion first, and never drop the risksAfter a draft came back
  3. 07-22If the data is not there, say so — never estimate itWritten into the skill after an incident
  4. 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.

  1. 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.

  2. 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.

  3. 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.

  4. 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.

  5. 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.