Notebook Skill Object Based Personal Knowledge Base
Purpose: Track any object type you define such as ideas, projects, tasks, habits, books, and people.
Location: {WORKSPACE}/skills/notebook/
Agent Onboarding Protocol
Guide the user through setup when no object types exist.
Step 1 Suggest a First Type
CODEBLOCK0
Step 2 Define the Type Together
If they choose a preset:
CODEBLOCK1
If they want custom:
CODEBLOCK2
Step 3 Create the First Object
CODEBLOCK3
Step 4 Show the Workflow
CODEBLOCK4
Step 5 Offer Expansion
CODEBLOCK5
Quick Reference
Defining Types
CODEBLOCK6
Field types:
- - text for short strings
- longtext for multi line notes
- select(a|b|c) for one option from a list
- number for numeric values
- date for dates
- list for an array of strings
Working with Objects
CODEBLOCK7
Example Workflow
CODEBLOCK8
Data Location
CODEBLOCK9
Design Principles
- - User defined: You define the types that matter.
- Local first: Uses YAML files with no cloud or vendor lock in.
- Linkable: Objects can reference each other.
- Extensible: Add types and fields as needed.
- Expandable: Use intelligent questioning to deepen thinking.
基于对象笔记的个人知识库
用途:追踪您定义的任何对象类型,如想法、项目、任务、习惯、书籍和人物。
位置:{WORKSPACE}/skills/notebook/
智能体引导协议
当不存在对象类型时,引导用户完成设置。
步骤1 建议首个类型
看起来您尚未定义任何对象类型。
当您定义好想要追踪的对象类型时,笔记工具才能发挥最佳效果。
您想从什么开始?
- 1. 想法 - 用于捕捉灵感和功能点
- 项目 - 用于带目标的长期工作
- 任务 - 用于带截止日期的可执行事项
- 自定义 - 告诉我您想追踪什么
步骤2 共同定义类型
如果用户选择预设类型:
太好了。我们来设置[类型]。
我将创建包含常用字段的类型。您之后可以添加或删除字段。
对于[类型],您想要哪些字段?
- - 标题(文本,必填)
- 状态(选择)
- 优先级(选择)
- 标签(文本)
- 备注(长文本)
- [自定义字段]
[类型]应该包含哪些字段?
如果用户想要自定义:
告诉我您想追踪什么以及哪些细节重要。
示例:我想追踪我读过的书。我需要标题、作者、状态、评分和备注。
我会将其转换为类型定义。
步骤3 创建首个对象
现在让我们添加您的第一个[类型]。
您想追踪什么作为您的第一个[类型]?
示例:对于书籍可以是《天外来菌》,对于项目可以是家庭自动化
步骤4 展示工作流程
完美。您现在拥有:
- - 类型:[类型名称] 包含 [N] 个字段
- 1个[类型名称]对象:[标题]
接下来您想做什么?
- - notebook list [类型名称] 查看所有项目
- notebook expand [类型名称] [标题] 添加详情
- notebook add [类型名称] 添加另一个
- notebook type-add [类型名称] 稍后添加更多字段
步骤5 提供扩展选项
您是否想通过一些问题来深化这个[类型名称]?
输入expand,我将提问来增加深度。
快速参考
定义类型
notebook type-add 类型名称 字段1:text 字段2:select(a|b|c) 字段3:number
字段类型:
- - text 用于短文本
- longtext 用于多行备注
- select(a|b|c) 用于从列表中选择一个选项
- number 用于数值
- date 用于日期
- list 用于字符串数组
操作对象
notebook add 类型名称 标题 [-t 标签1,标签2 -p 优先级]
notebook list 类型名称
notebook get 类型名称 标题
notebook expand 类型名称 标题
notebook edit 类型名称 标题 字段:值
notebook link 类型1:标题1 类型2:标题2
notebook delete 类型名称 标题
notebook find 查询内容
notebook stats
示例工作流程
1. 定义类型
notebook type-add idea title:text status:select(raw|expanded|archived) priority:select(high|medium|low) tags:text notes:longtext
2. 添加第一个想法
notebook add idea 开车时语音捕捉 -t voice,automation -p high
3. 深化内容
notebook expand idea 语音捕捉
4. 链接到其他对象
notebook add project 家庭自动化 -t household
notebook link idea:语音捕捉 project:家庭自动化
5. 工作时更新
notebook edit idea 语音捕捉 status:expanded
数据位置
/data/notebook/
├── objects/
├── types.yaml
└── index.json
设计原则
- - 用户定义:您定义重要的类型。
- 本地优先:使用YAML文件,无云端或供应商锁定。
- 可链接:对象可以相互引用。
- 可扩展:根据需要添加类型和字段。
- 可深化:通过智能提问来深化思考。