AI agent knowledge management system using Wiki-based markdown storage
Project description
OutoWiki Documentation
OutoWiki is a wiki-based knowledge management system designed for AI agents. It provides a structured way to store, retrieve, and organize information that AI agents learn across interactions.
Overview
OutoWiki solves the problem of persistent memory for AI agents by organizing information in a familiar wiki structure. Instead of opaque databases, OutoWiki uses markdown documents organized in folders, making the knowledge human-readable and editable.
Architecture
┌─────────────────────────────────────────────────────────┐
│ OutoWiki Facade │
│ (OutoWiki class - main entry point for all operations) │
└─────────────────────┬───────────────────────────────────┘
│
┌────────────┼────────────┐
│ │ │
┌────▼────┐ ┌────▼────┐ ┌────▼────┐
│Recorder │ │Searcher │ │Internal │
│ Module │ │ Module │ │ Agent │
└────┬────┘ └────┬────┘ └────┬────┘
│ │ │
┌────▼────────────▼────────────▼────┐
│ LLM Provider │
│ (OpenAI or Anthropic) │
└──────────────────────────────────┘
The system has three main components:
- Recorder: Processes new content, determines document placement, manages backlinks
- Searcher: Finds relevant documents using semantic search and intent analysis
- Internal Agent: Handles complex operations like merge, split, and modify plans
Wiki Structure
OutoWiki organizes knowledge as markdown files in a folder hierarchy. When initialized, default category folders are created automatically:
wiki/
├── users/
│ └── {username}/
│ ├── profile.md
│ └── preferences/
│ └── {topic}.md
├── tools/
│ └── {toolname}/
│ ├── overview.md
│ └── usage.md
├── agent/
│ ├── identity/
│ ├── learning/
│ └── memory/
├── knowledge/
│ └── {domain}/
│ └── {subdomain}/
│ └── {topic}.md
├── history/
│ └── sessions/
│ └── {date}.md
└── unassigned/
└── {documents}.md
Documents support backlinks using the [[Document Name]] syntax. When auto_backlinks is enabled, OutoWiki automatically updates related documents when new content references existing topics.
Quick Start
from outowiki import OutoWiki, WikiConfig
# Create configuration
config = WikiConfig(
provider="openai",
api_key="sk-...", # Your OpenAI API key
model="gpt-4",
wiki_path="./my_wiki" # Local wiki folder
)
# Initialize the wiki
wiki = OutoWiki(config)
# Record new information
result = wiki.record({
"type": "conversation",
"content": "User prefers Python for web development. Suggested Flask or Django."
})
print(f"Recorded: {result.success}")
print(f"Actions: {result.actions_taken}")
# Search for information
results = wiki.search("programming preferences")
print(f"Found: {results.paths}")
# Work with a specific document
doc = wiki.get_document("concepts/web-development.md")
print(f"Title: {doc.metadata.title}")
print(doc.content[:500])
Documentation
Getting Started
- Installation - How to install OutoWiki
- Configuration - Configuration options and settings
API Reference
- OutoWiki Facade - Main entry point for all operations
- Data Models - WikiDocument, SearchQuery, etc.
- Plan Models - CreatePlan, ModifyPlan, MergePlan, etc.
- Analysis Models - IntentAnalysis, AnalysisResult
- Modules - Recorder, Searcher, InternalAgent
- Providers - OpenAI, Anthropic providers
- Exceptions - Error handling
Guides
- Recording Workflow - How to record information
- Search Strategies - How to search effectively
- Document Management - CRUD operations
License
Apache License 2.0 - see LICENSE file for details.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file outowiki-0.5.1.tar.gz.
File metadata
- Download URL: outowiki-0.5.1.tar.gz
- Upload date:
- Size: 68.9 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
d488e48dabc9e544cecee0ce4ddbb751d581e5e290e4ba86dba24264d7a90938
|
|
| MD5 |
70f30041c6b84edc2f2cac50b4dda3a8
|
|
| BLAKE2b-256 |
faffa5e1d5b50da6fd08bf22a4bf74cc7986449d2061a09fbc584c57b8856d99
|
Provenance
The following attestation bundles were made for outowiki-0.5.1.tar.gz:
Publisher:
publish.yml on llaa33219/outowiki
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
outowiki-0.5.1.tar.gz -
Subject digest:
d488e48dabc9e544cecee0ce4ddbb751d581e5e290e4ba86dba24264d7a90938 - Sigstore transparency entry: 1341755901
- Sigstore integration time:
-
Permalink:
llaa33219/outowiki@8591943f627e600bcfda3e59def5e1f6baeeaa62 -
Branch / Tag:
refs/tags/v0.5.1 - Owner: https://github.com/llaa33219
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@8591943f627e600bcfda3e59def5e1f6baeeaa62 -
Trigger Event:
push
-
Statement type:
File details
Details for the file outowiki-0.5.1-py3-none-any.whl.
File metadata
- Download URL: outowiki-0.5.1-py3-none-any.whl
- Upload date:
- Size: 44.5 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
981e198c67241bb9386fa874c7c1be18ca1651df5af2cc7c5cc0d7d261dc5f32
|
|
| MD5 |
cab4be0db1ecdc0cb717d4d84f5d1d3c
|
|
| BLAKE2b-256 |
0fc3d20748d68637c39f03d9b5d0622612e613ec09fc3befc91255b1d346e8ff
|
Provenance
The following attestation bundles were made for outowiki-0.5.1-py3-none-any.whl:
Publisher:
publish.yml on llaa33219/outowiki
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
outowiki-0.5.1-py3-none-any.whl -
Subject digest:
981e198c67241bb9386fa874c7c1be18ca1651df5af2cc7c5cc0d7d261dc5f32 - Sigstore transparency entry: 1341755906
- Sigstore integration time:
-
Permalink:
llaa33219/outowiki@8591943f627e600bcfda3e59def5e1f6baeeaa62 -
Branch / Tag:
refs/tags/v0.5.1 - Owner: https://github.com/llaa33219
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@8591943f627e600bcfda3e59def5e1f6baeeaa62 -
Trigger Event:
push
-
Statement type: