> ## Documentation Index
> Fetch the complete documentation index at: https://praison.ai/docs/llms.txt
> Use this file to discover all available pages before exploring further.

# index • AI Agent SDK

> index: Index a directory or file for knowledge retrieval.

# index

<div className="flex items-center gap-2">
  <Badge color="purple">Method</Badge>
</div>

> This is a method of the [**Knowledge**](../classes/Knowledge) class in the [**knowledge**](../modules/knowledge) module.

Index a directory or file for knowledge retrieval.

Supports incremental indexing - only changed files are re-indexed.

## Signature

```python theme={"theme":{"light":"vitesse-light","dark":"vitesse-dark"}}
def index(path: str, incremental: bool, force: bool, include_glob: list, exclude_glob: list, user_id: str, agent_id: str, run_id: str) -> Any
```

## Parameters

<ParamField query="path" type="str" required={true}>
  Directory or file path to index
</ParamField>

<ParamField query="incremental" type="bool" required={false} default="True">
  If True, only index changed files (default: True)
</ParamField>

<ParamField query="force" type="bool" required={false} default="False">
  If True, re-index all files regardless of changes
</ParamField>

<ParamField query="include_glob" type="list" required={false}>
  List of glob patterns to include (e.g., \["*.py", "*.md"])
</ParamField>

<ParamField query="exclude_glob" type="list" required={false}>
  List of glob patterns to exclude (e.g., \["*.log", "test\_*"])
</ParamField>

<ParamField query="user_id" type="str" required={false}>
  Optional user ID for scoping
</ParamField>

<ParamField query="agent_id" type="str" required={false}>
  Optional agent ID for scoping
</ParamField>

<ParamField query="run_id" type="str" required={false}>
  Optional run ID for scoping
</ParamField>

### Returns

<ResponseField name="Returns" type="Any">
  IndexResult with indexing statistics
</ResponseField>

## Uses

* `time_module.time`
* `IndexResult`
* `isfile`
* `dirname`
* `os.makedirs`
* `FileTracker`
* `tracker.load`
* `IgnoreMatcher.from_directory`
* `isdir`
* `os.walk`

## Source

<Card title="View on GitHub" icon="github" href="https://github.com/MervinPraison/PraisonAI/blob/main/src/praisonai-agents/praisonaiagents/knowledge/knowledge.py#L827">
  `praisonaiagents/knowledge/knowledge.py` at line 827
</Card>
