chore: initialize AI-Brain knowledge base

This commit is contained in:
2026-07-17 00:52:10 +08:00
commit 5a2136c24e
43 changed files with 25307 additions and 0 deletions
+16
View File
@@ -0,0 +1,16 @@
# Operating systems
.DS_Store
Thumbs.db
desktop.ini
# Obsidian local state
.obsidian/workspace.json
.obsidian/workspace-mobile.json
.obsidian/cache/
# Temporary files
*.tmp
*.temp
~$*
.trash/
+7
View File
@@ -0,0 +1,7 @@
{
"newFileLocation": "folder",
"newFileFolderPath": "00_Inbox",
"useMarkdownLinks": false,
"alwaysUpdateLinks": true,
"showUnsupportedFiles": false
}
+1
View File
@@ -0,0 +1 @@
{}
+6
View File
@@ -0,0 +1,6 @@
[
"obsidian-git",
"obsidian-linter",
"obsidian-excalidraw-plugin",
"dataview"
]
+33
View File
@@ -0,0 +1,33 @@
{
"file-explorer": true,
"global-search": true,
"switcher": true,
"graph": true,
"backlink": true,
"canvas": true,
"outgoing-link": true,
"tag-pane": true,
"footnotes": false,
"properties": true,
"page-preview": true,
"daily-notes": true,
"templates": true,
"note-composer": true,
"command-palette": true,
"slash-command": false,
"editor-status": true,
"bookmarks": true,
"markdown-importer": false,
"zk-prefixer": false,
"random-note": false,
"outline": true,
"word-count": true,
"slides": false,
"audio-recorder": false,
"workspaces": false,
"file-recovery": true,
"publish": false,
"sync": true,
"bases": true,
"webviewer": false
}
+20876
View File
File diff suppressed because one or more lines are too long
+11
View File
@@ -0,0 +1,11 @@
{
"id": "dataview",
"name": "Dataview",
"version": "0.5.68",
"minAppVersion": "0.13.11",
"description": "Complex data views for the data-obsessed.",
"author": "Michael Brenan <blacksmithgu@gmail.com>",
"authorUrl": "https://github.com/blacksmithgu",
"helpUrl": "https://blacksmithgu.github.io/obsidian-dataview/",
"isDesktopOnly": false
}
+141
View File
@@ -0,0 +1,141 @@
.block-language-dataview {
overflow-y: auto;
}
/*****************/
/** Table Views **/
/*****************/
/* List View Default Styling; rendered internally as a table. */
.table-view-table {
width: 100%;
}
.table-view-table > thead > tr, .table-view-table > tbody > tr {
margin-top: 1em;
margin-bottom: 1em;
text-align: left;
}
.table-view-table > tbody > tr:hover {
background-color: var(--table-row-background-hover);
}
.table-view-table > thead > tr > th {
font-weight: 700;
font-size: larger;
border-top: none;
border-left: none;
border-right: none;
border-bottom: solid;
max-width: 100%;
}
.table-view-table > tbody > tr > td {
text-align: left;
border: none;
font-weight: 400;
max-width: 100%;
}
.table-view-table ul, .table-view-table ol {
margin-block-start: 0.2em !important;
margin-block-end: 0.2em !important;
}
/** Rendered value styling for any view. */
.dataview-result-list-root-ul {
padding: 0em !important;
margin: 0em !important;
}
.dataview-result-list-ul {
margin-block-start: 0.2em !important;
margin-block-end: 0.2em !important;
}
/** Generic grouping styling. */
.dataview.result-group {
padding-left: 8px;
}
/*******************/
/** Inline Fields **/
/*******************/
.dataview.inline-field-key {
padding-left: 8px;
padding-right: 8px;
font-family: var(--font-monospace);
background-color: var(--background-primary-alt);
color: var(--nav-item-color-selected);
}
.dataview.inline-field-value {
padding-left: 8px;
padding-right: 8px;
font-family: var(--font-monospace);
background-color: var(--background-secondary-alt);
color: var(--nav-item-color-selected);
}
.dataview.inline-field-standalone-value {
padding-left: 8px;
padding-right: 8px;
font-family: var(--font-monospace);
background-color: var(--background-secondary-alt);
color: var(--nav-item-color-selected);
}
/***************/
/** Task View **/
/***************/
.dataview.task-list-item, .dataview.task-list-basic-item {
margin-top: 3px;
margin-bottom: 3px;
transition: 0.4s;
}
.dataview.task-list-item:hover, .dataview.task-list-basic-item:hover {
background-color: var(--text-selection);
box-shadow: -40px 0 0 var(--text-selection);
cursor: pointer;
}
/*****************/
/** Error Views **/
/*****************/
div.dataview-error-box {
width: 100%;
min-height: 150px;
display: flex;
align-items: center;
justify-content: center;
border: 4px dashed var(--background-secondary);
}
.dataview-error-message {
color: var(--text-muted);
text-align: center;
}
/*************************/
/** Additional Metadata **/
/*************************/
.dataview.small-text {
font-size: smaller;
color: var(--text-muted);
margin-left: 3px;
}
.dataview.small-text::before {
content: "(";
}
.dataview.small-text::after {
content: ")";
}
File diff suppressed because it is too large Load Diff
File diff suppressed because one or more lines are too long
@@ -0,0 +1,12 @@
{
"id": "obsidian-excalidraw-plugin",
"name": "Excalidraw",
"version": "2.25.3",
"minAppVersion": "1.8.7",
"description": "Sketch Your Mind. Edit and view Excalidraw drawings. Enter the world of 4D Visual PKM.",
"author": "Zsolt Viczian",
"authorUrl": "https://excalidraw-obsidian.online",
"fundingUrl": "https://ko-fi.com/zsolt",
"helpUrl": "https://github.com/zsviczian/obsidian-excalidraw-plugin#readme",
"isDesktopOnly": false
}
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
+10
View File
@@ -0,0 +1,10 @@
{
"author": "Vinzent",
"authorUrl": "https://github.com/Vinzent03",
"id": "obsidian-git",
"name": "Git",
"description": "Integrate Git version control with automatic backup and other advanced features.",
"isDesktopOnly": false,
"fundingUrl": "https://ko-fi.com/vinzent",
"version": "2.38.6"
}
+23
View File
@@ -0,0 +1,23 @@
#!/bin/sh
PROMPT="$1"
TEMP_FILE="$OBSIDIAN_GIT_CREDENTIALS_INPUT"
cleanup() {
rm -f "$TEMP_FILE" "$TEMP_FILE.response"
}
trap cleanup EXIT
echo "$PROMPT" > "$TEMP_FILE"
while [ ! -e "$TEMP_FILE.response" ]; do
if [ ! -e "$TEMP_FILE" ]; then
echo "Trigger file got removed: Abort" >&2
exit 1
fi
sleep 0.1
done
RESPONSE=$(cat "$TEMP_FILE.response")
echo "$RESPONSE"
+705
View File
@@ -0,0 +1,705 @@
@keyframes loading {
0% {
transform: rotate(0deg);
}
100% {
transform: rotate(360deg);
}
}
.workspace-leaf-content[data-type="git-view"] .button-border {
border: 2px solid var(--interactive-accent);
border-radius: var(--radius-s);
}
.workspace-leaf-content[data-type="git-view"] .view-content {
padding-left: 0;
padding-top: 0;
padding-right: 0;
}
.workspace-leaf-content[data-type="git-history-view"] .view-content {
padding-left: 0;
padding-top: 0;
padding-right: 0;
}
.loading {
overflow: hidden;
}
.loading > svg {
animation: 2s linear infinite loading;
transform-origin: 50% 50%;
display: inline-block;
}
.obsidian-git-center {
margin: auto;
text-align: center;
width: 50%;
}
.obsidian-git-textarea {
display: block;
margin-left: auto;
margin-right: auto;
}
.obsidian-git-disabled {
opacity: 0.5;
}
.obsidian-git-center-button {
display: block;
margin: 20px auto;
}
.tooltip.mod-left {
overflow-wrap: break-word;
}
.tooltip.mod-right {
overflow-wrap: break-word;
}
/* Limits the scrollbar to the view body */
.git-view {
display: flex;
flex-direction: column;
position: relative;
height: 100%;
}
/* Re-enable wrapping of nav buttns to prevent overflow on smaller screens #*/
.workspace-drawer .git-view .nav-buttons-container {
flex-wrap: wrap;
}
.git-tools {
display: flex;
margin-left: auto;
}
.git-tools .type {
padding-left: var(--size-2-1);
display: flex;
align-items: center;
justify-content: center;
width: 11px;
}
.git-tools .type[data-type="M"] {
color: orange;
}
.git-tools .type[data-type="D"] {
color: red;
}
.git-tools .buttons {
display: flex;
}
.git-tools .buttons > * {
padding: 0;
height: auto;
}
.workspace-leaf-content[data-type="git-view"] .tree-item-self,
.workspace-leaf-content[data-type="git-history-view"] .tree-item-self {
align-items: center;
}
.workspace-leaf-content[data-type="git-view"]
.tree-item-self:hover
.clickable-icon,
.workspace-leaf-content[data-type="git-history-view"]
.tree-item-self:hover
.clickable-icon {
color: var(--icon-color-hover);
}
/* Highlight an item as active if it's diff is currently opened */
.is-active .git-tools .buttons > * {
color: var(--nav-item-color-active);
}
.git-author {
color: var(--text-accent);
}
.git-date {
color: var(--text-accent);
}
.git-ref {
color: var(--text-accent);
}
/* ====== diff2html ======
The following styles are adapted from the obsidian-version-history plugin by
@kometenstaub https://github.com/kometenstaub/obsidian-version-history-diff/blob/main/src/styles.scss
which itself is adapted from the diff2html library with the following original license:
https://github.com/rtfpessoa/diff2html/blob/master/LICENSE.md
Copyright 2014-2016 Rodrigo Fernandes https://rtfpessoa.github.io/
Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated
documentation files (the "Software"), to deal in the Software without restriction, including without limitation the
rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit
persons to whom the Software is furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all copies or substantial portions of the
Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE
WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
*/
.theme-dark,
.theme-light {
--git-delete-bg: #ff475040;
--git-delete-hl: #96050a75;
--git-insert-bg: #68d36840;
--git-insert-hl: #23c02350;
--git-change-bg: #ffd55840;
--git-selected: #3572b0;
--git-delete: #cc3333;
--git-insert: #399839;
--git-change: #d0b44c;
--git-move: #3572b0;
}
.git-diff {
.d2h-d-none {
display: none;
}
.d2h-wrapper {
text-align: left;
border-radius: 0.25em;
overflow: auto;
}
.d2h-file-header.d2h-file-header {
background-color: var(--background-secondary);
border-bottom: 1px solid var(--background-modifier-border);
font-family:
Source Sans Pro,
Helvetica Neue,
Helvetica,
Arial,
sans-serif;
height: 35px;
padding: 5px 10px;
}
.d2h-file-header,
.d2h-file-stats {
display: -webkit-box;
display: -ms-flexbox;
display: flex;
}
.d2h-file-header {
display: none;
}
.d2h-file-stats {
font-size: 14px;
margin-left: auto;
}
.d2h-lines-added {
border: 1px solid var(--color-green);
border-radius: 5px 0 0 5px;
color: var(--color-green);
padding: 2px;
text-align: right;
vertical-align: middle;
}
.d2h-lines-deleted {
border: 1px solid var(--color-red);
border-radius: 0 5px 5px 0;
color: var(--color-red);
margin-left: 1px;
padding: 2px;
text-align: left;
vertical-align: middle;
}
.d2h-file-name-wrapper {
-webkit-box-align: center;
-ms-flex-align: center;
align-items: center;
display: -webkit-box;
display: -ms-flexbox;
display: flex;
font-size: 15px;
width: 100%;
}
.d2h-file-name {
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
color: var(--text-normal);
font-size: var(--h5-size);
}
.d2h-file-wrapper {
border: 1px solid var(--background-secondary-alt);
border-radius: 3px;
margin-bottom: 1em;
max-height: 100%;
}
.d2h-file-collapse {
-webkit-box-pack: end;
-ms-flex-pack: end;
-webkit-box-align: center;
-ms-flex-align: center;
align-items: center;
border: 1px solid var(--background-secondary-alt);
border-radius: 3px;
cursor: pointer;
display: none;
font-size: 12px;
justify-content: flex-end;
padding: 4px 8px;
}
.d2h-file-collapse.d2h-selected {
background-color: var(--git-selected);
}
.d2h-file-collapse-input {
margin: 0 4px 0 0;
}
.d2h-diff-table {
border-collapse: collapse;
font-family: var(--font-monospace);
font-size: var(--code-size);
width: 100%;
}
.d2h-files-diff {
width: 100%;
}
.d2h-file-diff {
/*
overflow-y: scroll;
*/
border-radius: 5px;
font-size: var(--font-text-size);
line-height: var(--line-height-normal);
}
.d2h-file-side-diff {
display: inline-block;
margin-bottom: -8px;
margin-right: -4px;
overflow-x: scroll;
overflow-y: hidden;
width: 50%;
}
.d2h-code-line {
padding-left: 6em;
padding-right: 1.5em;
}
.d2h-code-line,
.d2h-code-side-line {
display: inline-block;
-webkit-user-select: none;
-moz-user-select: none;
-ms-user-select: none;
user-select: none;
white-space: nowrap;
width: 100%;
}
.d2h-code-side-line {
/* needed to be changed */
padding-left: 0.5em;
padding-right: 0.5em;
}
.d2h-code-line-ctn {
word-wrap: normal;
background: none;
display: inline-block;
padding: 0;
-webkit-user-select: text;
-moz-user-select: text;
-ms-user-select: text;
user-select: text;
vertical-align: middle;
width: 100%;
/* only works for line-by-line */
white-space: pre-wrap;
}
.d2h-code-line del,
.d2h-code-side-line del {
background-color: var(--git-delete-hl);
color: var(--text-normal);
}
.d2h-code-line del,
.d2h-code-line ins,
.d2h-code-side-line del,
.d2h-code-side-line ins {
border-radius: 0.2em;
display: inline-block;
margin-top: -1px;
text-decoration: none;
vertical-align: middle;
}
.d2h-code-line ins,
.d2h-code-side-line ins {
background-color: var(--git-insert-hl);
text-align: left;
}
.d2h-code-line-prefix {
word-wrap: normal;
background: none;
display: inline;
padding: 0;
white-space: pre;
}
.line-num1 {
float: left;
}
.line-num1,
.line-num2 {
-webkit-box-sizing: border-box;
box-sizing: border-box;
overflow: hidden;
/*
padding: 0 0.5em;
*/
text-overflow: ellipsis;
width: 2.5em;
padding-left: 0;
}
.line-num2 {
float: right;
}
.d2h-code-linenumber {
background-color: var(--background-primary);
border: solid var(--background-modifier-border);
border-width: 0 1px;
-webkit-box-sizing: border-box;
box-sizing: border-box;
color: var(--text-faint);
cursor: pointer;
display: inline-block;
position: absolute;
text-align: right;
width: 5.5em;
}
.d2h-code-linenumber:after {
content: "\200b";
}
.d2h-code-side-linenumber {
background-color: var(--background-primary);
border: solid var(--background-modifier-border);
border-width: 0 1px;
-webkit-box-sizing: border-box;
box-sizing: border-box;
color: var(--text-faint);
cursor: pointer;
overflow: hidden;
padding: 0 0.5em;
text-align: right;
text-overflow: ellipsis;
width: 4em;
/* needed to be changed */
display: table-cell;
position: relative;
}
.d2h-code-side-linenumber:after {
content: "\200b";
}
.d2h-code-side-emptyplaceholder,
.d2h-emptyplaceholder {
background-color: var(--background-primary);
border-color: var(--background-modifier-border);
}
.d2h-code-line-prefix,
.d2h-code-linenumber,
.d2h-code-side-linenumber,
.d2h-emptyplaceholder {
-webkit-user-select: none;
-moz-user-select: none;
-ms-user-select: none;
user-select: none;
}
.d2h-code-linenumber,
.d2h-code-side-linenumber {
direction: rtl;
}
.d2h-del {
background-color: var(--git-delete-bg);
border-color: var(--git-delete-hl);
}
.d2h-ins {
background-color: var(--git-insert-bg);
border-color: var(--git-insert-hl);
}
.d2h-info {
background-color: var(--background-primary);
border-color: var(--background-modifier-border);
color: var(--text-faint);
}
.d2h-del,
.d2h-ins,
.d2h-file-diff .d2h-change {
color: var(--text-normal);
}
.d2h-file-diff .d2h-del.d2h-change {
background-color: var(--git-change-bg);
}
.d2h-file-diff .d2h-ins.d2h-change {
background-color: var(--git-insert-bg);
}
.d2h-file-list-wrapper {
a {
text-decoration: none;
cursor: default;
-webkit-user-drag: none;
}
svg {
display: none;
}
}
.d2h-file-list-header {
text-align: left;
}
.d2h-file-list-title {
display: none;
}
.d2h-file-list-line {
display: -webkit-box;
display: -ms-flexbox;
display: flex;
text-align: left;
}
.d2h-file-list {
}
.d2h-file-list > li {
border-bottom: 1px solid var(--background-modifier-border);
margin: 0;
padding: 5px 10px;
}
.d2h-file-list > li:last-child {
border-bottom: none;
}
.d2h-file-switch {
cursor: pointer;
display: none;
font-size: 10px;
}
.d2h-icon {
fill: currentColor;
margin-right: 10px;
vertical-align: middle;
}
.d2h-deleted {
color: var(--git-delete);
}
.d2h-added {
color: var(--git-insert);
}
.d2h-changed {
color: var(--git-change);
}
.d2h-moved {
color: var(--git-move);
}
.d2h-tag {
background-color: var(--background-secondary);
display: -webkit-box;
display: -ms-flexbox;
display: flex;
font-size: 10px;
margin-left: 5px;
padding: 0 2px;
}
.d2h-deleted-tag {
border: 1px solid var(--git-delete);
}
.d2h-added-tag {
border: 1px solid var(--git-insert);
}
.d2h-changed-tag {
border: 1px solid var(--git-change);
}
.d2h-moved-tag {
border: 1px solid var(--git-move);
}
/* needed for line-by-line*/
.d2h-diff-tbody {
position: relative;
}
/* My additions */
.cm-merge-revert {
width: 4em;
}
/* Ensure that merge revert markers are positioned correctly */
.cm-merge-revert > * {
position: absolute;
background-color: var(--background-secondary);
display: flex;
}
}
/* ====================== Line Authoring Information ====================== */
.cm-gutterElement.obs-git-blame-gutter {
/* Add background color to spacing inbetween and around the gutter for better aesthetics */
border-width: 0px 2px 0.2px;
border-style: solid;
border-color: var(--background-secondary);
background-color: var(--background-secondary);
}
.cm-gutterElement.obs-git-blame-gutter > div,
.line-author-settings-preview {
/* delegate text color to settings */
color: var(--obs-git-gutter-text);
font-family: monospace;
height: 100%; /* ensure, that age-based background color occupies entire parent */
text-align: right;
padding: 0px 6px;
white-space: pre; /* Keep spaces and do not collapse them. */
}
@media (max-width: 800px) {
/* hide git blame gutter not to superpose text */
.cm-gutterElement.obs-git-blame-gutter {
display: none;
}
}
.git-unified-diff-view,
.git-split-diff-view .cm-deletedLine .cm-changedText {
background-color: #ee443330;
}
.git-unified-diff-view,
.git-split-diff-view .cm-insertedLine .cm-changedText {
background-color: #22bb2230;
}
.git-obscure-prompt[git-is-obscured="true"] #git-show-password:after {
-webkit-mask-image: url('data:image/svg+xml,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="svg-icon lucide-eye"><path d="M2.062 12.348a1 1 0 0 1 0-.696 10.75 10.75 0 0 1 19.876 0 1 1 0 0 1 0 .696 10.75 10.75 0 0 1-19.876 0"></path><circle cx="12" cy="12" r="3"></circle></svg>');
}
.git-obscure-prompt[git-is-obscured="false"] #git-show-password:after {
-webkit-mask-image: url('data:image/svg+xml,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="svg-icon lucide-eye-off"><path d="M10.733 5.076a10.744 10.744 0 0 1 11.205 6.575 1 1 0 0 1 0 .696 10.747 10.747 0 0 1-1.444 2.49"></path><path d="M14.084 14.158a3 3 0 0 1-4.242-4.242"></path><path d="M17.479 17.499a10.75 10.75 0 0 1-15.417-5.151 1 1 0 0 1 0-.696 10.75 10.75 0 0 1 4.446-5.143"></path><path d="m2 2 20 20"></path></svg>');
}
/* Override styling of Codemirror merge view "collapsed lines" indicator */
.git-split-diff-view .ͼ2 .cm-collapsedLines {
background: var(--interactive-normal);
border-radius: var(--radius-m);
color: var(--text-accent);
font-size: var(--font-small);
padding: var(--size-4-1) var(--size-4-1);
}
.git-split-diff-view .ͼ2 .cm-collapsedLines:hover {
background: var(--interactive-hover);
color: var(--text-accent-hover);
}
.git-signs-gutter {
.cm-gutterElement {
display: grid;
/* Needed to align the sign properly for different line heigts. Such as
* when having a heading or list item.
*/
padding-top: 0 !important;
}
}
.git-gutter-marker:hover {
border-radius: 2px;
}
.git-gutter-marker.git-add {
background-color: var(--color-green);
justify-self: center;
height: inherit;
width: 0.2rem;
}
.git-gutter-marker.git-change {
background-color: var(--color-yellow);
justify-self: center;
height: inherit;
width: 0.2rem;
}
.git-gutter-marker.git-changedelete {
color: var(--color-yellow);
font-weight: var(--font-bold);
font-size: 1rem;
justify-self: center;
height: inherit;
}
.git-gutter-marker.git-delete {
background-color: var(--color-red);
height: 0.2rem;
width: 0.8rem;
align-self: end;
}
.git-gutter-marker.git-topdelete {
background-color: var(--color-red);
height: 0.2rem;
width: 0.8rem;
align-self: start;
}
div:hover > .git-gutter-marker.git-change {
width: 0.6rem;
}
div:hover > .git-gutter-marker.git-add {
width: 0.6rem;
}
div:hover > .git-gutter-marker.git-delete {
height: 0.6rem;
}
div:hover > .git-gutter-marker.git-topdelete {
height: 0.6rem;
}
div:hover > .git-gutter-marker.git-changedelete {
font-weight: var(--font-bold);
}
.git-gutter-marker.staged {
opacity: 0.5;
}
/* Prevent shifting of the editor when git signs gutter is the only gutter present */
.cm-gutters.cm-gutters-before:has(> .git-signs-gutter:only-child) {
margin-inline-end: 0;
.git-signs-gutter {
margin-inline-start: -1rem;
}
}
.git-changes-status-bar-colored {
.git-add {
color: var(--color-green);
}
.git-change {
color: var(--color-yellow);
}
.git-delete {
color: var(--color-red);
}
}
.git-changes-status-bar .git-add {
margin-right: 0.3em;
}
.git-changes-status-bar .git-change {
margin-right: 0.3em;
}
+299
View File
@@ -0,0 +1,299 @@
{
"ruleConfigs": {
"add-blank-line-after-yaml": {
"enabled": false
},
"dedupe-yaml-array-values": {
"enabled": false,
"dedupe-alias-key": true,
"dedupe-tag-key": true,
"dedupe-array-keys": true,
"ignore-keys": ""
},
"escape-yaml-special-characters": {
"enabled": false,
"try-to-escape-single-line-arrays": false
},
"force-yaml-escape": {
"enabled": false,
"force-yaml-escape-keys": ""
},
"format-tags-in-yaml": {
"enabled": false
},
"format-yaml-array": {
"enabled": false,
"alias-key": true,
"tag-key": true,
"default-array-style": "single-line",
"default-array-keys": true,
"force-single-line-array-style": "",
"force-multi-line-array-style": ""
},
"insert-yaml-attributes": {
"enabled": false,
"text-to-insert": "aliases: \ntags: "
},
"move-tags-to-yaml": {
"enabled": false,
"how-to-handle-existing-tags": "Nothing",
"tags-to-ignore": ""
},
"remove-yaml-keys": {
"enabled": false,
"yaml-keys-to-remove": ""
},
"sort-yaml-array-values": {
"enabled": false,
"sort-alias-key": true,
"sort-tag-key": true,
"sort-array-keys": true,
"ignore-keys": "",
"sort-order": "Ascending Alphabetical"
},
"yaml-key-sort": {
"enabled": false,
"yaml-key-priority-sort-order": "",
"priority-keys-at-start-of-yaml": true,
"yaml-sort-order-for-other-keys": "None"
},
"yaml-timestamp": {
"enabled": false,
"date-created": true,
"date-created-key": "date created",
"date-created-source-of-truth": "file system",
"date-modified": true,
"date-modified-key": "date modified",
"date-modified-source-of-truth": "file system",
"format": "dddd, MMMM Do YYYY, h:mm:ss a",
"convert-to-utc": false,
"update-on-file-contents-updated": "never"
},
"yaml-title": {
"enabled": false,
"title-key": "title",
"mode": "first-h1-or-filename-if-h1-missing"
},
"yaml-title-alias": {
"enabled": false,
"preserve-existing-alias-section-style": true,
"keep-alias-that-matches-the-filename": false,
"use-yaml-key-to-keep-track-of-old-filename-or-heading": true,
"alias-helper-key": "linter-yaml-title-alias"
},
"capitalize-headings": {
"enabled": false,
"style": "Title Case",
"ignore-case-words": true,
"ignore-words": "macOS, iOS, iPhone, iPad, JavaScript, TypeScript, AppleScript, I",
"lowercase-words": "a, an, the, aboard, about, abt., above, abreast, absent, across, after, against, along, aloft, alongside, amid, amidst, mid, midst, among, amongst, anti, apropos, around, round, as, aslant, astride, at, atop, ontop, bar, barring, before, B4, behind, below, beneath, neath, beside, besides, between, 'tween, beyond, but, by, chez, circa, c., ca., come, concerning, contra, counting, cum, despite, spite, down, during, effective, ere, except, excepting, excluding, failing, following, for, from, in, including, inside, into, less, like, minus, modulo, mod, near, nearer, nearest, next, notwithstanding, of, o', off, offshore, on, onto, opposite, out, outside, over, o'er, pace, past, pending, per, plus, post, pre, pro, qua, re, regarding, respecting, sans, save, saving, short, since, sub, than, through, thru, throughout, thruout, till, times, to, t', touching, toward, towards, under, underneath, unlike, until, unto, up, upon, versus, vs., v., via, vice, vis-à-vis, wanting, with, w/, w., c̄, within, w/i, without, 'thout, w/o, abroad, adrift, aft, afterward, afterwards, ahead, apart, ashore, aside, away, back, backward, backwards, beforehand, downhill, downstage, downstairs, downstream, downward, downwards, downwind, east, eastward, eastwards, forth, forward, forwards, heavenward, heavenwards, hence, henceforth, here, hereby, herein, hereof, hereto, herewith, home, homeward, homewards, indoors, inward, inwards, leftward, leftwards, north, northeast, northward, northwards, northwest, now, onward, onwards, outdoors, outward, outwards, overboard, overhead, overland, overseas, rightward, rightwards, seaward, seawards, skywards, skyward, south, southeast, southwards, southward, southwest, then, thence, thenceforth, there, thereby, therein, thereof, thereto, therewith, together, underfoot, underground, uphill, upstage, upstairs, upstream, upward, upwards, upwind, west, westward, westwards, when, whence, where, whereby, wherein, whereto, wherewith, although, because, considering, given, granted, if, lest, once, provided, providing, seeing, so, supposing, though, unless, whenever, whereas, wherever, while, whilst, ago, inasmuch, even, whether, whose, whoever, why, how, whatever, what, both, and, or, either, neither, nor, just, rather, such, that, yet, is, it",
"starting-word-ignore-characters": "'\"(‘“-",
"ending-word-ignore-characters": ".?!,:;'\")”’0123456789-"
},
"file-name-heading": {
"enabled": false
},
"header-increment": {
"enabled": false,
"start-at-h2": false
},
"headings-start-line": {
"enabled": false
},
"remove-trailing-punctuation-in-heading": {
"enabled": false,
"punctuation-to-remove": ".,;:!。,;:!"
},
"footnote-after-punctuation": {
"enabled": false
},
"move-footnotes-to-the-bottom": {
"enabled": false,
"include-blank-line-between-footnotes": false
},
"re-index-footnotes": {
"enabled": false
},
"auto-correct-common-misspellings": {
"enabled": false,
"ignore-words": "",
"skip-words-with-multiple-capitals": false,
"extra-auto-correct-files": []
},
"blockquote-style": {
"enabled": false,
"style": "space"
},
"convert-bullet-list-markers": {
"enabled": false
},
"default-language-for-code-fences": {
"enabled": false,
"default-language": ""
},
"emphasis-style": {
"enabled": false,
"style": "consistent"
},
"no-bare-urls": {
"enabled": false,
"no-bare-uris": false
},
"ordered-list-style": {
"enabled": false,
"number-style": "ascending",
"list-end-style": "."
},
"proper-ellipsis": {
"enabled": false
},
"quote-style": {
"enabled": false,
"single-quote-enabled": true,
"single-quote-style": "''",
"double-quote-enabled": true,
"double-quote-style": "\"\""
},
"remove-consecutive-list-markers": {
"enabled": false
},
"remove-empty-list-markers": {
"enabled": false
},
"remove-hyphenated-line-breaks": {
"enabled": false
},
"remove-multiple-spaces": {
"enabled": false
},
"strong-style": {
"enabled": false,
"style": "consistent"
},
"two-spaces-between-lines-with-content": {
"enabled": false,
"line-break-indicator": " "
},
"unordered-list-style": {
"enabled": false,
"list-style": "consistent"
},
"compact-yaml": {
"enabled": false,
"inner-new-lines": false
},
"consecutive-blank-lines": {
"enabled": false
},
"convert-spaces-to-tabs": {
"enabled": false,
"tabsize": 4
},
"empty-line-around-blockquotes": {
"enabled": false
},
"empty-line-around-code-fences": {
"enabled": false
},
"empty-line-around-horizontal-rules": {
"enabled": false
},
"empty-line-around-math-blocks": {
"enabled": false
},
"empty-line-around-tables": {
"enabled": false
},
"heading-blank-lines": {
"enabled": false,
"bottom": true,
"empty-line-after-yaml": true
},
"line-break-at-document-end": {
"enabled": false
},
"move-math-block-indicators-to-their-own-line": {
"enabled": false
},
"paragraph-blank-lines": {
"enabled": false
},
"remove-empty-lines-between-list-markers-and-checklists": {
"enabled": false
},
"remove-link-spacing": {
"enabled": false
},
"remove-space-around-characters": {
"enabled": false,
"include-fullwidth-forms": true,
"include-cjk-symbols-and-punctuation": true,
"include-dashes": true,
"other-symbols": ""
},
"remove-space-before-or-after-characters": {
"enabled": false,
"characters-to-remove-space-before": ",!?;:).’”]",
"characters-to-remove-space-after": "¿¡‘“(["
},
"space-after-list-markers": {
"enabled": false
},
"space-between-chinese-japanese-or-korean-and-english-or-numbers": {
"enabled": false,
"english-symbols-punctuation-before": "-+;:'\"°%$)]",
"english-symbols-punctuation-after": "-+'\"([¥$"
},
"trailing-spaces": {
"enabled": false,
"two-space-line-break": false
},
"add-blockquote-indentation-on-paste": {
"enabled": false
},
"prevent-double-checklist-indicator-on-paste": {
"enabled": false
},
"prevent-double-list-item-indicator-on-paste": {
"enabled": false
},
"proper-ellipsis-on-paste": {
"enabled": false
},
"remove-hyphens-on-paste": {
"enabled": false
},
"remove-leading-or-trailing-whitespace-on-paste": {
"enabled": false
},
"remove-leftover-footnotes-from-quote-on-paste": {
"enabled": false
},
"remove-multiple-blank-lines-on-paste": {
"enabled": false
}
},
"lintOnSave": false,
"recordLintOnSaveLogs": false,
"displayChanged": true,
"suppressMessageWhenNoChange": false,
"suppressLintAllFilesConfirmationModal": false,
"suppressLintAllFilesInFolderConfirmationModal": false,
"lintOnFileChange": false,
"displayLintOnFileChangeNotice": false,
"settingsConvertedToConfigKeyValues": true,
"additionalFileExtensions": [],
"foldersToIgnore": [],
"filesToIgnore": [],
"linterLocale": "system-default",
"logLevel": "ERROR",
"lintCommands": [],
"customRegexes": [],
"commonStyles": {
"aliasArrayStyle": "single-line",
"tagArrayStyle": "single-line",
"minimumNumberOfDollarSignsToBeAMathBlock": 2,
"escapeCharacter": "\"",
"removeUnnecessaryEscapeCharsForMultiLineArrays": false
}
}
File diff suppressed because one or more lines are too long
+11
View File
@@ -0,0 +1,11 @@
{
"id": "obsidian-linter",
"name": "Linter",
"version": "1.32.0",
"minAppVersion": "1.12.0",
"description": "Formats and styles your notes. It can be used to format YAML tags, aliases, arrays, and metadata; footnotes; headings; spacing; math blocks; regular markdown contents like list, italics, and bold styles; and more with the use of custom rule options as well.",
"author": "Victor Tao",
"authorUrl": "https://github.com/platers",
"helpUrl": "https://platers.github.io/obsidian-linter/",
"isDesktopOnly": false
}
+1
View File
@@ -0,0 +1 @@
.linter-navigation-item{align-items:center;background-color:var(--background-primary-secondary-alt);border:1px solid var(--background-modifier-border);border-radius:100px;border-radius:8px 8px 2px 2px;cursor:pointer;display:flex;flex-direction:row;font-size:16px;font-weight:700;gap:4px;height:32px;overflow:hidden;padding:4px 6px;transition:color .25s ease-in-out,padding .25s ease-in-out,background-color .35s cubic-bezier(.45,.25,.83,.67),max-width .35s cubic-bezier(.57,.04,.58,1);white-space:nowrap}@media screen and (max-width:1325px){.linter-navigation-item.linter-desktop{max-width:32px}}@media screen and (max-width:800px){.linter-navigation-item.linter-mobile{max-width:32px}}.linter-navigation-item-icon,.linter-warning{padding-top:5px}.linter-navigation-item:hover{border-color:var(--interactive-accent-hover);border-bottom:0}.linter-navigation-item-selected{background-color:var(--interactive-accent)!important;border:1px solid var(--background-modifier-border);border-bottom:0;border-radius:8px 8px 2px 2px;color:var(--text-on-accent);max-width:100%!important;padding:4px 9px!important;transition:color .25s ease-in-out,padding .25s ease-in-out,background-color .35s cubic-bezier(.45,.25,.83,.67),max-width .45s cubic-bezier(.57,.04,.58,1) .2s}.linter{transition:transform .4s 0s}.linter-setting-title{align-items:baseline;display:flex;gap:30px;justify-content:space-between}.linter-setting-title.linter-mobile{justify-content:space-around}.linter-setting-title h1{font-weight:900;margin-bottom:12px;margin-top:6px}.linter-setting-header{margin-bottom:24px;overflow-x:auto;overflow-y:hidden}.linter-setting-header .linter-setting-tab-group{align-items:flex-end;display:flex;flex-wrap:wrap;width:100%}.linter-setting-tab-group{border-bottom:2px solid var(--background-modifier-border);margin-top:6px;padding-left:2px;padding-right:2px}.linter-setting-header .linter-tab-settings{border-left:2px solid transparent;border-right:2px solid transparent;cursor:pointer;font-weight:600;padding:6px 12px;white-space:nowrap}.linter-setting-header .linter-tab-settings:first-child{margin-left:6px}.linter-setting-header .linter-tab-settings.linter-tab-settings-active{border:2px solid var(--background-modifier-border);border-bottom-color:var(--background-primary);border-radius:2px;transform:translateY(2px)}.linter-navigation-item:not(.linter-navigation-item-selected)>span:nth-child(2),.linter-visually-hidden{border:0;clip:rect(0 0 0 0);clip-path:rect(0 0 0 0);height:auto;margin:0;overflow:hidden;padding:0;position:absolute;white-space:nowrap;width:1px}textarea.full-width{margin-bottom:.8em;margin-top:.8em;min-height:10em;width:100%}.full-width-textbox-input-wrapper{position:relative}.settings-copy-button{margin:0 0 0 auto;padding:4px;position:absolute;right:.8em;top:.8em}.settings-copy-button svg.linter-clipboard path{fill:var(--text-faint)}.settings-copy-button svg.linter-success path{fill:var(--interactive-success)}.settings-copy-button:active,.settings-copy-button:hover{cursor:pointer}.settings-copy-button:active svg path,.settings-copy-button:hover svg path{fill:var(--text-accent-hover);transition:all .3s ease}.settings-copy-button:focus{outline:0}.linter-custom-regex-replacement-container div:last-child{border:none}.linter-custom-regex-replacement{border:none;border-bottom:var(--hr-thickness) solid;border-color:var(--hr-color);margin-bottom:15px}.linter-custom-regex-replacement-row2{flex-wrap:wrap}.linter-custom-regex-replacement-normal-input{width:40%}.linter-custom-regex-replacement-flags{width:15%}.linter-custom-regex-replacement-label{flex-direction:row-reverse}.linter-custom-regex-replacement-label-input{width:50%}.linter-files-to-ignore-container div:last-child{border:none}.linter-files-to-ignore{border:none;border-bottom:var(--hr-thickness) solid;border-color:var(--hr-color);margin-bottom:15px}.linter-files-to-ignore-normal-input{width:40%}.linter-files-to-ignore-flags{width:15%}.linter-no-border{border:none}.linter-border-bottom{border-bottom:1px solid var(--background-modifier-border);border-top:0;margin-bottom:.75em}.linter-no-padding-top{padding-top:0}.custom-row-description{margin-top:0}.modal-warn,.search-zero-state{font-weight:700}.modal-heading,.search-zero-state{text-align:center}.confirm-modal-checkbox-container{align-items:center;display:flex;gap:6px;margin-top:8px}
+6
View File
@@ -0,0 +1,6 @@
{
"folder": "90_Templates",
"dateFormat": "YYYY-MM-DD",
"timeFormat": "HH:mm"
}
+29
View File
@@ -0,0 +1,29 @@
---
title: 临时收集内容
type: inbox
domain: Inbox
status: growing
tags:
- inbox
created: 2026-07-16
updated: 2026-07-16
aliases: []
related: []
source: []
---
# 临时收集内容
尚未归类的信息先记录在这里。整理后将内容移动到对应的原子笔记,并更新相关索引。
## 待整理
- [ ] 待补充
## 整理规则
1. 判断内容是否值得长期保留。
2. 确认已有笔记能否承载;不能时创建新笔记。
3. 补充 Frontmatter、内部链接和来源。
4. 从本页删除已完成整理的条目。
+61
View File
@@ -0,0 +1,61 @@
---
title: LLM基础
type: concept
domain: AI基础
status: seed
tags:
- AI
- LLM
created: 2026-07-16
updated: 2026-07-16
aliases:
- 大语言模型基础
related:
- Token机制
- Prompt Engineering
- RAG知识库
- AI Agent概念
source: []
---
# LLM基础
## 一句话定义
待补充。
## 为什么重要
待补充。
## 核心概念
待补充。
## 工作原理
待补充。
## 应用场景
待补充。
## 示例
待补充。
## 常见误区
待补充。
## 相关知识
- [[Token机制]]
- [[Prompt Engineering]]
- [[RAG知识库]]
- [[../02_Agent工程/AI Agent概念|AI Agent概念]]
## 参考资料
- 待补充
+59
View File
@@ -0,0 +1,59 @@
---
title: Prompt Engineering
type: concept
domain: AI基础
status: seed
tags:
- AI
- Prompt
created: 2026-07-16
updated: 2026-07-16
aliases:
- 提示词工程
related:
- LLM基础
- Token机制
- Planning规划
source: []
---
# Prompt Engineering
## 一句话定义
待补充。
## 为什么重要
待补充。
## 核心概念
待补充。
## 工作原理
待补充。
## 应用场景
待补充。
## 示例
待补充。
## 常见误区
待补充。
## 相关知识
- [[LLM基础]]
- [[Token机制]]
- [[../02_Agent工程/Planning规划|Planning规划]]
## 参考资料
- 待补充
+60
View File
@@ -0,0 +1,60 @@
---
title: RAG知识库
type: concept
domain: AI基础
status: seed
tags:
- AI
- RAG
- KnowledgeBase
created: 2026-07-16
updated: 2026-07-16
aliases:
- 检索增强生成
related:
- LLM基础
- Token机制
- Memory记忆系统
source: []
---
# RAG知识库
## 一句话定义
待补充。
## 为什么重要
待补充。
## 核心概念
待补充。
## 工作原理
待补充。
## 应用场景
待补充。
## 示例
待补充。
## 常见误区
待补充。
## 相关知识
- [[LLM基础]]
- [[Token机制]]
- [[../02_Agent工程/Memory记忆系统|Memory记忆系统]]
## 参考资料
- 待补充
+36
View File
@@ -0,0 +1,36 @@
---
title: AI 基础知识地图
type: index
domain: AI基础
status: growing
tags:
- AI
- index
created: 2026-07-16
updated: 2026-07-17
aliases:
- AI基础 MOC
related:
- AI-Brain 总索引
source: []
---
# AI 基础知识地图
## 学习路径
1. [[LLM基础]]:理解大语言模型的基本能力和限制。
2. [[Token机制]]:理解模型处理文本与计算上下文的基本单位。
3. [[Prompt Engineering]]:学习如何表达任务和约束输出。
4. [[RAG知识库]]:让模型使用外部、可更新的知识。
5. [[什么是Agent|什么是 AI Agent]]:理解 Agent 如何从“回答问题”走向“完成目标”。
## 与 Agent 工程的连接
- [[../02_Agent工程/AI Agent概念|AI Agent概念]]
- [[../02_Agent工程/Memory记忆系统|Memory记忆系统]]
- [[../02_Agent工程/Function Calling|Function Calling]]
## 返回
- [[../INDEX|AI-Brain 总索引]]
+59
View File
@@ -0,0 +1,59 @@
---
title: Token机制
type: concept
domain: AI基础
status: seed
tags:
- AI
- Token
created: 2026-07-16
updated: 2026-07-16
aliases:
- Tokenization
related:
- LLM基础
- Prompt Engineering
- RAG知识库
source: []
---
# Token机制
## 一句话定义
待补充。
## 为什么重要
待补充。
## 核心概念
待补充。
## 工作原理
待补充。
## 应用场景
待补充。
## 示例
待补充。
## 常见误区
待补充。
## 相关知识
- [[LLM基础]]
- [[Prompt Engineering]]
- [[RAG知识库]]
## 参考资料
- 待补充
+71
View File
@@ -0,0 +1,71 @@
---
title: 什么是 AI Agent
type: concept
domain: AI基础
status: seed
tags:
- AI
- Agent
created: 2026-07-17
updated: 2026-07-17
aliases:
- 什么是Agent
- AI智能体
related:
- AI Agent概念
- LLM基础
- Planning规划
- Function Calling
- Memory记忆系统
source: []
---
# 什么是 AI Agent
## 一句话定义
AI Agent(人工智能智能体)是能够围绕目标自主规划步骤、调用工具并执行任务的智能系统。
## 核心组成
1. **LLM(大语言模型)**:理解输入、推理并生成行动建议,是 Agent 的主要认知核心。
2. **Memory(记忆)**:保存任务上下文、历史经验和外部知识,使 Agent 能持续推进任务。
3. **Planning(规划)**:把目标拆解为可执行步骤,并根据执行结果调整计划。
4. **Tools(工具)**:让 Agent 能搜索信息、读写文件、调用 API 或操作其他系统。
## 工作方式
一个典型 Agent 会反复执行以下循环:
1. 理解目标与当前状态。
2. 规划下一步行动。
3. 选择并调用合适的工具。
4. 检查执行结果。
5. 根据反馈继续行动,直到完成目标或遇到需要人工决策的问题。
## Agent 与聊天机器人的区别
聊天机器人主要围绕对话生成回答;Agent 则围绕目标采取行动并交付结果。
| 对比维度 | 聊天机器人 | AI Agent |
| --- | --- | --- |
| 主要任务 | 回答问题 | 完成目标 |
| 行动方式 | 生成文本回复 | 规划、调用工具并执行 |
| 任务跨度 | 通常是单轮或短对话 | 可以持续多个步骤 |
| 外部能力 | 不一定连接外部系统 | 通常依赖工具与环境交互 |
需要注意:两者并非完全对立。ChatGPT 等对话产品在具备规划、工具调用和持续执行能力时,也可以作为 Agent 的交互入口。
## 我的理解
Agent 不只是聊天机器人。聊天机器人侧重“回答问题”,Agent 更侧重“完成目标”。判断一个系统是否具有 Agent 特征,关键不在于它是否使用聊天界面,而在于它能否围绕目标自主决定并执行下一步行动。
## 相关知识
- [[LLM基础]]
- [[../02_Agent工程/AI Agent概念|AI Agent概念]]
- [[../02_Agent工程/Agent架构|Agent架构]]
- [[../02_Agent工程/Planning规划|Planning规划]]
- [[../02_Agent工程/Function Calling|Function Calling]]
- [[../02_Agent工程/Memory记忆系统|Memory记忆系统]]
+59
View File
@@ -0,0 +1,59 @@
---
title: AI Agent概念
type: concept
domain: Agent工程
status: seed
tags:
- AI
- Agent
created: 2026-07-16
updated: 2026-07-16
aliases:
- 智能体概念
related:
- LLM基础
- Agent架构
- Planning规划
source: []
---
# AI Agent概念
## 一句话定义
待补充。
## 为什么重要
待补充。
## 核心概念
待补充。
## 工作原理
待补充。
## 应用场景
待补充。
## 示例
待补充。
## 常见误区
待补充。
## 相关知识
- [[../01_AI基础/LLM基础|LLM基础]]
- [[Agent架构]]
- [[Planning规划]]
## 参考资料
- 待补充
+109
View File
@@ -0,0 +1,109 @@
---
title: Agent架构
type: concept
domain: Agent工程
status: growing
tags:
- Agent
- Architecture
created: 2026-07-16
updated: 2026-07-17
aliases:
- 智能体架构
related:
- AI Agent概念
- Planning规划
- Function Calling
- Memory记忆系统
- Loop Engineering
source: []
---
# Agent架构
## 一句话定义
Agent 架构是一套让大语言模型围绕目标进行规划、调用工具、观察结果并持续调整行动的系统设计。
## 为什么重要
LLM 只能生成内容,而 Agent 架构把模型的推理能力连接到状态、记忆和外部工具,使系统能够真正执行多步骤任务。清晰的架构还能限制工具权限、记录执行过程,并在出现错误时重试、恢复或请求人工介入。
## 核心执行闭环
Agent 的基本运行流程是:
```mermaid
flowchart TD
A[输入目标] --> B[理解目标与当前状态]
B --> C[Planning:规划下一步]
C --> D[选择并调用工具]
D --> E[执行行动]
E --> F[观察执行结果]
F --> G{目标是否完成?}
G -- 否 --> H[调整计划与状态]
H --> C
G -- 是 --> I[输出结果]
F --> J{是否需要人工介入?}
J -- 是 --> K[请求确认或补充信息]
K --> C
```
这不是一条只运行一次的流水线,而是一个反馈循环:Agent 根据观察结果更新当前状态,然后决定下一步行动,直到目标完成、达到停止条件或需要人工决策。
## 架构组成
| 组成 | 作用 | 典型内容 |
| --- | --- | --- |
| 目标与约束 | 定义要完成什么以及不能做什么 | 用户请求、成功标准、权限边界 |
| LLM | 理解上下文并决定下一步行动 | 推理、生成计划、选择工具 |
| Planning | 将目标拆成可执行步骤 | 任务分解、优先级、计划调整 |
| Tools | 提供与外部环境交互的能力 | 搜索、代码执行、文件操作、API |
| State | 保存当前任务的即时状态 | 当前步骤、工具结果、错误信息 |
| Memory | 保存需要跨步骤或跨会话复用的信息 | 对话历史、用户偏好、经验与知识 |
| Execution Loop | 驱动“行动—观察—调整”循环 | 调度、重试、超时、终止判断 |
| Guardrails | 控制风险并保证执行边界 | 权限检查、参数校验、人工确认 |
| Observability | 让执行过程可检查和调试 | 日志、轨迹、指标、错误记录 |
## 工作原理
1. **接收目标**:读取用户目标、上下文、约束和成功标准。
2. **读取状态**:确定已知信息、可用工具和当前任务进度。
3. **制定计划**:把目标拆解为步骤,选择当前最合适的行动。
4. **调用工具**:生成符合工具接口要求的参数,并交由运行时执行。
5. **观察结果**:读取工具返回值,判断行动是否成功以及信息是否充分。
6. **调整行动**:更新状态,必要时修改计划、重试或选择其他工具。
7. **终止循环**:目标完成时输出结果;无法安全继续时停止并请求人工介入。
## 示例:整理一份行业报告
当目标是“整理一份 AI Agent 行业报告”时,Agent 可以:
1. 明确报告范围、读者和交付格式。
2. 规划资料搜索、信息筛选、提纲设计和正文撰写等步骤。
3. 调用搜索或知识库工具收集资料。
4. 检查资料是否可靠、完整,并记录来源。
5. 如果证据不足,调整关键词并继续搜索。
6. 根据成功标准生成报告并检查遗漏。
其中,LLM 负责判断和规划,工具负责获取或处理外部信息,状态与记忆负责保存过程信息,执行循环负责持续推进任务。
## 常见误区
- **把 Agent 等同于 LLM**:LLM 是核心组件之一,但完整 Agent 还需要工具、状态和执行循环。
- **认为计划生成后不会变化**:现实任务包含不确定性,计划应根据工具结果动态调整。
- **工具越多越好**:工具数量会增加选择成本和安全风险,应只开放任务需要的能力。
- **忽略终止条件**:没有完成标准、步数限制或超时机制,Agent 可能重复执行或无限循环。
- **只关注成功结果**:工程系统还需要记录失败原因、工具调用轨迹和恢复过程。
## 相关知识
- [[AI Agent概念]]
- [[Planning规划]]
- [[Function Calling]]
- [[Memory记忆系统]]
- [[Loop Engineering]]
## 参考资料
- 待补充。
+61
View File
@@ -0,0 +1,61 @@
---
title: Function Calling
type: concept
domain: Agent工程
status: seed
tags:
- Agent
- Tools
- FunctionCalling
created: 2026-07-16
updated: 2026-07-16
aliases:
- 函数调用
- 工具调用
related:
- Agent架构
- Planning规划
- Loop Engineering
source: []
---
# Function Calling
## 一句话定义
待补充。
## 为什么重要
待补充。
## 核心概念
待补充。
## 工作原理
待补充。
## 应用场景
待补充。
## 示例
待补充。
## 常见误区
待补充。
## 相关知识
- [[Agent架构]]
- [[Planning规划]]
- [[Loop Engineering]]
## 参考资料
- 待补充
+62
View File
@@ -0,0 +1,62 @@
---
title: Loop Engineering
type: concept
domain: Agent工程
status: seed
tags:
- Agent
- Loop
- Reliability
created: 2026-07-16
updated: 2026-07-16
aliases:
- Agent循环工程
related:
- Agent架构
- Planning规划
- Function Calling
- Memory记忆系统
source: []
---
# Loop Engineering
## 一句话定义
待补充。
## 为什么重要
待补充。
## 核心概念
待补充。
## 工作原理
待补充。
## 应用场景
待补充。
## 示例
待补充。
## 常见误区
待补充。
## 相关知识
- [[Agent架构]]
- [[Planning规划]]
- [[Function Calling]]
- [[Memory记忆系统]]
## 参考资料
- 待补充
+59
View File
@@ -0,0 +1,59 @@
---
title: Memory记忆系统
type: concept
domain: Agent工程
status: seed
tags:
- Agent
- Memory
created: 2026-07-16
updated: 2026-07-16
aliases:
- Agent Memory
related:
- Agent架构
- RAG知识库
- Loop Engineering
source: []
---
# Memory记忆系统
## 一句话定义
待补充。
## 为什么重要
待补充。
## 核心概念
待补充。
## 工作原理
待补充。
## 应用场景
待补充。
## 示例
待补充。
## 常见误区
待补充。
## 相关知识
- [[Agent架构]]
- [[../01_AI基础/RAG知识库|RAG知识库]]
- [[Loop Engineering]]
## 参考资料
- 待补充
+59
View File
@@ -0,0 +1,59 @@
---
title: Planning规划
type: concept
domain: Agent工程
status: seed
tags:
- Agent
- Planning
created: 2026-07-16
updated: 2026-07-16
aliases:
- Agent Planning
related:
- AI Agent概念
- Agent架构
- Loop Engineering
source: []
---
# Planning规划
## 一句话定义
待补充。
## 为什么重要
待补充。
## 核心概念
待补充。
## 工作原理
待补充。
## 应用场景
待补充。
## 示例
待补充。
## 常见误区
待补充。
## 相关知识
- [[AI Agent概念]]
- [[Agent架构]]
- [[Loop Engineering]]
## 参考资料
- 待补充
+38
View File
@@ -0,0 +1,38 @@
---
title: Agent 工程知识地图
type: index
domain: Agent工程
status: growing
tags:
- Agent
- index
created: 2026-07-16
updated: 2026-07-16
aliases:
- Agent工程 MOC
related:
- AI-Brain 总索引
source: []
---
# Agent 工程知识地图
## 学习路径
1. [[AI Agent概念]]:先理解 Agent 的定义、边界和组成。
2. [[Agent架构]]:理解模型、工具、状态和运行时如何协作。
3. [[Planning规划]]:学习目标分解和步骤选择。
4. [[Function Calling]]:让模型安全地调用外部能力。
5. [[Memory记忆系统]]:管理跨步骤、跨会话的信息。
6. [[Loop Engineering]]:设计可观察、可终止、可恢复的执行循环。
## 基础依赖
- [[../01_AI基础/LLM基础|LLM基础]]
- [[../01_AI基础/Prompt Engineering|Prompt Engineering]]
- [[../01_AI基础/RAG知识库|RAG知识库]]
## 返回
- [[../INDEX|AI-Brain 总索引]]
@@ -0,0 +1,46 @@
---
title: AI创业公司任务记录
type: project
domain: 项目记录
status: growing
tags:
- project
- AI创业
created: 2026-07-16
updated: 2026-07-16
aliases: []
related:
- AI Agent概念
source: []
---
# AI创业公司任务记录
## 项目目标
待补充。
## 当前状态
待补充。
## 任务清单
- [ ] 完成 AI-Brain 知识库第一版
## 决策记录
待补充。
## 风险与阻塞
待补充。
## 下一步
待补充。
## 相关知识
- [[../02_Agent工程/AI Agent概念|AI Agent概念]]
+36
View File
@@ -0,0 +1,36 @@
---
title: Daily Log
type: index
domain: 复盘日志
status: growing
tags:
- daily
- index
created: 2026-07-16
updated: 2026-07-16
aliases:
- 每日复盘索引
related:
- AI-Brain 总索引
source: []
---
# Daily Log
每日复盘使用 [[../90_Templates/Daily Log模板|Daily Log模板]] 创建,建议以 `YYYY-MM-DD Daily Log.md` 命名。
## 日志索引
- 待创建
## 复盘关注点
- 今天完成了什么?
- 学到了什么可复用的知识?
- 哪些问题需要进入项目记录或知识笔记?
- 明天最重要的行动是什么?
## 返回
- [[../INDEX|AI-Brain 总索引]]
+40
View File
@@ -0,0 +1,40 @@
---
title: "{{date}} Daily Log"
type: daily
domain: 复盘日志
status: growing
tags:
- daily
created: "{{date}}"
updated: "{{date}}"
aliases: []
related: []
source: []
---
# {{date}} Daily Log
## 今日目标
- [ ] 待补充
## 今日完成
- 待补充
## 关键学习
- 待补充
## 问题与阻塞
- 待补充
## 明日行动
- [ ] 待补充
## 关联笔记
- 待补充
+51
View File
@@ -0,0 +1,51 @@
---
title: "{{title}}"
type: concept
domain: 待分类
status: seed
tags: []
created: "{{date}}"
updated: "{{date}}"
aliases: []
related: []
source: []
---
# {{title}}
## 一句话定义
待补充。
## 为什么重要
待补充。
## 核心概念
待补充。
## 工作原理
待补充。
## 应用场景
待补充。
## 示例
待补充。
## 常见误区
待补充。
## 相关知识
- 待补充
## 参考资料
- 待补充
+44
View File
@@ -0,0 +1,44 @@
---
title: "{{title}}"
type: project
domain: 项目记录
status: growing
tags:
- project
created: "{{date}}"
updated: "{{date}}"
aliases: []
related: []
source: []
---
# {{title}}
## 项目目标
待补充。
## 当前状态
待补充。
## 任务清单
- [ ] 待补充
## 决策记录
待补充。
## 风险与阻塞
待补充。
## 下一步
待补充。
## 相关知识
- 待补充
+54
View File
@@ -0,0 +1,54 @@
# AI-Brain Agent Rules
本文件定义 AI Agent 对知识库的默认读取和写入约定。
## 读取顺序
1. 先读取根目录 `README.md`,理解知识库用途和目录语义。
2. 再读取 `INDEX.md`,定位主题入口。
3. 进入目标目录后,优先读取该目录的 `README.md`
4. 根据笔记的 `related` 字段和 `[[内部链接]]` 扩展上下文。
5. 回答或生成内容时保留来源文件路径,避免失去可追溯性。
## 写入规则
1. 无法立即归类的信息先写入 `00_Inbox`
2. 一篇知识笔记只描述一个核心主题。
3. 文件名采用清晰、稳定、可搜索的概念名称。
4. 知识笔记必须包含统一 YAML Frontmatter。
5. 正文修改后同步更新 `updated` 日期。
6. 新建、移动或归档笔记后更新对应索引。
7. 使用 `[[笔记名称]]` 表达知识关系,不只依赖文件夹。
8. 未验证的信息明确标注“待验证”,不得写成确定事实。
9. 不无理由删除既有知识;失效内容优先移动到 `99_Archive`
10. 不写入密码、Token、API Key 或其他秘密信息。
## Frontmatter 规范
```yaml
---
title: 笔记标题
type: concept
domain: 所属领域
status: seed
tags: []
created: YYYY-MM-DD
updated: YYYY-MM-DD
aliases: []
related: []
source: []
---
```
允许的 `status``seed``growing``evergreen``archived`
常用的 `type``concept``project``case``material``daily``index`
## 内容质量规则
- 开头提供“一句话定义”或“今日摘要”。
- 标题层级连续,避免跳级。
- 重要结论写在正文中,不能只存在于标签或图片中。
- 外部信息尽量记录标题、作者、日期和链接。
- 内容过长或包含多个独立主题时,拆分为原子笔记并相互链接。
+47
View File
@@ -0,0 +1,47 @@
---
title: AI-Brain 总索引
type: index
status: evergreen
tags:
- index
- wiki
created: 2026-07-16
updated: 2026-07-16
aliases:
- Home
related: []
source: []
---
# AI-Brain 总索引
## 快速入口
- [[00_Inbox/临时收集内容|收件箱]]
- [[01_AI基础/README|AI 基础知识地图]]
- [[02_Agent工程/README|Agent 工程知识地图]]
- [[03_项目记录/AI创业公司任务记录|项目记录]]
- [[06_复盘日志/Daily Log|复盘日志]]
## AI 基础
- [[01_AI基础/LLM基础]]
- [[01_AI基础/Prompt Engineering]]
- [[01_AI基础/Token机制]]
- [[01_AI基础/RAG知识库]]
## Agent 工程
- [[02_Agent工程/AI Agent概念]]
- [[02_Agent工程/Agent架构]]
- [[02_Agent工程/Planning规划]]
- [[02_Agent工程/Function Calling]]
- [[02_Agent工程/Memory记忆系统]]
- [[02_Agent工程/Loop Engineering]]
## 待建设领域
- 商业案例
- 内容素材
- 归档内容
+40
View File
@@ -0,0 +1,40 @@
# AI-Brain
AI-Brain 是一个面向个人学习、项目沉淀和未来 AI Agent Memory 的 Markdown Wiki。
## 技术栈
- Obsidian:人工编辑、链接和浏览
- Markdown:长期可迁移的知识格式
- Git / Gitea:版本历史与远程备份
- YAML Frontmatter:结构化元数据
- Wiki Links:知识关系网络
## 目录说明
- [[00_Inbox/临时收集内容|00_Inbox]]:尚未整理的临时信息
- [[01_AI基础/README|01_AI基础]]LLM、Prompt、Token 和 RAG
- [[02_Agent工程/README|02_Agent工程]]Agent 架构及工程实践
- [[03_项目记录/AI创业公司任务记录|03_项目记录]]:项目过程和任务记录
- `04_商业案例`:商业模式、产品和公司案例
- `05_内容素材`:可复用的选题、观点和素材
- [[06_复盘日志/Daily Log|06_复盘日志]]:日常记录与复盘
- `90_Templates`:统一笔记模板
- `99_Archive`:不再活跃的历史内容
## 使用入口
1. 人工浏览从 [[INDEX]] 开始。
2. 新信息先放入 [[00_Inbox/临时收集内容]]。
3. 整理时拆成单一主题笔记,补充元数据和内部链接。
4. AI Agent 应先读取本文件,再读取 [[INDEX]] 和 `AGENTS.md`
## 笔记生命周期
`seed``growing``evergreen``archived`
- `seed`:初步记录,内容可能不完整
- `growing`:持续补充和验证
- `evergreen`:结构完整、可长期复用
- `archived`:已停止维护,仅保留历史